[Swfdec-commits] 8 commits - swfdec/swfdec_text_field_movie_html.c test/trace vivified/code
Pekka Lampila
medar at kemper.freedesktop.org
Fri May 9 00:41:28 PDT 2008
swfdec/swfdec_text_field_movie_html.c | 12
test/trace/Makefile.am | 9
test/trace/text-field-html-whitespace-tag-5.swf |binary
test/trace/text-field-html-whitespace-tag-5.swf.trace | 888 ++++++++++++++++++
test/trace/text-field-html-whitespace-tag-6.swf |binary
test/trace/text-field-html-whitespace-tag-6.swf.trace | 600 ++++++++++++
test/trace/text-field-html-whitespace-tag-7.swf |binary
test/trace/text-field-html-whitespace-tag-7.swf.trace | 600 ++++++++++++
test/trace/text-field-html-whitespace-tag-8.swf |binary
test/trace/text-field-html-whitespace-tag-8.swf.trace | 600 ++++++++++++
test/trace/text-field-html-whitespace-tag.as | 57 +
vivified/code/Makefile.am | 2
vivified/code/compiler.c | 11
vivified/code/rewrite.c | 8
vivified/code/test/compiler/Makefile.am | 2
vivified/code/test/compiler/call_function.as | 1
vivified/code/test/compiler/call_function.as.expect | 7
vivified/code/vivi_code_asm_code.c | 16
vivified/code/vivi_code_asm_code.h | 6
vivified/code/vivi_code_assembler.c | 53 -
vivified/code/vivi_code_assembler.h | 1
vivified/code/vivi_code_assignment.c | 15
vivified/code/vivi_code_binary.c | 10
vivified/code/vivi_code_block.c | 8
vivified/code/vivi_code_boolean.c | 6
vivified/code/vivi_code_break.c | 4
vivified/code/vivi_code_builtin_call.c | 6
vivified/code/vivi_code_builtin_statement.c | 6
vivified/code/vivi_code_builtin_value_call.c | 8
vivified/code/vivi_code_builtin_value_statement.c | 8
vivified/code/vivi_code_comment.c | 4
vivified/code/vivi_code_compiler.c | 108 ++
vivified/code/vivi_code_compiler.h | 73 +
vivified/code/vivi_code_concat.c | 10
vivified/code/vivi_code_continue.c | 3
vivified/code/vivi_code_function.c | 12
vivified/code/vivi_code_function_call.c | 16
vivified/code/vivi_code_get.c | 10
vivified/code/vivi_code_get_url.c | 4
vivified/code/vivi_code_goto.c | 6
vivified/code/vivi_code_if.c | 23
vivified/code/vivi_code_init_array.c | 12
vivified/code/vivi_code_init_object.c | 12
vivified/code/vivi_code_label.c | 16
vivified/code/vivi_code_label.h | 1
vivified/code/vivi_code_null.c | 6
vivified/code/vivi_code_number.c | 6
vivified/code/vivi_code_return.c | 10
vivified/code/vivi_code_statement.c | 8
vivified/code/vivi_code_statement.h | 2
vivified/code/vivi_code_string.c | 6
vivified/code/vivi_code_substring.c | 13
vivified/code/vivi_code_throw.c | 8
vivified/code/vivi_code_token.c | 8
vivified/code/vivi_code_token.h | 5
vivified/code/vivi_code_unary.c | 8
vivified/code/vivi_code_undefined.c | 7
vivified/code/vivi_code_value.c | 8
vivified/code/vivi_code_value.h | 3
vivified/code/vivi_code_value_statement.c | 8
vivified/code/vivi_compiler_empty_statement.c | 4
61 files changed, 3182 insertions(+), 182 deletions(-)
New commits:
commit d20b840b6476597927b4d898c6fd25743ba9356b
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri May 9 10:37:37 2008 +0300
Add a comment
diff --git a/swfdec/swfdec_text_field_movie_html.c b/swfdec/swfdec_text_field_movie_html.c
index a670d17..d0bb819 100644
--- a/swfdec/swfdec_text_field_movie_html.c
+++ b/swfdec/swfdec_text_field_movie_html.c
@@ -443,7 +443,8 @@ swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p)
g_return_val_if_fail (p != NULL, NULL);
g_return_val_if_fail (*p != '\0' && *p != '<', NULL);
- // condense the space with previous text also, if version >= 8
+ // condense the whitespace with previous text
+ // also skip any whitespace that would be preceding first actual text
if (data->condense_white && data->cx->version >= 8) {
gsize length = swfdec_text_buffer_get_length (data->text);
const char *s = swfdec_text_buffer_get_text (data->text);
@@ -451,7 +452,7 @@ swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p)
p += strspn (p, " \n\r\t");
}
- // if it's only space, don't add it
+ // if it's only whitespace, don't add it
if (data->cx->version < 8) {
end = p + strspn (p, " \n\r\t");
if (*end == '\0' || *end == '<')
commit 1ece8c6791675d82ef2f720d35384141a4a192e1
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri May 9 10:32:07 2008 +0300
Add a test for TextField's HTML input's handling of whitespace
diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index c27dd2c..d6d548c 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -3323,6 +3323,15 @@ EXTRA_DIST = \
text-field-html-new-format-7.swf.trace \
text-field-html-new-format-8.swf \
text-field-html-new-format-8.swf.trace \
+ text-field-html-whitespace-tag.as \
+ text-field-html-whitespace-tag-5.swf \
+ text-field-html-whitespace-tag-5.swf.trace \
+ text-field-html-whitespace-tag-6.swf \
+ text-field-html-whitespace-tag-6.swf.trace \
+ text-field-html-whitespace-tag-7.swf \
+ text-field-html-whitespace-tag-7.swf.trace \
+ text-field-html-whitespace-tag-8.swf \
+ text-field-html-whitespace-tag-8.swf.trace \
text-field-init.as \
text-field-init-5.swf \
text-field-init-5.swf.trace \
diff --git a/test/trace/text-field-html-whitespace-tag-5.swf b/test/trace/text-field-html-whitespace-tag-5.swf
new file mode 100644
index 0000000..6a7b341
Binary files /dev/null and b/test/trace/text-field-html-whitespace-tag-5.swf differ
diff --git a/test/trace/text-field-html-whitespace-tag-5.swf.trace b/test/trace/text-field-html-whitespace-tag-5.swf.trace
new file mode 100644
index 0000000..dbc55bf
--- /dev/null
+++ b/test/trace/text-field-html-whitespace-tag-5.swf.trace
@@ -0,0 +1,888 @@
+Testing: condenseWhite: 0 multiline: 0 html: 0
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+ <span> </span>
+: <span> </span>
+ <span> </span>
+: <span> </span>
+ <span> </span>
+<span></span>
+: <span></span>
+<span></span>
+: <span></span>
+<span></span>
+Testing: condenseWhite: 1 multiline: 0 html: 1
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+ <span> </span>
+: <span> </span>
+ <span> </span>
+: <span> </span>
+ <span> </span>
+<span></span>
+: <span></span>
+<span></span>
+: <span></span>
+<span></span>
+Testing: condenseWhite: 0 multiline: 2 html: 2
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+ <span> </span>
+: <span> </span>
+ <span> </span>
+: <span> </span>
+ <span> </span>
+<span></span>
+: <span></span>
+<span></span>
+: <span></span>
+<span></span>
+Testing: condenseWhite: 1 multiline: 2 html: 3
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+ <span> </span>
+: <span> </span>
+ <span> </span>
+: <span> </span>
+ <span> </span>
+<span></span>
+: <span></span>
+<span></span>
+: <span></span>
+<span></span>
+Testing: condenseWhite: 0 multiline: 0 html: 0
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+ <span> </span>
+: <span> </span>
+ <span> </span>
+: <span> </span>
+ <span> </span>
+<span></span>
+: <span></span>
+<span></span>
+: <span></span>
+<span></span>
+Testing: condenseWhite: 1 multiline: 0 html: 1
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+ <span> </span>
+: <span> </span>
+ <span> </span>
+: <span> </span>
+ <span> </span>
+<span></span>
+: <span></span>
+<span></span>
+: <span></span>
+<span></span>
+Testing: condenseWhite: 0 multiline: 2 html: 2
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+ <span> </span>
+: <span> </span>
+ <span> </span>
+: <span> </span>
+ <span> </span>
+<span></span>
+: <span></span>
+<span></span>
+: <span></span>
+<span></span>
+Testing: condenseWhite: 1 multiline: 2 html: 3
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+: <tab><br><span><tab><br></span><tab><br>
+<tab><br><span><tab><br></span><tab><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+: <br><span><br></span><br>
+<br><span><br></span><br>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+: \t\n
+<span> \t\n
+</span> \t\n
+
+ \t\n
+<span> \t\n
+</span> \t\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+: \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+: \ta<span> \ta</span> \ta
+ \ta<span> \ta</span> \ta
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+: a\n
+<span>a\n
+</span>a\n
+
+a\n
+<span>a\n
+</span>a\n
+
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+: a <span> a </span> a
+ a <span> a </span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+: a<span> a</span> a
+ a<span> a</span> a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+: a <span>a </span>a
+a <span>a </span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+: a<span>a</span>a
+a<span>a</span>a
+ <span> </span>
+: <span> </span>
+ <span> </span>
+: <span> </span>
+ <span> </span>
+<span></span>
+: <span></span>
+<span></span>
+: <span></span>
+<span></span>
diff --git a/test/trace/text-field-html-whitespace-tag-6.swf b/test/trace/text-field-html-whitespace-tag-6.swf
new file mode 100644
index 0000000..7f15a8f
Binary files /dev/null and b/test/trace/text-field-html-whitespace-tag-6.swf differ
diff --git a/test/trace/text-field-html-whitespace-tag-6.swf.trace b/test/trace/text-field-html-whitespace-tag-6.swf.trace
new file mode 100644
index 0000000..4228764
--- /dev/null
+++ b/test/trace/text-field-html-whitespace-tag-6.swf.trace
@@ -0,0 +1,600 @@
+Testing: condenseWhite: false multiline: false html: false
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: false html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+15: \ta\n \ta\n \ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+9: \ta \ta \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta \ta \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+9: a\na\na\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: false html: false
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: false html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+15: \ta\n \ta\n \ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+9: \ta \ta \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta \ta \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+9: a\na\na\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
diff --git a/test/trace/text-field-html-whitespace-tag-7.swf b/test/trace/text-field-html-whitespace-tag-7.swf
new file mode 100644
index 0000000..4e400be
Binary files /dev/null and b/test/trace/text-field-html-whitespace-tag-7.swf differ
diff --git a/test/trace/text-field-html-whitespace-tag-7.swf.trace b/test/trace/text-field-html-whitespace-tag-7.swf.trace
new file mode 100644
index 0000000..aeb6b96
--- /dev/null
+++ b/test/trace/text-field-html-whitespace-tag-7.swf.trace
@@ -0,0 +1,600 @@
+Testing: condenseWhite: false multiline: false html: false
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: false html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+6: \ta\ta\ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta\ta\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+3: \t\t\t
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t\t\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+0:
+
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+15: \ta\n \ta\n \ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+9: \ta \ta \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta \ta \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+9: a\na\na\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: false html: false
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: false html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+6: \ta\ta\ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta\ta\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+3: \t\t\t
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t\t\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+0:
+
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+15: \ta\n \ta\n \ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+9: \ta \ta \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta \ta \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+9: a\na\na\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Times New Roman" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
diff --git a/test/trace/text-field-html-whitespace-tag-8.swf b/test/trace/text-field-html-whitespace-tag-8.swf
new file mode 100644
index 0000000..72a3c03
Binary files /dev/null and b/test/trace/text-field-html-whitespace-tag-8.swf differ
diff --git a/test/trace/text-field-html-whitespace-tag-8.swf.trace b/test/trace/text-field-html-whitespace-tag-8.swf.trace
new file mode 100644
index 0000000..c420500
--- /dev/null
+++ b/test/trace/text-field-html-whitespace-tag-8.swf.trace
@@ -0,0 +1,600 @@
+Testing: condenseWhite: false multiline: false html: false
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: false html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+6: \ta\ta\ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta\ta\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+3: \t\t\t
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t\t\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+0:
+
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+5: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+5: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+12: \t\n \t\n \t\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+15: \ta\n \ta\n \ta\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+9: \ta \ta \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta \ta \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+9: a\na\na\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+3:
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> </FONT></P>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+5: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+5: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: false html: false
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: false html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+6: \ta\ta\ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta\ta\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+3: \t\t\t
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t\t\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+0:
+
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+5: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+5: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: false multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+12: \t\n \t\n \t\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+15: \ta\n \ta\n \ta\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+9: \ta \ta \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta \ta \ta</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+9: a\na\na\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+9: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+3:
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> </FONT></P>
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
+Testing: condenseWhite: true multiline: true html: true
+<tab>a<br><span><tab>a<br></span><tab>a<br>
+9: \ta\n\ta\n\ta\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\ta</FONT></P>
+43: <tab>a<br><span><tab>a<br></span><tab>a<br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab>a<br><span><tab>a<br></span><tab>a<br></FONT></P>
+<tab><br><span><tab><br></span><tab><br>
+6: \t\n\t\n\t\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">\t</FONT></P>
+40: <tab><br><span><tab><br></span><tab><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><tab><br><span><tab><br></span><tab><br></FONT></P>
+<br><span><br></span><br>
+3: \n\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+25: <br><span><br></span><br>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><br><span><br></span><br></FONT></P>
+ \t\n
+<span> \t\n
+</span> \t\n
+
+0:
+
+25: \t\n\n<span> \t\n\n</span> \t\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \t</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta\n
+<span> \ta\n
+</span> \ta\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+28: \ta\n\n<span> \ta\n\n</span> \ta\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span> \ta</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ \ta<span> \ta</span> \ta
+5: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a</FONT></P>
+22: \ta<span> \ta</span> \ta
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> \ta<span> \ta</span> \ta</FONT></P>
+a\n
+<span>a\n
+</span>a\n
+
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a\n\n<span>a\n\n</span>a\n\n
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></span>a</FONT></P><P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"></FONT></P>
+ a <span> a </span> a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+22: a <span> a </span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a <span> a </span> a </FONT></P>
+ a<span> a</span> a
+5: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a</FONT></P>
+19: a<span> a</span> a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> a<span> a</span> a</FONT></P>
+a <span>a </span>a
+6: a a a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a a a </FONT></P>
+19: a <span>a </span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a <span>a </span>a </FONT></P>
+a<span>a</span>a
+3: aaa
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">aaa</FONT></P>
+16: a<span>a</span>a
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">a<span>a</span>a</FONT></P>
+ <span> </span>
+0:
+
+16: <span> </span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"> <span> </span> </FONT></P>
+<span></span>
+0:
+
+13: <span></span>
+<P ALIGN="LEFT"><FONT FACE="Bitstream Vera Sans" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0"><span></span></FONT></P>
diff --git a/test/trace/text-field-html-whitespace-tag.as b/test/trace/text-field-html-whitespace-tag.as
new file mode 100644
index 0000000..718998c
--- /dev/null
+++ b/test/trace/text-field-html-whitespace-tag.as
@@ -0,0 +1,57 @@
+// makeswf -v 7 -s 200x150 -r 1 -o movie23.swf movie23.as
+
+createTextField ("t", 0, 0, 0, 200, 150);
+var tf = new TextFormat ();
+tf.font = "Bitstream Vera Sans";
+t.setNewTextFormat (tf);
+
+function sanitize (str) {
+ var a = str.split ("\r");
+ var b = a.join ("\\r").split ("\n");
+ var c = a.join ("\\n").split ("\t");
+ return c.join ("\\t");
+};
+
+var strings = [
+ "<tab>a<br>",
+ "<tab><br>",
+ "<br>",
+ " \t\r\n",
+ " \ta\r\n",
+ " \ta",
+ "a\r\n",
+ " a ",
+ " a",
+ "a ",
+ "a",
+ " ",
+ ""
+];
+
+for (var i = 0; i < 1 << 3; i++) {
+ t.condenseWhite = i & 1;
+ t.multiline = i & 2;
+ t.html = i & 3;
+ trace ("Testing: condenseWhite: " + t.condenseWhite + " multiline: " + t.multiline + " html: " + t.html);
+
+ for (var j = 0; j < strings.length; j++) {
+ var text = strings[j] + "<span>" + strings[j] + "</span>" + strings[j];
+ trace (sanitize (text));
+
+ t.htmlText = text;
+ trace (t.length + ": " + sanitize (t.text));
+ var old_html = t.html;
+ t.html = true;
+ trace (sanitize (t.htmlText));
+ t.html = old_html;
+
+ t.text = text;
+ trace (t.length + ": " + sanitize (t.text));
+ var old_html = t.html;
+ t.html = true;
+ trace (sanitize (t.htmlText));
+ t.html = old_html;
+ }
+}
+
+getURL ("fscommand:quit", "");
commit 311a78e2ad7c5ab16aff9ea163b5401fde14d9ee
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri May 9 10:06:12 2008 +0300
Skip text blocks that are only whitespace in HTML input for version < 8
diff --git a/swfdec/swfdec_text_field_movie_html.c b/swfdec/swfdec_text_field_movie_html.c
index dd6110a..a670d17 100644
--- a/swfdec/swfdec_text_field_movie_html.c
+++ b/swfdec/swfdec_text_field_movie_html.c
@@ -451,6 +451,13 @@ swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p)
p += strspn (p, " \n\r\t");
}
+ // if it's only space, don't add it
+ if (data->cx->version < 8) {
+ end = p + strspn (p, " \n\r\t");
+ if (*end == '\0' || *end == '<')
+ return end;
+ }
+
// get the text
// if condense_white: all whitespace blocks are converted to a single space
while (*p != '\0' && *p != '<') {
commit c9b9d0db390b1652fbf75e14596eb20930115f11
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri May 9 09:48:54 2008 +0300
Skip preceding whitespace when using condenseWhite in version 8 HTML input
diff --git a/swfdec/swfdec_text_field_movie_html.c b/swfdec/swfdec_text_field_movie_html.c
index 96e7485..dd6110a 100644
--- a/swfdec/swfdec_text_field_movie_html.c
+++ b/swfdec/swfdec_text_field_movie_html.c
@@ -447,7 +447,7 @@ swfdec_text_field_movie_html_parse_text (ParserData *data, const char *p)
if (data->condense_white && data->cx->version >= 8) {
gsize length = swfdec_text_buffer_get_length (data->text);
const char *s = swfdec_text_buffer_get_text (data->text);
- if (length > 0 && g_ascii_isspace (s[length - 1]))
+ if (length == 0 || g_ascii_isspace (s[length - 1]))
p += strspn (p, " \n\r\t");
}
commit 5b7154cc754222d52d5de33e310787568ba2c0e8
Merge: d34a612... 49c90e4...
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Fri May 9 09:13:23 2008 +0300
Merge branch 'master' of ssh://medar@git.freedesktop.org/git/swfdec/swfdec
commit d34a6128a25f55e7b8898ba4e6ebc8346abc8843
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu May 8 20:49:29 2008 +0300
Change compiling (vivi -> asm) system. Add ViviCodeCompiler class
diff --git a/vivified/code/Makefile.am b/vivified/code/Makefile.am
index 5550cc9..441d551 100644
--- a/vivified/code/Makefile.am
+++ b/vivified/code/Makefile.am
@@ -55,6 +55,7 @@ libvivified_compiler_la_SOURCES = \
vivi_code_builtin_value_statement.c \
vivi_code_builtin_value_statement_default.c \
vivi_code_comment.c \
+ vivi_code_compiler.c \
vivi_code_concat.c \
vivi_code_constant.c \
vivi_code_continue.c \
@@ -128,6 +129,7 @@ noinst_HEADERS = \
vivi_code_builtin_value_statement.h \
vivi_code_builtin_value_statement_default.h \
vivi_code_comment.h \
+ vivi_code_compiler.h \
vivi_code_concat.h \
vivi_code_constant.h \
vivi_code_continue.h \
diff --git a/vivified/code/compiler.c b/vivified/code/compiler.c
index b0fa84f..9981267 100644
--- a/vivified/code/compiler.c
+++ b/vivified/code/compiler.c
@@ -28,6 +28,7 @@
#include "vivi_parser.h"
#include "vivi_code_text_printer.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_assembler.h"
#include "vivi_code_asm_code_default.h"
@@ -79,6 +80,7 @@ main (int argc, char *argv[])
{
SwfdecBuffer *source, *output;
ViviCodeStatement *statement;
+ ViviCodeCompiler *compiler;
ViviCodeAssembler *assembler;
ViviCodeAsm *code;
int version = 8;
@@ -180,10 +182,14 @@ main (int argc, char *argv[])
return 1;
}
- assembler = VIVI_CODE_ASSEMBLER (vivi_code_assembler_new ());
- vivi_code_statement_compile (statement, assembler);
+ compiler = vivi_code_compiler_new (version);
+ vivi_code_compiler_compile_statement (compiler, statement);
g_object_unref (statement);
+ assembler = g_object_ref (vivi_code_compiler_get_assembler (compiler));
+ g_object_unref (compiler);
+ vivi_code_compiler_compile_statement (compiler, statement);
+
code = vivi_code_asm_end_new ();
vivi_code_assembler_add_code (assembler, code);
g_object_unref (code);
diff --git a/vivified/code/rewrite.c b/vivified/code/rewrite.c
index cc0df6a..c863777 100644
--- a/vivified/code/rewrite.c
+++ b/vivified/code/rewrite.c
@@ -31,6 +31,7 @@
#include <vivified/code/vivi_code_asm_function2.h>
#include <vivified/code/vivi_code_asm_pool.h>
#include <vivified/code/vivi_code_asm_push.h>
+#include <vivified/code/vivi_code_compiler.h>
#include <vivified/code/vivi_code_assembler.h>
#include <vivified/code/vivi_decompiler.h>
#include <vivified/code/vivi_parser.h>
@@ -171,6 +172,7 @@ replace_random (ViviCodeAssembler *assembler, guint init)
if (init) {
guint j;
ViviCodeStatement *statement;
+ ViviCodeCompiler *compiler;
ViviCodeAssembler *asm2;
if (VIVI_IS_CODE_ASM_POOL (vivi_code_assembler_get_code (assembler, i)))
i++;
@@ -181,9 +183,11 @@ replace_random (ViviCodeAssembler *assembler, guint init)
"ASSetPropFlags (Math, \"random\", 7);"
);
g_assert (statement);
- asm2 = VIVI_CODE_ASSEMBLER (vivi_code_assembler_new ());
- vivi_code_statement_compile (statement, asm2);
+ compiler = vivi_code_compiler_new (7); // FIXME: version
+ vivi_code_compiler_compile_statement (compiler, statement);
g_object_unref (statement);
+ asm2 = g_object_ref (vivi_code_compiler_get_assembler (compiler));
+ g_object_unref (compiler);
for (j = 0; j < vivi_code_assembler_get_n_codes (asm2); j++) {
vivi_code_assembler_insert_code (assembler, i++,
vivi_code_assembler_get_code (asm2, j));
diff --git a/vivified/code/vivi_code_assembler.c b/vivified/code/vivi_code_assembler.c
index 8087fe1..6558f37 100644
--- a/vivified/code/vivi_code_assembler.c
+++ b/vivified/code/vivi_code_assembler.c
@@ -26,6 +26,7 @@
#include "vivi_code_assembler.h"
#include "vivi_code_comment.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_emitter.h"
#include "vivi_code_label.h"
#include "vivi_code_printer.h"
@@ -72,13 +73,15 @@ vivi_code_assembler_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_assembler_compile (ViviCodeToken *token, ViviCodeAssembler *other)
+vivi_code_assembler_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
- ViviCodeAssembler *self = VIVI_CODE_ASSEMBLER (token);
+ ViviCodeAssembler *assembler = VIVI_CODE_ASSEMBLER (token);
guint i;
- for (i = 0; i < self->codes->len; i++) {
- vivi_code_assembler_add_code (other, g_ptr_array_index (self->codes, i));
+ // TODO: clone?
+ for (i = 0; i < assembler->codes->len; i++) {
+ vivi_code_compiler_add_code (compiler,
+ g_ptr_array_index (assembler->codes, i));
}
}
diff --git a/vivified/code/vivi_code_assignment.c b/vivified/code/vivi_code_assignment.c
index 4ace08c..48dd66e 100644
--- a/vivified/code/vivi_code_assignment.c
+++ b/vivified/code/vivi_code_assignment.c
@@ -26,7 +26,7 @@
#include "vivi_code_printer.h"
#include "vivi_code_string.h"
#include "vivi_code_undefined.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_code_default.h"
G_DEFINE_TYPE (ViviCodeAssignment, vivi_code_assignment, VIVI_TYPE_CODE_STATEMENT)
@@ -92,23 +92,22 @@ finalize:
}
static void
-vivi_code_assignment_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+vivi_code_assignment_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeAssignment *assignment = VIVI_CODE_ASSIGNMENT (token);
ViviCodeAsm *code;
if (assignment->from && !assignment->local)
- vivi_code_value_compile (assignment->from, assembler);
- vivi_code_value_compile (assignment->name, assembler);
+ vivi_code_compiler_compile_value (compiler, assignment->from);
+ vivi_code_compiler_compile_value (compiler, assignment->name);
if (assignment->local && assignment->from) {
ViviCodeValue *get =
vivi_code_get_new (assignment->from, assignment->value);
- vivi_code_value_compile (get, assembler);
+ vivi_code_compiler_compile_value (compiler, get);
g_object_unref (get);
} else {
- vivi_code_value_compile (assignment->value, assembler);
+ vivi_code_compiler_compile_value (compiler, assignment->value);
}
if (assignment->local) {
@@ -118,7 +117,7 @@ vivi_code_assignment_compile (ViviCodeToken *token,
} else {
code = vivi_code_asm_set_variable_new ();
}
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_binary.c b/vivified/code/vivi_code_binary.c
index b7b68af..d288627 100644
--- a/vivified/code/vivi_code_binary.c
+++ b/vivified/code/vivi_code_binary.c
@@ -25,7 +25,7 @@
#include "vivi_code_binary.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_TYPE (ViviCodeBinary, vivi_code_binary, VIVI_TYPE_CODE_VALUE)
@@ -57,18 +57,18 @@ vivi_code_binary_print (ViviCodeToken *token, ViviCodePrinter*printer)
}
static void
-vivi_code_binary_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_binary_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeBinary *binary = VIVI_CODE_BINARY (token);
ViviCodeBinaryClass *klass = VIVI_CODE_BINARY_GET_CLASS (binary);
ViviCodeAsm *code;
- vivi_code_value_compile (binary->left, assembler);
- vivi_code_value_compile (binary->right, assembler);
+ vivi_code_compiler_compile_value (compiler, binary->left);
+ vivi_code_compiler_compile_value (compiler, binary->right);
g_assert (klass->asm_constructor != 0);
code = klass->asm_constructor ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_block.c b/vivified/code/vivi_code_block.c
index b9a760d..32d8c69 100644
--- a/vivified/code/vivi_code_block.c
+++ b/vivified/code/vivi_code_block.c
@@ -28,7 +28,7 @@
#include "vivi_code_comment.h"
#include "vivi_code_label.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_TYPE (ViviCodeBlock, vivi_code_block, VIVI_TYPE_CODE_STATEMENT)
@@ -90,14 +90,14 @@ vivi_code_block_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_block_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_block_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeBlock *block = VIVI_CODE_BLOCK (token);
guint i;
for (i = 0; i < block->statements->len; i++) {
- vivi_code_statement_compile (VIVI_CODE_STATEMENT (g_ptr_array_index (
- block->statements, i)), assembler);
+ vivi_code_compiler_compile_statement (compiler,
+ VIVI_CODE_STATEMENT (g_ptr_array_index (block->statements, i)));
}
}
diff --git a/vivified/code/vivi_code_boolean.c b/vivified/code/vivi_code_boolean.c
index efb1bd4..dd5ae83 100644
--- a/vivified/code/vivi_code_boolean.c
+++ b/vivified/code/vivi_code_boolean.c
@@ -23,7 +23,7 @@
#include "vivi_code_boolean.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_push.h"
G_DEFINE_TYPE (ViviCodeBoolean, vivi_code_boolean, VIVI_TYPE_CODE_CONSTANT)
@@ -37,14 +37,14 @@ vivi_code_boolean_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_boolean_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_boolean_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeBoolean *b = VIVI_CODE_BOOLEAN (token);
ViviCodeAsm *code;
code = vivi_code_asm_push_new ();
vivi_code_asm_push_add_boolean (VIVI_CODE_ASM_PUSH (code), b->value);
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_break.c b/vivified/code/vivi_code_break.c
index ded28d1..9286fa5 100644
--- a/vivified/code/vivi_code_break.c
+++ b/vivified/code/vivi_code_break.c
@@ -23,7 +23,7 @@
#include "vivi_code_break.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_TYPE (ViviCodeBreak, vivi_code_break, VIVI_TYPE_CODE_STATEMENT)
@@ -35,7 +35,7 @@ vivi_code_break_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_break_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_break_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
g_printerr ("Implement break\n");
}
diff --git a/vivified/code/vivi_code_builtin_call.c b/vivified/code/vivi_code_builtin_call.c
index bf299b7..06174eb 100644
--- a/vivified/code/vivi_code_builtin_call.c
+++ b/vivified/code/vivi_code_builtin_call.c
@@ -23,7 +23,7 @@
#include "vivi_code_builtin_call.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_ABSTRACT_TYPE (ViviCodeBuiltinCall, vivi_code_builtin_call, VIVI_TYPE_CODE_VALUE)
@@ -40,14 +40,14 @@ vivi_code_builtin_call_print (ViviCodeToken *token, ViviCodePrinter *printer)
static void
vivi_code_builtin_call_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
ViviCodeBuiltinCallClass *klass = VIVI_CODE_BUILTIN_CALL_GET_CLASS (token);
ViviCodeAsm *code;
g_assert (klass->asm_constructor != NULL);
code = klass->asm_constructor ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_builtin_statement.c b/vivified/code/vivi_code_builtin_statement.c
index 8d9ca87..7802868 100644
--- a/vivified/code/vivi_code_builtin_statement.c
+++ b/vivified/code/vivi_code_builtin_statement.c
@@ -23,7 +23,7 @@
#include "vivi_code_builtin_statement.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_ABSTRACT_TYPE (ViviCodeBuiltinStatement, vivi_code_builtin_statement, VIVI_TYPE_CODE_STATEMENT)
@@ -42,7 +42,7 @@ vivi_code_builtin_statement_print (ViviCodeToken *token,
static void
vivi_code_builtin_statement_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
ViviCodeBuiltinStatementClass *klass =
VIVI_CODE_BUILTIN_STATEMENT_GET_CLASS (token);
@@ -50,7 +50,7 @@ vivi_code_builtin_statement_compile (ViviCodeToken *token,
g_assert (klass->asm_constructor != NULL);
code = klass->asm_constructor ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_builtin_value_call.c b/vivified/code/vivi_code_builtin_value_call.c
index 3a6bd14..0fbbcc4 100644
--- a/vivified/code/vivi_code_builtin_value_call.c
+++ b/vivified/code/vivi_code_builtin_value_call.c
@@ -23,7 +23,7 @@
#include "vivi_code_builtin_value_call.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_ABSTRACT_TYPE (ViviCodeBuiltinValueCall, vivi_code_builtin_value_call, VIVI_TYPE_CODE_BUILTIN_CALL)
@@ -58,18 +58,18 @@ vivi_code_builtin_value_call_print (ViviCodeToken *token,
static void
vivi_code_builtin_value_call_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
ViviCodeBuiltinCallClass *klass = VIVI_CODE_BUILTIN_CALL_GET_CLASS (token);
ViviCodeBuiltinValueCall *call = VIVI_CODE_BUILTIN_VALUE_CALL (token);
ViviCodeAsm *code;
g_assert (call->value != NULL);
- vivi_code_value_compile (call->value, assembler);
+ vivi_code_compiler_compile_value (compiler, call->value);
g_assert (klass->asm_constructor != NULL);
code = klass->asm_constructor ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_builtin_value_statement.c b/vivified/code/vivi_code_builtin_value_statement.c
index fb9978a..d542a14 100644
--- a/vivified/code/vivi_code_builtin_value_statement.c
+++ b/vivified/code/vivi_code_builtin_value_statement.c
@@ -23,7 +23,7 @@
#include "vivi_code_builtin_value_statement.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_ABSTRACT_TYPE (ViviCodeBuiltinValueStatement, vivi_code_builtin_value_statement, VIVI_TYPE_CODE_BUILTIN_STATEMENT)
@@ -61,7 +61,7 @@ vivi_code_builtin_value_statement_print (ViviCodeToken *token,
static void
vivi_code_builtin_value_statement_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
ViviCodeBuiltinStatementClass *klass =
VIVI_CODE_BUILTIN_STATEMENT_GET_CLASS (token);
@@ -70,11 +70,11 @@ vivi_code_builtin_value_statement_compile (ViviCodeToken *token,
ViviCodeAsm *code;
g_assert (stmt->value != NULL);
- vivi_code_value_compile (stmt->value, assembler);
+ vivi_code_compiler_compile_value (compiler, stmt->value);
g_assert (klass->asm_constructor != NULL);
code = klass->asm_constructor ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_comment.c b/vivified/code/vivi_code_comment.c
index 681d900..1efa0b5 100644
--- a/vivified/code/vivi_code_comment.c
+++ b/vivified/code/vivi_code_comment.c
@@ -23,7 +23,7 @@
#include "vivi_code_comment.h"
#include "vivi_code_asm.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_printer.h"
static gboolean
@@ -63,7 +63,7 @@ vivi_code_comment_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_comment_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_comment_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
g_printerr ("Implement comment");
}
diff --git a/vivified/code/vivi_code_compiler.c b/vivified/code/vivi_code_compiler.c
new file mode 100644
index 0000000..1947090
--- /dev/null
+++ b/vivified/code/vivi_code_compiler.c
@@ -0,0 +1,108 @@
+/* Vivified
+ * Copyright (C) 2008 Pekka Lampila <pekka.lampila at iki.fi>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "vivi_code_compiler.h"
+
+G_DEFINE_TYPE (ViviCodeCompiler, vivi_code_compiler, G_TYPE_OBJECT)
+
+static void
+vivi_code_compiler_dispose (GObject *object)
+{
+ ViviCodeCompiler *compiler = VIVI_CODE_COMPILER (object);
+
+ g_object_unref (compiler->assembler);
+
+ G_OBJECT_CLASS (vivi_code_compiler_parent_class)->dispose (object);
+}
+
+static void
+vivi_code_compiler_class_init (ViviCodeCompilerClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->dispose = vivi_code_compiler_dispose;
+}
+
+static void
+vivi_code_compiler_init (ViviCodeCompiler *compiler)
+{
+ compiler->assembler = VIVI_CODE_ASSEMBLER (vivi_code_assembler_new ());
+}
+
+void
+vivi_code_compiler_compile_token (ViviCodeCompiler *compiler,
+ ViviCodeToken *token)
+{
+ g_return_if_fail (VIVI_IS_CODE_COMPILER (compiler));
+ g_return_if_fail (VIVI_IS_CODE_TOKEN (token));
+
+ vivi_code_token_compile (token, compiler);
+}
+
+void
+vivi_code_compiler_add_code (ViviCodeCompiler *compiler, ViviCodeAsm *code)
+{
+ g_return_if_fail (VIVI_IS_CODE_COMPILER (compiler));
+ g_return_if_fail (VIVI_IS_CODE_ASM (code));
+
+ vivi_code_assembler_add_code (compiler->assembler, code);
+}
+
+ViviCodeLabel *
+vivi_code_compiler_create_label (ViviCodeCompiler *compiler,
+ const char *prefix)
+{
+ g_return_val_if_fail (VIVI_IS_CODE_COMPILER (compiler), NULL);
+ g_return_val_if_fail (prefix != NULL, NULL);
+
+ // FIXME
+ return VIVI_CODE_LABEL (vivi_code_label_new (prefix));
+}
+
+ViviCodeCompiler *
+vivi_code_compiler_new (guint version)
+{
+ ViviCodeCompiler *compiler;
+
+ compiler = g_object_new (VIVI_TYPE_CODE_COMPILER, NULL);
+ compiler->version = version;
+
+ return compiler;
+}
+
+guint
+vivi_code_compiler_get_version (ViviCodeCompiler *compiler)
+{
+ g_return_val_if_fail (VIVI_IS_CODE_COMPILER (compiler), 0);
+
+ return compiler->version;
+}
+
+
+ViviCodeAssembler *
+vivi_code_compiler_get_assembler (ViviCodeCompiler *compiler)
+{
+ g_return_val_if_fail (VIVI_IS_CODE_COMPILER (compiler), NULL);
+
+ return compiler->assembler;
+}
diff --git a/vivified/code/vivi_code_compiler.h b/vivified/code/vivi_code_compiler.h
new file mode 100644
index 0000000..19bfa47
--- /dev/null
+++ b/vivified/code/vivi_code_compiler.h
@@ -0,0 +1,73 @@
+/* Vivified
+ * Copyright (C) 2008 Pekka Lampila <pekka.lampila at iki.fi>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef _VIVI_CODE_COMPILER_H_
+#define _VIVI_CODE_COMPILER_H_
+
+#include <swfdec/swfdec.h>
+#include <swfdec/swfdec_bots.h>
+#include <vivified/code/vivi_code_assembler.h>
+#include <vivified/code/vivi_code_asm.h>
+#include <vivified/code/vivi_code_label.h>
+
+G_BEGIN_DECLS
+
+typedef struct _ViviCodeCompilerClass ViviCodeCompilerClass;
+
+#define VIVI_TYPE_CODE_COMPILER (vivi_code_compiler_get_type())
+#define VIVI_IS_CODE_COMPILER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIVI_TYPE_CODE_COMPILER))
+#define VIVI_IS_CODE_COMPILER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIVI_TYPE_CODE_COMPILER))
+#define VIVI_CODE_COMPILER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIVI_TYPE_CODE_COMPILER, ViviCodeCompiler))
+#define VIVI_CODE_COMPILER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIVI_TYPE_CODE_COMPILER, ViviCodeCompilerClass))
+#define VIVI_CODE_COMPILER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIVI_TYPE_CODE_COMPILER, ViviCodeCompilerClass))
+
+struct _ViviCodeCompiler
+{
+ GObject object;
+
+ guint version;
+ ViviCodeAssembler * assembler;
+
+ guint num_labels;
+};
+
+struct _ViviCodeCompilerClass
+{
+ GObjectClass object_class;
+};
+
+GType vivi_code_compiler_get_type (void);
+
+ViviCodeCompiler * vivi_code_compiler_new (guint version);
+
+#define vivi_code_compiler_compile_value(c,v) vivi_code_compiler_compile_token((c), VIVI_CODE_TOKEN((v)))
+#define vivi_code_compiler_compile_statement(c,s) vivi_code_compiler_compile_token((c), VIVI_CODE_TOKEN((s)))
+void vivi_code_compiler_compile_token (ViviCodeCompiler * compiler,
+ ViviCodeToken * token);
+
+void vivi_code_compiler_add_code (ViviCodeCompiler *compiler,
+ ViviCodeAsm *code);
+
+ViviCodeAssembler * vivi_code_compiler_get_assembler (ViviCodeCompiler * compiler);
+guint vivi_code_compiler_get_version (ViviCodeCompiler * compiler);
+ViviCodeLabel * vivi_code_compiler_create_label (ViviCodeCompiler * compiler,
+ const char * prefix);
+
+G_END_DECLS
+#endif
diff --git a/vivified/code/vivi_code_concat.c b/vivified/code/vivi_code_concat.c
index 7095222..01bf74f 100644
--- a/vivified/code/vivi_code_concat.c
+++ b/vivified/code/vivi_code_concat.c
@@ -23,7 +23,7 @@
#include "vivi_code_concat.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_code_default.h"
G_DEFINE_TYPE (ViviCodeConcat, vivi_code_concat, VIVI_TYPE_CODE_VALUE)
@@ -55,16 +55,16 @@ vivi_code_concat_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_concat_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_concat_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeConcat *concat = VIVI_CODE_CONCAT (token);
ViviCodeAsm *code;
- vivi_code_value_compile (concat->first, assembler);
- vivi_code_value_compile (concat->second, assembler);
+ vivi_code_compiler_compile_value (compiler, concat->first);
+ vivi_code_compiler_compile_value (compiler, concat->second);
code = vivi_code_asm_string_add_new ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_continue.c b/vivified/code/vivi_code_continue.c
index b00a766..cb6ab77 100644
--- a/vivified/code/vivi_code_continue.c
+++ b/vivified/code/vivi_code_continue.c
@@ -23,6 +23,7 @@
#include "vivi_code_continue.h"
#include "vivi_code_printer.h"
+#include "vivi_code_compiler.h"
G_DEFINE_TYPE (ViviCodeContinue, vivi_code_continue, VIVI_TYPE_CODE_STATEMENT)
@@ -34,7 +35,7 @@ vivi_code_continue_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_continue_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_continue_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
g_printerr ("Implement continue\n");
}
diff --git a/vivified/code/vivi_code_function.c b/vivified/code/vivi_code_function.c
index 1ddddb9..afa64b7 100644
--- a/vivified/code/vivi_code_function.c
+++ b/vivified/code/vivi_code_function.c
@@ -27,7 +27,7 @@
#include "vivi_code_constant.h"
#include "vivi_code_label.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_function2.h"
#include "vivi_decompiler.h"
@@ -83,14 +83,14 @@ vivi_code_function_print (ViviCodeToken *token, ViviCodePrinter*printer)
}
static void
-vivi_code_function_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_function_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeFunction *function = VIVI_CODE_FUNCTION (token);
ViviCodeLabel *label_end;
ViviCodeAsm *code;
guint i;
- label_end = VIVI_CODE_LABEL (vivi_code_label_new_internal ("function_end"));
+ label_end = vivi_code_compiler_create_label (compiler, "function_end");
code = vivi_code_asm_function2_new (label_end, function->name, 0, 0);
for (i = 0; i < function->arguments->len; i++) {
@@ -98,13 +98,13 @@ vivi_code_function_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
g_ptr_array_index (function->arguments, i), 0);
}
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
if (function->body != NULL)
- vivi_code_statement_compile (function->body, assembler);
+ vivi_code_compiler_compile_statement (compiler, function->body);
- vivi_code_assembler_add_code (assembler, VIVI_CODE_ASM (label_end));
+ vivi_code_compiler_add_code (compiler, VIVI_CODE_ASM (label_end));
g_object_unref (label_end);
}
diff --git a/vivified/code/vivi_code_function_call.c b/vivified/code/vivi_code_function_call.c
index ee61a26..be0037c 100644
--- a/vivified/code/vivi_code_function_call.c
+++ b/vivified/code/vivi_code_function_call.c
@@ -21,7 +21,7 @@
#include "config.h"
#endif
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_code_default.h"
#include "vivi_code_function_call.h"
#include "vivi_code_number.h"
@@ -123,7 +123,7 @@ vivi_code_function_call_print (ViviCodeToken *token, ViviCodePrinter*printer)
static void
vivi_code_function_call_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
ViviCodeFunctionCall *call = VIVI_CODE_FUNCTION_CALL (token);
ViviCodeValue *count;
@@ -131,17 +131,17 @@ vivi_code_function_call_compile (ViviCodeToken *token,
guint i;
for (i = call->arguments->len - 1; i < call->arguments->len; i--) {
- vivi_code_value_compile (g_ptr_array_index (call->arguments, i),
- assembler);
+ vivi_code_compiler_compile_value (compiler,
+ g_ptr_array_index (call->arguments, i));
}
count = vivi_code_number_new (call->arguments->len);
- vivi_code_value_compile (count, assembler);
+ vivi_code_compiler_compile_value (compiler, count);
g_object_unref (count);
- vivi_code_value_compile (call->name, assembler);
+ vivi_code_compiler_compile_value (compiler, call->name);
if (call->value)
- vivi_code_value_compile (call->value, assembler);
+ vivi_code_compiler_compile_value (compiler, call->value);
if (call->construct) {
if (call->value) {
@@ -157,7 +157,7 @@ vivi_code_function_call_compile (ViviCodeToken *token,
}
}
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_get.c b/vivified/code/vivi_code_get.c
index be801f9..0d3bfcd 100644
--- a/vivified/code/vivi_code_get.c
+++ b/vivified/code/vivi_code_get.c
@@ -22,7 +22,7 @@
#endif
#include "vivi_code_asm_code_default.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_get.h"
#include "vivi_code_printer.h"
#include "vivi_code_string.h"
@@ -75,14 +75,14 @@ vivi_code_get_print (ViviCodeToken *token, ViviCodePrinter*printer)
}
static void
-vivi_code_get_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_get_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeGet *get = VIVI_CODE_GET (token);
ViviCodeAsm *code;
if (get->from)
- vivi_code_value_compile (get->from, assembler);
- vivi_code_value_compile (get->name, assembler);
+ vivi_code_compiler_compile_value (compiler, get->from);
+ vivi_code_compiler_compile_value (compiler, get->name);
if (get->from) {
code = vivi_code_asm_get_member_new ();
@@ -90,7 +90,7 @@ vivi_code_get_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
code = vivi_code_asm_get_variable_new ();
}
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_get_url.c b/vivified/code/vivi_code_get_url.c
index 76eb2c1..23b13a5 100644
--- a/vivified/code/vivi_code_get_url.c
+++ b/vivified/code/vivi_code_get_url.c
@@ -23,7 +23,7 @@
#include "vivi_code_get_url.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_TYPE (ViviCodeGetUrl, vivi_code_get_url, VIVI_TYPE_CODE_STATEMENT)
@@ -62,7 +62,7 @@ vivi_code_get_url_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_get_url_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_get_url_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
g_printerr ("Implement getURL2");
#if 0
diff --git a/vivified/code/vivi_code_goto.c b/vivified/code/vivi_code_goto.c
index b535fc5..1a7d876 100644
--- a/vivified/code/vivi_code_goto.c
+++ b/vivified/code/vivi_code_goto.c
@@ -23,7 +23,7 @@
#include "vivi_code_goto.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_jump.h"
G_DEFINE_TYPE (ViviCodeGoto, vivi_code_goto, VIVI_TYPE_CODE_STATEMENT)
@@ -51,13 +51,13 @@ vivi_code_goto_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_goto_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_goto_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeGoto *gotoo = VIVI_CODE_GOTO (token);
ViviCodeAsm *code;
code = vivi_code_asm_jump_new (gotoo->label);
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_if.c b/vivified/code/vivi_code_if.c
index 267d6db..ac02342 100644
--- a/vivified/code/vivi_code_if.c
+++ b/vivified/code/vivi_code_if.c
@@ -24,8 +24,7 @@
#include "vivi_code_if.h"
#include "vivi_code_unary.h"
#include "vivi_code_printer.h"
-#include "vivi_code_label.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_if.h"
#include "vivi_code_asm_jump.h"
@@ -129,33 +128,33 @@ vivi_code_if_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_if_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_if_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeIf *stmt = VIVI_CODE_IF (token);
ViviCodeLabel *label_if, *label_end;
ViviCodeAsm *code;
- vivi_code_value_compile (stmt->condition, assembler);
+ vivi_code_compiler_compile_value (compiler, stmt->condition);
- label_if = VIVI_CODE_LABEL (vivi_code_label_new_internal ("if"));
+ label_if = vivi_code_compiler_create_label (compiler, "if");
code = vivi_code_asm_if_new (label_if);
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
if (stmt->else_statement)
- vivi_code_statement_compile (stmt->else_statement, assembler);
+ vivi_code_compiler_compile_statement (compiler, stmt->else_statement);
- label_end = VIVI_CODE_LABEL (vivi_code_label_new_internal ("end"));
+ label_end = vivi_code_compiler_create_label (compiler, "end");
code = vivi_code_asm_jump_new (label_end);
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
- vivi_code_assembler_add_code (assembler, VIVI_CODE_ASM (label_if));
+ vivi_code_compiler_add_code (compiler, VIVI_CODE_ASM (label_if));
g_object_unref (label_if);
- vivi_code_statement_compile (stmt->if_statement, assembler);
+ vivi_code_compiler_compile_statement (compiler, stmt->if_statement);
- vivi_code_assembler_add_code (assembler, VIVI_CODE_ASM (label_end));
+ vivi_code_compiler_add_code (compiler, VIVI_CODE_ASM (label_end));
g_object_unref (label_end);
}
diff --git a/vivified/code/vivi_code_init_array.c b/vivified/code/vivi_code_init_array.c
index fbb74fb..fd52f36 100644
--- a/vivified/code/vivi_code_init_array.c
+++ b/vivified/code/vivi_code_init_array.c
@@ -23,7 +23,7 @@
#endif
#include "vivi_code_asm_code_default.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_init_array.h"
#include "vivi_code_number.h"
#include "vivi_code_printer.h"
@@ -81,7 +81,7 @@ vivi_code_init_array_print (ViviCodeToken *token, ViviCodePrinter *printer)
static void
vivi_code_init_array_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
ViviCodeInitArray *array = VIVI_CODE_INIT_ARRAY (token);
ViviCodeValue *count;
@@ -89,15 +89,15 @@ vivi_code_init_array_compile (ViviCodeToken *token,
guint i;
for (i = 0; i < array->variables->len; i++) {
- vivi_code_value_compile (VIVI_CODE_VALUE (g_ptr_array_index (
- array->variables, i)), assembler);
+ vivi_code_compiler_compile_value (compiler,
+ VIVI_CODE_VALUE (g_ptr_array_index (array->variables, i)));
}
count = vivi_code_number_new (array->variables->len);
- vivi_code_value_compile (count, assembler);
+ vivi_code_compiler_compile_value (compiler, count);
g_object_unref (count);
code = vivi_code_asm_init_array_new ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_init_object.c b/vivified/code/vivi_code_init_object.c
index d632aec..912deed 100644
--- a/vivified/code/vivi_code_init_object.c
+++ b/vivified/code/vivi_code_init_object.c
@@ -24,7 +24,7 @@
#include "vivi_code_init_object.h"
#include "vivi_code_printer.h"
#include "vivi_code_number.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_code_default.h"
G_DEFINE_TYPE (ViviCodeInitObject, vivi_code_init_object, VIVI_TYPE_CODE_VALUE)
@@ -80,7 +80,7 @@ vivi_code_init_object_print (ViviCodeToken *token, ViviCodePrinter*printer)
static void
vivi_code_init_object_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
ViviCodeInitObject *object = VIVI_CODE_INIT_OBJECT (token);
ViviCodeValue *count;
@@ -89,16 +89,16 @@ vivi_code_init_object_compile (ViviCodeToken *token,
for (i = 0; i < object->variables->len; i++) {
VariableEntry *entry = &g_array_index (object->variables, VariableEntry, i);
- vivi_code_value_compile (entry->value, assembler);
- vivi_code_value_compile (entry->name, assembler);
+ vivi_code_compiler_compile_value (compiler, entry->value);
+ vivi_code_compiler_compile_value (compiler, entry->name);
}
count = vivi_code_number_new (object->variables->len);
- vivi_code_value_compile (count, assembler);
+ vivi_code_compiler_compile_value (compiler, count);
g_object_unref (count);
code = vivi_code_asm_init_object_new ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_label.c b/vivified/code/vivi_code_label.c
index 500d9dc..94eaeb4 100644
--- a/vivified/code/vivi_code_label.c
+++ b/vivified/code/vivi_code_label.c
@@ -23,7 +23,7 @@
#include "vivi_code_label.h"
#include "vivi_code_asm.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_emitter.h"
#include "vivi_code_printer.h"
@@ -68,13 +68,14 @@ vivi_code_label_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_label_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_label_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeLabel *label = VIVI_CODE_LABEL (token);
ViviCodeAsm *code;
- code = VIVI_CODE_ASM (vivi_code_label_new_internal (label->name));
- vivi_code_assembler_add_code (assembler, code);
+ code =
+ VIVI_CODE_ASM (vivi_code_compiler_create_label (compiler, label->name));
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
@@ -117,13 +118,6 @@ vivi_code_label_new (const char *name)
return VIVI_CODE_STATEMENT (label);
}
-ViviCodeStatement *
-vivi_code_label_new_internal (const char *prefix)
-{
- // FIXME
- return vivi_code_label_new (prefix);
-}
-
const char *
vivi_code_label_get_name (ViviCodeLabel *label)
{
diff --git a/vivified/code/vivi_code_label.h b/vivified/code/vivi_code_label.h
index 44db2ec..342e728 100644
--- a/vivified/code/vivi_code_label.h
+++ b/vivified/code/vivi_code_label.h
@@ -50,7 +50,6 @@ struct _ViviCodeLabelClass
GType vivi_code_label_get_type (void);
ViviCodeStatement * vivi_code_label_new (const char * name);
-ViviCodeStatement * vivi_code_label_new_internal (const char * prefix);
const char * vivi_code_label_get_name (ViviCodeLabel * label);
diff --git a/vivified/code/vivi_code_null.c b/vivified/code/vivi_code_null.c
index 25f7f10..b2099f4 100644
--- a/vivified/code/vivi_code_null.c
+++ b/vivified/code/vivi_code_null.c
@@ -27,7 +27,7 @@
#include "vivi_code_null.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_push.h"
G_DEFINE_TYPE (ViviCodeNull, vivi_code_null, VIVI_TYPE_CODE_CONSTANT)
@@ -39,13 +39,13 @@ vivi_code_null_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_null_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_null_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeAsm *code;
code = vivi_code_asm_push_new ();
vivi_code_asm_push_add_null (VIVI_CODE_ASM_PUSH (code));
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_number.c b/vivified/code/vivi_code_number.c
index b2f4060..e8e17d5 100644
--- a/vivified/code/vivi_code_number.c
+++ b/vivified/code/vivi_code_number.c
@@ -23,7 +23,7 @@
#include "vivi_code_number.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_push.h"
G_DEFINE_TYPE (ViviCodeNumber, vivi_code_number, VIVI_TYPE_CODE_CONSTANT)
@@ -39,7 +39,7 @@ vivi_code_number_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_number_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_number_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeNumber *number = VIVI_CODE_NUMBER (token);
ViviCodeAsm *code;
@@ -75,7 +75,7 @@ vivi_code_number_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
g_assert_not_reached ();
}
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_return.c b/vivified/code/vivi_code_return.c
index c1a92c7..ce9d51b 100644
--- a/vivified/code/vivi_code_return.c
+++ b/vivified/code/vivi_code_return.c
@@ -25,7 +25,7 @@
#include "vivi_code_asm_code_default.h"
#include "vivi_code_asm_push.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_TYPE (ViviCodeReturn, vivi_code_return, VIVI_TYPE_CODE_STATEMENT)
@@ -57,22 +57,22 @@ vivi_code_return_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_return_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_return_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeReturn *ret = VIVI_CODE_RETURN (token);
ViviCodeAsm *code;
if (ret->value) {
- vivi_code_value_compile (ret->value, assembler);
+ vivi_code_compiler_compile_value (compiler, ret->value);
} else {
ViviCodeAsm *push = vivi_code_asm_push_new ();
vivi_code_asm_push_add_undefined (VIVI_CODE_ASM_PUSH (push));
- vivi_code_assembler_add_code (assembler, push);
+ vivi_code_compiler_add_code (compiler, push);
g_object_unref (push);
}
code = vivi_code_asm_return_new ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_statement.c b/vivified/code/vivi_code_statement.c
index 7c20622..82bf102 100644
--- a/vivified/code/vivi_code_statement.c
+++ b/vivified/code/vivi_code_statement.c
@@ -76,11 +76,3 @@ vivi_code_statement_needs_braces (ViviCodeStatement *stmt)
return FALSE;
}
}
-
-void vivi_code_statement_compile (ViviCodeStatement *statement,
- ViviCodeAssembler *assembler)
-{
- g_return_if_fail (VIVI_IS_CODE_STATEMENT (statement));
-
- vivi_code_token_compile (VIVI_CODE_TOKEN (statement), assembler);
-}
diff --git a/vivified/code/vivi_code_statement.h b/vivified/code/vivi_code_statement.h
index 84d0f93..60326a8 100644
--- a/vivified/code/vivi_code_statement.h
+++ b/vivified/code/vivi_code_statement.h
@@ -50,8 +50,6 @@ struct _ViviCodeStatementClass
GType vivi_code_statement_get_type (void);
-void vivi_code_statement_compile (ViviCodeStatement * statement,
- ViviCodeAssembler * assembler);
ViviCodeStatement * vivi_code_statement_optimize (ViviCodeStatement * stmt);
gboolean vivi_code_statement_needs_braces(ViviCodeStatement * stmt);
diff --git a/vivified/code/vivi_code_string.c b/vivified/code/vivi_code_string.c
index d87bb82..e4910a8 100644
--- a/vivified/code/vivi_code_string.c
+++ b/vivified/code/vivi_code_string.c
@@ -25,7 +25,7 @@
#include "vivi_code_string.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_push.h"
G_DEFINE_TYPE (ViviCodeString, vivi_code_string, VIVI_TYPE_CODE_CONSTANT)
@@ -53,14 +53,14 @@ vivi_code_string_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_string_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_string_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeString *string = VIVI_CODE_STRING (token);
ViviCodeAsm *code;
code = vivi_code_asm_push_new ();
vivi_code_asm_push_add_string (VIVI_CODE_ASM_PUSH (code), string->value);
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_substring.c b/vivified/code/vivi_code_substring.c
index 21c7e48..7dcb044 100644
--- a/vivified/code/vivi_code_substring.c
+++ b/vivified/code/vivi_code_substring.c
@@ -23,7 +23,7 @@
#include "vivi_code_substring.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_TYPE (ViviCodeSubstring, vivi_code_substring, VIVI_TYPE_CODE_VALUE)
@@ -58,20 +58,19 @@ vivi_code_substring_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_substring_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+vivi_code_substring_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
g_printerr ("Implement substring\n");
#if 0
ViviCodeSubstring *substring = VIVI_CODE_SUBSTRING (token);
ViviCodeAsm *code;
- vivi_code_value_compile (substring->string, assembler);
- vivi_code_value_compile (substring->index_, assembler);
- vivi_code_value_compile (substring->count, assembler);
+ vivi_code_value_compile (substring->string, compiler);
+ vivi_code_value_compile (substring->index_, compiler);
+ vivi_code_value_compile (substring->count, compiler);
code = vivi_code_asm_string_extract_new ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
#endif
}
diff --git a/vivified/code/vivi_code_throw.c b/vivified/code/vivi_code_throw.c
index 8b369b8..df88d2a 100644
--- a/vivified/code/vivi_code_throw.c
+++ b/vivified/code/vivi_code_throw.c
@@ -23,7 +23,7 @@
#include "vivi_code_throw.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm.h"
#include "vivi_code_asm_code_default.h"
@@ -57,17 +57,17 @@ vivi_code_throw_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_throw_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_throw_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeThrow *throw_ = VIVI_CODE_THROW (token);
ViviCodeAsm *code;
g_return_if_fail (throw_->value != NULL);
- vivi_code_value_compile (throw_->value, assembler);
+ vivi_code_compiler_compile_value (compiler, throw_->value);
code = vivi_code_asm_throw_new ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_token.c b/vivified/code/vivi_code_token.c
index 53fce9a..9001f35 100644
--- a/vivified/code/vivi_code_token.c
+++ b/vivified/code/vivi_code_token.c
@@ -22,7 +22,7 @@
#endif
#include "vivi_code_token.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_ABSTRACT_TYPE (ViviCodeToken, vivi_code_token, G_TYPE_OBJECT)
@@ -49,14 +49,14 @@ vivi_code_token_init (ViviCodeToken *token)
void
-vivi_code_token_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_token_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeTokenClass *klass;
g_return_if_fail (VIVI_IS_CODE_TOKEN (token));
- g_return_if_fail (VIVI_IS_CODE_ASSEMBLER (assembler));
+ g_return_if_fail (VIVI_IS_CODE_COMPILER (compiler));
klass = VIVI_CODE_TOKEN_GET_CLASS (token);
g_return_if_fail (klass->compile);
- klass->compile (token, assembler);
+ klass->compile (token, compiler);
}
diff --git a/vivified/code/vivi_code_token.h b/vivified/code/vivi_code_token.h
index 2ef0d61..4ae9b2b 100644
--- a/vivified/code/vivi_code_token.h
+++ b/vivified/code/vivi_code_token.h
@@ -27,6 +27,7 @@ G_BEGIN_DECLS
typedef struct _ViviCodePrinter ViviCodePrinter;
typedef struct _ViviCodeAssembler ViviCodeAssembler;
+typedef struct _ViviCodeCompiler ViviCodeCompiler;
typedef struct _ViviCodeToken ViviCodeToken;
typedef struct _ViviCodeTokenClass ViviCodeTokenClass;
@@ -50,13 +51,13 @@ struct _ViviCodeTokenClass
void (* print) (ViviCodeToken * token,
ViviCodePrinter * printer);
void (* compile) (ViviCodeToken * token,
- ViviCodeAssembler * assembler);
+ ViviCodeCompiler * compiler);
};
GType vivi_code_token_get_type (void);
void vivi_code_token_compile (ViviCodeToken * token,
- ViviCodeAssembler * assembler);
+ ViviCodeCompiler * compiler);
G_END_DECLS
diff --git a/vivified/code/vivi_code_unary.c b/vivified/code/vivi_code_unary.c
index 9885219..0ba5387 100644
--- a/vivified/code/vivi_code_unary.c
+++ b/vivified/code/vivi_code_unary.c
@@ -23,7 +23,7 @@
#include "vivi_code_unary.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm.h"
#include "vivi_code_asm_code_default.h"
@@ -70,17 +70,17 @@ vivi_code_unary_print (ViviCodeToken *token, ViviCodePrinter*printer)
}
static void
-vivi_code_unary_compile (ViviCodeToken *token, ViviCodeAssembler *assembler)
+vivi_code_unary_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeUnary *unary = VIVI_CODE_UNARY (token);
ViviCodeAsm *code;
g_return_if_fail (unary->operation != '!');
- vivi_code_value_compile (unary->value, assembler);
+ vivi_code_compiler_compile_value (compiler, unary->value);
code = vivi_code_asm_not_new ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_undefined.c b/vivified/code/vivi_code_undefined.c
index 65efc1c..32fcbd2 100644
--- a/vivified/code/vivi_code_undefined.c
+++ b/vivified/code/vivi_code_undefined.c
@@ -27,7 +27,7 @@
#include "vivi_code_undefined.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm_push.h"
G_DEFINE_TYPE (ViviCodeUndefined, vivi_code_undefined, VIVI_TYPE_CODE_CONSTANT)
@@ -39,14 +39,13 @@ vivi_code_undefined_print (ViviCodeToken *token, ViviCodePrinter *printer)
}
static void
-vivi_code_undefined_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+vivi_code_undefined_compile (ViviCodeToken *token, ViviCodeCompiler *compiler)
{
ViviCodeAsm *code;
code = vivi_code_asm_push_new ();
vivi_code_asm_push_add_undefined (VIVI_CODE_ASM_PUSH (code));
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_code_value.c b/vivified/code/vivi_code_value.c
index 9fb8ce9..30539cf 100644
--- a/vivified/code/vivi_code_value.c
+++ b/vivified/code/vivi_code_value.c
@@ -100,11 +100,3 @@ vivi_code_value_is_equal (ViviCodeValue *a, ViviCodeValue *b)
return a == b;
}
-
-void vivi_code_value_compile (ViviCodeValue *value,
- ViviCodeAssembler *assembler)
-{
- g_return_if_fail (VIVI_IS_CODE_VALUE (value));
-
- vivi_code_token_compile (VIVI_CODE_TOKEN (value), assembler);
-}
diff --git a/vivified/code/vivi_code_value.h b/vivified/code/vivi_code_value.h
index dc7e2cd..df2438f 100644
--- a/vivified/code/vivi_code_value.h
+++ b/vivified/code/vivi_code_value.h
@@ -88,8 +88,5 @@ ViviPrecedence vivi_code_value_get_precedence (ViviCodeValue * value);
ViviCodeValue * vivi_code_value_optimize (ViviCodeValue * value,
SwfdecAsValueType hint);
-void vivi_code_value_compile (ViviCodeValue * value,
- ViviCodeAssembler * assembler);
-
G_END_DECLS
#endif
diff --git a/vivified/code/vivi_code_value_statement.c b/vivified/code/vivi_code_value_statement.c
index 8efc9d3..b3092ba 100644
--- a/vivified/code/vivi_code_value_statement.c
+++ b/vivified/code/vivi_code_value_statement.c
@@ -23,7 +23,7 @@
#include "vivi_code_value_statement.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
#include "vivi_code_asm.h"
#include "vivi_code_asm_code_default.h"
@@ -51,15 +51,15 @@ vivi_code_value_statement_print (ViviCodeToken *token, ViviCodePrinter *printer)
static void
vivi_code_value_statement_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
ViviCodeValueStatement *stmt = VIVI_CODE_VALUE_STATEMENT (token);
ViviCodeAsm *code;
- vivi_code_value_compile (stmt->value, assembler);
+ vivi_code_compiler_compile_value (compiler, stmt->value);
code = vivi_code_asm_pop_new ();
- vivi_code_assembler_add_code (assembler, code);
+ vivi_code_compiler_add_code (compiler, code);
g_object_unref (code);
}
diff --git a/vivified/code/vivi_compiler_empty_statement.c b/vivified/code/vivi_compiler_empty_statement.c
index de1bb50..4d1ef06 100644
--- a/vivified/code/vivi_compiler_empty_statement.c
+++ b/vivified/code/vivi_compiler_empty_statement.c
@@ -24,7 +24,7 @@
#include "vivi_compiler_empty_statement.h"
#include "vivi_code_printer.h"
-#include "vivi_code_assembler.h"
+#include "vivi_code_compiler.h"
G_DEFINE_TYPE (ViviCompilerEmptyStatement, vivi_compiler_empty_statement, VIVI_TYPE_CODE_STATEMENT)
@@ -44,7 +44,7 @@ vivi_compiler_empty_statement_print (ViviCodeToken *token,
static void
vivi_compiler_empty_statement_compile (ViviCodeToken *token,
- ViviCodeAssembler *assembler)
+ ViviCodeCompiler *compiler)
{
/* nothing */
}
commit 8232ea383892057880760bb67470b55e5e84a821
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu May 8 11:01:58 2008 +0300
Get stack add/remove values and use them in push merging
Merging is at the moment only done over actions that don't add or remove
anything to/from the stack
diff --git a/vivified/code/vivi_code_asm_code.c b/vivified/code/vivi_code_asm_code.c
index 8f47ee5..be0f488 100644
--- a/vivified/code/vivi_code_asm_code.c
+++ b/vivified/code/vivi_code_asm_code.c
@@ -71,3 +71,19 @@ vivi_code_asm_code_get_action (ViviCodeAsmCode *code)
return klass->bytecode;
}
+
+int
+vivi_code_asm_code_get_stack_add (ViviCodeAsmCode *code)
+{
+ g_return_val_if_fail (VIVI_IS_CODE_ASM_CODE (code), -1);
+
+ return swfdec_as_actions[vivi_code_asm_code_get_action (code)].add;
+}
+
+int
+vivi_code_asm_code_get_stack_remove (ViviCodeAsmCode *code)
+{
+ g_return_val_if_fail (VIVI_IS_CODE_ASM_CODE (code), -1);
+
+ return swfdec_as_actions[vivi_code_asm_code_get_action (code)].remove;
+}
diff --git a/vivified/code/vivi_code_asm_code.h b/vivified/code/vivi_code_asm_code.h
index d62f6b6..273c803 100644
--- a/vivified/code/vivi_code_asm_code.h
+++ b/vivified/code/vivi_code_asm_code.h
@@ -50,9 +50,11 @@ struct _ViviCodeAsmCodeClass
SwfdecAsAction bytecode;
};
-GType vivi_code_asm_code_get_type (void);
+GType vivi_code_asm_code_get_type (void);
-SwfdecAsAction vivi_code_asm_code_get_action (ViviCodeAsmCode * code);
+SwfdecAsAction vivi_code_asm_code_get_action (ViviCodeAsmCode * code);
+int vivi_code_asm_code_get_stack_add (ViviCodeAsmCode * code);
+int vivi_code_asm_code_get_stack_remove (ViviCodeAsmCode * code);
G_END_DECLS
diff --git a/vivified/code/vivi_code_assembler.c b/vivified/code/vivi_code_assembler.c
index baf4424..8087fe1 100644
--- a/vivified/code/vivi_code_assembler.c
+++ b/vivified/code/vivi_code_assembler.c
@@ -281,15 +281,16 @@ void
vivi_code_assembler_merge_push (ViviCodeAssembler *assembler)
{
ViviCodeAsmPush *previous;
- guint i, j;
+ guint i, j, depth;
+ depth = 0;
previous = NULL;
for (i = 0; i < assembler->codes->len; i++) {
if (VIVI_IS_CODE_ASM_PUSH (g_ptr_array_index (assembler->codes, i))) {
ViviCodeAsmPush *current =
VIVI_CODE_ASM_PUSH (g_ptr_array_index (assembler->codes, i));
- if (previous != NULL) {
+ if (previous != NULL && depth == 0) {
for (j = 0; j < vivi_code_asm_push_get_n_values (current); j++) {
vivi_code_asm_push_copy_value (previous, current, j);
}
@@ -297,9 +298,23 @@ vivi_code_assembler_merge_push (ViviCodeAssembler *assembler)
i--;
} else {
previous = current;
+ depth = 0;
}
} else {
- previous = NULL;
+ if (previous != NULL) {
+ if (vivi_code_asm_code_get_stack_add (VIVI_CODE_ASM_CODE (
+ g_ptr_array_index (assembler->codes, i))) != 0) {
+ previous = NULL;
+ } else {
+ int remove = vivi_code_asm_code_get_stack_remove (VIVI_CODE_ASM_CODE (
+ g_ptr_array_index (assembler->codes, i)));
+ if (remove == -1) {
+ previous = NULL;
+ } else {
+ depth += remove;
+ }
+ }
+ }
}
}
}
commit fef5abb74eaedabd8c1aef1e2e7516e475301d61
Author: Pekka Lampila <pekka.lampila at iki.fi>
Date: Thu May 8 09:37:39 2008 +0300
Merge pushes that come right after each other. Add a test for function call
diff --git a/vivified/code/compiler.c b/vivified/code/compiler.c
index 8ebd650..b0fa84f 100644
--- a/vivified/code/compiler.c
+++ b/vivified/code/compiler.c
@@ -189,6 +189,7 @@ main (int argc, char *argv[])
g_object_unref (code);
vivi_code_assembler_pool (assembler);
+ vivi_code_assembler_merge_push (assembler);
if (use_asm) {
ViviCodePrinter *printer = vivi_code_text_printer_new ();
diff --git a/vivified/code/test/compiler/Makefile.am b/vivified/code/test/compiler/Makefile.am
index fd2c3cf..e432751 100644
--- a/vivified/code/test/compiler/Makefile.am
+++ b/vivified/code/test/compiler/Makefile.am
@@ -16,6 +16,8 @@ check-local: $(top_builddir)/vivified/code/vivi-compile
EXTRA_DIST = \
builtin_statement.as \
builtin_statement.as.expect \
+ call_function.as \
+ call_function.as.expect \
comment.as \
comment.as.expect \
empty.as \
diff --git a/vivified/code/test/compiler/call_function.as b/vivified/code/test/compiler/call_function.as
new file mode 100644
index 0000000..13dd15a
--- /dev/null
+++ b/vivified/code/test/compiler/call_function.as
@@ -0,0 +1 @@
+test ("a", "b", "c");
diff --git a/vivified/code/test/compiler/call_function.as.expect b/vivified/code/test/compiler/call_function.as.expect
new file mode 100644
index 0000000..58395c4
--- /dev/null
+++ b/vivified/code/test/compiler/call_function.as.expect
@@ -0,0 +1,7 @@
+asm {
+ pool "c", "b", "a", "test"
+ push pool 0, pool 1, pool 2, 3, pool 3
+ call_function
+ pop
+ end
+}
diff --git a/vivified/code/vivi_code_assembler.c b/vivified/code/vivi_code_assembler.c
index fff4087..baf4424 100644
--- a/vivified/code/vivi_code_assembler.c
+++ b/vivified/code/vivi_code_assembler.c
@@ -277,6 +277,33 @@ vivi_code_assembler_pool (ViviCodeAssembler *assembler)
return TRUE;
}
+void
+vivi_code_assembler_merge_push (ViviCodeAssembler *assembler)
+{
+ ViviCodeAsmPush *previous;
+ guint i, j;
+
+ previous = NULL;
+ for (i = 0; i < assembler->codes->len; i++) {
+ if (VIVI_IS_CODE_ASM_PUSH (g_ptr_array_index (assembler->codes, i))) {
+ ViviCodeAsmPush *current =
+ VIVI_CODE_ASM_PUSH (g_ptr_array_index (assembler->codes, i));
+
+ if (previous != NULL) {
+ for (j = 0; j < vivi_code_asm_push_get_n_values (current); j++) {
+ vivi_code_asm_push_copy_value (previous, current, j);
+ }
+ vivi_code_assembler_remove_code (assembler, VIVI_CODE_ASM (current));
+ i--;
+ } else {
+ previous = current;
+ }
+ } else {
+ previous = NULL;
+ }
+ }
+}
+
SwfdecScript *
vivi_code_assembler_assemble_script (ViviCodeAssembler *assembler,
guint version, GError **error)
diff --git a/vivified/code/vivi_code_assembler.h b/vivified/code/vivi_code_assembler.h
index 833d2b0..508e861 100644
--- a/vivified/code/vivi_code_assembler.h
+++ b/vivified/code/vivi_code_assembler.h
@@ -62,6 +62,7 @@ void vivi_code_assembler_remove_code (ViviCodeAssembler * assembler,
ViviCodeAsm * code);
gboolean vivi_code_assembler_pool (ViviCodeAssembler * assembler);
+void vivi_code_assembler_merge_push (ViviCodeAssembler * assembler);
SwfdecScript * vivi_code_assembler_assemble_script (ViviCodeAssembler * assembler,
guint version,
More information about the Swfdec-commits
mailing list