diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-11-03 01:33:53 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-11-03 01:33:53 +0100 |
commit | d1291f67551c58168af43698a359cb5ddfd266b0 (patch) | |
tree | 55a13ed29fe1915e3f42f1b1b7038dafa2e975a7 /node_modules/sax | |
parent | d0a0695fb5d34996850723f7d4b1b59c3df909c2 (diff) | |
download | wallet-core-d1291f67551c58168af43698a359cb5ddfd266b0.tar.xz |
node_modules
Diffstat (limited to 'node_modules/sax')
61 files changed, 13441 insertions, 0 deletions
diff --git a/node_modules/sax/AUTHORS b/node_modules/sax/AUTHORS new file mode 100644 index 000000000..7145cbcd9 --- /dev/null +++ b/node_modules/sax/AUTHORS @@ -0,0 +1,10 @@ +# contributors sorted by whether or not they're me. +Isaac Z. Schlueter <i@izs.me> +Stein Martin Hustad <stein@hustad.com> +Mikeal Rogers <mikeal.rogers@gmail.com> +Laurie Harper <laurie@holoweb.net> +Jann Horn <jann@Jann-PC.fritz.box> +Elijah Insua <tmpvar@gmail.com> +Henry Rawas <henryr@schakra.com> +Justin Makeig <jmpublic@makeig.com> +Mike Schilling <mike@emotive.com> diff --git a/node_modules/sax/LICENSE b/node_modules/sax/LICENSE new file mode 100644 index 000000000..982486420 --- /dev/null +++ b/node_modules/sax/LICENSE @@ -0,0 +1,57 @@ +Copyright (c) Isaac Z. Schlueter ("Author") +All rights reserved. + +The BSD License + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +The file "examples/strict.dtd" is licensed by the W3C and used according +to the terms of the W3C SOFTWARE NOTICE AND LICENSE. See LICENSE-W3C.html +for details. + + +"String.fromCodePoint" used under the terms of the MIT license. Its license +follows: + + Copyright Mathias Bynens <http://mathiasbynens.be/> + + 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. diff --git a/node_modules/sax/LICENSE-W3C.html b/node_modules/sax/LICENSE-W3C.html new file mode 100644 index 000000000..a611e3f90 --- /dev/null +++ b/node_modules/sax/LICENSE-W3C.html @@ -0,0 +1,188 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="generator" content="HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 13), see www.w3.org" /><title>W3C Software Notice and License</title><link rel="stylesheet" href="/2008/site/css/minimum" type="text/css" media="handheld, all" /><style type="text/css" media="print, screen and (min-width: 481px)" xml:space="preserve"> + @import url("/2008/site/css/advanced"); +</style><link href="/2008/site/css/minimum" rel="stylesheet" type="text/css" media="handheld, only screen and (max-device-width: 480px)" /><meta name="viewport" content="width=device-width" /><link rel="stylesheet" href="/2008/site/css/print" type="text/css" media="print" /><link rel="shortcut icon" href="/2008/site/images/favicon.ico" type="image/x-icon" /></head><body id="www-w3-org" class="w3c_public"><div id="w3c_container"> + + + + <div id="w3c_mast"> + <h1 class="logo"> + <a tabindex="2" accesskey="1" href="/"><img src="/2008/site/images/logo-w3c-mobile-lg" width="90" height="53" alt="W3C" /></a> + <span class="alt-logo">W3C</span> + </h1> + + <div id="w3c_nav"> + + + + <form action="/Help/search" method="get" enctype="application/x-www-form-urlencoded"><div class="w3c_sec_nav"><!-- --></div><ul class="main_nav"><li class="first-item"> + <a href="/standards/">Standards</a> + </li><li> + <a href="/participate/">Participate</a> + </li><li> + <a href="/Consortium/membership">Membership</a> + </li><li class="last-item"> + <a href="/Consortium/">About W3C</a> + </li><li class="search-item"> + <div id="search-form"> + <input tabindex="3" class="text" name="q" value="" title="Search" type="text" /> + <button id="search-submit" name="search-submit" type="submit"><img class="submit" src="/2008/site/images/search-button" alt="Search" width="21" height="17" /></button> + </div> + </li></ul></form> + </div> + + </div> + + + <div id="w3c_main"> + <div id="w3c_logo_shadow" class="w3c_leftCol"> + <img height="32" alt="" src="/2008/site/images/logo-shadow" /> + </div> + + <div class="w3c_leftCol"><h2 class="offscreen">Site Navigation</h2> + <h3 class="category"><span class="ribbon"><a href="/Consortium/Legal/ipr-notice.html" title="Up to Policies and Legal Information">Policies and Legal Information <img src="/2008/site/images/header-link" alt="Header link" width="13" height="13" class="header-link" /></a></span></h3> + <ul class="theme"> + <li><a href="/Consortium/Legal/2008/04-testsuite-copyright.html">Licenses for W3C Test Suites</a></li> + <li><a href="/2004/10/27-testcases.html">Policies for Contribution of Test Cases to W3C</a></li> + <li><a href="/Consortium/Legal/IPR-FAQ-20000620.html">Intellectual Rights FAQ</a></li> + <li><a href="/Consortium/Legal/privacy-statement-20000612.html">W3C Privacy Statements</a></li> + <li><a href="/Consortium/Legal/2002/copyright-documents-20021231.html">W3C Document License</a></li> + <li><a href="/Consortium/Legal/2002/trademarks-20021231.html">W3C Trademarks and Generic Terms</a></li> + <li><a href="/Consortium/Legal/2002/trademark-license-20021231.html">W3C® Trademark and Service Mark License</a></li> + <li><a class="current">W3C Software Notice and License</a></li> + <li><a href="/Consortium/Legal/2002/collaborators-agreement-20021231.html">W3C Invited Expert and Collaborators Agreement</a></li> + <li><a href="/Consortium/Persistence.html">W3C URI Persistence Policy</a></li> + <li><a href="/1999/10/21-mirroring-policy.html">Mirroring the W3C Site</a></li> + <li><a href="/Consortium/Legal/2006/08-copyright-translations.html">Translations of the Copyright Notice</a></li> + </ul> + <br /></div> + <div class="w3c_mainCol"> + <div id="w3c_crumbs"> + <div id="w3c_crumbs_frame"> + <ul class="bct"> <!-- .bct / Breadcrumbs --> + <li class="skip"><a tabindex="1" accesskey="2" title="Skip to content (e.g., when browsing via audio)" href="#w3c_content_body">Skip</a></li> + <li><a href="/">W3C</a> <span class="cr">»</span> </li> + <li><a href="/Consortium/">About W3C</a> <span class="cr">»</span> </li> + <li><a href="/Consortium/facts.html">Facts About W3C</a> <span class="cr">»</span> </li> + <li><a href="/Consortium/Legal/ipr-notice.html">Policies and Legal Information</a> <span class="cr">»</span> </li> + <li class="current">W3C Software Notice and License</li> + </ul> + </div> + </div> + <h1 class="title">W3C Software Notice and License</h1> + <div id="w3c_content_body"> + <div class="line"> + <p class="intro tPadding">This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license.</p> +<h2>License</h2> + + <p class="tPadding"> +By obtaining, using and/or copying this work, you (the licensee) +agree that you have read, understood, and will comply with the following +terms and conditions.</p> + + <p>Permission to copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose and without +fee or royalty is hereby granted, provided that you include the following on +ALL copies of the software and documentation or portions thereof, including +modifications:</p> + + <ul class="show_items"><li>The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work.</li><li>Any pre-existing intellectual property disclaimers, notices, or terms + and conditions. If none exist, the <a href="copyright-software-short-notice-20021231.html">W3C Software Short + Notice</a> should be included (hypertext is preferred, text is permitted) + within the body of any redistributed or derivative code.</li><li>Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from + which the code is derived.)</li></ul> + +<h2>Disclaimers</h2> + + <p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS +MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR +PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE +ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p> + + <p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR +DOCUMENTATION.</p> + + <p>The name and trademarks of copyright holders may NOT be used in +advertising or publicity pertaining to the software without specific, written +prior permission. Title to copyright in this software and any associated +documentation will at all times remain with copyright holders.</p> + + <h2>Notes</h2> + + <p>This version: http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231</p> + + <p>This formulation of W3C's notice and license became active on December 31 +2002. This version removes the copyright ownership notice such that this +license can be used with materials other than those owned by the W3C, +reflects that ERCIM is now a host of the W3C, includes references to this +specific dated version of the license, and removes the ambiguous grant of +"use". Otherwise, this version is the same as the <a href="http://www.w3.org/Consortium/Legal/copyright-software-19980720">previous +version</a> and is written so as to preserve the <a href="http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses">Free +Software Foundation's assessment of GPL compatibility</a> and <a href="http://www.opensource.org/licenses/W3C.php">OSI's certification</a> +under the <a href="http://www.opensource.org/docs/definition.php">Open Source +Definition</a>.</p> + </div> + </div> + </div> + </div> + + + + </div><div id="w3c_footer"> + <div id="w3c_footer-inner"> + <h2 class="offscreen">Footer Navigation</h2> + <div class="w3c_footer-nav"> + <h3>Navigation</h3> + <ul class="footer_top_nav"><li> + <a href="/">Home</a> + </li><li> + <a href="/standards/">Standards</a> + </li><li> + <a href="/participate/">Participate</a> + </li><li> + <a href="/Consortium/membership">Membership</a> + </li><li class="last-item"> + <a href="/Consortium/">About W3C</a> + </li></ul> + </div> + <div class="w3c_footer-nav"> + <h3>Contact W3C</h3> + <ul class="footer_bottom_nav"><li> + <a href="/Consortium/contact">Contact</a> + </li><li> + <a accesskey="0" href="/Help/">Help and FAQ</a> + </li><li> + <a href="/Consortium/sponsor/">Sponsor / Donate</a> + </li><li> + <a href="/Consortium/siteindex">Site Map</a> + </li><li> + <address id="w3c_signature"> + <a href="http://lists.w3.org/Archives/Public/site-comments/">Feedback</a></address> + </li></ul> + </div> + <div class="w3c_footer-nav"> + <h3>W3C Updates</h3> + <ul class="footer_follow_nav"><li> + <a href="http://twitter.com/W3C" title="Follow W3C on Twitter"> + <img src="/2008/site/images/twitter-bird" alt="Twitter" width="78" height="83" class="social-icon" /> + </a> + <a href="http://identi.ca/w3c" title="See W3C on Identica"> + <img src="/2008/site/images/identica-logo" alt="Identica" width="91" height="83" class="social-icon" /> + </a> + </li></ul> + </div> + <p class="copyright">Copyright © 2012 W3C <sup>®</sup> (<a href="http://www.csail.mit.edu/"> + <acronym title="Massachusetts Institute of Technology">MIT</acronym> + </a>, <a href="http://www.ercim.org/"> + <acronym title="European Research Consortium for Informatics and Mathematics"> ERCIM</acronym> + </a>, <a href="http://www.keio.ac.jp/">Keio</a>) <a href="/Consortium/Legal/ipr-notice">Usage policies apply</a>.</p> + </div> + </div><!-- Generated from data/scripts.php, ../../smarty/{scripts.tpl} --><!-- At the bottom for performance reasons --><div id="w3c_scripts"> + <script type="text/javascript" src="/2008/site/js/main" xml:space="preserve"><!-- --></script> + </div></body></html> diff --git a/node_modules/sax/README.md b/node_modules/sax/README.md new file mode 100644 index 000000000..c9652420c --- /dev/null +++ b/node_modules/sax/README.md @@ -0,0 +1,216 @@ +# sax js + +A sax-style parser for XML and HTML. + +Designed with [node](http://nodejs.org/) in mind, but should work fine in +the browser or other CommonJS implementations. + +## What This Is + +* A very simple tool to parse through an XML string. +* A stepping stone to a streaming HTML parser. +* A handy way to deal with RSS and other mostly-ok-but-kinda-broken XML + docs. + +## What This Is (probably) Not + +* An HTML Parser - That's a fine goal, but this isn't it. It's just + XML. +* A DOM Builder - You can use it to build an object model out of XML, + but it doesn't do that out of the box. +* XSLT - No DOM = no querying. +* 100% Compliant with (some other SAX implementation) - Most SAX + implementations are in Java and do a lot more than this does. +* An XML Validator - It does a little validation when in strict mode, but + not much. +* A Schema-Aware XSD Thing - Schemas are an exercise in fetishistic + masochism. +* A DTD-aware Thing - Fetching DTDs is a much bigger job. + +## Regarding `<!DOCTYPE`s and `<!ENTITY`s + +The parser will handle the basic XML entities in text nodes and attribute +values: `& < > ' "`. It's possible to define additional +entities in XML by putting them in the DTD. This parser doesn't do anything +with that. If you want to listen to the `ondoctype` event, and then fetch +the doctypes, and read the entities and add them to `parser.ENTITIES`, then +be my guest. + +Unknown entities will fail in strict mode, and in loose mode, will pass +through unmolested. + +## Usage + + var sax = require("./lib/sax"), + strict = true, // set to false for html-mode + parser = sax.parser(strict); + + parser.onerror = function (e) { + // an error happened. + }; + parser.ontext = function (t) { + // got some text. t is the string of text. + }; + parser.onopentag = function (node) { + // opened a tag. node has "name" and "attributes" + }; + parser.onattribute = function (attr) { + // an attribute. attr has "name" and "value" + }; + parser.onend = function () { + // parser stream is done, and ready to have more stuff written to it. + }; + + parser.write('<xml>Hello, <who name="world">world</who>!</xml>').close(); + + // stream usage + // takes the same options as the parser + var saxStream = require("sax").createStream(strict, options) + saxStream.on("error", function (e) { + // unhandled errors will throw, since this is a proper node + // event emitter. + console.error("error!", e) + // clear the error + this._parser.error = null + this._parser.resume() + }) + saxStream.on("opentag", function (node) { + // same object as above + }) + // pipe is supported, and it's readable/writable + // same chunks coming in also go out. + fs.createReadStream("file.xml") + .pipe(saxStream) + .pipe(fs.createWriteStream("file-copy.xml")) + + + +## Arguments + +Pass the following arguments to the parser function. All are optional. + +`strict` - Boolean. Whether or not to be a jerk. Default: `false`. + +`opt` - Object bag of settings regarding string formatting. All default to `false`. + +Settings supported: + +* `trim` - Boolean. Whether or not to trim text and comment nodes. +* `normalize` - Boolean. If true, then turn any whitespace into a single + space. +* `lowercase` - Boolean. If true, then lowercase tag names and attribute names + in loose mode, rather than uppercasing them. +* `xmlns` - Boolean. If true, then namespaces are supported. +* `position` - Boolean. If false, then don't track line/col/position. + +## Methods + +`write` - Write bytes onto the stream. You don't have to do this all at +once. You can keep writing as much as you want. + +`close` - Close the stream. Once closed, no more data may be written until +it is done processing the buffer, which is signaled by the `end` event. + +`resume` - To gracefully handle errors, assign a listener to the `error` +event. Then, when the error is taken care of, you can call `resume` to +continue parsing. Otherwise, the parser will not continue while in an error +state. + +## Members + +At all times, the parser object will have the following members: + +`line`, `column`, `position` - Indications of the position in the XML +document where the parser currently is looking. + +`startTagPosition` - Indicates the position where the current tag starts. + +`closed` - Boolean indicating whether or not the parser can be written to. +If it's `true`, then wait for the `ready` event to write again. + +`strict` - Boolean indicating whether or not the parser is a jerk. + +`opt` - Any options passed into the constructor. + +`tag` - The current tag being dealt with. + +And a bunch of other stuff that you probably shouldn't touch. + +## Events + +All events emit with a single argument. To listen to an event, assign a +function to `on<eventname>`. Functions get executed in the this-context of +the parser object. The list of supported events are also in the exported +`EVENTS` array. + +When using the stream interface, assign handlers using the EventEmitter +`on` function in the normal fashion. + +`error` - Indication that something bad happened. The error will be hanging +out on `parser.error`, and must be deleted before parsing can continue. By +listening to this event, you can keep an eye on that kind of stuff. Note: +this happens *much* more in strict mode. Argument: instance of `Error`. + +`text` - Text node. Argument: string of text. + +`doctype` - The `<!DOCTYPE` declaration. Argument: doctype string. + +`processinginstruction` - Stuff like `<?xml foo="blerg" ?>`. Argument: +object with `name` and `body` members. Attributes are not parsed, as +processing instructions have implementation dependent semantics. + +`sgmldeclaration` - Random SGML declarations. Stuff like `<!ENTITY p>` +would trigger this kind of event. This is a weird thing to support, so it +might go away at some point. SAX isn't intended to be used to parse SGML, +after all. + +`opentag` - An opening tag. Argument: object with `name` and `attributes`. +In non-strict mode, tag names are uppercased, unless the `lowercase` +option is set. If the `xmlns` option is set, then it will contain +namespace binding information on the `ns` member, and will have a +`local`, `prefix`, and `uri` member. + +`closetag` - A closing tag. In loose mode, tags are auto-closed if their +parent closes. In strict mode, well-formedness is enforced. Note that +self-closing tags will have `closeTag` emitted immediately after `openTag`. +Argument: tag name. + +`attribute` - An attribute node. Argument: object with `name` and `value`. +In non-strict mode, attribute names are uppercased, unless the `lowercase` +option is set. If the `xmlns` option is set, it will also contains namespace +information. + +`comment` - A comment node. Argument: the string of the comment. + +`opencdata` - The opening tag of a `<![CDATA[` block. + +`cdata` - The text of a `<![CDATA[` block. Since `<![CDATA[` blocks can get +quite large, this event may fire multiple times for a single block, if it +is broken up into multiple `write()`s. Argument: the string of random +character data. + +`closecdata` - The closing tag (`]]>`) of a `<![CDATA[` block. + +`opennamespace` - If the `xmlns` option is set, then this event will +signal the start of a new namespace binding. + +`closenamespace` - If the `xmlns` option is set, then this event will +signal the end of a namespace binding. + +`end` - Indication that the closed stream has ended. + +`ready` - Indication that the stream has reset, and is ready to be written +to. + +`noscript` - In non-strict mode, `<script>` tags trigger a `"script"` +event, and their contents are not checked for special xml characters. +If you pass `noscript: true`, then this behavior is suppressed. + +## Reporting Problems + +It's best to write a failing test if you find an issue. I will always +accept pull requests with failing tests if they demonstrate intended +behavior, but it is very hard to figure out what issue you're describing +without a test. Writing a test is also the best way for you yourself +to figure out if you really understand the issue you think you have with +sax-js. diff --git a/node_modules/sax/examples/big-not-pretty.xml b/node_modules/sax/examples/big-not-pretty.xml new file mode 100644 index 000000000..fb5265dde --- /dev/null +++ b/node_modules/sax/examples/big-not-pretty.xml @@ -0,0 +1,8002 @@ +<big> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> +</big> diff --git a/node_modules/sax/examples/example.js b/node_modules/sax/examples/example.js new file mode 100644 index 000000000..7b0246e9a --- /dev/null +++ b/node_modules/sax/examples/example.js @@ -0,0 +1,29 @@ + +var fs = require("fs"), + util = require("util"), + path = require("path"), + xml = fs.readFileSync(path.join(__dirname, "test.xml"), "utf8"), + sax = require("../lib/sax"), + strict = sax.parser(true), + loose = sax.parser(false, {trim:true}), + inspector = function (ev) { return function (data) { + console.error("%s %s %j", this.line+":"+this.column, ev, data); + }}; + +sax.EVENTS.forEach(function (ev) { + loose["on"+ev] = inspector(ev); +}); +loose.onend = function () { + console.error("end"); + console.error(loose); +}; + +// do this in random bits at a time to verify that it works. +(function () { + if (xml) { + var c = Math.ceil(Math.random() * 1000) + loose.write(xml.substr(0,c)); + xml = xml.substr(c); + process.nextTick(arguments.callee); + } else loose.close(); +})(); diff --git a/node_modules/sax/examples/get-products.js b/node_modules/sax/examples/get-products.js new file mode 100644 index 000000000..9e8d74aac --- /dev/null +++ b/node_modules/sax/examples/get-products.js @@ -0,0 +1,58 @@ +// pull out /GeneralSearchResponse/categories/category/items/product tags +// the rest we don't care about. + +var sax = require("../lib/sax.js") +var fs = require("fs") +var path = require("path") +var xmlFile = path.resolve(__dirname, "shopping.xml") +var util = require("util") +var http = require("http") + +fs.readFile(xmlFile, function (er, d) { + http.createServer(function (req, res) { + if (er) throw er + var xmlstr = d.toString("utf8") + + var parser = sax.parser(true) + var products = [] + var product = null + var currentTag = null + + parser.onclosetag = function (tagName) { + if (tagName === "product") { + products.push(product) + currentTag = product = null + return + } + if (currentTag && currentTag.parent) { + var p = currentTag.parent + delete currentTag.parent + currentTag = p + } + } + + parser.onopentag = function (tag) { + if (tag.name !== "product" && !product) return + if (tag.name === "product") { + product = tag + } + tag.parent = currentTag + tag.children = [] + tag.parent && tag.parent.children.push(tag) + currentTag = tag + } + + parser.ontext = function (text) { + if (currentTag) currentTag.children.push(text) + } + + parser.onend = function () { + var out = util.inspect(products, false, 3, true) + res.writeHead(200, {"content-type":"application/json"}) + res.end("{\"ok\":true}") + // res.end(JSON.stringify(products)) + } + + parser.write(xmlstr).end() + }).listen(1337) +}) diff --git a/node_modules/sax/examples/hello-world.js b/node_modules/sax/examples/hello-world.js new file mode 100644 index 000000000..cbfa5184e --- /dev/null +++ b/node_modules/sax/examples/hello-world.js @@ -0,0 +1,4 @@ +require("http").createServer(function (req, res) { + res.writeHead(200, {"content-type":"application/json"}) + res.end(JSON.stringify({ok: true})) +}).listen(1337) diff --git a/node_modules/sax/examples/not-pretty.xml b/node_modules/sax/examples/not-pretty.xml new file mode 100644 index 000000000..9592852d0 --- /dev/null +++ b/node_modules/sax/examples/not-pretty.xml @@ -0,0 +1,8 @@ +<root> + something<else> blerm <slurm + + + attrib = + "blorg" ></else><!-- COMMENT! + +--><![CDATA[processing...]]> <selfclosing tag="blr>""/> a bit down here</root> diff --git a/node_modules/sax/examples/pretty-print.js b/node_modules/sax/examples/pretty-print.js new file mode 100644 index 000000000..cd6aca9e1 --- /dev/null +++ b/node_modules/sax/examples/pretty-print.js @@ -0,0 +1,74 @@ +var sax = require("../lib/sax") + , printer = sax.createStream(false, {lowercasetags:true, trim:true}) + , fs = require("fs") + +function entity (str) { + return str.replace('"', '"') +} + +printer.tabstop = 2 +printer.level = 0 +printer.indent = function () { + print("\n") + for (var i = this.level; i > 0; i --) { + for (var j = this.tabstop; j > 0; j --) { + print(" ") + } + } +} +printer.on("opentag", function (tag) { + this.indent() + this.level ++ + print("<"+tag.name) + for (var i in tag.attributes) { + print(" "+i+"=\""+entity(tag.attributes[i])+"\"") + } + print(">") +}) + +printer.on("text", ontext) +printer.on("doctype", ontext) +function ontext (text) { + this.indent() + print(text) +} + +printer.on("closetag", function (tag) { + this.level -- + this.indent() + print("</"+tag+">") +}) + +printer.on("cdata", function (data) { + this.indent() + print("<![CDATA["+data+"]]>") +}) + +printer.on("comment", function (comment) { + this.indent() + print("<!--"+comment+"-->") +}) + +printer.on("error", function (error) { + console.error(error) + throw error +}) + +if (!process.argv[2]) { + throw new Error("Please provide an xml file to prettify\n"+ + "TODO: read from stdin or take a file") +} +var xmlfile = require("path").join(process.cwd(), process.argv[2]) +var fstr = fs.createReadStream(xmlfile, { encoding: "utf8" }) + +function print (c) { + if (!process.stdout.write(c)) { + fstr.pause() + } +} + +process.stdout.on("drain", function () { + fstr.resume() +}) + +fstr.pipe(printer) diff --git a/node_modules/sax/examples/shopping.xml b/node_modules/sax/examples/shopping.xml new file mode 100644 index 000000000..223c6c665 --- /dev/null +++ b/node_modules/sax/examples/shopping.xml @@ -0,0 +1,2 @@ + +<GeneralSearchResponse xmlns="urn:types.partner.api.shopping.com"><serverDetail><apiEnv>sandbox</apiEnv><apiVersion>3.1 r31.Kadu4DC.phase3</apiVersion><buildNumber>5778</buildNumber><buildTimestamp>2011.10.06 15:37:23 PST</buildTimestamp><requestId>p2.a121bc2aaf029435dce6</requestId><timestamp>2011-10-21T18:38:45.982-04:00</timestamp><responseTime>P0Y0M0DT0H0M0.169S</responseTime></serverDetail><exceptions exceptionCount="1"><exception type="warning"><code>1112</code><message>You are currently using the SDC API sandbox environment! No clicks to merchant URLs from this response will be paid. Please change the host of your API requests to 'publisher.api.shopping.com' when you have finished development and testing</message></exception></exceptions><clientTracking height="19" type="logo" width="106"><sourceURL>http://statTest.dealtime.com/pixel/noscript?PV_EvnTyp=APPV&APPV_APITSP=10%2F21%2F11_06%3A38%3A45_PM&APPV_DSPRQSID=p2.a121bc2aaf029435dce6&APPV_IMGURL=http://img.shopping.com/sc/glb/sdc_logo_106x19.gif&APPV_LI_LNKINID=7000610&APPV_LI_SBMKYW=nikon&APPV_MTCTYP=1000&APPV_PRTID=2002&APPV_BrnID=14804</sourceURL><hrefURL>http://www.shopping.com/digital-cameras/products</hrefURL><titleText>Digital Cameras</titleText><altText>Digital Cameras</altText></clientTracking><searchHistory><categorySelection id="3"><name>Electronics</name><categoryURL>http://www.shopping.com/xCH-electronics-nikon~linkin_id-7000610?oq=nikon</categoryURL></categorySelection><categorySelection id="449"><name>Cameras and Photography</name><categoryURL>http://www.shopping.com/xCH-cameras_and_photography-nikon~linkin_id-7000610?oq=nikon</categoryURL></categorySelection><categorySelection id="7185"><name>Digital Cameras</name><categoryURL>http://www.shopping.com/digital-cameras/nikon/products?oq=nikon&linkin_id=7000610</categoryURL></categorySelection><dynamicNavigationHistory><keywordSearch dropped="false" modified="false"><originalKeyword>nikon</originalKeyword><resultKeyword>nikon</resultKeyword></keywordSearch></dynamicNavigationHistory></searchHistory><categories matchedCategoryCount="1" returnedCategoryCount="1"><category id="7185"><name>Digital Cameras</name><categoryURL>http://www.shopping.com/digital-cameras/nikon/products?oq=nikon&linkin_id=7000610</categoryURL><items matchedItemCount="322" pageNumber="1" returnedItemCount="5"><product id="101677489"><name>Nikon D3100 Digital Camera</name><shortDescription>14.2 Megapixel, SLR Camera, 3 in. LCD Screen, With High Definition Video, Weight: 1 lb.</shortDescription><fullDescription>The Nikon D3100 digital SLR camera speaks to the growing ranks of enthusiastic D-SLR users and aspiring photographers by providing an easy-to-use and affordable entrance to the world of Nikon D-SLR’s. The 14.2-megapixel D3100 has powerful features, such as the enhanced Guide Mode that makes it easy to unleash creative potential and capture memories with still images and full HD video. Like having a personal photo tutor at your fingertips, this unique feature provides a simple graphical interface on the camera’s LCD that guides users by suggesting and/or adjusting camera settings to achieve the desired end result images. The D3100 is also the world’s first D-SLR to introduce full time auto focus (AF) in Live View and D-Movie mode to effortlessly achieve the critical focus needed when shooting Full HD 1080p video.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="500" width="606"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-606x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=1</sourceURL></image></images><rating><reviewCount>9</reviewCount><rating>4.56</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_4.5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D3100/reviews~linkin_id-7000610</reviewURL></rating><minPrice>429.00</minPrice><maxPrice>1360.00</maxPrice><productOffersURL>http://www.shopping.com/Nikon-D3100/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D3100/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="64" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="-ZW6BMZqz6fbS-aULwga_g==" smartBuy="false" used="false"><name>Nikon D3100 Digital SLR Camera with 18-55mm NIKKOR VR Lens</name><description>The Nikon D3100 Digital SLR Camera is an affordable compact and lightweight photographic power-house. It features the all-purpose 18-55mm VR lens a high-resolution 14.2 MP CMOS sensor along with a feature set that's comprehensive yet easy to navigate - the intuitive onboard learn-as-you grow guide mode allows the photographer to understand what the 3100 can do quickly and easily. Capture beautiful pictures and amazing Full HD 1080p movies with sound and full-time autofocus. Availabilty: In Stock!</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="350" width="350"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-350x350-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Free Shipping with Any Purchase!</storeNotes><basePrice currency="USD">529.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">799.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=647&BEFID=7185&aon=%5E1&MerchantID=475674&crawler_id=475674&dealId=-ZW6BMZqz6fbS-aULwga_g%3D%3D&url=http%3A%2F%2Fwww.fumfie.com%2Fproduct%2F343.5%2Fshopping-com%3F&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D3100+Digital+SLR+Camera+with+18-55mm+NIKKOR+VR+Lens&dlprc=529.0&crn=&istrsmrc=1&isathrsl=0&AR=1&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=1&cid=&semid1=&semid2=&IsLps=0&CC=1&SL=1&FS=1&code=&acode=658&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="475674" trusted="true"><name>FumFie</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475674.gif</sourceURL></logo><phoneNumber>866 666 9198</phoneNumber><ratingInfo><reviewCount>560</reviewCount><rating>4.27</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_fumfie~MRD-475674~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>F343C5</sku></offer><offer featured="false" id="md1e9lD8vdOu4FHQfJqKng==" smartBuy="false" used="false"><name>Nikon Nikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR, Cameras</name><description>Nikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="352" width="385"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-385x352-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">549.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">549.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=779&BEFID=7185&aon=%5E1&MerchantID=305814&crawler_id=305814&dealId=md1e9lD8vdOu4FHQfJqKng%3D%3D&url=http%3A%2F%2Fwww.electronics-expo.com%2Findex.php%3Fpage%3Ditem%26id%3DNIKD3100%26source%3DSideCar%26scpid%3D8%26scid%3Dscsho318727%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+Nikon+D3100+14.2MP+Digital+SLR+Camera+with+18-55mm+f%2F3.5-5.6+AF-S+DX+VR%2C+Cameras&dlprc=549.0&crn=&istrsmrc=1&isathrsl=0&AR=9&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=9&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=771&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="305814" trusted="true"><name>Electronics Expo</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/305814.gif</sourceURL></logo><phoneNumber>1-888-707-EXPO</phoneNumber><ratingInfo><reviewCount>371</reviewCount><rating>3.90</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_4.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_electronics_expo~MRD-305814~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>NIKD3100</sku></offer><offer featured="false" id="yYuaXnDFtCY7rDUjkY2aaw==" smartBuy="false" used="false"><name>Nikon D3100 14.2-Megapixel Digital SLR Camera With 18-55mm Zoom-Nikkor Lens, Black</name><description>Split-second shutter response captures shots other cameras may have missed Helps eliminate the frustration of shutter delay! 14.2-megapixels for enlargements worth framing and hanging. Takes breathtaking 1080p HD movies. ISO sensitivity from 100-1600 for bright or dimly lit settings. 3.0in. color LCD for beautiful, wide-angle framing and viewing. In-camera image editing lets you retouch with no PC. Automatic scene modes include Child, Sports, Night Portrait and more. Accepts SDHC memory cards. Nikon D3100 14.2-Megapixel Digital SLR Camera With 18-55mm Zoom-Nikkor Lens, Black is one of many Digital SLR Cameras available through Office Depot. Made by Nikon.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="250" width="250"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-250x250-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">549.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">699.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=698&BEFID=7185&aon=%5E1&MerchantID=467671&crawler_id=467671&dealId=yYuaXnDFtCY7rDUjkY2aaw%3D%3D&url=http%3A%2F%2Flink.mercent.com%2Fredirect.ashx%3Fmr%3AmerchantID%3DOfficeDepot%26mr%3AtrackingCode%3DCEC9669E-6ABC-E011-9F24-0019B9C043EB%26mr%3AtargetUrl%3Dhttp%3A%2F%2Fwww.officedepot.com%2Fa%2Fproducts%2F486292%2FNikon-D3100-142-Megapixel-Digital-SLR%2F%253fcm_mmc%253dMercent-_-Shopping-_-Cameras_and_Camcorders-_-486292&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D3100+14.2-Megapixel+Digital+SLR+Camera+With+18-55mm+Zoom-Nikkor+Lens%2C+Black&dlprc=549.99&crn=&istrsmrc=1&isathrsl=0&AR=10&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=10&cid=&semid1=&semid2=&IsLps=0&CC=1&SL=1&FS=1&code=&acode=690&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="467671" trusted="true"><name>Office Depot</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/467671.gif</sourceURL></logo><phoneNumber>1-800-GO-DEPOT</phoneNumber><ratingInfo><reviewCount>135</reviewCount><rating>2.37</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_office_depot_4158555~MRD-467671~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>486292</sku></offer><offer featured="false" id="Rl56U7CuiTYsH4MGZ02lxQ==" smartBuy="false" used="false"><name>Nikon® D3100™ 14.2MP Digital SLR with 18-55mm Lens</name><description>The Nikon D3100 DSLR will surprise you with its simplicity and impress you with superb results.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">549.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">549.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&BEFID=7185&aon=%5E1&MerchantID=332477&crawler_id=332477&dealId=Rl56U7CuiTYsH4MGZ02lxQ%3D%3D&url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D903483107%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon%C2%AE+D3100%E2%84%A2+14.2MP+Digital+SLR+with+18-55mm+Lens&dlprc=549.99&crn=&istrsmrc=0&isathrsl=0&AR=11&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=11&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=496&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>9614867</sku></offer><offer featured="false" id="huS6xZKDKaKMTMP71eI6DA==" smartBuy="false" used="false"><name>Nikon D3100 SLR w/Nikon 18-55mm VR & 55-200mm VR Lenses</name><description>14.2 Megapixels3" LCDLive ViewHD 1080p Video w/ Sound & Autofocus11-point Autofocus3 Frames per Second ShootingISO 100 to 3200 (Expand to 12800-Hi2)Self Cleaning SensorEXPEED 2, Image Processing EngineScene Recognition System</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="345" width="345"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-345x345-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">695.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">695.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&BEFID=7185&aon=%5E1&MerchantID=487342&crawler_id=487342&dealId=huS6xZKDKaKMTMP71eI6DA%3D%3D&url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D32983%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D3100+SLR+w%2FNikon+18-55mm+VR+%26+55-200mm+VR+Lenses&dlprc=695.0&crn=&istrsmrc=0&isathrsl=0&AR=15&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=101677489&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=15&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=379&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>32983</sku></offer></offers></product><product id="95397883"><name>Nikon COOLPIX S203 Digital Camera</name><shortDescription>10 Megapixel, Ultra-Compact Camera, 2.5 in. LCD Screen, 3x Optical Zoom, With Video Capability, Weight: 0.23 lb.</shortDescription><fullDescription>With 10.34 mega pixel, electronic VR vibration reduction, 5-level brightness adjustment, 3x optical zoom, and TFT LCD, Nikon Coolpix s203 fulfills all the demands of any photographer. The digital camera has an inbuilt memory of 44MB and an external memory slot made for all kinds of SD (Secure Digital) cards.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="499" width="500"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-500x499-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=2</sourceURL></image></images><rating><reviewCount>0</reviewCount></rating><minPrice>139.00</minPrice><maxPrice>139.00</maxPrice><productOffersURL>http://www.shopping.com/Nikon-Coolpix-S203/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-Coolpix-S203/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="1" pageNumber="1" returnedOfferCount="1"><offer featured="false" id="sBd2JnIEPM-A_lBAM1RZgQ==" smartBuy="false" used="false"><name>Nikon Coolpix S203 Digital Camera (Red)</name><description>With 10.34 mega pixel, electronic VR vibration reduction, 5-level brightness adjustment, 3x optical zoom, and TFT LCD, Nikon Coolpix s203 fulfills all the demands of any photographer. The digital camera has an inbuilt memory of 44MB and an external memory slot made for all kinds of SD (Secure Digital) cards.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Fantastic prices with ease & comfort of Amazon.com!</storeNotes><basePrice currency="USD">139.00</basePrice><shippingCost currency="USD">9.50</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=566&BEFID=7185&aon=%5E1&MerchantID=301531&crawler_id=1903313&dealId=sBd2JnIEPM-A_lBAM1RZgQ%3D%3D&url=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB002T964IM%2Fref%3Dasc_df_B002T964IM1751618%3Fsmid%3DA22UHVNXG98FAT%26tag%3Ddealtime-ce-mp01feed-20%26linkCode%3Dasn%26creative%3D395105%26creativeASIN%3DB002T964IM&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+Coolpix+S203+Digital+Camera+%28Red%29&dlprc=139.0&crn=&istrsmrc=0&isathrsl=0&AR=63&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=95397883&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=63&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=518&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="301531" trusted="false"><name>Amazon Marketplace</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/301531.gif</sourceURL></logo><ratingInfo><reviewCount>213</reviewCount><rating>2.73</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_amazon_marketplace_9689~MRD-301531~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>B002T964IM</sku></offer></offers></product><product id="106834268"><name>Nikon S3100 Digital Camera</name><shortDescription>14.5 Megapixel, Compact Camera, 2.7 in. LCD Screen, 5x Optical Zoom, With High Definition Video, Weight: 0.23 lb.</shortDescription><fullDescription>This digital camera features a wide-angle optical Zoom-NIKKOR glass lens that allows you to capture anything from landscapes to portraits to action shots. The high-definition movie mode with one-touch recording makes it easy to capture video clips.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="387" width="507"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-507x387-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=3</sourceURL></image></images><rating><reviewCount>1</reviewCount><rating>2.00</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_2.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/nikon-s3100/reviews~linkin_id-7000610</reviewURL></rating><minPrice>99.95</minPrice><maxPrice>134.95</maxPrice><productOffersURL>http://www.shopping.com/nikon-s3100/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/nikon-s3100/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="67" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="UUyGoqV8r0-xrkn-rnGNbg==" smartBuy="false" used="false"><name>CoolPix S3100 14 Megapixel Compact Digital Camera- Red</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - red</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&BEFID=7185&aon=%5E1&MerchantID=485615&crawler_id=485615&dealId=UUyGoqV8r0-xrkn-rnGNbg%3D%3D&url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJ3Yx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmDAJeU1oyGG0GcBdhGwUGCAVqYF9SO0xSN1sZdmA7dmMdBQAJB24qX1NbQxI6AjA2ME5dVFULPDsGPFcQTTdaLTA6SR0OFlQvPAwMDxYcYlxIVkcoLTcCDA%3D%3D%26nAID%3D13736960%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=CoolPix+S3100+14+Megapixel+Compact+Digital+Camera-+Red&dlprc=119.95&crn=&istrsmrc=1&isathrsl=0&AR=28&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=28&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=1&FS=0&code=&acode=583&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337013000</sku></offer><offer featured="false" id="X87AwXlW1dXoMXk4QQDToQ==" smartBuy="false" used="false"><name>COOLPIX S3100 Pink</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - pink</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&BEFID=7185&aon=%5E1&MerchantID=485615&crawler_id=485615&dealId=X87AwXlW1dXoMXk4QQDToQ%3D%3D&url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJxYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcUFxDEGsPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=COOLPIX+S3100+Pink&dlprc=119.95&crn=&istrsmrc=1&isathrsl=0&AR=31&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=31&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=1&FS=0&code=&acode=583&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337015000</sku></offer><offer featured="false" id="nvFwnpfA4rlA1Dbksdsa0w==" smartBuy="false" used="false"><name>Nikon Coolpix S3100 14.0 MP Digital Camera - Silver</name><description>Nikon Coolpix S3100 14.0 MP Digital Camera - Silver</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="270" width="270"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-270x270-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">109.97</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">109.97</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=803&BEFID=7185&aon=%5E&MerchantID=475774&crawler_id=475774&dealId=nvFwnpfA4rlA1Dbksdsa0w%3D%3D&url=http%3A%2F%2Fwww.thewiz.com%2Fcatalog%2Fproduct.jsp%3FmodelNo%3DS3100SILVER%26gdftrk%3DgdfV2677_a_7c996_a_7c4049_a_7c26262&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+Coolpix+S3100+14.0+MP+Digital+Camera+-+Silver&dlprc=109.97&crn=&istrsmrc=0&isathrsl=0&AR=33&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=33&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=797&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="475774" trusted="false"><name>TheWiz.com</name><logo available="false" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475774.gif</sourceURL></logo><phoneNumber>877-542-6988</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>26262</sku></offer><offer featured="false" id="5GtaN2NeryKwps-Se2l-4g==" smartBuy="false" used="false"><name>Nikon� COOLPIX� S3100 14MP Digital Camera (Silver)</name><description>The Nikon COOLPIX S3100 is the easy way to share your life and stay connected.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">119.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">119.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&BEFID=7185&aon=%5E1&MerchantID=332477&crawler_id=332477&dealId=5GtaN2NeryKwps-Se2l-4g%3D%3D&url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D848064082%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon%C3%AF%C2%BF%C2%BD+COOLPIX%C3%AF%C2%BF%C2%BD+S3100+14MP+Digital+Camera+%28Silver%29&dlprc=119.99&crn=&istrsmrc=0&isathrsl=0&AR=37&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=37&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=509&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>10101095</sku></offer><offer featured="false" id="a43m0RXulX38zCnQjU59jw==" smartBuy="false" used="false"><name>COOLPIX S3100 Yellow</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - yellow</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&BEFID=7185&aon=%5E1&MerchantID=485615&crawler_id=485615&dealId=a43m0RXulX38zCnQjU59jw%3D%3D&url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJwYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcUFxDEGoPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=COOLPIX+S3100+Yellow&dlprc=119.95&crn=&istrsmrc=1&isathrsl=0&AR=38&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=106834268&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=38&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=1&FS=0&code=&acode=583&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337014000</sku></offer></offers></product><product id="99671132"><name>Nikon D90 Digital Camera</name><shortDescription>12.3 Megapixel, Point and Shoot Camera, 3 in. LCD Screen, With Video Capability, Weight: 1.36 lb.</shortDescription><fullDescription>Untitled Document Nikon D90 SLR Digital Camera With 28-80mm 75-300mm Lens Kit The Nikon D90 SLR Digital Camera, with its 12.3-megapixel DX-format CMOS, 3" High resolution LCD display, Scene Recognition System, Picture Control, Active D-Lighting, and one-button Live View, provides photo enthusiasts with the image quality and performance they need to pursue their own vision while still being intuitive enough for use as an everyday camera.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="255" width="499"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-499x255-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=4</sourceURL></image></images><rating><reviewCount>7</reviewCount><rating>5.00</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/reviews~linkin_id-7000610</reviewURL></rating><minPrice>689.00</minPrice><maxPrice>2299.00</maxPrice><productOffersURL>http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="43" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="GU5JJkpUAxe5HujB7fkwAA==" smartBuy="false" used="false"><name>Nikon® D90 12.3MP Digital SLR Camera (Body Only)</name><description>The Nikon D90 will make you rethink what a digital SLR camera can achieve.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1015.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1015.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&BEFID=7185&aon=%5E1&MerchantID=332477&crawler_id=332477&dealId=GU5JJkpUAxe5HujB7fkwAA%3D%3D&url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D851830266%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon%C2%AE+D90+12.3MP+Digital+SLR+Camera+%28Body+Only%29&dlprc=1015.99&crn=&istrsmrc=0&isathrsl=0&AR=14&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=14&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=496&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>10148659</sku></offer><offer featured="false" id="XhURuSC-spBbTIDfo4qfzQ==" smartBuy="false" used="false"><name>Nikon D90 SLR Digital Camera (Camera Body)</name><description>The Nikon D90 SLR Digital Camera with its 12.3-megapixel DX-format CCD 3" High resolution LCD display Scene Recognition System Picture Control Active D-Lighting and one-button Live View provides photo enthusiasts with the image quality and performance they need to pursue their own vision while still being intuitive enough for use as an everyday camera. In addition the D90 introduces the D-Movie mode allowing for the first time an interchangeable lens SLR camera that is capable of recording 720p HD movie clips. Availabilty: In Stock</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="350" width="350"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-350x350-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Free Shipping with Any Purchase!</storeNotes><basePrice currency="USD">689.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">900.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=647&BEFID=7185&aon=%5E1&MerchantID=475674&crawler_id=475674&dealId=XhURuSC-spBbTIDfo4qfzQ%3D%3D&url=http%3A%2F%2Fwww.fumfie.com%2Fproduct%2F169.5%2Fshopping-com%3F&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+SLR+Digital+Camera+%28Camera+Body%29&dlprc=689.0&crn=&istrsmrc=1&isathrsl=0&AR=16&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=16&cid=&semid1=&semid2=&IsLps=0&CC=1&SL=1&FS=1&code=&acode=658&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="475674" trusted="true"><name>FumFie</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475674.gif</sourceURL></logo><phoneNumber>866 666 9198</phoneNumber><ratingInfo><reviewCount>560</reviewCount><rating>4.27</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_fumfie~MRD-475674~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>F169C5</sku></offer><offer featured="false" id="o0Px_XLWDbrxAYRy3rCmyQ==" smartBuy="false" used="false"><name>Nikon D90 SLR w/Nikon 18-105mm VR & 55-200mm VR Lenses</name><description>12.3 MegapixelDX Format CMOS Sensor3" VGA LCD DisplayLive ViewSelf Cleaning SensorD-Movie ModeHigh Sensitivity (ISO 3200)4.5 fps BurstIn-Camera Image Editing</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1189.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1189.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&BEFID=7185&aon=%5E1&MerchantID=487342&crawler_id=487342&dealId=o0Px_XLWDbrxAYRy3rCmyQ%3D%3D&url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D30619%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+SLR+w%2FNikon+18-105mm+VR+%26+55-200mm+VR+Lenses&dlprc=1189.0&crn=&istrsmrc=0&isathrsl=0&AR=20&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=20&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=379&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>30619</sku></offer><offer featured="false" id="4HgbWJSJ8ssgIf8B0MXIwA==" smartBuy="false" used="false"><name>Nikon D90 12.3 Megapixel Digital SLR Camera (Body Only)</name><description>Fusing 12.3 megapixel image quality and a cinematic 24fps D-Movie Mode, the Nikon D90 exceeds the demands of passionate photographers. Coupled with Nikon's EXPEED image processing technologies and NIKKOR optics, breathtaking image fidelity is assured. Combined with fast 0.15ms power-up and split-second 65ms shooting lag, dramatic action and decisive moments are captured easily. Effective 4-frequency, ultrasonic sensor cleaning frees image degrading dust particles from the sensor's optical low pass filter.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>FREE FEDEX 2-3 DAY DELIVERY</storeNotes><basePrice currency="USD">899.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">899.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=269&BEFID=7185&aon=%5E&MerchantID=9296&crawler_id=811558&dealId=4HgbWJSJ8ssgIf8B0MXIwA%3D%3D&url=http%3A%2F%2Fwww.pcnation.com%2Foptics-gallery%2Fdetails.asp%3Faffid%3D305%26item%3D2N145P&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+12.3+Megapixel+Digital+SLR+Camera+%28Body+Only%29&dlprc=899.95&crn=&istrsmrc=1&isathrsl=0&AR=21&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=21&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=257&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="9296" trusted="true"><name>PCNation</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/9296.gif</sourceURL></logo><phoneNumber>800-470-7079</phoneNumber><ratingInfo><reviewCount>1622</reviewCount><rating>4.43</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_pcnation_9689~MRD-9296~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>2N145P</sku></offer><offer featured="false" id="UNDa3uMDZXOnvD_7sTILYg==" smartBuy="false" used="false"><name>Nikon D90 12.3MP Digital SLR Camera (Body Only)</name><description>Fusing 12.3-megapixel image quality inherited from the award-winning D300 with groundbreaking features, the D90's breathtaking, low-noise image quality is further advanced with EXPEED image processing. Split-second shutter response and continuous shooting at up to 4.5 frames-per-second provide the power to capture fast action and precise moments perfectly, while Nikon's exclusive Scene Recognition System contributes to faster 11-area autofocus performance, finer white balance detection and more. The D90 delivers the control passionate photographers demand, utilizing comprehensive exposure functions and the intelligence of 3D Color Matrix Metering II. Stunning results come to life on a 3-inch 920,000-dot color LCD monitor, providing accurate image review, Live View composition and brilliant playback of the D90's cinematic-quality 24-fps HD D-Movie mode.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Fantastic prices with ease & comfort of Amazon.com!</storeNotes><basePrice currency="USD">780.00</basePrice><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">780.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=566&BEFID=7185&aon=%5E1&MerchantID=301531&crawler_id=1903313&dealId=UNDa3uMDZXOnvD_7sTILYg%3D%3D&url=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB001ET5U92%2Fref%3Dasc_df_B001ET5U921751618%3Fsmid%3DAHF4SYKP09WBH%26tag%3Ddealtime-ce-mp01feed-20%26linkCode%3Dasn%26creative%3D395105%26creativeASIN%3DB001ET5U92&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+12.3MP+Digital+SLR+Camera+%28Body+Only%29&dlprc=780.0&crn=&istrsmrc=0&isathrsl=0&AR=29&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=99671132&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=29&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=520&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="301531" trusted="false"><name>Amazon Marketplace</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/301531.gif</sourceURL></logo><ratingInfo><reviewCount>213</reviewCount><rating>2.73</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_amazon_marketplace_9689~MRD-301531~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>B001ET5U92</sku></offer></offers></product><product id="70621646"><name>Nikon D90 Digital Camera with 18-105mm lens</name><shortDescription>12.9 Megapixel, SLR Camera, 3 in. LCD Screen, 5.8x Optical Zoom, With Video Capability, Weight: 2.3 lb.</shortDescription><fullDescription>Its 12.3 megapixel DX-format CMOS image sensor and EXPEED image processing system offer outstanding image quality across a wide ISO light sensitivity range. Live View mode lets you compose and shoot via the high-resolution 3-inch LCD monitor, and an advanced Scene Recognition System and autofocus performance help capture images with astounding accuracy. Movies can be shot in Motion JPEG format using the D-Movie function. The camera’s large image sensor ensures exceptional movie image quality and you can create dramatic effects by shooting with a wide range of interchangeable NIKKOR lenses, from wide-angle to macro to fisheye, or by adjusting the lens aperture and experimenting with depth-of-field. The D90 – designed to fuel your passion for photography.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="489" width="490"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-490x489-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=2&c=1&l=7000610&t=111021183845&r=5</sourceURL></image></images><rating><reviewCount>32</reviewCount><rating>4.81</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/reviews~linkin_id-7000610</reviewURL></rating><minPrice>849.95</minPrice><maxPrice>1599.95</maxPrice><productOffersURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="25" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="3o5e1VghgJPfhLvT1JFKTA==" smartBuy="false" used="false"><name>Nikon D90 18-105mm VR Lens</name><description>The Nikon D90 SLR Digital Camera with its 12.3-megapixel DX-format CMOS 3" High resolution LCD display Scene Recognition System Picture Control Active D-Lighting and one-button Live View prov</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image><image available="true" height="260" width="260"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-260x260-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">849.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">849.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=419&BEFID=7185&aon=%5E1&MerchantID=9390&crawler_id=1905054&dealId=3o5e1VghgJPfhLvT1JFKTA%3D%3D&url=http%3A%2F%2Fwww.ajrichard.com%2FNikon-D90-18-105mm-VR-Lens%2Fp-292%3Frefid%3DShopping%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+18-105mm+VR+Lens&dlprc=849.95&crn=&istrsmrc=0&isathrsl=0&AR=2&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=2&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=425&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="9390" trusted="false"><name>AJRichard</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/9390.gif</sourceURL></logo><phoneNumber>1-888-871-1256</phoneNumber><ratingInfo><reviewCount>3124</reviewCount><rating>4.48</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_ajrichard~MRD-9390~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>292</sku></offer><offer featured="false" id="_lYWj_jbwfsSkfcwUcDuww==" smartBuy="false" used="false"><name>Nikon D90 SLR w/Nikon 18-105mm VR Lens</name><description>12.3 MegapixelDX Format CMOS Sensor3" VGA LCD DisplayLive ViewSelf Cleaning SensorD-Movie ModeHigh Sensitivity (ISO 3200)4.5 fps BurstIn-Camera Image Editing</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">909.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">909.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&BEFID=7185&aon=%5E1&MerchantID=487342&crawler_id=487342&dealId=_lYWj_jbwfsSkfcwUcDuww%3D%3D&url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D30971%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+SLR+w%2FNikon+18-105mm+VR+Lens&dlprc=909.0&crn=&istrsmrc=0&isathrsl=0&AR=3&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=3&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=1&code=&acode=379&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>30971</sku></offer><offer featured="false" id="1KCclCGuWvty2XKU9skadg==" smartBuy="false" used="false"><name>25448/D90 12.3 Megapixel Digital Camera 18-105mm Zoom Lens w/ 3" Screen - Black</name><description>Nikon D90 - Digital camera - SLR - 12.3 Mpix - Nikon AF-S DX 18-105mm lens - optical zoom: 5.8 x - supported memory: SD, SDHC</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">1199.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">8.20</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1199.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&BEFID=7185&aon=%5E1&MerchantID=485615&crawler_id=485615&dealId=1KCclCGuWvty2XKU9skadg%3D%3D&url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBRtFXpzYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcVlhCGGkPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=25448%2FD90+12.3+Megapixel+Digital+Camera+18-105mm+Zoom+Lens+w%2F+3%22+Screen+-+Black&dlprc=1199.0&crn=&istrsmrc=1&isathrsl=0&AR=4&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=4&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=586&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00353197000</sku></offer><offer featured="false" id="3-VOSfVV5Jo7HlA4kJtanA==" smartBuy="false" used="false"><name>Nikon® D90 12.3MP Digital SLR with 18-105mm Lens</name><description>The Nikon D90 will make you rethink what a digital SLR camera can achieve.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1350.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1350.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&BEFID=7185&aon=%5E1&MerchantID=332477&crawler_id=332477&dealId=3-VOSfVV5Jo7HlA4kJtanA%3D%3D&url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D982673361%26&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon%C2%AE+D90+12.3MP+Digital+SLR+with+18-105mm+Lens&dlprc=1350.99&crn=&istrsmrc=0&isathrsl=0&AR=5&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=5&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=0&FS=0&code=&acode=496&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>11148905</sku></offer><offer featured="false" id="kQnB6rS4AjN5dx5h2_631g==" smartBuy="false" used="false"><name>Nikon D90 Kit 12.3-megapixel Digital SLR with 18-105mm VR Lens</name><description>Photographers, take your passion further!Now is the time for new creativity, and to rethink what a digital SLR camera can achieve. It's time for the D90, a camera with everything you would expect from Nikon's next-generation D-SLRs, and some unexpected surprises, as well. The stunning image quality is inherited from the D300, Nikon's DX-format flagship. The D90 also has Nikon's unmatched ergonomics and high performance, and now takes high-quality movies with beautifully cinematic results. The world of photography has changed, and with the D90 in your hands, it's time to make your own rules.AF-S DX NIKKOR 18-105mm f/3.5-5.6G ED VR LensWide-ratio 5.8x zoom Compact, versatile and ideal for a broad range of shooting situations, ranging from interiors and landscapes to beautiful portraits� a perfect everyday zoom. Nikon VR (Vibration Reduction) image stabilization Vibration Reduction is engineered specifically for each VR NIKKOR lens and enables handheld shooting at up to 3 shutter speeds slower than would</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image><image available="true" height="232" width="300"><sourceURL>http://di110.shopping.com/images/di/6b/51/6e/4236725334416a4e3564783568325f36333167-300x232-0-0.jpg?p=p2.a121bc2aaf029435dce6&a=1&c=1&l=7000610&t=111021183845&r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Shipping Included!</storeNotes><basePrice currency="USD">1050.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1199.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=135&BEFID=7185&aon=%5E1&MerchantID=313162&crawler_id=313162&dealId=kQnB6rS4AjN5dx5h2_631g%3D%3D&url=http%3A%2F%2Fonecall.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1pZSxNoWHFwLx8GTAICa2ZeH1sPXTZLNzRpAh1HR0BxPQEGCBJNMhFHUElsFCFCVkVTTHAcBggEHQ4aHXNpGERGH3RQODsbAgdechJtbBt8fx8JAwhtZFAzJj1oGgIWCxRlNyFOUV9UUGIxBgo0T0IyTSYqJ0RWHw4QPCIBAAQXRGMDICg6TllZVBhh%26nAID%3D13736960&linkin_id=7000610&Issdt=111021183845&searchID=p2.a121bc2aaf029435dce6&DealName=Nikon+D90+Kit+12.3-megapixel+Digital+SLR+with+18-105mm+VR+Lens&dlprc=1050.0&crn=&istrsmrc=1&isathrsl=0&AR=6&NG=20&NDP=200&PN=1&ST=7&DB=sdcprod&MT=phx-pkadudc2&FPT=DSP&NDS=&NMS=&MRS=&PD=70621646&brnId=14804&IsFtr=0&IsSmart=0&DMT=&op=&CM=&DlLng=1&RR=6&cid=&semid1=&semid2=&IsLps=0&CC=0&SL=1&FS=1&code=&acode=143&category=&HasLink=&frameId=&ND=&MN=&PT=&prjID=&GR=&lnkId=&VK=</offerURL><store authorizedReseller="false" id="313162" trusted="true"><name>OneCall</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/313162.gif</sourceURL></logo><phoneNumber>1.800.398.0766</phoneNumber><ratingInfo><reviewCount>180</reviewCount><rating>4.44</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_onecall_9689~MRD-313162~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>92826</sku></offer></offers></product></items><attributes matchedAttributeCount="5" returnedAttributeCount="5"><attribute id="Dynamic_Price_Range"><name>Price range</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products?oq=nikon&linkin_id=7000610</attributeURL><attributeValues matchedValueCount="2" returnedValueCount="2"><attributeValue id="price_range_24_4012" matchingItemsCount="1"><name>$24 - $4012</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon/products?minPrice=24&maxPrice=4012&linkin_id=7000610</attributeValueURL></attributeValue><attributeValue id="price_range_4012_7999" matchingItemsCount="1"><name>$4012 - $7999</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon/products?minPrice=4012&maxPrice=7999&linkin_id=7000610</attributeValueURL></attributeValue></attributeValues></attribute><attribute id="9688_brand"><name>Brand</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products~all-9688-brand~MS-1?oq=nikon&linkin_id=7000610</attributeURL><attributeValues matchedValueCount="7" returnedValueCount="5"><attributeValue id="brand_nikon" matchingItemsCount="2261"><name>Nikon</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+brand-nikon/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="9688_brand_crane" matchingItemsCount="17"><name>Crane</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+9688-brand-crane/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="ikelite" matchingItemsCount="2"><name>Ikelite</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+ikelite/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="bower" matchingItemsCount="1"><name>Bower</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+bower/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="brand_fuji" matchingItemsCount="2"><name>FUJIFILM</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+brand-fuji/products~linkin_id-7000610</attributeValueURL></attributeValue></attributeValues></attribute><attribute id="store"><name>Store</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products~all-store~MS-1?oq=nikon&linkin_id=7000610</attributeURL><attributeValues matchedValueCount="35" returnedValueCount="5"><attributeValue id="store_amazon_marketplace_9689" matchingItemsCount="808"><name>Amazon Marketplace</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-amazon-marketplace-9689/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="store_amazon" matchingItemsCount="83"><name>Amazon</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-amazon/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="store_adorama" matchingItemsCount="81"><name>Adorama</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-adorama/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="store_j_r_music_and_computer_world" matchingItemsCount="78"><name>J&R Music and Computer World</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-j-r-music-and-computer-world/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="store_rythercamera_com" matchingItemsCount="78"><name>RytherCamera.com</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+store-rythercamera-com/products~linkin_id-7000610</attributeValueURL></attributeValue></attributeValues></attribute><attribute id="21885_resolution"><name>Resolution</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products~all-21885-resolution~MS-1?oq=nikon&linkin_id=7000610</attributeURL><attributeValues matchedValueCount="13" returnedValueCount="5"><attributeValue id="under_4_megapixel" matchingItemsCount="3"><name>Under 4 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+under-4-megapixel/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="5_megapixel_digital_cameras" matchingItemsCount="1085"><name>At least 5 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+5-megapixel-digital-cameras/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="6_megapixel_digital_cameras" matchingItemsCount="1080"><name>At least 6 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+6-megapixel-digital-cameras/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="7_megapixel_digital_cameras" matchingItemsCount="1066"><name>At least 7 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+7-megapixel-digital-cameras/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="8_megapixel_digital_cameras" matchingItemsCount="1056"><name>At least 8 Megapixel</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+8-megapixel-digital-cameras/products~linkin_id-7000610</attributeValueURL></attributeValue></attributeValues></attribute><attribute id="32804-features"><name>Features</name><attributeURL>http://www.shopping.com/digital-cameras/nikon/products~all-32804-features~MS-1?oq=nikon&linkin_id=7000610</attributeURL><attributeValues matchedValueCount="12" returnedValueCount="5"><attributeValue id="32804_features_shockproof" matchingItemsCount="7"><name>Shockproof</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-shockproof/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="32804_features_waterproof" matchingItemsCount="32"><name>Waterproof</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-waterproof/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="32804_features_freezeproof" matchingItemsCount="7"><name>Freezeproof</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-freezeproof/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="32804_features_dust_proof" matchingItemsCount="23"><name>Dust proof</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-dust-proof/products~linkin_id-7000610</attributeValueURL></attributeValue><attributeValue id="32804_features_image_stabilization" matchingItemsCount="797"><name>Image Stabilization</name><attributeValueURL>http://www.shopping.com/digital-cameras/nikon+32804-features-image-stabilization/products~linkin_id-7000610</attributeValueURL></attributeValue></attributeValues></attribute></attributes><contentType>hybrid</contentType></category></categories><relatedTerms><term>digital camera</term><term>g1</term><term>sony</term><term>camera</term><term>canon</term><term>nikon</term><term>kodak digital camera</term><term>kodak</term><term>sony cybershot</term><term>kodak easyshare digital camera</term><term>nikon coolpix</term><term>olympus</term><term>pink digital camera</term><term>canon powershot</term></relatedTerms></GeneralSearchResponse>
\ No newline at end of file diff --git a/node_modules/sax/examples/strict.dtd b/node_modules/sax/examples/strict.dtd new file mode 100644 index 000000000..b27455943 --- /dev/null +++ b/node_modules/sax/examples/strict.dtd @@ -0,0 +1,870 @@ +<!-- + This is HTML 4.01 Strict DTD, which excludes the presentation + attributes and elements that W3C expects to phase out as + support for style sheets matures. Authors should use the Strict + DTD when possible, but may use the Transitional DTD when support + for presentation attribute and elements is required. + + HTML 4 includes mechanisms for style sheets, scripting, + embedding objects, improved support for right to left and mixed + direction text, and enhancements to forms for improved + accessibility for people with disabilities. + + Draft: $Date: 1999/12/24 23:37:48 $ + + Authors: + Dave Raggett <dsr@w3.org> + Arnaud Le Hors <lehors@w3.org> + Ian Jacobs <ij@w3.org> + + Further information about HTML 4.01 is available at: + + http://www.w3.org/TR/1999/REC-html401-19991224 + + + The HTML 4.01 specification includes additional + syntactic constraints that cannot be expressed within + the DTDs. + +--> +<!-- + Typical usage: + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> + <html> + <head> + ... + </head> + <body> + ... + </body> + </html> + + The URI used as a system identifier with the public identifier allows + the user agent to download the DTD and entity sets as needed. + + The FPI for the Transitional HTML 4.01 DTD is: + + "-//W3C//DTD HTML 4.01 Transitional//EN" + + This version of the transitional DTD is: + + http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd + + If you are writing a document that includes frames, use + the following FPI: + + "-//W3C//DTD HTML 4.01 Frameset//EN" + + This version of the frameset DTD is: + + http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd + + Use the following (relative) URIs to refer to + the DTDs and entity definitions of this specification: + + "strict.dtd" + "loose.dtd" + "frameset.dtd" + "HTMLlat1.ent" + "HTMLsymbol.ent" + "HTMLspecial.ent" + +--> + +<!--================== Imported Names ====================================--> +<!-- Feature Switch for frameset documents --> +<!ENTITY % HTML.Frameset "IGNORE"> + +<!ENTITY % ContentType "CDATA" + -- media type, as per [RFC2045] + --> + +<!ENTITY % ContentTypes "CDATA" + -- comma-separated list of media types, as per [RFC2045] + --> + +<!ENTITY % Charset "CDATA" + -- a character encoding, as per [RFC2045] + --> + +<!ENTITY % Charsets "CDATA" + -- a space-separated list of character encodings, as per [RFC2045] + --> + +<!ENTITY % LanguageCode "NAME" + -- a language code, as per [RFC1766] + --> + +<!ENTITY % Character "CDATA" + -- a single character from [ISO10646] + --> + +<!ENTITY % LinkTypes "CDATA" + -- space-separated list of link types + --> + +<!ENTITY % MediaDesc "CDATA" + -- single or comma-separated list of media descriptors + --> + +<!ENTITY % URI "CDATA" + -- a Uniform Resource Identifier, + see [URI] + --> + +<!ENTITY % Datetime "CDATA" -- date and time information. ISO date format --> + + +<!ENTITY % Script "CDATA" -- script expression --> + +<!ENTITY % StyleSheet "CDATA" -- style sheet data --> + + + +<!ENTITY % Text "CDATA"> + + +<!-- Parameter Entities --> + +<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements --> + +<!ENTITY % heading "H1|H2|H3|H4|H5|H6"> + +<!ENTITY % list "UL | OL"> + +<!ENTITY % preformatted "PRE"> + + +<!--================ Character mnemonic entities =========================--> + +<!ENTITY % HTMLlat1 PUBLIC + "-//W3C//ENTITIES Latin1//EN//HTML" + "HTMLlat1.ent"> +%HTMLlat1; + +<!ENTITY % HTMLsymbol PUBLIC + "-//W3C//ENTITIES Symbols//EN//HTML" + "HTMLsymbol.ent"> +%HTMLsymbol; + +<!ENTITY % HTMLspecial PUBLIC + "-//W3C//ENTITIES Special//EN//HTML" + "HTMLspecial.ent"> +%HTMLspecial; +<!--=================== Generic Attributes ===============================--> + +<!ENTITY % coreattrs + "id ID #IMPLIED -- document-wide unique id -- + class CDATA #IMPLIED -- space-separated list of classes -- + style %StyleSheet; #IMPLIED -- associated style info -- + title %Text; #IMPLIED -- advisory title --" + > + +<!ENTITY % i18n + "lang %LanguageCode; #IMPLIED -- language code -- + dir (ltr|rtl) #IMPLIED -- direction for weak/neutral text --" + > + +<!ENTITY % events + "onclick %Script; #IMPLIED -- a pointer button was clicked -- + ondblclick %Script; #IMPLIED -- a pointer button was double clicked-- + onmousedown %Script; #IMPLIED -- a pointer button was pressed down -- + onmouseup %Script; #IMPLIED -- a pointer button was released -- + onmouseover %Script; #IMPLIED -- a pointer was moved onto -- + onmousemove %Script; #IMPLIED -- a pointer was moved within -- + onmouseout %Script; #IMPLIED -- a pointer was moved away -- + onkeypress %Script; #IMPLIED -- a key was pressed and released -- + onkeydown %Script; #IMPLIED -- a key was pressed down -- + onkeyup %Script; #IMPLIED -- a key was released --" + > + +<!-- Reserved Feature Switch --> +<!ENTITY % HTML.Reserved "IGNORE"> + +<!-- The following attributes are reserved for possible future use --> +<![ %HTML.Reserved; [ +<!ENTITY % reserved + "datasrc %URI; #IMPLIED -- a single or tabular Data Source -- + datafld CDATA #IMPLIED -- the property or column name -- + dataformatas (plaintext|html) plaintext -- text or html --" + > +]]> + +<!ENTITY % reserved ""> + +<!ENTITY % attrs "%coreattrs; %i18n; %events;"> + + +<!--=================== Text Markup ======================================--> + +<!ENTITY % fontstyle + "TT | I | B | BIG | SMALL"> + +<!ENTITY % phrase "EM | STRONG | DFN | CODE | + SAMP | KBD | VAR | CITE | ABBR | ACRONYM" > + +<!ENTITY % special + "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO"> + +<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON"> + +<!-- %inline; covers inline or "text-level" elements --> +<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;"> + +<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*> +<!ATTLIST (%fontstyle;|%phrase;) + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!ELEMENT (SUB|SUP) - - (%inline;)* -- subscript, superscript --> +<!ATTLIST (SUB|SUP) + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!ELEMENT SPAN - - (%inline;)* -- generic language/style container --> +<!ATTLIST SPAN + %attrs; -- %coreattrs, %i18n, %events -- + %reserved; -- reserved for possible future use -- + > + +<!ELEMENT BDO - - (%inline;)* -- I18N BiDi over-ride --> +<!ATTLIST BDO + %coreattrs; -- id, class, style, title -- + lang %LanguageCode; #IMPLIED -- language code -- + dir (ltr|rtl) #REQUIRED -- directionality -- + > + + +<!ELEMENT BR - O EMPTY -- forced line break --> +<!ATTLIST BR + %coreattrs; -- id, class, style, title -- + > + +<!--================== HTML content models ===============================--> + +<!-- + HTML has two basic content models: + + %inline; character level elements and text strings + %block; block-like elements e.g. paragraphs and lists +--> + +<!ENTITY % block + "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT | + BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS"> + +<!ENTITY % flow "%block; | %inline;"> + +<!--=================== Document Body ====================================--> + +<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body --> +<!ATTLIST BODY + %attrs; -- %coreattrs, %i18n, %events -- + onload %Script; #IMPLIED -- the document has been loaded -- + onunload %Script; #IMPLIED -- the document has been removed -- + > + +<!ELEMENT ADDRESS - - (%inline;)* -- information on author --> +<!ATTLIST ADDRESS + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!ELEMENT DIV - - (%flow;)* -- generic language/style container --> +<!ATTLIST DIV + %attrs; -- %coreattrs, %i18n, %events -- + %reserved; -- reserved for possible future use -- + > + + +<!--================== The Anchor Element ================================--> + +<!ENTITY % Shape "(rect|circle|poly|default)"> +<!ENTITY % Coords "CDATA" -- comma-separated list of lengths --> + +<!ELEMENT A - - (%inline;)* -(A) -- anchor --> +<!ATTLIST A + %attrs; -- %coreattrs, %i18n, %events -- + charset %Charset; #IMPLIED -- char encoding of linked resource -- + type %ContentType; #IMPLIED -- advisory content type -- + name CDATA #IMPLIED -- named link end -- + href %URI; #IMPLIED -- URI for linked resource -- + hreflang %LanguageCode; #IMPLIED -- language code -- + rel %LinkTypes; #IMPLIED -- forward link types -- + rev %LinkTypes; #IMPLIED -- reverse link types -- + accesskey %Character; #IMPLIED -- accessibility key character -- + shape %Shape; rect -- for use with client-side image maps -- + coords %Coords; #IMPLIED -- for use with client-side image maps -- + tabindex NUMBER #IMPLIED -- position in tabbing order -- + onfocus %Script; #IMPLIED -- the element got the focus -- + onblur %Script; #IMPLIED -- the element lost the focus -- + > + +<!--================== Client-side image maps ============================--> + +<!-- These can be placed in the same document or grouped in a + separate document although this isn't yet widely supported --> + +<!ELEMENT MAP - - ((%block;) | AREA)+ -- client-side image map --> +<!ATTLIST MAP + %attrs; -- %coreattrs, %i18n, %events -- + name CDATA #REQUIRED -- for reference by usemap -- + > + +<!ELEMENT AREA - O EMPTY -- client-side image map area --> +<!ATTLIST AREA + %attrs; -- %coreattrs, %i18n, %events -- + shape %Shape; rect -- controls interpretation of coords -- + coords %Coords; #IMPLIED -- comma-separated list of lengths -- + href %URI; #IMPLIED -- URI for linked resource -- + nohref (nohref) #IMPLIED -- this region has no action -- + alt %Text; #REQUIRED -- short description -- + tabindex NUMBER #IMPLIED -- position in tabbing order -- + accesskey %Character; #IMPLIED -- accessibility key character -- + onfocus %Script; #IMPLIED -- the element got the focus -- + onblur %Script; #IMPLIED -- the element lost the focus -- + > + +<!--================== The LINK Element ==================================--> + +<!-- + Relationship values can be used in principle: + + a) for document specific toolbars/menus when used + with the LINK element in document head e.g. + start, contents, previous, next, index, end, help + b) to link to a separate style sheet (rel=stylesheet) + c) to make a link to a script (rel=script) + d) by stylesheets to control how collections of + html nodes are rendered into printed documents + e) to make a link to a printable version of this document + e.g. a postscript or pdf version (rel=alternate media=print) +--> + +<!ELEMENT LINK - O EMPTY -- a media-independent link --> +<!ATTLIST LINK + %attrs; -- %coreattrs, %i18n, %events -- + charset %Charset; #IMPLIED -- char encoding of linked resource -- + href %URI; #IMPLIED -- URI for linked resource -- + hreflang %LanguageCode; #IMPLIED -- language code -- + type %ContentType; #IMPLIED -- advisory content type -- + rel %LinkTypes; #IMPLIED -- forward link types -- + rev %LinkTypes; #IMPLIED -- reverse link types -- + media %MediaDesc; #IMPLIED -- for rendering on these media -- + > + +<!--=================== Images ===========================================--> + +<!-- Length defined in strict DTD for cellpadding/cellspacing --> +<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length --> +<!ENTITY % MultiLength "CDATA" -- pixel, percentage, or relative --> + +<![ %HTML.Frameset; [ +<!ENTITY % MultiLengths "CDATA" -- comma-separated list of MultiLength --> +]]> + +<!ENTITY % Pixels "CDATA" -- integer representing length in pixels --> + + +<!-- To avoid problems with text-only UAs as well as + to make image content understandable and navigable + to users of non-visual UAs, you need to provide + a description with ALT, and avoid server-side image maps --> +<!ELEMENT IMG - O EMPTY -- Embedded image --> +<!ATTLIST IMG + %attrs; -- %coreattrs, %i18n, %events -- + src %URI; #REQUIRED -- URI of image to embed -- + alt %Text; #REQUIRED -- short description -- + longdesc %URI; #IMPLIED -- link to long description + (complements alt) -- + name CDATA #IMPLIED -- name of image for scripting -- + height %Length; #IMPLIED -- override height -- + width %Length; #IMPLIED -- override width -- + usemap %URI; #IMPLIED -- use client-side image map -- + ismap (ismap) #IMPLIED -- use server-side image map -- + > + +<!-- USEMAP points to a MAP element which may be in this document + or an external document, although the latter is not widely supported --> + +<!--==================== OBJECT ======================================--> +<!-- + OBJECT is used to embed objects as part of HTML pages + PARAM elements should precede other content. SGML mixed content + model technicality precludes specifying this formally ... +--> + +<!ELEMENT OBJECT - - (PARAM | %flow;)* + -- generic embedded object --> +<!ATTLIST OBJECT + %attrs; -- %coreattrs, %i18n, %events -- + declare (declare) #IMPLIED -- declare but don't instantiate flag -- + classid %URI; #IMPLIED -- identifies an implementation -- + codebase %URI; #IMPLIED -- base URI for classid, data, archive-- + data %URI; #IMPLIED -- reference to object's data -- + type %ContentType; #IMPLIED -- content type for data -- + codetype %ContentType; #IMPLIED -- content type for code -- + archive CDATA #IMPLIED -- space-separated list of URIs -- + standby %Text; #IMPLIED -- message to show while loading -- + height %Length; #IMPLIED -- override height -- + width %Length; #IMPLIED -- override width -- + usemap %URI; #IMPLIED -- use client-side image map -- + name CDATA #IMPLIED -- submit as part of form -- + tabindex NUMBER #IMPLIED -- position in tabbing order -- + %reserved; -- reserved for possible future use -- + > + +<!ELEMENT PARAM - O EMPTY -- named property value --> +<!ATTLIST PARAM + id ID #IMPLIED -- document-wide unique id -- + name CDATA #REQUIRED -- property name -- + value CDATA #IMPLIED -- property value -- + valuetype (DATA|REF|OBJECT) DATA -- How to interpret value -- + type %ContentType; #IMPLIED -- content type for value + when valuetype=ref -- + > + + +<!--=================== Horizontal Rule ==================================--> + +<!ELEMENT HR - O EMPTY -- horizontal rule --> +<!ATTLIST HR + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!--=================== Paragraphs =======================================--> + +<!ELEMENT P - O (%inline;)* -- paragraph --> +<!ATTLIST P + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!--=================== Headings =========================================--> + +<!-- + There are six levels of headings from H1 (the most important) + to H6 (the least important). +--> + +<!ELEMENT (%heading;) - - (%inline;)* -- heading --> +<!ATTLIST (%heading;) + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!--=================== Preformatted Text ================================--> + +<!-- excludes markup for images and changes in font size --> +<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP"> + +<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- preformatted text --> +<!ATTLIST PRE + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!--===================== Inline Quotes ==================================--> + +<!ELEMENT Q - - (%inline;)* -- short inline quotation --> +<!ATTLIST Q + %attrs; -- %coreattrs, %i18n, %events -- + cite %URI; #IMPLIED -- URI for source document or msg -- + > + +<!--=================== Block-like Quotes ================================--> + +<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- long quotation --> +<!ATTLIST BLOCKQUOTE + %attrs; -- %coreattrs, %i18n, %events -- + cite %URI; #IMPLIED -- URI for source document or msg -- + > + +<!--=================== Inserted/Deleted Text ============================--> + + +<!-- INS/DEL are handled by inclusion on BODY --> +<!ELEMENT (INS|DEL) - - (%flow;)* -- inserted text, deleted text --> +<!ATTLIST (INS|DEL) + %attrs; -- %coreattrs, %i18n, %events -- + cite %URI; #IMPLIED -- info on reason for change -- + datetime %Datetime; #IMPLIED -- date and time of change -- + > + +<!--=================== Lists ============================================--> + +<!-- definition lists - DT for term, DD for its definition --> + +<!ELEMENT DL - - (DT|DD)+ -- definition list --> +<!ATTLIST DL + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!ELEMENT DT - O (%inline;)* -- definition term --> +<!ELEMENT DD - O (%flow;)* -- definition description --> +<!ATTLIST (DT|DD) + %attrs; -- %coreattrs, %i18n, %events -- + > + + +<!ELEMENT OL - - (LI)+ -- ordered list --> +<!ATTLIST OL + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!-- Unordered Lists (UL) bullet styles --> +<!ELEMENT UL - - (LI)+ -- unordered list --> +<!ATTLIST UL + %attrs; -- %coreattrs, %i18n, %events -- + > + + + +<!ELEMENT LI - O (%flow;)* -- list item --> +<!ATTLIST LI + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!--================ Forms ===============================================--> +<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form --> +<!ATTLIST FORM + %attrs; -- %coreattrs, %i18n, %events -- + action %URI; #REQUIRED -- server-side form handler -- + method (GET|POST) GET -- HTTP method used to submit the form-- + enctype %ContentType; "application/x-www-form-urlencoded" + accept %ContentTypes; #IMPLIED -- list of MIME types for file upload -- + name CDATA #IMPLIED -- name of form for scripting -- + onsubmit %Script; #IMPLIED -- the form was submitted -- + onreset %Script; #IMPLIED -- the form was reset -- + accept-charset %Charsets; #IMPLIED -- list of supported charsets -- + > + +<!-- Each label must not contain more than ONE field --> +<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text --> +<!ATTLIST LABEL + %attrs; -- %coreattrs, %i18n, %events -- + for IDREF #IMPLIED -- matches field ID value -- + accesskey %Character; #IMPLIED -- accessibility key character -- + onfocus %Script; #IMPLIED -- the element got the focus -- + onblur %Script; #IMPLIED -- the element lost the focus -- + > + +<!ENTITY % InputType + "(TEXT | PASSWORD | CHECKBOX | + RADIO | SUBMIT | RESET | + FILE | HIDDEN | IMAGE | BUTTON)" + > + +<!-- attribute name required for all but submit and reset --> +<!ELEMENT INPUT - O EMPTY -- form control --> +<!ATTLIST INPUT + %attrs; -- %coreattrs, %i18n, %events -- + type %InputType; TEXT -- what kind of widget is needed -- + name CDATA #IMPLIED -- submit as part of form -- + value CDATA #IMPLIED -- Specify for radio buttons and checkboxes -- + checked (checked) #IMPLIED -- for radio buttons and check boxes -- + disabled (disabled) #IMPLIED -- unavailable in this context -- + readonly (readonly) #IMPLIED -- for text and passwd -- + size CDATA #IMPLIED -- specific to each type of field -- + maxlength NUMBER #IMPLIED -- max chars for text fields -- + src %URI; #IMPLIED -- for fields with images -- + alt CDATA #IMPLIED -- short description -- + usemap %URI; #IMPLIED -- use client-side image map -- + ismap (ismap) #IMPLIED -- use server-side image map -- + tabindex NUMBER #IMPLIED -- position in tabbing order -- + accesskey %Character; #IMPLIED -- accessibility key character -- + onfocus %Script; #IMPLIED -- the element got the focus -- + onblur %Script; #IMPLIED -- the element lost the focus -- + onselect %Script; #IMPLIED -- some text was selected -- + onchange %Script; #IMPLIED -- the element value was changed -- + accept %ContentTypes; #IMPLIED -- list of MIME types for file upload -- + %reserved; -- reserved for possible future use -- + > + +<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- option selector --> +<!ATTLIST SELECT + %attrs; -- %coreattrs, %i18n, %events -- + name CDATA #IMPLIED -- field name -- + size NUMBER #IMPLIED -- rows visible -- + multiple (multiple) #IMPLIED -- default is single selection -- + disabled (disabled) #IMPLIED -- unavailable in this context -- + tabindex NUMBER #IMPLIED -- position in tabbing order -- + onfocus %Script; #IMPLIED -- the element got the focus -- + onblur %Script; #IMPLIED -- the element lost the focus -- + onchange %Script; #IMPLIED -- the element value was changed -- + %reserved; -- reserved for possible future use -- + > + +<!ELEMENT OPTGROUP - - (OPTION)+ -- option group --> +<!ATTLIST OPTGROUP + %attrs; -- %coreattrs, %i18n, %events -- + disabled (disabled) #IMPLIED -- unavailable in this context -- + label %Text; #REQUIRED -- for use in hierarchical menus -- + > + +<!ELEMENT OPTION - O (#PCDATA) -- selectable choice --> +<!ATTLIST OPTION + %attrs; -- %coreattrs, %i18n, %events -- + selected (selected) #IMPLIED + disabled (disabled) #IMPLIED -- unavailable in this context -- + label %Text; #IMPLIED -- for use in hierarchical menus -- + value CDATA #IMPLIED -- defaults to element content -- + > + +<!ELEMENT TEXTAREA - - (#PCDATA) -- multi-line text field --> +<!ATTLIST TEXTAREA + %attrs; -- %coreattrs, %i18n, %events -- + name CDATA #IMPLIED + rows NUMBER #REQUIRED + cols NUMBER #REQUIRED + disabled (disabled) #IMPLIED -- unavailable in this context -- + readonly (readonly) #IMPLIED + tabindex NUMBER #IMPLIED -- position in tabbing order -- + accesskey %Character; #IMPLIED -- accessibility key character -- + onfocus %Script; #IMPLIED -- the element got the focus -- + onblur %Script; #IMPLIED -- the element lost the focus -- + onselect %Script; #IMPLIED -- some text was selected -- + onchange %Script; #IMPLIED -- the element value was changed -- + %reserved; -- reserved for possible future use -- + > + +<!-- + #PCDATA is to solve the mixed content problem, + per specification only whitespace is allowed there! + --> +<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- form control group --> +<!ATTLIST FIELDSET + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!ELEMENT LEGEND - - (%inline;)* -- fieldset legend --> + +<!ATTLIST LEGEND + %attrs; -- %coreattrs, %i18n, %events -- + accesskey %Character; #IMPLIED -- accessibility key character -- + > + +<!ELEMENT BUTTON - - + (%flow;)* -(A|%formctrl;|FORM|FIELDSET) + -- push button --> +<!ATTLIST BUTTON + %attrs; -- %coreattrs, %i18n, %events -- + name CDATA #IMPLIED + value CDATA #IMPLIED -- sent to server when submitted -- + type (button|submit|reset) submit -- for use as form button -- + disabled (disabled) #IMPLIED -- unavailable in this context -- + tabindex NUMBER #IMPLIED -- position in tabbing order -- + accesskey %Character; #IMPLIED -- accessibility key character -- + onfocus %Script; #IMPLIED -- the element got the focus -- + onblur %Script; #IMPLIED -- the element lost the focus -- + %reserved; -- reserved for possible future use -- + > + +<!--======================= Tables =======================================--> + +<!-- IETF HTML table standard, see [RFC1942] --> + +<!-- + The BORDER attribute sets the thickness of the frame around the + table. The default units are screen pixels. + + The FRAME attribute specifies which parts of the frame around + the table should be rendered. The values are not the same as + CALS to avoid a name clash with the VALIGN attribute. + + The value "border" is included for backwards compatibility with + <TABLE BORDER> which yields frame=border and border=implied + For <TABLE BORDER=1> you get border=1 and frame=implied. In this + case, it is appropriate to treat this as frame=border for backwards + compatibility with deployed browsers. +--> +<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)"> + +<!-- + The RULES attribute defines which rules to draw between cells: + + If RULES is absent then assume: + "none" if BORDER is absent or BORDER=0 otherwise "all" +--> + +<!ENTITY % TRules "(none | groups | rows | cols | all)"> + +<!-- horizontal placement of table relative to document --> +<!ENTITY % TAlign "(left|center|right)"> + +<!-- horizontal alignment attributes for cell contents --> +<!ENTITY % cellhalign + "align (left|center|right|justify|char) #IMPLIED + char %Character; #IMPLIED -- alignment char, e.g. char=':' -- + charoff %Length; #IMPLIED -- offset for alignment char --" + > + +<!-- vertical alignment attributes for cell contents --> +<!ENTITY % cellvalign + "valign (top|middle|bottom|baseline) #IMPLIED" + > + +<!ELEMENT TABLE - - + (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)> +<!ELEMENT CAPTION - - (%inline;)* -- table caption --> +<!ELEMENT THEAD - O (TR)+ -- table header --> +<!ELEMENT TFOOT - O (TR)+ -- table footer --> +<!ELEMENT TBODY O O (TR)+ -- table body --> +<!ELEMENT COLGROUP - O (COL)* -- table column group --> +<!ELEMENT COL - O EMPTY -- table column --> +<!ELEMENT TR - O (TH|TD)+ -- table row --> +<!ELEMENT (TH|TD) - O (%flow;)* -- table header cell, table data cell--> + +<!ATTLIST TABLE -- table element -- + %attrs; -- %coreattrs, %i18n, %events -- + summary %Text; #IMPLIED -- purpose/structure for speech output-- + width %Length; #IMPLIED -- table width -- + border %Pixels; #IMPLIED -- controls frame width around table -- + frame %TFrame; #IMPLIED -- which parts of frame to render -- + rules %TRules; #IMPLIED -- rulings between rows and cols -- + cellspacing %Length; #IMPLIED -- spacing between cells -- + cellpadding %Length; #IMPLIED -- spacing within cells -- + %reserved; -- reserved for possible future use -- + datapagesize CDATA #IMPLIED -- reserved for possible future use -- + > + + +<!ATTLIST CAPTION + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!-- +COLGROUP groups a set of COL elements. It allows you to group +several semantically related columns together. +--> +<!ATTLIST COLGROUP + %attrs; -- %coreattrs, %i18n, %events -- + span NUMBER 1 -- default number of columns in group -- + width %MultiLength; #IMPLIED -- default width for enclosed COLs -- + %cellhalign; -- horizontal alignment in cells -- + %cellvalign; -- vertical alignment in cells -- + > + +<!-- + COL elements define the alignment properties for cells in + one or more columns. + + The WIDTH attribute specifies the width of the columns, e.g. + + width=64 width in screen pixels + width=0.5* relative width of 0.5 + + The SPAN attribute causes the attributes of one + COL element to apply to more than one column. +--> +<!ATTLIST COL -- column groups and properties -- + %attrs; -- %coreattrs, %i18n, %events -- + span NUMBER 1 -- COL attributes affect N columns -- + width %MultiLength; #IMPLIED -- column width specification -- + %cellhalign; -- horizontal alignment in cells -- + %cellvalign; -- vertical alignment in cells -- + > + +<!-- + Use THEAD to duplicate headers when breaking table + across page boundaries, or for static headers when + TBODY sections are rendered in scrolling panel. + + Use TFOOT to duplicate footers when breaking table + across page boundaries, or for static footers when + TBODY sections are rendered in scrolling panel. + + Use multiple TBODY sections when rules are needed + between groups of table rows. +--> +<!ATTLIST (THEAD|TBODY|TFOOT) -- table section -- + %attrs; -- %coreattrs, %i18n, %events -- + %cellhalign; -- horizontal alignment in cells -- + %cellvalign; -- vertical alignment in cells -- + > + +<!ATTLIST TR -- table row -- + %attrs; -- %coreattrs, %i18n, %events -- + %cellhalign; -- horizontal alignment in cells -- + %cellvalign; -- vertical alignment in cells -- + > + + +<!-- Scope is simpler than headers attribute for common tables --> +<!ENTITY % Scope "(row|col|rowgroup|colgroup)"> + +<!-- TH is for headers, TD for data, but for cells acting as both use TD --> +<!ATTLIST (TH|TD) -- header or data cell -- + %attrs; -- %coreattrs, %i18n, %events -- + abbr %Text; #IMPLIED -- abbreviation for header cell -- + axis CDATA #IMPLIED -- comma-separated list of related headers-- + headers IDREFS #IMPLIED -- list of id's for header cells -- + scope %Scope; #IMPLIED -- scope covered by header cells -- + rowspan NUMBER 1 -- number of rows spanned by cell -- + colspan NUMBER 1 -- number of cols spanned by cell -- + %cellhalign; -- horizontal alignment in cells -- + %cellvalign; -- vertical alignment in cells -- + > + + +<!--================ Document Head =======================================--> +<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" --> +<!ENTITY % head.content "TITLE & BASE?"> + +<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head --> +<!ATTLIST HEAD + %i18n; -- lang, dir -- + profile %URI; #IMPLIED -- named dictionary of meta info -- + > + +<!-- The TITLE element is not considered part of the flow of text. + It should be displayed, for example as the page header or + window title. Exactly one title is required per document. + --> +<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title --> +<!ATTLIST TITLE %i18n> + + +<!ELEMENT BASE - O EMPTY -- document base URI --> +<!ATTLIST BASE + href %URI; #REQUIRED -- URI that acts as base URI -- + > + +<!ELEMENT META - O EMPTY -- generic metainformation --> +<!ATTLIST META + %i18n; -- lang, dir, for use with content -- + http-equiv NAME #IMPLIED -- HTTP response header name -- + name NAME #IMPLIED -- metainformation name -- + content CDATA #REQUIRED -- associated information -- + scheme CDATA #IMPLIED -- select form of content -- + > + +<!ELEMENT STYLE - - %StyleSheet -- style info --> +<!ATTLIST STYLE + %i18n; -- lang, dir, for use with title -- + type %ContentType; #REQUIRED -- content type of style language -- + media %MediaDesc; #IMPLIED -- designed for use with these media -- + title %Text; #IMPLIED -- advisory title -- + > + +<!ELEMENT SCRIPT - - %Script; -- script statements --> +<!ATTLIST SCRIPT + charset %Charset; #IMPLIED -- char encoding of linked resource -- + type %ContentType; #REQUIRED -- content type of script language -- + src %URI; #IMPLIED -- URI for an external script -- + defer (defer) #IMPLIED -- UA may defer execution of script -- + event CDATA #IMPLIED -- reserved for possible future use -- + for %URI; #IMPLIED -- reserved for possible future use -- + > + +<!ELEMENT NOSCRIPT - - (%block;)+ + -- alternate content container for non script-based rendering --> +<!ATTLIST NOSCRIPT + %attrs; -- %coreattrs, %i18n, %events -- + > + +<!--================ Document Structure ==================================--> +<!ENTITY % html.content "HEAD, BODY"> + +<!ELEMENT HTML O O (%html.content;) -- document root element --> +<!ATTLIST HTML + %i18n; -- lang, dir -- + > diff --git a/node_modules/sax/examples/test.html b/node_modules/sax/examples/test.html new file mode 100644 index 000000000..61f8f1ab9 --- /dev/null +++ b/node_modules/sax/examples/test.html @@ -0,0 +1,15 @@ +<!doctype html> + +<html lang="en"> +<head> + <title>testing the parser</title> +</head> +<body> + +<p>hello + +<script> + +</script> +</body> +</html> diff --git a/node_modules/sax/examples/test.xml b/node_modules/sax/examples/test.xml new file mode 100644 index 000000000..801292d7f --- /dev/null +++ b/node_modules/sax/examples/test.xml @@ -0,0 +1,1254 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE RootElement [ + <!ENTITY e SYSTEM "001.ent"> +]> +<RootElement param="value"> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> + <FirstElement> + Some Text + </FirstElement> + <?some_pi some_attr="some_value"?> + <!-- this is a comment -- but this isnt part of the comment --> + <!-- this is a comment == and this is a part of the comment --> + <!-- this is a comment > and this is also part of the thing --> + <!invalid comment> + <![CDATA[ this is random stuff. & and < and > are ok in here. ]]> + <SecondElement param2="something"> + Pre-Text & <Inline>Inlined text</Inline> Post-text. +  + </SecondElement> +</RootElement>
\ No newline at end of file diff --git a/node_modules/sax/lib/sax.js b/node_modules/sax/lib/sax.js new file mode 100644 index 000000000..410a50748 --- /dev/null +++ b/node_modules/sax/lib/sax.js @@ -0,0 +1,1410 @@ +// wrapper for non-node envs +;(function (sax) { + +sax.parser = function (strict, opt) { return new SAXParser(strict, opt) } +sax.SAXParser = SAXParser +sax.SAXStream = SAXStream +sax.createStream = createStream + +// When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns. +// When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)), +// since that's the earliest that a buffer overrun could occur. This way, checks are +// as rare as required, but as often as necessary to ensure never crossing this bound. +// Furthermore, buffers are only tested at most once per write(), so passing a very +// large string into write() might have undesirable effects, but this is manageable by +// the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme +// edge case, result in creating at most one complete copy of the string passed in. +// Set to Infinity to have unlimited buffers. +sax.MAX_BUFFER_LENGTH = 64 * 1024 + +var buffers = [ + "comment", "sgmlDecl", "textNode", "tagName", "doctype", + "procInstName", "procInstBody", "entity", "attribName", + "attribValue", "cdata", "script" +] + +sax.EVENTS = // for discoverability. + [ "text" + , "processinginstruction" + , "sgmldeclaration" + , "doctype" + , "comment" + , "attribute" + , "opentag" + , "closetag" + , "opencdata" + , "cdata" + , "closecdata" + , "error" + , "end" + , "ready" + , "script" + , "opennamespace" + , "closenamespace" + ] + +function SAXParser (strict, opt) { + if (!(this instanceof SAXParser)) return new SAXParser(strict, opt) + + var parser = this + clearBuffers(parser) + parser.q = parser.c = "" + parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH + parser.opt = opt || {} + parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags + parser.looseCase = parser.opt.lowercase ? "toLowerCase" : "toUpperCase" + parser.tags = [] + parser.closed = parser.closedRoot = parser.sawRoot = false + parser.tag = parser.error = null + parser.strict = !!strict + parser.noscript = !!(strict || parser.opt.noscript) + parser.state = S.BEGIN + parser.ENTITIES = Object.create(sax.ENTITIES) + parser.attribList = [] + + // namespaces form a prototype chain. + // it always points at the current tag, + // which protos to its parent tag. + if (parser.opt.xmlns) parser.ns = Object.create(rootNS) + + // mostly just for error reporting + parser.trackPosition = parser.opt.position !== false + if (parser.trackPosition) { + parser.position = parser.line = parser.column = 0 + } + emit(parser, "onready") +} + +if (!Object.create) Object.create = function (o) { + function f () { this.__proto__ = o } + f.prototype = o + return new f +} + +if (!Object.getPrototypeOf) Object.getPrototypeOf = function (o) { + return o.__proto__ +} + +if (!Object.keys) Object.keys = function (o) { + var a = [] + for (var i in o) if (o.hasOwnProperty(i)) a.push(i) + return a +} + +function checkBufferLength (parser) { + var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10) + , maxActual = 0 + for (var i = 0, l = buffers.length; i < l; i ++) { + var len = parser[buffers[i]].length + if (len > maxAllowed) { + // Text/cdata nodes can get big, and since they're buffered, + // we can get here under normal conditions. + // Avoid issues by emitting the text node now, + // so at least it won't get any bigger. + switch (buffers[i]) { + case "textNode": + closeText(parser) + break + + case "cdata": + emitNode(parser, "oncdata", parser.cdata) + parser.cdata = "" + break + + case "script": + emitNode(parser, "onscript", parser.script) + parser.script = "" + break + + default: + error(parser, "Max buffer length exceeded: "+buffers[i]) + } + } + maxActual = Math.max(maxActual, len) + } + // schedule the next check for the earliest possible buffer overrun. + parser.bufferCheckPosition = (sax.MAX_BUFFER_LENGTH - maxActual) + + parser.position +} + +function clearBuffers (parser) { + for (var i = 0, l = buffers.length; i < l; i ++) { + parser[buffers[i]] = "" + } +} + +function flushBuffers (parser) { + closeText(parser) + if (parser.cdata !== "") { + emitNode(parser, "oncdata", parser.cdata) + parser.cdata = "" + } + if (parser.script !== "") { + emitNode(parser, "onscript", parser.script) + parser.script = "" + } +} + +SAXParser.prototype = + { end: function () { end(this) } + , write: write + , resume: function () { this.error = null; return this } + , close: function () { return this.write(null) } + , flush: function () { flushBuffers(this) } + } + +try { + var Stream = require("stream").Stream +} catch (ex) { + var Stream = function () {} +} + + +var streamWraps = sax.EVENTS.filter(function (ev) { + return ev !== "error" && ev !== "end" +}) + +function createStream (strict, opt) { + return new SAXStream(strict, opt) +} + +function SAXStream (strict, opt) { + if (!(this instanceof SAXStream)) return new SAXStream(strict, opt) + + Stream.apply(this) + + this._parser = new SAXParser(strict, opt) + this.writable = true + this.readable = true + + + var me = this + + this._parser.onend = function () { + me.emit("end") + } + + this._parser.onerror = function (er) { + me.emit("error", er) + + // if didn't throw, then means error was handled. + // go ahead and clear error, so we can write again. + me._parser.error = null + } + + this._decoder = null; + + streamWraps.forEach(function (ev) { + Object.defineProperty(me, "on" + ev, { + get: function () { return me._parser["on" + ev] }, + set: function (h) { + if (!h) { + me.removeAllListeners(ev) + return me._parser["on"+ev] = h + } + me.on(ev, h) + }, + enumerable: true, + configurable: false + }) + }) +} + +SAXStream.prototype = Object.create(Stream.prototype, + { constructor: { value: SAXStream } }) + +SAXStream.prototype.write = function (data) { + if (typeof Buffer === 'function' && + typeof Buffer.isBuffer === 'function' && + Buffer.isBuffer(data)) { + if (!this._decoder) { + var SD = require('string_decoder').StringDecoder + this._decoder = new SD('utf8') + } + data = this._decoder.write(data); + } + + this._parser.write(data.toString()) + this.emit("data", data) + return true +} + +SAXStream.prototype.end = function (chunk) { + if (chunk && chunk.length) this.write(chunk) + this._parser.end() + return true +} + +SAXStream.prototype.on = function (ev, handler) { + var me = this + if (!me._parser["on"+ev] && streamWraps.indexOf(ev) !== -1) { + me._parser["on"+ev] = function () { + var args = arguments.length === 1 ? [arguments[0]] + : Array.apply(null, arguments) + args.splice(0, 0, ev) + me.emit.apply(me, args) + } + } + + return Stream.prototype.on.call(me, ev, handler) +} + + + +// character classes and tokens +var whitespace = "\r\n\t " + // this really needs to be replaced with character classes. + // XML allows all manner of ridiculous numbers and digits. + , number = "0124356789" + , letter = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + // (Letter | "_" | ":") + , quote = "'\"" + , entity = number+letter+"#" + , attribEnd = whitespace + ">" + , CDATA = "[CDATA[" + , DOCTYPE = "DOCTYPE" + , XML_NAMESPACE = "http://www.w3.org/XML/1998/namespace" + , XMLNS_NAMESPACE = "http://www.w3.org/2000/xmlns/" + , rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE } + +// turn all the string character sets into character class objects. +whitespace = charClass(whitespace) +number = charClass(number) +letter = charClass(letter) + +// http://www.w3.org/TR/REC-xml/#NT-NameStartChar +// This implementation works on strings, a single character at a time +// as such, it cannot ever support astral-plane characters (10000-EFFFF) +// without a significant breaking change to either this parser, or the +// JavaScript language. Implementation of an emoji-capable xml parser +// is left as an exercise for the reader. +var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/ + +var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040\.\d-]/ + +quote = charClass(quote) +entity = charClass(entity) +attribEnd = charClass(attribEnd) + +function charClass (str) { + return str.split("").reduce(function (s, c) { + s[c] = true + return s + }, {}) +} + +function isRegExp (c) { + return Object.prototype.toString.call(c) === '[object RegExp]' +} + +function is (charclass, c) { + return isRegExp(charclass) ? !!c.match(charclass) : charclass[c] +} + +function not (charclass, c) { + return !is(charclass, c) +} + +var S = 0 +sax.STATE = +{ BEGIN : S++ +, TEXT : S++ // general stuff +, TEXT_ENTITY : S++ // & and such. +, OPEN_WAKA : S++ // < +, SGML_DECL : S++ // <!BLARG +, SGML_DECL_QUOTED : S++ // <!BLARG foo "bar +, DOCTYPE : S++ // <!DOCTYPE +, DOCTYPE_QUOTED : S++ // <!DOCTYPE "//blah +, DOCTYPE_DTD : S++ // <!DOCTYPE "//blah" [ ... +, DOCTYPE_DTD_QUOTED : S++ // <!DOCTYPE "//blah" [ "foo +, COMMENT_STARTING : S++ // <!- +, COMMENT : S++ // <!-- +, COMMENT_ENDING : S++ // <!-- blah - +, COMMENT_ENDED : S++ // <!-- blah -- +, CDATA : S++ // <![CDATA[ something +, CDATA_ENDING : S++ // ] +, CDATA_ENDING_2 : S++ // ]] +, PROC_INST : S++ // <?hi +, PROC_INST_BODY : S++ // <?hi there +, PROC_INST_ENDING : S++ // <?hi "there" ? +, OPEN_TAG : S++ // <strong +, OPEN_TAG_SLASH : S++ // <strong / +, ATTRIB : S++ // <a +, ATTRIB_NAME : S++ // <a foo +, ATTRIB_NAME_SAW_WHITE : S++ // <a foo _ +, ATTRIB_VALUE : S++ // <a foo= +, ATTRIB_VALUE_QUOTED : S++ // <a foo="bar +, ATTRIB_VALUE_CLOSED : S++ // <a foo="bar" +, ATTRIB_VALUE_UNQUOTED : S++ // <a foo=bar +, ATTRIB_VALUE_ENTITY_Q : S++ // <foo bar=""" +, ATTRIB_VALUE_ENTITY_U : S++ // <foo bar=" +, CLOSE_TAG : S++ // </a +, CLOSE_TAG_SAW_WHITE : S++ // </a > +, SCRIPT : S++ // <script> ... +, SCRIPT_ENDING : S++ // <script> ... < +} + +sax.ENTITIES = +{ "amp" : "&" +, "gt" : ">" +, "lt" : "<" +, "quot" : "\"" +, "apos" : "'" +, "AElig" : 198 +, "Aacute" : 193 +, "Acirc" : 194 +, "Agrave" : 192 +, "Aring" : 197 +, "Atilde" : 195 +, "Auml" : 196 +, "Ccedil" : 199 +, "ETH" : 208 +, "Eacute" : 201 +, "Ecirc" : 202 +, "Egrave" : 200 +, "Euml" : 203 +, "Iacute" : 205 +, "Icirc" : 206 +, "Igrave" : 204 +, "Iuml" : 207 +, "Ntilde" : 209 +, "Oacute" : 211 +, "Ocirc" : 212 +, "Ograve" : 210 +, "Oslash" : 216 +, "Otilde" : 213 +, "Ouml" : 214 +, "THORN" : 222 +, "Uacute" : 218 +, "Ucirc" : 219 +, "Ugrave" : 217 +, "Uuml" : 220 +, "Yacute" : 221 +, "aacute" : 225 +, "acirc" : 226 +, "aelig" : 230 +, "agrave" : 224 +, "aring" : 229 +, "atilde" : 227 +, "auml" : 228 +, "ccedil" : 231 +, "eacute" : 233 +, "ecirc" : 234 +, "egrave" : 232 +, "eth" : 240 +, "euml" : 235 +, "iacute" : 237 +, "icirc" : 238 +, "igrave" : 236 +, "iuml" : 239 +, "ntilde" : 241 +, "oacute" : 243 +, "ocirc" : 244 +, "ograve" : 242 +, "oslash" : 248 +, "otilde" : 245 +, "ouml" : 246 +, "szlig" : 223 +, "thorn" : 254 +, "uacute" : 250 +, "ucirc" : 251 +, "ugrave" : 249 +, "uuml" : 252 +, "yacute" : 253 +, "yuml" : 255 +, "copy" : 169 +, "reg" : 174 +, "nbsp" : 160 +, "iexcl" : 161 +, "cent" : 162 +, "pound" : 163 +, "curren" : 164 +, "yen" : 165 +, "brvbar" : 166 +, "sect" : 167 +, "uml" : 168 +, "ordf" : 170 +, "laquo" : 171 +, "not" : 172 +, "shy" : 173 +, "macr" : 175 +, "deg" : 176 +, "plusmn" : 177 +, "sup1" : 185 +, "sup2" : 178 +, "sup3" : 179 +, "acute" : 180 +, "micro" : 181 +, "para" : 182 +, "middot" : 183 +, "cedil" : 184 +, "ordm" : 186 +, "raquo" : 187 +, "frac14" : 188 +, "frac12" : 189 +, "frac34" : 190 +, "iquest" : 191 +, "times" : 215 +, "divide" : 247 +, "OElig" : 338 +, "oelig" : 339 +, "Scaron" : 352 +, "scaron" : 353 +, "Yuml" : 376 +, "fnof" : 402 +, "circ" : 710 +, "tilde" : 732 +, "Alpha" : 913 +, "Beta" : 914 +, "Gamma" : 915 +, "Delta" : 916 +, "Epsilon" : 917 +, "Zeta" : 918 +, "Eta" : 919 +, "Theta" : 920 +, "Iota" : 921 +, "Kappa" : 922 +, "Lambda" : 923 +, "Mu" : 924 +, "Nu" : 925 +, "Xi" : 926 +, "Omicron" : 927 +, "Pi" : 928 +, "Rho" : 929 +, "Sigma" : 931 +, "Tau" : 932 +, "Upsilon" : 933 +, "Phi" : 934 +, "Chi" : 935 +, "Psi" : 936 +, "Omega" : 937 +, "alpha" : 945 +, "beta" : 946 +, "gamma" : 947 +, "delta" : 948 +, "epsilon" : 949 +, "zeta" : 950 +, "eta" : 951 +, "theta" : 952 +, "iota" : 953 +, "kappa" : 954 +, "lambda" : 955 +, "mu" : 956 +, "nu" : 957 +, "xi" : 958 +, "omicron" : 959 +, "pi" : 960 +, "rho" : 961 +, "sigmaf" : 962 +, "sigma" : 963 +, "tau" : 964 +, "upsilon" : 965 +, "phi" : 966 +, "chi" : 967 +, "psi" : 968 +, "omega" : 969 +, "thetasym" : 977 +, "upsih" : 978 +, "piv" : 982 +, "ensp" : 8194 +, "emsp" : 8195 +, "thinsp" : 8201 +, "zwnj" : 8204 +, "zwj" : 8205 +, "lrm" : 8206 +, "rlm" : 8207 +, "ndash" : 8211 +, "mdash" : 8212 +, "lsquo" : 8216 +, "rsquo" : 8217 +, "sbquo" : 8218 +, "ldquo" : 8220 +, "rdquo" : 8221 +, "bdquo" : 8222 +, "dagger" : 8224 +, "Dagger" : 8225 +, "bull" : 8226 +, "hellip" : 8230 +, "permil" : 8240 +, "prime" : 8242 +, "Prime" : 8243 +, "lsaquo" : 8249 +, "rsaquo" : 8250 +, "oline" : 8254 +, "frasl" : 8260 +, "euro" : 8364 +, "image" : 8465 +, "weierp" : 8472 +, "real" : 8476 +, "trade" : 8482 +, "alefsym" : 8501 +, "larr" : 8592 +, "uarr" : 8593 +, "rarr" : 8594 +, "darr" : 8595 +, "harr" : 8596 +, "crarr" : 8629 +, "lArr" : 8656 +, "uArr" : 8657 +, "rArr" : 8658 +, "dArr" : 8659 +, "hArr" : 8660 +, "forall" : 8704 +, "part" : 8706 +, "exist" : 8707 +, "empty" : 8709 +, "nabla" : 8711 +, "isin" : 8712 +, "notin" : 8713 +, "ni" : 8715 +, "prod" : 8719 +, "sum" : 8721 +, "minus" : 8722 +, "lowast" : 8727 +, "radic" : 8730 +, "prop" : 8733 +, "infin" : 8734 +, "ang" : 8736 +, "and" : 8743 +, "or" : 8744 +, "cap" : 8745 +, "cup" : 8746 +, "int" : 8747 +, "there4" : 8756 +, "sim" : 8764 +, "cong" : 8773 +, "asymp" : 8776 +, "ne" : 8800 +, "equiv" : 8801 +, "le" : 8804 +, "ge" : 8805 +, "sub" : 8834 +, "sup" : 8835 +, "nsub" : 8836 +, "sube" : 8838 +, "supe" : 8839 +, "oplus" : 8853 +, "otimes" : 8855 +, "perp" : 8869 +, "sdot" : 8901 +, "lceil" : 8968 +, "rceil" : 8969 +, "lfloor" : 8970 +, "rfloor" : 8971 +, "lang" : 9001 +, "rang" : 9002 +, "loz" : 9674 +, "spades" : 9824 +, "clubs" : 9827 +, "hearts" : 9829 +, "diams" : 9830 +} + +Object.keys(sax.ENTITIES).forEach(function (key) { + var e = sax.ENTITIES[key] + var s = typeof e === 'number' ? String.fromCharCode(e) : e + sax.ENTITIES[key] = s +}) + +for (var S in sax.STATE) sax.STATE[sax.STATE[S]] = S + +// shorthand +S = sax.STATE + +function emit (parser, event, data) { + parser[event] && parser[event](data) +} + +function emitNode (parser, nodeType, data) { + if (parser.textNode) closeText(parser) + emit(parser, nodeType, data) +} + +function closeText (parser) { + parser.textNode = textopts(parser.opt, parser.textNode) + if (parser.textNode) emit(parser, "ontext", parser.textNode) + parser.textNode = "" +} + +function textopts (opt, text) { + if (opt.trim) text = text.trim() + if (opt.normalize) text = text.replace(/\s+/g, " ") + return text +} + +function error (parser, er) { + closeText(parser) + if (parser.trackPosition) { + er += "\nLine: "+parser.line+ + "\nColumn: "+parser.column+ + "\nChar: "+parser.c + } + er = new Error(er) + parser.error = er + emit(parser, "onerror", er) + return parser +} + +function end (parser) { + if (!parser.closedRoot) strictFail(parser, "Unclosed root tag") + if ((parser.state !== S.BEGIN) && (parser.state !== S.TEXT)) error(parser, "Unexpected end") + closeText(parser) + parser.c = "" + parser.closed = true + emit(parser, "onend") + SAXParser.call(parser, parser.strict, parser.opt) + return parser +} + +function strictFail (parser, message) { + if (typeof parser !== 'object' || !(parser instanceof SAXParser)) + throw new Error('bad call to strictFail'); + if (parser.strict) error(parser, message) +} + +function newTag (parser) { + if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]() + var parent = parser.tags[parser.tags.length - 1] || parser + , tag = parser.tag = { name : parser.tagName, attributes : {} } + + // will be overridden if tag contails an xmlns="foo" or xmlns:foo="bar" + if (parser.opt.xmlns) tag.ns = parent.ns + parser.attribList.length = 0 +} + +function qname (name, attribute) { + var i = name.indexOf(":") + , qualName = i < 0 ? [ "", name ] : name.split(":") + , prefix = qualName[0] + , local = qualName[1] + + // <x "xmlns"="http://foo"> + if (attribute && name === "xmlns") { + prefix = "xmlns" + local = "" + } + + return { prefix: prefix, local: local } +} + +function attrib (parser) { + if (!parser.strict) parser.attribName = parser.attribName[parser.looseCase]() + + if (parser.attribList.indexOf(parser.attribName) !== -1 || + parser.tag.attributes.hasOwnProperty(parser.attribName)) { + return parser.attribName = parser.attribValue = "" + } + + if (parser.opt.xmlns) { + var qn = qname(parser.attribName, true) + , prefix = qn.prefix + , local = qn.local + + if (prefix === "xmlns") { + // namespace binding attribute; push the binding into scope + if (local === "xml" && parser.attribValue !== XML_NAMESPACE) { + strictFail( parser + , "xml: prefix must be bound to " + XML_NAMESPACE + "\n" + + "Actual: " + parser.attribValue ) + } else if (local === "xmlns" && parser.attribValue !== XMLNS_NAMESPACE) { + strictFail( parser + , "xmlns: prefix must be bound to " + XMLNS_NAMESPACE + "\n" + + "Actual: " + parser.attribValue ) + } else { + var tag = parser.tag + , parent = parser.tags[parser.tags.length - 1] || parser + if (tag.ns === parent.ns) { + tag.ns = Object.create(parent.ns) + } + tag.ns[local] = parser.attribValue + } + } + + // defer onattribute events until all attributes have been seen + // so any new bindings can take effect; preserve attribute order + // so deferred events can be emitted in document order + parser.attribList.push([parser.attribName, parser.attribValue]) + } else { + // in non-xmlns mode, we can emit the event right away + parser.tag.attributes[parser.attribName] = parser.attribValue + emitNode( parser + , "onattribute" + , { name: parser.attribName + , value: parser.attribValue } ) + } + + parser.attribName = parser.attribValue = "" +} + +function openTag (parser, selfClosing) { + if (parser.opt.xmlns) { + // emit namespace binding events + var tag = parser.tag + + // add namespace info to tag + var qn = qname(parser.tagName) + tag.prefix = qn.prefix + tag.local = qn.local + tag.uri = tag.ns[qn.prefix] || "" + + if (tag.prefix && !tag.uri) { + strictFail(parser, "Unbound namespace prefix: " + + JSON.stringify(parser.tagName)) + tag.uri = qn.prefix + } + + var parent = parser.tags[parser.tags.length - 1] || parser + if (tag.ns && parent.ns !== tag.ns) { + Object.keys(tag.ns).forEach(function (p) { + emitNode( parser + , "onopennamespace" + , { prefix: p , uri: tag.ns[p] } ) + }) + } + + // handle deferred onattribute events + // Note: do not apply default ns to attributes: + // http://www.w3.org/TR/REC-xml-names/#defaulting + for (var i = 0, l = parser.attribList.length; i < l; i ++) { + var nv = parser.attribList[i] + var name = nv[0] + , value = nv[1] + , qualName = qname(name, true) + , prefix = qualName.prefix + , local = qualName.local + , uri = prefix == "" ? "" : (tag.ns[prefix] || "") + , a = { name: name + , value: value + , prefix: prefix + , local: local + , uri: uri + } + + // if there's any attributes with an undefined namespace, + // then fail on them now. + if (prefix && prefix != "xmlns" && !uri) { + strictFail(parser, "Unbound namespace prefix: " + + JSON.stringify(prefix)) + a.uri = prefix + } + parser.tag.attributes[name] = a + emitNode(parser, "onattribute", a) + } + parser.attribList.length = 0 + } + + parser.tag.isSelfClosing = !!selfClosing + + // process the tag + parser.sawRoot = true + parser.tags.push(parser.tag) + emitNode(parser, "onopentag", parser.tag) + if (!selfClosing) { + // special case for <script> in non-strict mode. + if (!parser.noscript && parser.tagName.toLowerCase() === "script") { + parser.state = S.SCRIPT + } else { + parser.state = S.TEXT + } + parser.tag = null + parser.tagName = "" + } + parser.attribName = parser.attribValue = "" + parser.attribList.length = 0 +} + +function closeTag (parser) { + if (!parser.tagName) { + strictFail(parser, "Weird empty close tag.") + parser.textNode += "</>" + parser.state = S.TEXT + return + } + + if (parser.script) { + if (parser.tagName !== "script") { + parser.script += "</" + parser.tagName + ">" + parser.tagName = "" + parser.state = S.SCRIPT + return + } + emitNode(parser, "onscript", parser.script) + parser.script = "" + } + + // first make sure that the closing tag actually exists. + // <a><b></c></b></a> will close everything, otherwise. + var t = parser.tags.length + var tagName = parser.tagName + if (!parser.strict) tagName = tagName[parser.looseCase]() + var closeTo = tagName + while (t --) { + var close = parser.tags[t] + if (close.name !== closeTo) { + // fail the first time in strict mode + strictFail(parser, "Unexpected close tag") + } else break + } + + // didn't find it. we already failed for strict, so just abort. + if (t < 0) { + strictFail(parser, "Unmatched closing tag: "+parser.tagName) + parser.textNode += "</" + parser.tagName + ">" + parser.state = S.TEXT + return + } + parser.tagName = tagName + var s = parser.tags.length + while (s --> t) { + var tag = parser.tag = parser.tags.pop() + parser.tagName = parser.tag.name + emitNode(parser, "onclosetag", parser.tagName) + + var x = {} + for (var i in tag.ns) x[i] = tag.ns[i] + + var parent = parser.tags[parser.tags.length - 1] || parser + if (parser.opt.xmlns && tag.ns !== parent.ns) { + // remove namespace bindings introduced by tag + Object.keys(tag.ns).forEach(function (p) { + var n = tag.ns[p] + emitNode(parser, "onclosenamespace", { prefix: p, uri: n }) + }) + } + } + if (t === 0) parser.closedRoot = true + parser.tagName = parser.attribValue = parser.attribName = "" + parser.attribList.length = 0 + parser.state = S.TEXT +} + +function parseEntity (parser) { + var entity = parser.entity + , entityLC = entity.toLowerCase() + , num + , numStr = "" + if (parser.ENTITIES[entity]) + return parser.ENTITIES[entity] + if (parser.ENTITIES[entityLC]) + return parser.ENTITIES[entityLC] + entity = entityLC + if (entity.charAt(0) === "#") { + if (entity.charAt(1) === "x") { + entity = entity.slice(2) + num = parseInt(entity, 16) + numStr = num.toString(16) + } else { + entity = entity.slice(1) + num = parseInt(entity, 10) + numStr = num.toString(10) + } + } + entity = entity.replace(/^0+/, "") + if (numStr.toLowerCase() !== entity) { + strictFail(parser, "Invalid character entity") + return "&"+parser.entity + ";" + } + + return String.fromCodePoint(num) +} + +function write (chunk) { + var parser = this + if (this.error) throw this.error + if (parser.closed) return error(parser, + "Cannot write after close. Assign an onready handler.") + if (chunk === null) return end(parser) + var i = 0, c = "" + while (parser.c = c = chunk.charAt(i++)) { + if (parser.trackPosition) { + parser.position ++ + if (c === "\n") { + parser.line ++ + parser.column = 0 + } else parser.column ++ + } + switch (parser.state) { + + case S.BEGIN: + if (c === "<") { + parser.state = S.OPEN_WAKA + parser.startTagPosition = parser.position + } else if (not(whitespace,c)) { + // have to process this as a text node. + // weird, but happens. + strictFail(parser, "Non-whitespace before first tag.") + parser.textNode = c + parser.state = S.TEXT + } + continue + + case S.TEXT: + if (parser.sawRoot && !parser.closedRoot) { + var starti = i-1 + while (c && c!=="<" && c!=="&") { + c = chunk.charAt(i++) + if (c && parser.trackPosition) { + parser.position ++ + if (c === "\n") { + parser.line ++ + parser.column = 0 + } else parser.column ++ + } + } + parser.textNode += chunk.substring(starti, i-1) + } + if (c === "<") { + parser.state = S.OPEN_WAKA + parser.startTagPosition = parser.position + } else { + if (not(whitespace, c) && (!parser.sawRoot || parser.closedRoot)) + strictFail(parser, "Text data outside of root node.") + if (c === "&") parser.state = S.TEXT_ENTITY + else parser.textNode += c + } + continue + + case S.SCRIPT: + // only non-strict + if (c === "<") { + parser.state = S.SCRIPT_ENDING + } else parser.script += c + continue + + case S.SCRIPT_ENDING: + if (c === "/") { + parser.state = S.CLOSE_TAG + } else { + parser.script += "<" + c + parser.state = S.SCRIPT + } + continue + + case S.OPEN_WAKA: + // either a /, ?, !, or text is coming next. + if (c === "!") { + parser.state = S.SGML_DECL + parser.sgmlDecl = "" + } else if (is(whitespace, c)) { + // wait for it... + } else if (is(nameStart,c)) { + parser.state = S.OPEN_TAG + parser.tagName = c + } else if (c === "/") { + parser.state = S.CLOSE_TAG + parser.tagName = "" + } else if (c === "?") { + parser.state = S.PROC_INST + parser.procInstName = parser.procInstBody = "" + } else { + strictFail(parser, "Unencoded <") + // if there was some whitespace, then add that in. + if (parser.startTagPosition + 1 < parser.position) { + var pad = parser.position - parser.startTagPosition + c = new Array(pad).join(" ") + c + } + parser.textNode += "<" + c + parser.state = S.TEXT + } + continue + + case S.SGML_DECL: + if ((parser.sgmlDecl+c).toUpperCase() === CDATA) { + emitNode(parser, "onopencdata") + parser.state = S.CDATA + parser.sgmlDecl = "" + parser.cdata = "" + } else if (parser.sgmlDecl+c === "--") { + parser.state = S.COMMENT + parser.comment = "" + parser.sgmlDecl = "" + } else if ((parser.sgmlDecl+c).toUpperCase() === DOCTYPE) { + parser.state = S.DOCTYPE + if (parser.doctype || parser.sawRoot) strictFail(parser, + "Inappropriately located doctype declaration") + parser.doctype = "" + parser.sgmlDecl = "" + } else if (c === ">") { + emitNode(parser, "onsgmldeclaration", parser.sgmlDecl) + parser.sgmlDecl = "" + parser.state = S.TEXT + } else if (is(quote, c)) { + parser.state = S.SGML_DECL_QUOTED + parser.sgmlDecl += c + } else parser.sgmlDecl += c + continue + + case S.SGML_DECL_QUOTED: + if (c === parser.q) { + parser.state = S.SGML_DECL + parser.q = "" + } + parser.sgmlDecl += c + continue + + case S.DOCTYPE: + if (c === ">") { + parser.state = S.TEXT + emitNode(parser, "ondoctype", parser.doctype) + parser.doctype = true // just remember that we saw it. + } else { + parser.doctype += c + if (c === "[") parser.state = S.DOCTYPE_DTD + else if (is(quote, c)) { + parser.state = S.DOCTYPE_QUOTED + parser.q = c + } + } + continue + + case S.DOCTYPE_QUOTED: + parser.doctype += c + if (c === parser.q) { + parser.q = "" + parser.state = S.DOCTYPE + } + continue + + case S.DOCTYPE_DTD: + parser.doctype += c + if (c === "]") parser.state = S.DOCTYPE + else if (is(quote,c)) { + parser.state = S.DOCTYPE_DTD_QUOTED + parser.q = c + } + continue + + case S.DOCTYPE_DTD_QUOTED: + parser.doctype += c + if (c === parser.q) { + parser.state = S.DOCTYPE_DTD + parser.q = "" + } + continue + + case S.COMMENT: + if (c === "-") parser.state = S.COMMENT_ENDING + else parser.comment += c + continue + + case S.COMMENT_ENDING: + if (c === "-") { + parser.state = S.COMMENT_ENDED + parser.comment = textopts(parser.opt, parser.comment) + if (parser.comment) emitNode(parser, "oncomment", parser.comment) + parser.comment = "" + } else { + parser.comment += "-" + c + parser.state = S.COMMENT + } + continue + + case S.COMMENT_ENDED: + if (c !== ">") { + strictFail(parser, "Malformed comment") + // allow <!-- blah -- bloo --> in non-strict mode, + // which is a comment of " blah -- bloo " + parser.comment += "--" + c + parser.state = S.COMMENT + } else parser.state = S.TEXT + continue + + case S.CDATA: + if (c === "]") parser.state = S.CDATA_ENDING + else parser.cdata += c + continue + + case S.CDATA_ENDING: + if (c === "]") parser.state = S.CDATA_ENDING_2 + else { + parser.cdata += "]" + c + parser.state = S.CDATA + } + continue + + case S.CDATA_ENDING_2: + if (c === ">") { + if (parser.cdata) emitNode(parser, "oncdata", parser.cdata) + emitNode(parser, "onclosecdata") + parser.cdata = "" + parser.state = S.TEXT + } else if (c === "]") { + parser.cdata += "]" + } else { + parser.cdata += "]]" + c + parser.state = S.CDATA + } + continue + + case S.PROC_INST: + if (c === "?") parser.state = S.PROC_INST_ENDING + else if (is(whitespace, c)) parser.state = S.PROC_INST_BODY + else parser.procInstName += c + continue + + case S.PROC_INST_BODY: + if (!parser.procInstBody && is(whitespace, c)) continue + else if (c === "?") parser.state = S.PROC_INST_ENDING + else parser.procInstBody += c + continue + + case S.PROC_INST_ENDING: + if (c === ">") { + emitNode(parser, "onprocessinginstruction", { + name : parser.procInstName, + body : parser.procInstBody + }) + parser.procInstName = parser.procInstBody = "" + parser.state = S.TEXT + } else { + parser.procInstBody += "?" + c + parser.state = S.PROC_INST_BODY + } + continue + + case S.OPEN_TAG: + if (is(nameBody, c)) parser.tagName += c + else { + newTag(parser) + if (c === ">") openTag(parser) + else if (c === "/") parser.state = S.OPEN_TAG_SLASH + else { + if (not(whitespace, c)) strictFail( + parser, "Invalid character in tag name") + parser.state = S.ATTRIB + } + } + continue + + case S.OPEN_TAG_SLASH: + if (c === ">") { + openTag(parser, true) + closeTag(parser) + } else { + strictFail(parser, "Forward-slash in opening tag not followed by >") + parser.state = S.ATTRIB + } + continue + + case S.ATTRIB: + // haven't read the attribute name yet. + if (is(whitespace, c)) continue + else if (c === ">") openTag(parser) + else if (c === "/") parser.state = S.OPEN_TAG_SLASH + else if (is(nameStart, c)) { + parser.attribName = c + parser.attribValue = "" + parser.state = S.ATTRIB_NAME + } else strictFail(parser, "Invalid attribute name") + continue + + case S.ATTRIB_NAME: + if (c === "=") parser.state = S.ATTRIB_VALUE + else if (c === ">") { + strictFail(parser, "Attribute without value") + parser.attribValue = parser.attribName + attrib(parser) + openTag(parser) + } + else if (is(whitespace, c)) parser.state = S.ATTRIB_NAME_SAW_WHITE + else if (is(nameBody, c)) parser.attribName += c + else strictFail(parser, "Invalid attribute name") + continue + + case S.ATTRIB_NAME_SAW_WHITE: + if (c === "=") parser.state = S.ATTRIB_VALUE + else if (is(whitespace, c)) continue + else { + strictFail(parser, "Attribute without value") + parser.tag.attributes[parser.attribName] = "" + parser.attribValue = "" + emitNode(parser, "onattribute", + { name : parser.attribName, value : "" }) + parser.attribName = "" + if (c === ">") openTag(parser) + else if (is(nameStart, c)) { + parser.attribName = c + parser.state = S.ATTRIB_NAME + } else { + strictFail(parser, "Invalid attribute name") + parser.state = S.ATTRIB + } + } + continue + + case S.ATTRIB_VALUE: + if (is(whitespace, c)) continue + else if (is(quote, c)) { + parser.q = c + parser.state = S.ATTRIB_VALUE_QUOTED + } else { + strictFail(parser, "Unquoted attribute value") + parser.state = S.ATTRIB_VALUE_UNQUOTED + parser.attribValue = c + } + continue + + case S.ATTRIB_VALUE_QUOTED: + if (c !== parser.q) { + if (c === "&") parser.state = S.ATTRIB_VALUE_ENTITY_Q + else parser.attribValue += c + continue + } + attrib(parser) + parser.q = "" + parser.state = S.ATTRIB_VALUE_CLOSED + continue + + case S.ATTRIB_VALUE_CLOSED: + if (is(whitespace, c)) { + parser.state = S.ATTRIB + } else if (c === ">") openTag(parser) + else if (c === "/") parser.state = S.OPEN_TAG_SLASH + else if (is(nameStart, c)) { + strictFail(parser, "No whitespace between attributes") + parser.attribName = c + parser.attribValue = "" + parser.state = S.ATTRIB_NAME + } else strictFail(parser, "Invalid attribute name") + continue + + case S.ATTRIB_VALUE_UNQUOTED: + if (not(attribEnd,c)) { + if (c === "&") parser.state = S.ATTRIB_VALUE_ENTITY_U + else parser.attribValue += c + continue + } + attrib(parser) + if (c === ">") openTag(parser) + else parser.state = S.ATTRIB + continue + + case S.CLOSE_TAG: + if (!parser.tagName) { + if (is(whitespace, c)) continue + else if (not(nameStart, c)) { + if (parser.script) { + parser.script += "</" + c + parser.state = S.SCRIPT + } else { + strictFail(parser, "Invalid tagname in closing tag.") + } + } else parser.tagName = c + } + else if (c === ">") closeTag(parser) + else if (is(nameBody, c)) parser.tagName += c + else if (parser.script) { + parser.script += "</" + parser.tagName + parser.tagName = "" + parser.state = S.SCRIPT + } else { + if (not(whitespace, c)) strictFail(parser, + "Invalid tagname in closing tag") + parser.state = S.CLOSE_TAG_SAW_WHITE + } + continue + + case S.CLOSE_TAG_SAW_WHITE: + if (is(whitespace, c)) continue + if (c === ">") closeTag(parser) + else strictFail(parser, "Invalid characters in closing tag") + continue + + case S.TEXT_ENTITY: + case S.ATTRIB_VALUE_ENTITY_Q: + case S.ATTRIB_VALUE_ENTITY_U: + switch(parser.state) { + case S.TEXT_ENTITY: + var returnState = S.TEXT, buffer = "textNode" + break + + case S.ATTRIB_VALUE_ENTITY_Q: + var returnState = S.ATTRIB_VALUE_QUOTED, buffer = "attribValue" + break + + case S.ATTRIB_VALUE_ENTITY_U: + var returnState = S.ATTRIB_VALUE_UNQUOTED, buffer = "attribValue" + break + } + if (c === ";") { + parser[buffer] += parseEntity(parser) + parser.entity = "" + parser.state = returnState + } + else if (is(entity, c)) parser.entity += c + else { + strictFail(parser, "Invalid character entity") + parser[buffer] += "&" + parser.entity + c + parser.entity = "" + parser.state = returnState + } + continue + + default: + throw new Error(parser, "Unknown state: " + parser.state) + } + } // while + // cdata blocks can get very big under normal conditions. emit and move on. + // if (parser.state === S.CDATA && parser.cdata) { + // emitNode(parser, "oncdata", parser.cdata) + // parser.cdata = "" + // } + if (parser.position >= parser.bufferCheckPosition) checkBufferLength(parser) + return parser +} + +/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */ +if (!String.fromCodePoint) { + (function() { + var stringFromCharCode = String.fromCharCode; + var floor = Math.floor; + var fromCodePoint = function() { + var MAX_SIZE = 0x4000; + var codeUnits = []; + var highSurrogate; + var lowSurrogate; + var index = -1; + var length = arguments.length; + if (!length) { + return ''; + } + var result = ''; + while (++index < length) { + var codePoint = Number(arguments[index]); + if ( + !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity` + codePoint < 0 || // not a valid Unicode code point + codePoint > 0x10FFFF || // not a valid Unicode code point + floor(codePoint) != codePoint // not an integer + ) { + throw RangeError('Invalid code point: ' + codePoint); + } + if (codePoint <= 0xFFFF) { // BMP code point + codeUnits.push(codePoint); + } else { // Astral code point; split in surrogate halves + // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + codePoint -= 0x10000; + highSurrogate = (codePoint >> 10) + 0xD800; + lowSurrogate = (codePoint % 0x400) + 0xDC00; + codeUnits.push(highSurrogate, lowSurrogate); + } + if (index + 1 == length || codeUnits.length > MAX_SIZE) { + result += stringFromCharCode.apply(null, codeUnits); + codeUnits.length = 0; + } + } + return result; + }; + if (Object.defineProperty) { + Object.defineProperty(String, 'fromCodePoint', { + 'value': fromCodePoint, + 'configurable': true, + 'writable': true + }); + } else { + String.fromCodePoint = fromCodePoint; + } + }()); +} + +})(typeof exports === "undefined" ? sax = {} : exports); diff --git a/node_modules/sax/package.json b/node_modules/sax/package.json new file mode 100644 index 000000000..ac7cf084f --- /dev/null +++ b/node_modules/sax/package.json @@ -0,0 +1,12 @@ +{ + "name": "sax", + "description": "An evented streaming XML parser in JavaScript", + "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)", + "version": "0.6.1", + "main": "lib/sax.js", + "license": "BSD", + "scripts": { + "test": "node test/index.js" + }, + "repository": "git://github.com/isaacs/sax-js.git" +} diff --git a/node_modules/sax/test/attribute-name.js b/node_modules/sax/test/attribute-name.js new file mode 100644 index 000000000..9ebbe58e7 --- /dev/null +++ b/node_modules/sax/test/attribute-name.js @@ -0,0 +1,33 @@ +require(__dirname).test( + { xml: "<root length='12345'></root>" + , expect: [ + ["attribute", { + name: "length" + , value: "12345" + , prefix: "" + , local: "length" + , uri: "" + }] + , ["opentag", { + name: "root" + , prefix: "" + , local: "root" + , uri: "" + , attributes: { + length: { + name: "length" + , value: "12345" + , prefix: "" + , local: "length" + , uri: "" + } + } + , ns: {} + , isSelfClosing: false + }] + , ["closetag", "root"] + ] + , strict: true + , opt: { xmlns: true } + } +) diff --git a/node_modules/sax/test/attribute-no-space.js b/node_modules/sax/test/attribute-no-space.js new file mode 100644 index 000000000..fe9aa465a --- /dev/null +++ b/node_modules/sax/test/attribute-no-space.js @@ -0,0 +1,75 @@ +// non-strict: no error +require(__dirname).test + ( { xml : '<root attr1="first"attr2="second"/>' + + , expect : + [ [ "attribute", { name: 'attr1', value: 'first' } ] + , [ "attribute", { name: 'attr2', value: 'second' } ] + , [ "opentag", { name: "root", attributes: {attr1: 'first', attr2: 'second'}, isSelfClosing: true } ] + , [ "closetag", "root" ] + ] + , strict : false + , opt : { lowercase: true } + } + ) + +// strict: should give an error, but still parse +require(__dirname).test + ( { xml : '<root attr1="first"attr2="second"/>' + + , expect : + [ [ "attribute", { name: 'attr1', value: 'first' } ] + , [ "error", "No whitespace between attributes\nLine: 0\nColumn: 20\nChar: a" ] + , [ "attribute", { name: 'attr2', value: 'second' } ] + , [ "opentag", { name: "root", attributes: {attr1: 'first', attr2: 'second'}, isSelfClosing: true } ] + , [ "closetag", "root" ] + ] + , strict : true + , opt : { } + } + ) + +// strict: other cases should still pass +require(__dirname).test + ( { xml : '<root attr1="first" attr2="second"/>' + + , expect : + [ [ "attribute", { name: 'attr1', value: 'first' } ] + , [ "attribute", { name: 'attr2', value: 'second' } ] + , [ "opentag", { name: "root", attributes: {attr1: 'first', attr2: 'second'}, isSelfClosing: true } ] + , [ "closetag", "root" ] + ] + , strict : true + , opt : { } + } + ) + +// strict: other cases should still pass +require(__dirname).test + ( { xml : '<root attr1="first"\nattr2="second"/>' + + , expect : + [ [ "attribute", { name: 'attr1', value: 'first' } ] + , [ "attribute", { name: 'attr2', value: 'second' } ] + , [ "opentag", { name: "root", attributes: {attr1: 'first', attr2: 'second'}, isSelfClosing: true } ] + , [ "closetag", "root" ] + ] + , strict : true + , opt : { } + } + ) + +// strict: other cases should still pass +require(__dirname).test + ( { xml : '<root attr1="first" attr2="second"/>' + + , expect : + [ [ "attribute", { name: 'attr1', value: 'first' } ] + , [ "attribute", { name: 'attr2', value: 'second' } ] + , [ "opentag", { name: "root", attributes: {attr1: 'first', attr2: 'second'}, isSelfClosing: true } ] + , [ "closetag", "root" ] + ] + , strict : true + , opt : { } + } + ) diff --git a/node_modules/sax/test/buffer-overrun.js b/node_modules/sax/test/buffer-overrun.js new file mode 100644 index 000000000..57d3c41fa --- /dev/null +++ b/node_modules/sax/test/buffer-overrun.js @@ -0,0 +1,26 @@ +// set this really low so that I don't have to put 64 MB of xml in here. +var sax = require("../lib/sax") +var bl = sax.MAX_BUFFER_LENGTH +sax.MAX_BUFFER_LENGTH = 5; + +require(__dirname).test({ + expect : [ + ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 15\nChar: "], + ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 30\nChar: "], + ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 45\nChar: "], + ["opentag", { + "name": "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", + "attributes": {}, + "isSelfClosing": false + }], + ["text", "yo"], + ["closetag", "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"] + ] +}).write("<abcdefghijklmn") + .write("opqrstuvwxyzABC") + .write("DEFGHIJKLMNOPQR") + .write("STUVWXYZ>") + .write("yo") + .write("</abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>") + .close(); +sax.MAX_BUFFER_LENGTH = bl diff --git a/node_modules/sax/test/case.js b/node_modules/sax/test/case.js new file mode 100644 index 000000000..9da78aba4 --- /dev/null +++ b/node_modules/sax/test/case.js @@ -0,0 +1,50 @@ +// default to uppercase +require(__dirname).test + ( { xml : + "<span class=\"test\" hello=\"world\"></span>" + , expect : + [ [ "attribute", { name: "CLASS", value: "test" } ] + , [ "attribute", { name: "HELLO", value: "world" } ] + , [ "opentag", { name: "SPAN", + attributes: { CLASS: "test", HELLO: "world" }, + isSelfClosing: false } ] + , [ "closetag", "SPAN" ] + ] + , strict : false + , opt : {} + } + ) + +// lowercase option : lowercase tag/attribute names +require(__dirname).test + ( { xml : + "<span class=\"test\" hello=\"world\"></span>" + , expect : + [ [ "attribute", { name: "class", value: "test" } ] + , [ "attribute", { name: "hello", value: "world" } ] + , [ "opentag", { name: "span", + attributes: { class: "test", hello: "world" }, + isSelfClosing: false } ] + , [ "closetag", "span" ] + ] + , strict : false + , opt : {lowercase:true} + } + ) + +// backward compatibility with old lowercasetags opt +require(__dirname).test + ( { xml : + "<span class=\"test\" hello=\"world\"></span>" + , expect : + [ [ "attribute", { name: "class", value: "test" } ] + , [ "attribute", { name: "hello", value: "world" } ] + , [ "opentag", { name: "span", + attributes: { class: "test", hello: "world" }, + isSelfClosing: false } ] + , [ "closetag", "span" ] + ] + , strict : false + , opt : {lowercasetags:true} + } + ) diff --git a/node_modules/sax/test/cdata-chunked.js b/node_modules/sax/test/cdata-chunked.js new file mode 100644 index 000000000..e3362bc8d --- /dev/null +++ b/node_modules/sax/test/cdata-chunked.js @@ -0,0 +1,11 @@ + +require(__dirname).test({ + expect : [ + ["opentag", {"name": "R","attributes": {}, "isSelfClosing": false}], + ["opencdata", undefined], + ["cdata", " this is character data "], + ["closecdata", undefined], + ["closetag", "R"] + ] +}).write("<r><![CDATA[ this is ").write("character data ").write("]]></r>").close(); + diff --git a/node_modules/sax/test/cdata-end-split.js b/node_modules/sax/test/cdata-end-split.js new file mode 100644 index 000000000..34f34500d --- /dev/null +++ b/node_modules/sax/test/cdata-end-split.js @@ -0,0 +1,15 @@ + +require(__dirname).test({ + expect : [ + ["opentag", {"name": "R","attributes": {}, "isSelfClosing": false}], + ["opencdata", undefined], + ["cdata", " this is "], + ["closecdata", undefined], + ["closetag", "R"] + ] +}) + .write("<r><![CDATA[ this is ]") + .write("]>") + .write("</r>") + .close(); + diff --git a/node_modules/sax/test/cdata-fake-end.js b/node_modules/sax/test/cdata-fake-end.js new file mode 100644 index 000000000..ccafa1b91 --- /dev/null +++ b/node_modules/sax/test/cdata-fake-end.js @@ -0,0 +1,28 @@ + +var p = require(__dirname).test({ + expect : [ + ["opentag", {"name": "R","attributes": {}, "isSelfClosing": false}], + ["opencdata", undefined], + ["cdata", "[[[[[[[[]]]]]]]]"], + ["closecdata", undefined], + ["closetag", "R"] + ] +}) +var x = "<r><![CDATA[[[[[[[[[]]]]]]]]]]></r>" +for (var i = 0; i < x.length ; i ++) { + p.write(x.charAt(i)) +} +p.close(); + + +var p2 = require(__dirname).test({ + expect : [ + ["opentag", {"name": "R","attributes": {}, "isSelfClosing": false}], + ["opencdata", undefined], + ["cdata", "[[[[[[[[]]]]]]]]"], + ["closecdata", undefined], + ["closetag", "R"] + ] +}) +var x = "<r><![CDATA[[[[[[[[[]]]]]]]]]]></r>" +p2.write(x).close(); diff --git a/node_modules/sax/test/cdata-multiple.js b/node_modules/sax/test/cdata-multiple.js new file mode 100644 index 000000000..8e2f9112b --- /dev/null +++ b/node_modules/sax/test/cdata-multiple.js @@ -0,0 +1,15 @@ + +require(__dirname).test({ + expect : [ + ["opentag", {"name": "R","attributes": {}, "isSelfClosing": false}], + ["opencdata", undefined], + ["cdata", " this is "], + ["closecdata", undefined], + ["opencdata", undefined], + ["cdata", "character data "], + ["closecdata", undefined], + ["closetag", "R"] + ] +}).write("<r><![CDATA[ this is ]]>").write("<![CDA").write("T").write("A[") + .write("character data ").write("]]></r>").close(); + diff --git a/node_modules/sax/test/cdata.js b/node_modules/sax/test/cdata.js new file mode 100644 index 000000000..31a8a304f --- /dev/null +++ b/node_modules/sax/test/cdata.js @@ -0,0 +1,10 @@ +require(__dirname).test({ + xml : "<r><![CDATA[ this is character data ]]></r>", + expect : [ + ["opentag", {"name": "R","attributes": {}, "isSelfClosing": false}], + ["opencdata", undefined], + ["cdata", " this is character data "], + ["closecdata", undefined], + ["closetag", "R"] + ] +}); diff --git a/node_modules/sax/test/cyrillic.js b/node_modules/sax/test/cyrillic.js new file mode 100644 index 000000000..f05dd1b23 --- /dev/null +++ b/node_modules/sax/test/cyrillic.js @@ -0,0 +1,8 @@ +require(__dirname).test({ + xml: '<Р>тест</Р>', + expect: [ + ['opentag', {'name':'Р', attributes:{}, isSelfClosing: false}], + ['text', 'тест'], + ['closetag', 'Р'] + ] +}); diff --git a/node_modules/sax/test/duplicate-attribute.js b/node_modules/sax/test/duplicate-attribute.js new file mode 100644 index 000000000..a21eb4191 --- /dev/null +++ b/node_modules/sax/test/duplicate-attribute.js @@ -0,0 +1,13 @@ +require(__dirname).test + ( { xml : + "<span id=\"hello\" id=\"there\"></span>" + , expect : + [ [ "attribute", { name: "ID", value: "hello" } ] + , [ "opentag", { name: "SPAN", + attributes: { ID: "hello" }, isSelfClosing: false } ] + , [ "closetag", "SPAN" ] + ] + , strict : false + , opt : {} + } + ) diff --git a/node_modules/sax/test/emoji.js b/node_modules/sax/test/emoji.js new file mode 100644 index 000000000..aa63a21ed --- /dev/null +++ b/node_modules/sax/test/emoji.js @@ -0,0 +1,12 @@ +// split high-order numeric attributes into surrogate pairs +require(__dirname).test + ( { xml : '<a>🔥</a>' + , expect : + [ [ 'opentag', { name: 'A', attributes: {}, isSelfClosing: false } ] + , [ 'text', '\ud83d\udd25' ] + , [ 'closetag', 'A' ] + ] + , strict : false + , opt : {} + } + ) diff --git a/node_modules/sax/test/end_empty_stream.js b/node_modules/sax/test/end_empty_stream.js new file mode 100644 index 000000000..f01cc8430 --- /dev/null +++ b/node_modules/sax/test/end_empty_stream.js @@ -0,0 +1,5 @@ +var assert = require('assert'); +var saxStream = require('../lib/sax').createStream(); +assert.doesNotThrow(function() { + saxStream.end(); +}); diff --git a/node_modules/sax/test/entities.js b/node_modules/sax/test/entities.js new file mode 100644 index 000000000..490166785 --- /dev/null +++ b/node_modules/sax/test/entities.js @@ -0,0 +1,10 @@ +require(__dirname).test({ + xml: '<r>⌋ ' + + '♠ © → & ' + + '< < < < < > ℜ ℘ €</r>', + expect: [ + ['opentag', {'name':'R', attributes:{}, isSelfClosing: false}], + ['text', '⌋ ♠ © → & < < < < < > ℜ ℘ €'], + ['closetag', 'R'] + ] +}); diff --git a/node_modules/sax/test/entity-mega.js b/node_modules/sax/test/entity-mega.js new file mode 100644 index 000000000..4759a0224 --- /dev/null +++ b/node_modules/sax/test/entity-mega.js @@ -0,0 +1,16 @@ +var sax = require('../'); +var xml = '<r>'; +var text = ''; +for (var i in sax.ENTITIES) { + xml += '&' + i + ';' + text += sax.ENTITIES[i] +} +xml += '</r>' +require(__dirname).test({ + xml: xml, + expect: [ + ['opentag', {'name':'R', attributes:{}, isSelfClosing: false}], + ['text', text], + ['closetag', 'R'] + ] +}); diff --git a/node_modules/sax/test/flush.js b/node_modules/sax/test/flush.js new file mode 100644 index 000000000..20f15e02e --- /dev/null +++ b/node_modules/sax/test/flush.js @@ -0,0 +1,13 @@ +var parser = require(__dirname).test({ + expect: [ + ['opentag', {'name':'T', attributes:{}, isSelfClosing: false}], + ['text', 'flush'], + ['text', 'rest'], + ['closetag', 'T'], + ] +}); + +parser.write('<T>flush'); +parser.flush(); +parser.write('rest</T>'); +parser.close(); diff --git a/node_modules/sax/test/index.js b/node_modules/sax/test/index.js new file mode 100644 index 000000000..d4e1ef4f9 --- /dev/null +++ b/node_modules/sax/test/index.js @@ -0,0 +1,86 @@ +var globalsBefore = JSON.stringify(Object.keys(global)) + , util = require("util") + , assert = require("assert") + , fs = require("fs") + , path = require("path") + , sax = require("../lib/sax") + +exports.sax = sax + +// handy way to do simple unit tests +// if the options contains an xml string, it'll be written and the parser closed. +// otherwise, it's assumed that the test will write and close. +exports.test = function test (options) { + var xml = options.xml + , parser = sax.parser(options.strict, options.opt) + , expect = options.expect + , e = 0 + sax.EVENTS.forEach(function (ev) { + parser["on" + ev] = function (n) { + if (process.env.DEBUG) { + console.error({ expect: expect[e] + , actual: [ev, n] }) + } + if (e >= expect.length && (ev === "end" || ev === "ready")) return + assert.ok( e < expect.length, + "expectation #"+e+" "+util.inspect(expect[e])+"\n"+ + "Unexpected event: "+ev+" "+(n ? util.inspect(n) : "")) + var inspected = n instanceof Error ? "\n"+ n.message : util.inspect(n) + assert.equal(ev, expect[e][0], + "expectation #"+e+"\n"+ + "Didn't get expected event\n"+ + "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+ + "actual: "+ev+" "+inspected+"\n") + if (ev === "error") assert.equal(n.message, expect[e][1]) + else assert.deepEqual(n, expect[e][1], + "expectation #"+e+"\n"+ + "Didn't get expected argument\n"+ + "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+ + "actual: "+ev+" "+inspected+"\n") + e++ + if (ev === "error") parser.resume() + } + }) + if (xml) parser.write(xml).close() + return parser +} + +if (module === require.main) { + var running = true + , failures = 0 + + function fail (file, er) { + util.error("Failed: "+file) + util.error(er.stack || er.message) + failures ++ + } + + fs.readdir(__dirname, function (error, files) { + files = files.filter(function (file) { + return (/\.js$/.exec(file) && file !== 'index.js') + }) + var n = files.length + , i = 0 + console.log("0.." + n) + files.forEach(function (file) { + // run this test. + try { + require(path.resolve(__dirname, file)) + var globalsAfter = JSON.stringify(Object.keys(global)) + if (globalsAfter !== globalsBefore) { + var er = new Error("new globals introduced\n"+ + "expected: "+globalsBefore+"\n"+ + "actual: "+globalsAfter) + globalsBefore = globalsAfter + throw er + } + console.log("ok " + (++i) + " - " + file) + } catch (er) { + console.log("not ok "+ (++i) + " - " + file) + fail(file, er) + } + }) + if (!failures) return console.log("#all pass") + else return console.error(failures + " failure" + (failures > 1 ? "s" : "")) + }) +} diff --git a/node_modules/sax/test/issue-23.js b/node_modules/sax/test/issue-23.js new file mode 100644 index 000000000..ccbdc3512 --- /dev/null +++ b/node_modules/sax/test/issue-23.js @@ -0,0 +1,43 @@ + +require(__dirname).test + ( { xml : + "<compileClassesResponse>"+ + "<result>"+ + "<bodyCrc>653724009</bodyCrc>"+ + "<column>-1</column>"+ + "<id>01pG0000002KoSUIA0</id>"+ + "<line>-1</line>"+ + "<name>CalendarController</name>"+ + "<success>true</success>"+ + "</result>"+ + "</compileClassesResponse>" + + , expect : + [ [ "opentag", { name: "COMPILECLASSESRESPONSE", attributes: {}, isSelfClosing: false } ] + , [ "opentag", { name : "RESULT", attributes: {}, isSelfClosing: false } ] + , [ "opentag", { name: "BODYCRC", attributes: {}, isSelfClosing: false } ] + , [ "text", "653724009" ] + , [ "closetag", "BODYCRC" ] + , [ "opentag", { name: "COLUMN", attributes: {}, isSelfClosing: false } ] + , [ "text", "-1" ] + , [ "closetag", "COLUMN" ] + , [ "opentag", { name: "ID", attributes: {}, isSelfClosing: false } ] + , [ "text", "01pG0000002KoSUIA0" ] + , [ "closetag", "ID" ] + , [ "opentag", {name: "LINE", attributes: {}, isSelfClosing: false } ] + , [ "text", "-1" ] + , [ "closetag", "LINE" ] + , [ "opentag", {name: "NAME", attributes: {}, isSelfClosing: false } ] + , [ "text", "CalendarController" ] + , [ "closetag", "NAME" ] + , [ "opentag", {name: "SUCCESS", attributes: {}, isSelfClosing: false } ] + , [ "text", "true" ] + , [ "closetag", "SUCCESS" ] + , [ "closetag", "RESULT" ] + , [ "closetag", "COMPILECLASSESRESPONSE" ] + ] + , strict : false + , opt : {} + } + ) + diff --git a/node_modules/sax/test/issue-30.js b/node_modules/sax/test/issue-30.js new file mode 100644 index 000000000..771b14e92 --- /dev/null +++ b/node_modules/sax/test/issue-30.js @@ -0,0 +1,24 @@ +// https://github.com/isaacs/sax-js/issues/33 +require(__dirname).test + ( { xml : "<xml>\n"+ + "<!-- \n"+ + " comment with a single dash- in it\n"+ + "-->\n"+ + "<data/>\n"+ + "</xml>" + + , expect : + [ [ "opentag", { name: "xml", attributes: {}, isSelfClosing: false } ] + , [ "text", "\n" ] + , [ "comment", " \n comment with a single dash- in it\n" ] + , [ "text", "\n" ] + , [ "opentag", { name: "data", attributes: {}, isSelfClosing: true } ] + , [ "closetag", "data" ] + , [ "text", "\n" ] + , [ "closetag", "xml" ] + ] + , strict : true + , opt : {} + } + ) + diff --git a/node_modules/sax/test/issue-35.js b/node_modules/sax/test/issue-35.js new file mode 100644 index 000000000..64d67b3f6 --- /dev/null +++ b/node_modules/sax/test/issue-35.js @@ -0,0 +1,15 @@ +// https://github.com/isaacs/sax-js/issues/35 +require(__dirname).test + ( { xml : "<xml>

\n"+ + "</xml>" + + , expect : + [ [ "opentag", { name: "xml", attributes: {}, isSelfClosing: false } ] + , [ "text", "\r\r\n" ] + , [ "closetag", "xml" ] + ] + , strict : true + , opt : {} + } + ) + diff --git a/node_modules/sax/test/issue-47.js b/node_modules/sax/test/issue-47.js new file mode 100644 index 000000000..661584ab1 --- /dev/null +++ b/node_modules/sax/test/issue-47.js @@ -0,0 +1,12 @@ +// https://github.com/isaacs/sax-js/issues/47 +require(__dirname).test + ( { xml : '<a href="query.svc?x=1&y=2&z=3"/>' + , expect : [ + [ "attribute", { name:'HREF', value:"query.svc?x=1&y=2&z=3"} ], + [ "opentag", { name: "A", attributes: { HREF:"query.svc?x=1&y=2&z=3"}, isSelfClosing: true } ], + [ "closetag", "A" ] + ] + , opt : {} + } + ) + diff --git a/node_modules/sax/test/issue-49.js b/node_modules/sax/test/issue-49.js new file mode 100644 index 000000000..ff2fbf750 --- /dev/null +++ b/node_modules/sax/test/issue-49.js @@ -0,0 +1,31 @@ +// https://github.com/isaacs/sax-js/issues/49 +require(__dirname).test + ( { xml : "<xml><script>hello world</script></xml>" + , expect : + [ [ "opentag", { name: "xml", attributes: {}, isSelfClosing: false } ] + , [ "opentag", { name: "script", attributes: {}, isSelfClosing: false } ] + , [ "text", "hello world" ] + , [ "closetag", "script" ] + , [ "closetag", "xml" ] + ] + , strict : false + , opt : { lowercasetags: true, noscript: true } + } + ) + +require(__dirname).test + ( { xml : "<xml><script><![CDATA[hello world]]></script></xml>" + , expect : + [ [ "opentag", { name: "xml", attributes: {}, isSelfClosing: false } ] + , [ "opentag", { name: "script", attributes: {}, isSelfClosing: false } ] + , [ "opencdata", undefined ] + , [ "cdata", "hello world" ] + , [ "closecdata", undefined ] + , [ "closetag", "script" ] + , [ "closetag", "xml" ] + ] + , strict : false + , opt : { lowercasetags: true, noscript: true } + } + ) + diff --git a/node_modules/sax/test/issue-84.js b/node_modules/sax/test/issue-84.js new file mode 100644 index 000000000..0e7ee699a --- /dev/null +++ b/node_modules/sax/test/issue-84.js @@ -0,0 +1,13 @@ +// https://github.com/isaacs/sax-js/issues/49 +require(__dirname).test + ( { xml : "<?has unbalanced \"quotes?><xml>body</xml>" + , expect : + [ [ "processinginstruction", { name: "has", body: "unbalanced \"quotes" } ], + [ "opentag", { name: "xml", attributes: {}, isSelfClosing: false } ] + , [ "text", "body" ] + , [ "closetag", "xml" ] + ] + , strict : false + , opt : { lowercasetags: true, noscript: true } + } + ) diff --git a/node_modules/sax/test/parser-position.js b/node_modules/sax/test/parser-position.js new file mode 100644 index 000000000..e4a68b1e9 --- /dev/null +++ b/node_modules/sax/test/parser-position.js @@ -0,0 +1,28 @@ +var sax = require("../lib/sax"), + assert = require("assert") + +function testPosition(chunks, expectedEvents) { + var parser = sax.parser(); + expectedEvents.forEach(function(expectation) { + parser['on' + expectation[0]] = function() { + for (var prop in expectation[1]) { + assert.equal(parser[prop], expectation[1][prop]); + } + } + }); + chunks.forEach(function(chunk) { + parser.write(chunk); + }); +}; + +testPosition(['<div>abcdefgh</div>'], + [ ['opentag', { position: 5, startTagPosition: 1 }] + , ['text', { position: 19, startTagPosition: 14 }] + , ['closetag', { position: 19, startTagPosition: 14 }] + ]); + +testPosition(['<div>abcde','fgh</div>'], + [ ['opentag', { position: 5, startTagPosition: 1 }] + , ['text', { position: 19, startTagPosition: 14 }] + , ['closetag', { position: 19, startTagPosition: 14 }] + ]); diff --git a/node_modules/sax/test/script-close-better.js b/node_modules/sax/test/script-close-better.js new file mode 100644 index 000000000..f4887b9a0 --- /dev/null +++ b/node_modules/sax/test/script-close-better.js @@ -0,0 +1,12 @@ +require(__dirname).test({ + xml : "<html><head><script>'<div>foo</div></'</script></head></html>", + expect : [ + ["opentag", {"name": "HTML","attributes": {}, isSelfClosing: false}], + ["opentag", {"name": "HEAD","attributes": {}, isSelfClosing: false}], + ["opentag", {"name": "SCRIPT","attributes": {}, isSelfClosing: false}], + ["script", "'<div>foo</div></'"], + ["closetag", "SCRIPT"], + ["closetag", "HEAD"], + ["closetag", "HTML"] + ] +}); diff --git a/node_modules/sax/test/script.js b/node_modules/sax/test/script.js new file mode 100644 index 000000000..fbda1f6c6 --- /dev/null +++ b/node_modules/sax/test/script.js @@ -0,0 +1,12 @@ +require(__dirname).test({ + xml : "<html><head><script>if (1 < 0) { console.log('elo there'); }</script></head></html>", + expect : [ + ["opentag", {"name": "HTML","attributes": {}, "isSelfClosing": false}], + ["opentag", {"name": "HEAD","attributes": {}, "isSelfClosing": false}], + ["opentag", {"name": "SCRIPT","attributes": {}, "isSelfClosing": false}], + ["script", "if (1 < 0) { console.log('elo there'); }"], + ["closetag", "SCRIPT"], + ["closetag", "HEAD"], + ["closetag", "HTML"] + ] +}); diff --git a/node_modules/sax/test/self-closing-child-strict.js b/node_modules/sax/test/self-closing-child-strict.js new file mode 100644 index 000000000..3d6e98520 --- /dev/null +++ b/node_modules/sax/test/self-closing-child-strict.js @@ -0,0 +1,44 @@ + +require(__dirname).test({ + xml : + "<root>"+ + "<child>" + + "<haha />" + + "</child>" + + "<monkey>" + + "=(|)" + + "</monkey>" + + "</root>", + expect : [ + ["opentag", { + "name": "root", + "attributes": {}, + "isSelfClosing": false + }], + ["opentag", { + "name": "child", + "attributes": {}, + "isSelfClosing": false + }], + ["opentag", { + "name": "haha", + "attributes": {}, + "isSelfClosing": true + }], + ["closetag", "haha"], + ["closetag", "child"], + ["opentag", { + "name": "monkey", + "attributes": {}, + "isSelfClosing": false + }], + ["text", "=(|)"], + ["closetag", "monkey"], + ["closetag", "root"], + ["end"], + ["ready"] + ], + strict : true, + opt : {} +}); + diff --git a/node_modules/sax/test/self-closing-child.js b/node_modules/sax/test/self-closing-child.js new file mode 100644 index 000000000..f31c36646 --- /dev/null +++ b/node_modules/sax/test/self-closing-child.js @@ -0,0 +1,44 @@ + +require(__dirname).test({ + xml : + "<root>"+ + "<child>" + + "<haha />" + + "</child>" + + "<monkey>" + + "=(|)" + + "</monkey>" + + "</root>", + expect : [ + ["opentag", { + "name": "ROOT", + "attributes": {}, + "isSelfClosing": false + }], + ["opentag", { + "name": "CHILD", + "attributes": {}, + "isSelfClosing": false + }], + ["opentag", { + "name": "HAHA", + "attributes": {}, + "isSelfClosing": true + }], + ["closetag", "HAHA"], + ["closetag", "CHILD"], + ["opentag", { + "name": "MONKEY", + "attributes": {}, + "isSelfClosing": false + }], + ["text", "=(|)"], + ["closetag", "MONKEY"], + ["closetag", "ROOT"], + ["end"], + ["ready"] + ], + strict : false, + opt : {} +}); + diff --git a/node_modules/sax/test/self-closing-tag.js b/node_modules/sax/test/self-closing-tag.js new file mode 100644 index 000000000..d1d8b7c82 --- /dev/null +++ b/node_modules/sax/test/self-closing-tag.js @@ -0,0 +1,25 @@ + +require(__dirname).test({ + xml : + "<root> "+ + "<haha /> "+ + "<haha/> "+ + "<monkey> "+ + "=(|) "+ + "</monkey>"+ + "</root> ", + expect : [ + ["opentag", {name:"ROOT", attributes:{}, isSelfClosing: false}], + ["opentag", {name:"HAHA", attributes:{}, isSelfClosing: true}], + ["closetag", "HAHA"], + ["opentag", {name:"HAHA", attributes:{}, isSelfClosing: true}], + ["closetag", "HAHA"], + // ["opentag", {name:"HAHA", attributes:{}}], + // ["closetag", "HAHA"], + ["opentag", {name:"MONKEY", attributes:{}, isSelfClosing: false}], + ["text", "=(|)"], + ["closetag", "MONKEY"], + ["closetag", "ROOT"] + ], + opt : { trim : true } +});
\ No newline at end of file diff --git a/node_modules/sax/test/stray-ending.js b/node_modules/sax/test/stray-ending.js new file mode 100644 index 000000000..bec467b22 --- /dev/null +++ b/node_modules/sax/test/stray-ending.js @@ -0,0 +1,17 @@ +// stray ending tags should just be ignored in non-strict mode. +// https://github.com/isaacs/sax-js/issues/32 +require(__dirname).test + ( { xml : + "<a><b></c></b></a>" + , expect : + [ [ "opentag", { name: "A", attributes: {}, isSelfClosing: false } ] + , [ "opentag", { name: "B", attributes: {}, isSelfClosing: false } ] + , [ "text", "</c>" ] + , [ "closetag", "B" ] + , [ "closetag", "A" ] + ] + , strict : false + , opt : {} + } + ) + diff --git a/node_modules/sax/test/trailing-attribute-no-value.js b/node_modules/sax/test/trailing-attribute-no-value.js new file mode 100644 index 000000000..222837f8f --- /dev/null +++ b/node_modules/sax/test/trailing-attribute-no-value.js @@ -0,0 +1,10 @@ + +require(__dirname).test({ + xml : + "<root attrib>", + expect : [ + ["attribute", {name:"ATTRIB", value:"attrib"}], + ["opentag", {name:"ROOT", attributes:{"ATTRIB":"attrib"}, isSelfClosing: false}] + ], + opt : { trim : true } +}); diff --git a/node_modules/sax/test/trailing-non-whitespace.js b/node_modules/sax/test/trailing-non-whitespace.js new file mode 100644 index 000000000..619578b17 --- /dev/null +++ b/node_modules/sax/test/trailing-non-whitespace.js @@ -0,0 +1,18 @@ + +require(__dirname).test({ + xml : "<span>Welcome,</span> to monkey land", + expect : [ + ["opentag", { + "name": "SPAN", + "attributes": {}, + isSelfClosing: false + }], + ["text", "Welcome,"], + ["closetag", "SPAN"], + ["text", " to monkey land"], + ["end"], + ["ready"] + ], + strict : false, + opt : {} +}); diff --git a/node_modules/sax/test/unclosed-root.js b/node_modules/sax/test/unclosed-root.js new file mode 100644 index 000000000..f4eeac61b --- /dev/null +++ b/node_modules/sax/test/unclosed-root.js @@ -0,0 +1,11 @@ +require(__dirname).test + ( { xml : "<root>" + + , expect : + [ [ "opentag", { name: "root", attributes: {}, isSelfClosing: false } ] + , [ "error", "Unclosed root tag\nLine: 0\nColumn: 6\nChar: " ] + ] + , strict : true + , opt : {} + } + ) diff --git a/node_modules/sax/test/unquoted.js b/node_modules/sax/test/unquoted.js new file mode 100644 index 000000000..b3a9a8122 --- /dev/null +++ b/node_modules/sax/test/unquoted.js @@ -0,0 +1,18 @@ +// unquoted attributes should be ok in non-strict mode +// https://github.com/isaacs/sax-js/issues/31 +require(__dirname).test + ( { xml : + "<span class=test hello=world></span>" + , expect : + [ [ "attribute", { name: "CLASS", value: "test" } ] + , [ "attribute", { name: "HELLO", value: "world" } ] + , [ "opentag", { name: "SPAN", + attributes: { CLASS: "test", HELLO: "world" }, + isSelfClosing: false } ] + , [ "closetag", "SPAN" ] + ] + , strict : false + , opt : {} + } + ) + diff --git a/node_modules/sax/test/utf8-split.js b/node_modules/sax/test/utf8-split.js new file mode 100644 index 000000000..e22bc1004 --- /dev/null +++ b/node_modules/sax/test/utf8-split.js @@ -0,0 +1,32 @@ +var assert = require('assert') +var saxStream = require('../lib/sax').createStream() + +var b = new Buffer('误') + +saxStream.on('text', function(text) { + assert.equal(text, b.toString()) +}) + +saxStream.write(new Buffer('<test><a>')) +saxStream.write(b.slice(0, 1)) +saxStream.write(b.slice(1)) +saxStream.write(new Buffer('</a><b>')) +saxStream.write(b.slice(0, 2)) +saxStream.write(b.slice(2)) +saxStream.write(new Buffer('</b><c>')) +saxStream.write(b) +saxStream.write(new Buffer('</c>')) +saxStream.write(Buffer.concat([new Buffer('<d>'), b.slice(0, 1)])) +saxStream.end(Buffer.concat([b.slice(1), new Buffer('</d></test>')])) + +var saxStream2 = require('../lib/sax').createStream() + +saxStream2.on('text', function(text) { + assert.equal(text, '�') +}); + +saxStream2.write(new Buffer('<e>')); +saxStream2.write(new Buffer([0xC0])); +saxStream2.write(new Buffer('</e>')); +saxStream2.write(Buffer.concat([new Buffer('<f>'), b.slice(0,1)])); +saxStream2.end(); diff --git a/node_modules/sax/test/xmlns-as-tag-name.js b/node_modules/sax/test/xmlns-as-tag-name.js new file mode 100644 index 000000000..99142ca69 --- /dev/null +++ b/node_modules/sax/test/xmlns-as-tag-name.js @@ -0,0 +1,15 @@ + +require(__dirname).test + ( { xml : + "<xmlns/>" + , expect : + [ [ "opentag", { name: "xmlns", uri: "", prefix: "", local: "xmlns", + attributes: {}, ns: {}, + isSelfClosing: true} + ], + ["closetag", "xmlns"] + ] + , strict : true + , opt : { xmlns: true } + } + ); diff --git a/node_modules/sax/test/xmlns-issue-41.js b/node_modules/sax/test/xmlns-issue-41.js new file mode 100644 index 000000000..17ab45a0f --- /dev/null +++ b/node_modules/sax/test/xmlns-issue-41.js @@ -0,0 +1,68 @@ +var t = require(__dirname) + + , xmls = // should be the same both ways. + [ "<parent xmlns:a='http://ATTRIBUTE' a:attr='value' />" + , "<parent a:attr='value' xmlns:a='http://ATTRIBUTE' />" ] + + , ex1 = + [ [ "opennamespace" + , { prefix: "a" + , uri: "http://ATTRIBUTE" + } + ] + , [ "attribute" + , { name: "xmlns:a" + , value: "http://ATTRIBUTE" + , prefix: "xmlns" + , local: "a" + , uri: "http://www.w3.org/2000/xmlns/" + } + ] + , [ "attribute" + , { name: "a:attr" + , local: "attr" + , prefix: "a" + , uri: "http://ATTRIBUTE" + , value: "value" + } + ] + , [ "opentag" + , { name: "parent" + , uri: "" + , prefix: "" + , local: "parent" + , attributes: + { "a:attr": + { name: "a:attr" + , local: "attr" + , prefix: "a" + , uri: "http://ATTRIBUTE" + , value: "value" + } + , "xmlns:a": + { name: "xmlns:a" + , local: "a" + , prefix: "xmlns" + , uri: "http://www.w3.org/2000/xmlns/" + , value: "http://ATTRIBUTE" + } + } + , ns: {"a": "http://ATTRIBUTE"} + , isSelfClosing: true + } + ] + , ["closetag", "parent"] + , ["closenamespace", { prefix: "a", uri: "http://ATTRIBUTE" }] + ] + + // swap the order of elements 2 and 1 + , ex2 = [ex1[0], ex1[2], ex1[1]].concat(ex1.slice(3)) + , expected = [ex1, ex2] + +xmls.forEach(function (x, i) { + t.test({ xml: x + , expect: expected[i] + , strict: true + , opt: { xmlns: true } + }) +}) diff --git a/node_modules/sax/test/xmlns-rebinding.js b/node_modules/sax/test/xmlns-rebinding.js new file mode 100644 index 000000000..07e042553 --- /dev/null +++ b/node_modules/sax/test/xmlns-rebinding.js @@ -0,0 +1,63 @@ + +require(__dirname).test + ( { xml : + "<root xmlns:x='x1' xmlns:y='y1' x:a='x1' y:a='y1'>"+ + "<rebind xmlns:x='x2'>"+ + "<check x:a='x2' y:a='y1'/>"+ + "</rebind>"+ + "<check x:a='x1' y:a='y1'/>"+ + "</root>" + + , expect : + [ [ "opennamespace", { prefix: "x", uri: "x1" } ] + , [ "opennamespace", { prefix: "y", uri: "y1" } ] + , [ "attribute", { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ] + , [ "attribute", { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } ] + , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ] + , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] + , [ "opentag", { name: "root", uri: "", prefix: "", local: "root", + attributes: { "xmlns:x": { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } + , "xmlns:y": { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } + , "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } + , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, + ns: { x: 'x1', y: 'y1' }, + isSelfClosing: false } ] + + , [ "opennamespace", { prefix: "x", uri: "x2" } ] + , [ "attribute", { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ] + , [ "opentag", { name: "rebind", uri: "", prefix: "", local: "rebind", + attributes: { "xmlns:x": { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } }, + ns: { x: 'x2' }, + isSelfClosing: false } ] + + , [ "attribute", { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } ] + , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] + , [ "opentag", { name: "check", uri: "", prefix: "", local: "check", + attributes: { "x:a": { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } + , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, + ns: { x: 'x2' }, + isSelfClosing: true } ] + + , [ "closetag", "check" ] + + , [ "closetag", "rebind" ] + , [ "closenamespace", { prefix: "x", uri: "x2" } ] + + , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ] + , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] + , [ "opentag", { name: "check", uri: "", prefix: "", local: "check", + attributes: { "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } + , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, + ns: { x: 'x1', y: 'y1' }, + isSelfClosing: true } ] + , [ "closetag", "check" ] + + , [ "closetag", "root" ] + , [ "closenamespace", { prefix: "x", uri: "x1" } ] + , [ "closenamespace", { prefix: "y", uri: "y1" } ] + ] + , strict : true + , opt : { xmlns: true } + } + ) + diff --git a/node_modules/sax/test/xmlns-strict.js b/node_modules/sax/test/xmlns-strict.js new file mode 100644 index 000000000..b5e3e5188 --- /dev/null +++ b/node_modules/sax/test/xmlns-strict.js @@ -0,0 +1,74 @@ + +require(__dirname).test + ( { xml : + "<root>"+ + "<plain attr='normal'/>"+ + "<ns1 xmlns='uri:default'>"+ + "<plain attr='normal'/>"+ + "</ns1>"+ + "<ns2 xmlns:a='uri:nsa'>"+ + "<plain attr='normal'/>"+ + "<a:ns a:attr='namespaced'/>"+ + "</ns2>"+ + "</root>" + + , expect : + [ [ "opentag", { name: "root", prefix: "", local: "root", uri: "", + attributes: {}, ns: {}, isSelfClosing: false } ] + + , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] + , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "", + attributes: { "attr": { name: "attr", value: "normal", uri: "", prefix: "", local: "attr", uri: "" } }, + ns: {}, isSelfClosing: true } ] + , [ "closetag", "plain" ] + + , [ "opennamespace", { prefix: "", uri: "uri:default" } ] + + , [ "attribute", { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } ] + , [ "opentag", { name: "ns1", prefix: "", local: "ns1", uri: "uri:default", + attributes: { "xmlns": { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } }, + ns: { "": "uri:default" }, isSelfClosing: false } ] + + , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] + , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "uri:default", ns: { '': 'uri:default' }, + attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } }, + isSelfClosing: true } ] + , [ "closetag", "plain" ] + + , [ "closetag", "ns1" ] + + , [ "closenamespace", { prefix: "", uri: "uri:default" } ] + + , [ "opennamespace", { prefix: "a", uri: "uri:nsa" } ] + + , [ "attribute", { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } ] + + , [ "opentag", { name: "ns2", prefix: "", local: "ns2", uri: "", + attributes: { "xmlns:a": { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } }, + ns: { a: "uri:nsa" }, isSelfClosing: false } ] + + , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] + , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "", + attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } }, + ns: { a: 'uri:nsa' }, + isSelfClosing: true } ] + , [ "closetag", "plain" ] + + , [ "attribute", { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } ] + , [ "opentag", { name: "a:ns", prefix: "a", local: "ns", uri: "uri:nsa", + attributes: { "a:attr": { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } }, + ns: { a: 'uri:nsa' }, + isSelfClosing: true } ] + , [ "closetag", "a:ns" ] + + , [ "closetag", "ns2" ] + + , [ "closenamespace", { prefix: "a", uri: "uri:nsa" } ] + + , [ "closetag", "root" ] + ] + , strict : true + , opt : { xmlns: true } + } + ) + diff --git a/node_modules/sax/test/xmlns-unbound-element.js b/node_modules/sax/test/xmlns-unbound-element.js new file mode 100644 index 000000000..9d031a2bd --- /dev/null +++ b/node_modules/sax/test/xmlns-unbound-element.js @@ -0,0 +1,33 @@ +require(__dirname).test( + { strict : true + , opt : { xmlns: true } + , expect : + [ [ "error", "Unbound namespace prefix: \"unbound:root\"\nLine: 0\nColumn: 15\nChar: >"] + , [ "opentag", { name: "unbound:root", uri: "unbound", prefix: "unbound", local: "root" + , attributes: {}, ns: {}, isSelfClosing: true } ] + , [ "closetag", "unbound:root" ] + ] + } +).write("<unbound:root/>"); + +require(__dirname).test( + { strict : true + , opt : { xmlns: true } + , expect : + [ [ "opennamespace", { prefix: "unbound", uri: "someuri" } ] + , [ "attribute", { name: 'xmlns:unbound', value: 'someuri' + , prefix: 'xmlns', local: 'unbound' + , uri: 'http://www.w3.org/2000/xmlns/' } ] + , [ "opentag", { name: "unbound:root", uri: "someuri", prefix: "unbound", local: "root" + , attributes: { 'xmlns:unbound': { + name: 'xmlns:unbound' + , value: 'someuri' + , prefix: 'xmlns' + , local: 'unbound' + , uri: 'http://www.w3.org/2000/xmlns/' } } + , ns: { "unbound": "someuri" }, isSelfClosing: true } ] + , [ "closetag", "unbound:root" ] + , [ "closenamespace", { prefix: 'unbound', uri: 'someuri' }] + ] + } +).write("<unbound:root xmlns:unbound=\"someuri\"/>"); diff --git a/node_modules/sax/test/xmlns-unbound.js b/node_modules/sax/test/xmlns-unbound.js new file mode 100644 index 000000000..b740e2612 --- /dev/null +++ b/node_modules/sax/test/xmlns-unbound.js @@ -0,0 +1,15 @@ + +require(__dirname).test( + { strict : true + , opt : { xmlns: true } + , expect : + [ ["error", "Unbound namespace prefix: \"unbound\"\nLine: 0\nColumn: 28\nChar: >"] + + , [ "attribute", { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } ] + , [ "opentag", { name: "root", uri: "", prefix: "", local: "root", + attributes: { "unbound:attr": { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } }, + ns: {}, isSelfClosing: true } ] + , [ "closetag", "root" ] + ] + } +).write("<root unbound:attr='value'/>") diff --git a/node_modules/sax/test/xmlns-xml-default-ns.js b/node_modules/sax/test/xmlns-xml-default-ns.js new file mode 100644 index 000000000..b1984d255 --- /dev/null +++ b/node_modules/sax/test/xmlns-xml-default-ns.js @@ -0,0 +1,31 @@ +var xmlns_attr = +{ + name: "xmlns", value: "http://foo", prefix: "xmlns", + local: "", uri : "http://www.w3.org/2000/xmlns/" +}; + +var attr_attr = +{ + name: "attr", value: "bar", prefix: "", + local : "attr", uri : "" +}; + + +require(__dirname).test + ( { xml : + "<elm xmlns='http://foo' attr='bar'/>" + , expect : + [ [ "opennamespace", { prefix: "", uri: "http://foo" } ] + , [ "attribute", xmlns_attr ] + , [ "attribute", attr_attr ] + , [ "opentag", { name: "elm", prefix: "", local: "elm", uri : "http://foo", + ns : { "" : "http://foo" }, + attributes: { xmlns: xmlns_attr, attr: attr_attr }, + isSelfClosing: true } ] + , [ "closetag", "elm" ] + , [ "closenamespace", { prefix: "", uri: "http://foo"} ] + ] + , strict : true + , opt : {xmlns: true} + } + ) diff --git a/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js b/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js new file mode 100644 index 000000000..e41f21875 --- /dev/null +++ b/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js @@ -0,0 +1,36 @@ +require(__dirname).test( + { xml : "<root xml:lang='en'/>" + , expect : + [ [ "attribute" + , { name: "xml:lang" + , local: "lang" + , prefix: "xml" + , uri: "http://www.w3.org/XML/1998/namespace" + , value: "en" + } + ] + , [ "opentag" + , { name: "root" + , uri: "" + , prefix: "" + , local: "root" + , attributes: + { "xml:lang": + { name: "xml:lang" + , local: "lang" + , prefix: "xml" + , uri: "http://www.w3.org/XML/1998/namespace" + , value: "en" + } + } + , ns: {} + , isSelfClosing: true + } + ] + , ["closetag", "root"] + ] + , strict : true + , opt : { xmlns: true } + } +) + diff --git a/node_modules/sax/test/xmlns-xml-default-prefix.js b/node_modules/sax/test/xmlns-xml-default-prefix.js new file mode 100644 index 000000000..a85b4787f --- /dev/null +++ b/node_modules/sax/test/xmlns-xml-default-prefix.js @@ -0,0 +1,21 @@ +require(__dirname).test( + { xml : "<xml:root/>" + , expect : + [ + [ "opentag" + , { name: "xml:root" + , uri: "http://www.w3.org/XML/1998/namespace" + , prefix: "xml" + , local: "root" + , attributes: {} + , ns: {} + , isSelfClosing: true + } + ] + , ["closetag", "xml:root"] + ] + , strict : true + , opt : { xmlns: true } + } +) + diff --git a/node_modules/sax/test/xmlns-xml-default-redefine.js b/node_modules/sax/test/xmlns-xml-default-redefine.js new file mode 100644 index 000000000..d35d5a0cb --- /dev/null +++ b/node_modules/sax/test/xmlns-xml-default-redefine.js @@ -0,0 +1,41 @@ +require(__dirname).test( + { xml : "<xml:root xmlns:xml='ERROR'/>" + , expect : + [ ["error" + , "xml: prefix must be bound to http://www.w3.org/XML/1998/namespace\n" + + "Actual: ERROR\n" + + "Line: 0\nColumn: 27\nChar: '" + ] + , [ "attribute" + , { name: "xmlns:xml" + , local: "xml" + , prefix: "xmlns" + , uri: "http://www.w3.org/2000/xmlns/" + , value: "ERROR" + } + ] + , [ "opentag" + , { name: "xml:root" + , uri: "http://www.w3.org/XML/1998/namespace" + , prefix: "xml" + , local: "root" + , attributes: + { "xmlns:xml": + { name: "xmlns:xml" + , local: "xml" + , prefix: "xmlns" + , uri: "http://www.w3.org/2000/xmlns/" + , value: "ERROR" + } + } + , ns: {} + , isSelfClosing: true + } + ] + , ["closetag", "xml:root"] + ] + , strict : true + , opt : { xmlns: true } + } +) + |