Imported Upstream version 2.5
authorHyunjee Kim <hj0426.kim@samsung.com>
Tue, 31 Mar 2020 04:11:45 +0000 (13:11 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Tue, 31 Mar 2020 04:11:52 +0000 (13:11 +0900)
Change-Id: I562be3c9288eab0ca589e5ebd8fe058af6c7a1b5
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
417 files changed:
INSTALL.md
LICENSE.md
MANIFEST [new file with mode: 0644]
PKG-INFO
README.md
bin/markdown_py [changed mode: 0644->0755]
docs/_template.html
docs/authors.txt
docs/basic.css
docs/change_log.txt
docs/cli.txt
docs/default.css
docs/extensions/abbreviations.txt
docs/extensions/admonition.txt
docs/extensions/api.txt
docs/extensions/attr_list.txt
docs/extensions/code_hilite.txt
docs/extensions/definition_lists.txt
docs/extensions/extra.txt
docs/extensions/fenced_code_blocks.txt
docs/extensions/footnotes.txt
docs/extensions/header_id.txt
docs/extensions/index.txt
docs/extensions/meta_data.txt
docs/extensions/nl2br.txt
docs/extensions/sane_lists.txt
docs/extensions/smart_strong.txt
docs/extensions/smarty.txt
docs/extensions/tables.txt
docs/extensions/toc.txt
docs/extensions/wikilinks.txt
docs/index.txt
docs/install.txt
docs/reference.txt
docs/release-2.0.1.txt
docs/release-2.0.2.txt
docs/release-2.0.txt
docs/release-2.1.0.txt
docs/release-2.1.1.txt
docs/release-2.2.1.txt
docs/release-2.3.txt
docs/release-2.4.txt
docs/release-2.5.txt [new file with mode: 0644]
docs/siteindex.txt
docs/test_suite.txt
makefile
markdown/__init__.py
markdown/__main__.py
markdown/__version__.py
markdown/blockparser.py
markdown/blockprocessors.py
markdown/extensions/__init__.py
markdown/extensions/abbr.py
markdown/extensions/admonition.py
markdown/extensions/attr_list.py
markdown/extensions/codehilite.py
markdown/extensions/def_list.py
markdown/extensions/extra.py
markdown/extensions/fenced_code.py
markdown/extensions/footnotes.py
markdown/extensions/headerid.py
markdown/extensions/meta.py
markdown/extensions/nl2br.py
markdown/extensions/sane_lists.py
markdown/extensions/smart_strong.py
markdown/extensions/smarty.py
markdown/extensions/tables.py
markdown/extensions/toc.py
markdown/extensions/wikilinks.py
markdown/inlinepatterns.py
markdown/odict.py
markdown/postprocessors.py
markdown/preprocessors.py
markdown/serializers.py
markdown/treeprocessors.py
markdown/util.py
run-tests.py [changed mode: 0644->0755]
setup.cfg
setup.py [changed mode: 0644->0755]
tests/__init__.py
tests/basic/amps-and-angle-encoding.html
tests/basic/amps-and-angle-encoding.txt
tests/basic/angle-links-and-img.html
tests/basic/angle-links-and-img.txt
tests/basic/auto-links.html
tests/basic/auto-links.txt
tests/basic/backlash-escapes.html
tests/basic/backlash-escapes.txt
tests/basic/blockquotes-with-code-blocks.html
tests/basic/blockquotes-with-code-blocks.txt
tests/basic/codeblock-in-list.html
tests/basic/codeblock-in-list.txt
tests/basic/hard-wrapped.html
tests/basic/hard-wrapped.txt
tests/basic/horizontal-rules.html
tests/basic/horizontal-rules.txt
tests/basic/inline-html-advanced.html
tests/basic/inline-html-advanced.txt
tests/basic/inline-html-comments.html
tests/basic/inline-html-comments.txt
tests/basic/inline-html-simple.html
tests/basic/inline-html-simple.txt
tests/basic/links-inline.html
tests/basic/links-inline.txt
tests/basic/links-reference.html
tests/basic/links-reference.txt
tests/basic/literal-quotes.html
tests/basic/literal-quotes.txt
tests/basic/markdown-documentation-basics.html
tests/basic/markdown-documentation-basics.txt
tests/basic/markdown-syntax.html
tests/basic/markdown-syntax.txt
tests/basic/nested-blockquotes.html
tests/basic/nested-blockquotes.txt
tests/basic/ordered-and-unordered-list.html
tests/basic/ordered-and-unordered-list.txt
tests/basic/strong-and-em-together.html
tests/basic/strong-and-em-together.txt
tests/basic/tabs.html
tests/basic/tabs.txt
tests/basic/tidyness.html
tests/basic/tidyness.txt
tests/extensions/admonition.html
tests/extensions/admonition.txt
tests/extensions/attr_list.html
tests/extensions/attr_list.txt
tests/extensions/codehilite.html
tests/extensions/codehilite.txt
tests/extensions/extra/abbr.html
tests/extensions/extra/abbr.txt
tests/extensions/extra/def-in-list.html
tests/extensions/extra/def-in-list.txt
tests/extensions/extra/extra_config.html [new file with mode: 0644]
tests/extensions/extra/extra_config.txt [new file with mode: 0644]
tests/extensions/extra/footnote.html
tests/extensions/extra/footnote.txt
tests/extensions/extra/footnote_many_footnotes.html
tests/extensions/extra/footnote_many_footnotes.txt
tests/extensions/extra/footnote_placeholder.html
tests/extensions/extra/footnote_placeholder.txt
tests/extensions/extra/loose_def_list.html
tests/extensions/extra/loose_def_list.txt
tests/extensions/extra/markdown-syntax.html
tests/extensions/extra/markdown-syntax.txt
tests/extensions/extra/named_markers.html
tests/extensions/extra/named_markers.txt
tests/extensions/extra/raw-html.html
tests/extensions/extra/raw-html.txt
tests/extensions/extra/simple_def-lists.html
tests/extensions/extra/simple_def-lists.txt
tests/extensions/extra/tables.html
tests/extensions/extra/tables.txt
tests/extensions/extra/tables_and_attr_list.html
tests/extensions/extra/tables_and_attr_list.txt
tests/extensions/extra/test.cfg
tests/extensions/fenced_code.html
tests/extensions/fenced_code.txt
tests/extensions/github_flavored.html
tests/extensions/github_flavored.txt
tests/extensions/nl2br_w_attr_list.txt
tests/extensions/sane_lists.html
tests/extensions/sane_lists.txt
tests/extensions/smarty.html
tests/extensions/smarty.txt
tests/extensions/test.cfg
tests/extensions/toc.html
tests/extensions/toc.txt
tests/extensions/toc_invalid.html
tests/extensions/toc_invalid.txt
tests/extensions/toc_nested.html
tests/extensions/toc_nested.txt
tests/extensions/toc_nested2.html
tests/extensions/toc_nested2.txt
tests/extensions/toc_out_of_order.html
tests/extensions/toc_out_of_order.txt
tests/extensions/wikilinks.html
tests/extensions/wikilinks.txt
tests/html4/html4.html [deleted file]
tests/html4/html4.txt [deleted file]
tests/html4/test.cfg [deleted file]
tests/misc/CRLF_line_ends.html
tests/misc/adjacent-headers.html
tests/misc/adjacent-headers.txt
tests/misc/amp-in-url.txt
tests/misc/ampersand.html
tests/misc/ampersand.txt
tests/misc/arabic.html
tests/misc/arabic.txt
tests/misc/attributes-image-ref.txt
tests/misc/attributes2.html
tests/misc/attributes2.txt
tests/misc/autolinks_with_asterisks.txt
tests/misc/autolinks_with_asterisks_russian.txt
tests/misc/backtick-escape.html
tests/misc/backtick-escape.txt
tests/misc/bidi.html
tests/misc/bidi.txt
tests/misc/blank-block-quote.html
tests/misc/blank-block-quote.txt
tests/misc/blank_lines_in_codeblocks.html
tests/misc/blank_lines_in_codeblocks.txt
tests/misc/block_html5.html
tests/misc/block_html5.txt
tests/misc/block_html_attr.html
tests/misc/block_html_attr.txt
tests/misc/block_html_simple.html
tests/misc/block_html_simple.txt
tests/misc/blockquote-below-paragraph.html
tests/misc/blockquote-below-paragraph.txt
tests/misc/blockquote-hr.html
tests/misc/blockquote-hr.txt
tests/misc/blockquote.html
tests/misc/blockquote.txt
tests/misc/bold_links.txt
tests/misc/br.html
tests/misc/br.txt
tests/misc/bracket_re.html
tests/misc/bracket_re.txt
tests/misc/brackets-in-img-title.html
tests/misc/brackets-in-img-title.txt
tests/misc/code-first-line.html
tests/misc/code-first-line.txt
tests/misc/comments.html
tests/misc/comments.txt
tests/misc/div.html
tests/misc/div.txt
tests/misc/em-around-links.html
tests/misc/em-around-links.txt
tests/misc/em_strong.html
tests/misc/em_strong.txt
tests/misc/email.html
tests/misc/email.txt
tests/misc/escaped_chars_in_js.html
tests/misc/escaped_chars_in_js.txt
tests/misc/escaped_links.html
tests/misc/escaped_links.txt
tests/misc/funky-list.html
tests/misc/funky-list.txt
tests/misc/h1.html
tests/misc/h1.txt
tests/misc/hash.html
tests/misc/hash.txt
tests/misc/header-in-lists.html
tests/misc/header-in-lists.txt
tests/misc/headers.html
tests/misc/headers.txt
tests/misc/hline.html
tests/misc/hline.txt
tests/misc/html-comments.html
tests/misc/html-comments.txt
tests/misc/html.html
tests/misc/html.txt
tests/misc/image-2.html
tests/misc/image-2.txt
tests/misc/image.html
tests/misc/image.txt
tests/misc/image_in_links.txt
tests/misc/ins-at-start-of-paragraph.txt
tests/misc/inside_html.txt
tests/misc/japanese.html
tests/misc/japanese.txt
tests/misc/lazy-block-quote.html
tests/misc/lazy-block-quote.txt
tests/misc/link-with-parenthesis.txt
tests/misc/lists.html
tests/misc/lists.txt
tests/misc/lists2.html
tests/misc/lists2.txt
tests/misc/lists3.html
tests/misc/lists3.txt
tests/misc/lists4.html
tests/misc/lists4.txt
tests/misc/lists5.html
tests/misc/lists5.txt
tests/misc/lists6.html
tests/misc/lists6.txt
tests/misc/lists7.html
tests/misc/lists7.txt
tests/misc/lists8.html
tests/misc/lists8.txt
tests/misc/markup-inside-p.html
tests/misc/markup-inside-p.txt
tests/misc/mismatched-tags.html
tests/misc/mismatched-tags.txt
tests/misc/missing-link-def.txt
tests/misc/more_comments.html
tests/misc/more_comments.txt
tests/misc/multi-line-tags.html
tests/misc/multi-line-tags.txt
tests/misc/multi-paragraph-block-quote.html
tests/misc/multi-paragraph-block-quote.txt
tests/misc/multi-test.html
tests/misc/multi-test.txt
tests/misc/multiline-comments.html
tests/misc/multiline-comments.txt
tests/misc/nested-lists.html
tests/misc/nested-lists.txt
tests/misc/nested-patterns.html
tests/misc/nested-patterns.txt
tests/misc/no-attributes.html [deleted file]
tests/misc/no-attributes.txt [deleted file]
tests/misc/normalize.txt
tests/misc/numeric-entity.html
tests/misc/numeric-entity.txt
tests/misc/para-with-hr.html
tests/misc/para-with-hr.txt
tests/misc/php.html
tests/misc/php.txt
tests/misc/pre.html
tests/misc/pre.txt
tests/misc/raw_whitespace.html
tests/misc/raw_whitespace.txt
tests/misc/russian.html
tests/misc/russian.txt
tests/misc/smart_em.html
tests/misc/smart_em.txt
tests/misc/some-test.html
tests/misc/some-test.txt
tests/misc/span.html
tests/misc/span.txt
tests/misc/strong-with-underscores.txt
tests/misc/stronintags.html
tests/misc/stronintags.txt
tests/misc/tabs-in-lists.html
tests/misc/tabs-in-lists.txt
tests/misc/test.cfg [deleted file]
tests/misc/two-spaces.html
tests/misc/two-spaces.txt
tests/misc/uche.html
tests/misc/uche.txt
tests/misc/underscores.html
tests/misc/underscores.txt
tests/misc/url_spaces.html
tests/misc/url_spaces.txt
tests/options/html4.html [new file with mode: 0644]
tests/options/html4.txt [new file with mode: 0644]
tests/options/lazy_ol_off.html
tests/options/lazy_ol_off.txt
tests/options/no-attributes.html [new file with mode: 0644]
tests/options/no-attributes.txt [new file with mode: 0644]
tests/options/no-smart-emphasis.html [new file with mode: 0644]
tests/options/no-smart-emphasis.txt [new file with mode: 0644]
tests/options/test.cfg
tests/php/extra/test.cfg
tests/php/test.cfg
tests/pl/Tests_2004/Amps and angle encoding.html
tests/pl/Tests_2004/Auto links.html
tests/pl/Tests_2004/Backslash escapes.html
tests/pl/Tests_2004/Blockquotes with code blocks.html
tests/pl/Tests_2004/Hard-wrapped paragraphs with list-like lines.html
tests/pl/Tests_2004/Horizontal rules.html
tests/pl/Tests_2004/Inline HTML (Advanced).html
tests/pl/Tests_2004/Inline HTML (Simple).html
tests/pl/Tests_2004/Inline HTML comments.html
tests/pl/Tests_2004/Links, inline style.html
tests/pl/Tests_2004/Links, reference style.html
tests/pl/Tests_2004/Literal quotes in titles.html
tests/pl/Tests_2004/Markdown Documentation - Basics.html
tests/pl/Tests_2004/Markdown Documentation - Syntax.html
tests/pl/Tests_2004/Nested blockquotes.html
tests/pl/Tests_2004/Ordered and unordered lists.html
tests/pl/Tests_2004/Strong and em together.html
tests/pl/Tests_2004/Tabs.html
tests/pl/Tests_2004/Tidyness.html
tests/pl/Tests_2004/Yuri-Attributes.html
tests/pl/Tests_2004/Yuri-Email.html
tests/pl/Tests_2004/Yuri-Footnotes.html
tests/pl/Tests_2004/Yuri-Links-in-Headers.html
tests/pl/Tests_2004/test.cfg
tests/pl/Tests_2007/Amps and angle encoding.html
tests/pl/Tests_2007/Auto links.html
tests/pl/Tests_2007/Backslash escapes.html
tests/pl/Tests_2007/Blockquotes with code blocks.html
tests/pl/Tests_2007/Code Blocks.html
tests/pl/Tests_2007/Code Spans.html
tests/pl/Tests_2007/Hard-wrapped paragraphs with list-like lines.html
tests/pl/Tests_2007/Horizontal rules.html
tests/pl/Tests_2007/Images.html
tests/pl/Tests_2007/Inline HTML (Advanced).html
tests/pl/Tests_2007/Inline HTML (Simple).html
tests/pl/Tests_2007/Inline HTML comments.html
tests/pl/Tests_2007/Links, inline style.html
tests/pl/Tests_2007/Links, reference style.html
tests/pl/Tests_2007/Links, shortcut references.html
tests/pl/Tests_2007/Literal quotes in titles.html
tests/pl/Tests_2007/Markdown Documentation - Basics.html
tests/pl/Tests_2007/Markdown Documentation - Syntax.html
tests/pl/Tests_2007/Nested blockquotes.html
tests/pl/Tests_2007/Ordered and unordered lists.html
tests/pl/Tests_2007/Strong and em together.html
tests/pl/Tests_2007/Tabs.html
tests/pl/Tests_2007/Tidyness.html
tests/pl/Tests_2007/test.cfg
tests/plugins.py
tests/safe_mode/html_then_blockquote.html
tests/safe_mode/html_then_blockquote.txt
tests/safe_mode/inline-html-advanced.html
tests/safe_mode/inline-html-advanced.txt
tests/safe_mode/inline-html-comments.html
tests/safe_mode/inline-html-comments.txt
tests/safe_mode/inline-html-simple.html
tests/safe_mode/inline-html-simple.txt
tests/safe_mode/link-targets.html
tests/safe_mode/link-targets.txt
tests/safe_mode/remove.html
tests/safe_mode/remove.txt
tests/safe_mode/replace.html
tests/safe_mode/replace.txt
tests/safe_mode/script_tags.html
tests/safe_mode/script_tags.txt
tests/safe_mode/test.cfg
tests/safe_mode/unsafe_urls.html
tests/safe_mode/unsafe_urls.txt
tests/test_apis.py
tests/test_extensions.py
tests/util.py [deleted file]
tox.ini

index 0e3bc5d35634ae8b63f5ab794820af60428808c6..6e6ab8c74edac1fa69ab553f21635d1f257e2ef8 100644 (file)
@@ -1,9 +1,9 @@
-Installing Python-Markdown\r
-==========================\r
-\r
-As an Admin/Root user on your system do:\r
-\r
-    pip install markdown\r
-\r
-Or for more specific instructions, view the documentation in `docs/install.txt`\r
-or on the website at <http://packages.python.org/Markdown/>.\r
+Installing Python-Markdown
+==========================
+
+As an Admin/Root user on your system do:
+
+    pip install markdown
+
+Or for more specific instructions, view the documentation in `docs/install.txt`
+or on the website at <https://pythonhosted.org/Markdown/install.html>.
index 4e0fce428cc189458917f370d67bc326a96fb1db..4cd8b1455d7d9f841452fdb267231c0f1ec1bda8 100644 (file)
@@ -1,30 +1,30 @@
-Copyright 2007, 2008 The Python Markdown Project (v. 1.7 and later)  \r
-Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)  \r
-Copyright 2004 Manfred Stienstra (the original version)  \r
-\r
-All rights reserved.\r
-\r
-Redistribution and use in source and binary forms, with or without\r
-modification, are permitted provided that the following conditions are met:\r
-    \r
-*   Redistributions of source code must retain the above copyright\r
-    notice, this list of conditions and the following disclaimer.\r
-*   Redistributions in binary form must reproduce the above copyright\r
-    notice, this list of conditions and the following disclaimer in the\r
-    documentation and/or other materials provided with the distribution.\r
-*   Neither the name of the <organization> nor the\r
-    names of its contributors may be used to endorse or promote products\r
-    derived from this software without specific prior written permission.\r
-\r
-THIS SOFTWARE IS PROVIDED BY THE PYTHON MARKDOWN PROJECT ''AS IS'' AND ANY\r
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
-DISCLAIMED. IN NO EVENT SHALL ANY CONTRIBUTORS TO THE PYTHON MARKDOWN PROJECT\r
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
-POSSIBILITY OF SUCH DAMAGE.\r
-\r
+Copyright 2007, 2008 The Python Markdown Project (v. 1.7 and later)  
+Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)  
+Copyright 2004 Manfred Stienstra (the original version)  
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    
+*   Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+*   Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+*   Neither the name of the <organization> nor the
+    names of its contributors may be used to endorse or promote products
+    derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE PYTHON MARKDOWN PROJECT ''AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL ANY CONTRIBUTORS TO THE PYTHON MARKDOWN PROJECT
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/MANIFEST b/MANIFEST
new file mode 100644 (file)
index 0000000..78195a6
--- /dev/null
+++ b/MANIFEST
@@ -0,0 +1,426 @@
+# file GENERATED by distutils, do NOT edit
+INSTALL.md
+LICENSE.md
+MANIFEST
+README.md
+makefile
+run-tests.py
+setup.cfg
+setup.py
+tox.ini
+bin/markdown_py
+docs/_template.html
+docs/authors.txt
+docs/basic.css
+docs/change_log.txt
+docs/cli.txt
+docs/default.css
+docs/index.txt
+docs/install.txt
+docs/py.png
+docs/reference.txt
+docs/release-2.0.1.txt
+docs/release-2.0.2.txt
+docs/release-2.0.txt
+docs/release-2.1.0.txt
+docs/release-2.1.1.txt
+docs/release-2.2.0.txt
+docs/release-2.2.1.txt
+docs/release-2.3.txt
+docs/release-2.4.txt
+docs/release-2.5.txt
+docs/siteindex.txt
+docs/test_suite.txt
+docs/extensions/abbreviations.txt
+docs/extensions/admonition.txt
+docs/extensions/api.txt
+docs/extensions/attr_list.txt
+docs/extensions/code_hilite.txt
+docs/extensions/definition_lists.txt
+docs/extensions/extra.txt
+docs/extensions/fenced_code_blocks.txt
+docs/extensions/footnotes.txt
+docs/extensions/header_id.txt
+docs/extensions/index.txt
+docs/extensions/meta_data.txt
+docs/extensions/nl2br.txt
+docs/extensions/sane_lists.txt
+docs/extensions/smart_strong.txt
+docs/extensions/smarty.txt
+docs/extensions/tables.txt
+docs/extensions/toc.txt
+docs/extensions/wikilinks.txt
+markdown/__init__.py
+markdown/__main__.py
+markdown/__version__.py
+markdown/blockparser.py
+markdown/blockprocessors.py
+markdown/inlinepatterns.py
+markdown/odict.py
+markdown/postprocessors.py
+markdown/preprocessors.py
+markdown/serializers.py
+markdown/treeprocessors.py
+markdown/util.py
+markdown/extensions/__init__.py
+markdown/extensions/abbr.py
+markdown/extensions/admonition.py
+markdown/extensions/attr_list.py
+markdown/extensions/codehilite.py
+markdown/extensions/def_list.py
+markdown/extensions/extra.py
+markdown/extensions/fenced_code.py
+markdown/extensions/footnotes.py
+markdown/extensions/headerid.py
+markdown/extensions/meta.py
+markdown/extensions/nl2br.py
+markdown/extensions/sane_lists.py
+markdown/extensions/smart_strong.py
+markdown/extensions/smarty.py
+markdown/extensions/tables.py
+markdown/extensions/toc.py
+markdown/extensions/wikilinks.py
+tests/__init__.py
+tests/plugins.py
+tests/test_apis.py
+tests/test_extensions.py
+tests/basic/amps-and-angle-encoding.html
+tests/basic/amps-and-angle-encoding.txt
+tests/basic/angle-links-and-img.html
+tests/basic/angle-links-and-img.txt
+tests/basic/auto-links.html
+tests/basic/auto-links.txt
+tests/basic/backlash-escapes.html
+tests/basic/backlash-escapes.txt
+tests/basic/blockquotes-with-code-blocks.html
+tests/basic/blockquotes-with-code-blocks.txt
+tests/basic/codeblock-in-list.html
+tests/basic/codeblock-in-list.txt
+tests/basic/hard-wrapped.html
+tests/basic/hard-wrapped.txt
+tests/basic/horizontal-rules.html
+tests/basic/horizontal-rules.txt
+tests/basic/inline-html-advanced.html
+tests/basic/inline-html-advanced.txt
+tests/basic/inline-html-comments.html
+tests/basic/inline-html-comments.txt
+tests/basic/inline-html-simple.html
+tests/basic/inline-html-simple.txt
+tests/basic/links-inline.html
+tests/basic/links-inline.txt
+tests/basic/links-reference.html
+tests/basic/links-reference.txt
+tests/basic/literal-quotes.html
+tests/basic/literal-quotes.txt
+tests/basic/markdown-documentation-basics.html
+tests/basic/markdown-documentation-basics.txt
+tests/basic/markdown-syntax.html
+tests/basic/markdown-syntax.txt
+tests/basic/nested-blockquotes.html
+tests/basic/nested-blockquotes.txt
+tests/basic/ordered-and-unordered-list.html
+tests/basic/ordered-and-unordered-list.txt
+tests/basic/strong-and-em-together.html
+tests/basic/strong-and-em-together.txt
+tests/basic/tabs.html
+tests/basic/tabs.txt
+tests/basic/tidyness.html
+tests/basic/tidyness.txt
+tests/extensions/admonition.html
+tests/extensions/admonition.txt
+tests/extensions/attr_list.html
+tests/extensions/attr_list.txt
+tests/extensions/codehilite.html
+tests/extensions/codehilite.txt
+tests/extensions/fenced_code.html
+tests/extensions/fenced_code.txt
+tests/extensions/github_flavored.html
+tests/extensions/github_flavored.txt
+tests/extensions/nl2br_w_attr_list.html
+tests/extensions/nl2br_w_attr_list.txt
+tests/extensions/sane_lists.html
+tests/extensions/sane_lists.txt
+tests/extensions/smarty.html
+tests/extensions/smarty.txt
+tests/extensions/test.cfg
+tests/extensions/toc.html
+tests/extensions/toc.txt
+tests/extensions/toc_invalid.html
+tests/extensions/toc_invalid.txt
+tests/extensions/toc_nested.html
+tests/extensions/toc_nested.txt
+tests/extensions/toc_nested2.html
+tests/extensions/toc_nested2.txt
+tests/extensions/toc_out_of_order.html
+tests/extensions/toc_out_of_order.txt
+tests/extensions/wikilinks.html
+tests/extensions/wikilinks.txt
+tests/extensions/extra/abbr.html
+tests/extensions/extra/abbr.txt
+tests/extensions/extra/def-in-list.html
+tests/extensions/extra/def-in-list.txt
+tests/extensions/extra/extra_config.html
+tests/extensions/extra/extra_config.txt
+tests/extensions/extra/footnote.html
+tests/extensions/extra/footnote.txt
+tests/extensions/extra/footnote_many_footnotes.html
+tests/extensions/extra/footnote_many_footnotes.txt
+tests/extensions/extra/footnote_placeholder.html
+tests/extensions/extra/footnote_placeholder.txt
+tests/extensions/extra/loose_def_list.html
+tests/extensions/extra/loose_def_list.txt
+tests/extensions/extra/markdown-syntax.html
+tests/extensions/extra/markdown-syntax.txt
+tests/extensions/extra/named_markers.html
+tests/extensions/extra/named_markers.txt
+tests/extensions/extra/raw-html.html
+tests/extensions/extra/raw-html.txt
+tests/extensions/extra/simple_def-lists.html
+tests/extensions/extra/simple_def-lists.txt
+tests/extensions/extra/tables.html
+tests/extensions/extra/tables.txt
+tests/extensions/extra/tables_and_attr_list.html
+tests/extensions/extra/tables_and_attr_list.txt
+tests/extensions/extra/test.cfg
+tests/misc/CRLF_line_ends.html
+tests/misc/CRLF_line_ends.txt
+tests/misc/adjacent-headers.html
+tests/misc/adjacent-headers.txt
+tests/misc/amp-in-url.html
+tests/misc/amp-in-url.txt
+tests/misc/ampersand.html
+tests/misc/ampersand.txt
+tests/misc/arabic.html
+tests/misc/arabic.txt
+tests/misc/attributes-image-ref.html
+tests/misc/attributes-image-ref.txt
+tests/misc/attributes2.html
+tests/misc/attributes2.txt
+tests/misc/autolinks_with_asterisks.html
+tests/misc/autolinks_with_asterisks.txt
+tests/misc/autolinks_with_asterisks_russian.html
+tests/misc/autolinks_with_asterisks_russian.txt
+tests/misc/backtick-escape.html
+tests/misc/backtick-escape.txt
+tests/misc/bidi.html
+tests/misc/bidi.txt
+tests/misc/blank-block-quote.html
+tests/misc/blank-block-quote.txt
+tests/misc/blank_lines_in_codeblocks.html
+tests/misc/blank_lines_in_codeblocks.txt
+tests/misc/block_html5.html
+tests/misc/block_html5.txt
+tests/misc/block_html_attr.html
+tests/misc/block_html_attr.txt
+tests/misc/block_html_simple.html
+tests/misc/block_html_simple.txt
+tests/misc/blockquote-below-paragraph.html
+tests/misc/blockquote-below-paragraph.txt
+tests/misc/blockquote-hr.html
+tests/misc/blockquote-hr.txt
+tests/misc/blockquote.html
+tests/misc/blockquote.txt
+tests/misc/bold_links.html
+tests/misc/bold_links.txt
+tests/misc/br.html
+tests/misc/br.txt
+tests/misc/bracket_re.html
+tests/misc/bracket_re.txt
+tests/misc/brackets-in-img-title.html
+tests/misc/brackets-in-img-title.txt
+tests/misc/code-first-line.html
+tests/misc/code-first-line.txt
+tests/misc/comments.html
+tests/misc/comments.txt
+tests/misc/div.html
+tests/misc/div.txt
+tests/misc/em-around-links.html
+tests/misc/em-around-links.txt
+tests/misc/em_strong.html
+tests/misc/em_strong.txt
+tests/misc/email.html
+tests/misc/email.txt
+tests/misc/escaped_chars_in_js.html
+tests/misc/escaped_chars_in_js.txt
+tests/misc/escaped_links.html
+tests/misc/escaped_links.txt
+tests/misc/funky-list.html
+tests/misc/funky-list.txt
+tests/misc/h1.html
+tests/misc/h1.txt
+tests/misc/hash.html
+tests/misc/hash.txt
+tests/misc/header-in-lists.html
+tests/misc/header-in-lists.txt
+tests/misc/headers.html
+tests/misc/headers.txt
+tests/misc/hline.html
+tests/misc/hline.txt
+tests/misc/html-comments.html
+tests/misc/html-comments.txt
+tests/misc/html.html
+tests/misc/html.txt
+tests/misc/image-2.html
+tests/misc/image-2.txt
+tests/misc/image.html
+tests/misc/image.txt
+tests/misc/image_in_links.html
+tests/misc/image_in_links.txt
+tests/misc/ins-at-start-of-paragraph.html
+tests/misc/ins-at-start-of-paragraph.txt
+tests/misc/inside_html.html
+tests/misc/inside_html.txt
+tests/misc/japanese.html
+tests/misc/japanese.txt
+tests/misc/lazy-block-quote.html
+tests/misc/lazy-block-quote.txt
+tests/misc/link-with-parenthesis.html
+tests/misc/link-with-parenthesis.txt
+tests/misc/lists.html
+tests/misc/lists.txt
+tests/misc/lists2.html
+tests/misc/lists2.txt
+tests/misc/lists3.html
+tests/misc/lists3.txt
+tests/misc/lists4.html
+tests/misc/lists4.txt
+tests/misc/lists5.html
+tests/misc/lists5.txt
+tests/misc/lists6.html
+tests/misc/lists6.txt
+tests/misc/lists7.html
+tests/misc/lists7.txt
+tests/misc/lists8.html
+tests/misc/lists8.txt
+tests/misc/markup-inside-p.html
+tests/misc/markup-inside-p.txt
+tests/misc/mismatched-tags.html
+tests/misc/mismatched-tags.txt
+tests/misc/missing-link-def.html
+tests/misc/missing-link-def.txt
+tests/misc/more_comments.html
+tests/misc/more_comments.txt
+tests/misc/multi-line-tags.html
+tests/misc/multi-line-tags.txt
+tests/misc/multi-paragraph-block-quote.html
+tests/misc/multi-paragraph-block-quote.txt
+tests/misc/multi-test.html
+tests/misc/multi-test.txt
+tests/misc/multiline-comments.html
+tests/misc/multiline-comments.txt
+tests/misc/nested-lists.html
+tests/misc/nested-lists.txt
+tests/misc/nested-patterns.html
+tests/misc/nested-patterns.txt
+tests/misc/normalize.html
+tests/misc/normalize.txt
+tests/misc/numeric-entity.html
+tests/misc/numeric-entity.txt
+tests/misc/para-with-hr.html
+tests/misc/para-with-hr.txt
+tests/misc/php.html
+tests/misc/php.txt
+tests/misc/pre.html
+tests/misc/pre.txt
+tests/misc/raw_whitespace.html
+tests/misc/raw_whitespace.txt
+tests/misc/russian.html
+tests/misc/russian.txt
+tests/misc/smart_em.html
+tests/misc/smart_em.txt
+tests/misc/some-test.html
+tests/misc/some-test.txt
+tests/misc/span.html
+tests/misc/span.txt
+tests/misc/strong-with-underscores.html
+tests/misc/strong-with-underscores.txt
+tests/misc/stronintags.html
+tests/misc/stronintags.txt
+tests/misc/tabs-in-lists.html
+tests/misc/tabs-in-lists.txt
+tests/misc/two-spaces.html
+tests/misc/two-spaces.txt
+tests/misc/uche.html
+tests/misc/uche.txt
+tests/misc/underscores.html
+tests/misc/underscores.txt
+tests/misc/url_spaces.html
+tests/misc/url_spaces.txt
+tests/options/html4.html
+tests/options/html4.txt
+tests/options/lazy_ol_off.html
+tests/options/lazy_ol_off.txt
+tests/options/no-attributes.html
+tests/options/no-attributes.txt
+tests/options/no-smart-emphasis.html
+tests/options/no-smart-emphasis.txt
+tests/options/test.cfg
+tests/php/test.cfg
+tests/php/extra/test.cfg
+tests/pl/Tests_2004/Amps and angle encoding.html
+tests/pl/Tests_2004/Auto links.html
+tests/pl/Tests_2004/Backslash escapes.html
+tests/pl/Tests_2004/Blockquotes with code blocks.html
+tests/pl/Tests_2004/Hard-wrapped paragraphs with list-like lines.html
+tests/pl/Tests_2004/Horizontal rules.html
+tests/pl/Tests_2004/Inline HTML (Advanced).html
+tests/pl/Tests_2004/Inline HTML (Simple).html
+tests/pl/Tests_2004/Inline HTML comments.html
+tests/pl/Tests_2004/Links, inline style.html
+tests/pl/Tests_2004/Links, reference style.html
+tests/pl/Tests_2004/Literal quotes in titles.html
+tests/pl/Tests_2004/Markdown Documentation - Basics.html
+tests/pl/Tests_2004/Markdown Documentation - Syntax.html
+tests/pl/Tests_2004/Nested blockquotes.html
+tests/pl/Tests_2004/Ordered and unordered lists.html
+tests/pl/Tests_2004/Strong and em together.html
+tests/pl/Tests_2004/Tabs.html
+tests/pl/Tests_2004/Tidyness.html
+tests/pl/Tests_2004/Yuri-Attributes.html
+tests/pl/Tests_2004/Yuri-Email.html
+tests/pl/Tests_2004/Yuri-Footnotes.html
+tests/pl/Tests_2004/Yuri-Links-in-Headers.html
+tests/pl/Tests_2004/test.cfg
+tests/pl/Tests_2007/Amps and angle encoding.html
+tests/pl/Tests_2007/Auto links.html
+tests/pl/Tests_2007/Backslash escapes.html
+tests/pl/Tests_2007/Blockquotes with code blocks.html
+tests/pl/Tests_2007/Code Blocks.html
+tests/pl/Tests_2007/Code Spans.html
+tests/pl/Tests_2007/Hard-wrapped paragraphs with list-like lines.html
+tests/pl/Tests_2007/Horizontal rules.html
+tests/pl/Tests_2007/Images.html
+tests/pl/Tests_2007/Inline HTML (Advanced).html
+tests/pl/Tests_2007/Inline HTML (Simple).html
+tests/pl/Tests_2007/Inline HTML comments.html
+tests/pl/Tests_2007/Links, inline style.html
+tests/pl/Tests_2007/Links, reference style.html
+tests/pl/Tests_2007/Links, shortcut references.html
+tests/pl/Tests_2007/Literal quotes in titles.html
+tests/pl/Tests_2007/Markdown Documentation - Basics.html
+tests/pl/Tests_2007/Markdown Documentation - Syntax.html
+tests/pl/Tests_2007/Nested blockquotes.html
+tests/pl/Tests_2007/Ordered and unordered lists.html
+tests/pl/Tests_2007/Strong and em together.html
+tests/pl/Tests_2007/Tabs.html
+tests/pl/Tests_2007/Tidyness.html
+tests/pl/Tests_2007/test.cfg
+tests/safe_mode/html_then_blockquote.html
+tests/safe_mode/html_then_blockquote.txt
+tests/safe_mode/inline-html-advanced.html
+tests/safe_mode/inline-html-advanced.txt
+tests/safe_mode/inline-html-comments.html
+tests/safe_mode/inline-html-comments.txt
+tests/safe_mode/inline-html-simple.html
+tests/safe_mode/inline-html-simple.txt
+tests/safe_mode/link-targets.html
+tests/safe_mode/link-targets.txt
+tests/safe_mode/remove.html
+tests/safe_mode/remove.txt
+tests/safe_mode/replace.html
+tests/safe_mode/replace.txt
+tests/safe_mode/script_tags.html
+tests/safe_mode/script_tags.txt
+tests/safe_mode/test.cfg
+tests/safe_mode/unsafe_urls.html
+tests/safe_mode/unsafe_urls.txt
index 06df8907dddbc21d5a07c44a81fe4677062e00b4..46c659d725b2592b8355ae91166ac455ee4a51cf 100644 (file)
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,47 +1,46 @@
-Metadata-Version: 1.0\r
-Name: Markdown\r
-Version: 2.4\r
-Summary: Python implementation of Markdown.\r
-Home-page: http://packages.python.org/Markdown/\r
-Author: Waylan Limberg\r
-Author-email: waylan [at] gmail.com\r
-License: BSD License\r
-Download-URL: http://pypi.python.org/packages/source/M/Markdown/Markdown-2.4.tar.gz\r
-Description: This is a Python implementation of John Gruber's Markdown_. \r
-        It is almost completely compliant with the reference implementation,\r
-        though there are a few known issues. See Features_ for information \r
-        on what exactly is supported and what is not. Additional features are \r
-        supported by the `Available Extensions`_.\r
-        \r
-        .. _Markdown: http://daringfireball.net/projects/markdown/\r
-        .. _Features: http://packages.python.org/Markdown/index.html#Features\r
-        .. _`Available Extensions`: http://packages.python.org/Markdown/extensions/index.html\r
-        \r
-        Support\r
-        =======\r
-        \r
-        You may ask for help and discuss various other issues on the\r
-        `mailing list`_ and report bugs on the `bug tracker`_.\r
-        \r
-        .. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss\r
-        .. _`bug tracker`: http://github.com/waylan/Python-Markdown/issues\r
-        \r
-Platform: UNKNOWN\r
-Classifier: Development Status :: 5 - Production/Stable\r
-Classifier: License :: OSI Approved :: BSD License\r
-Classifier: Operating System :: OS Independent\r
-Classifier: Programming Language :: Python\r
-Classifier: Programming Language :: Python :: 2\r
-Classifier: Programming Language :: Python :: 2.6\r
-Classifier: Programming Language :: Python :: 2.7\r
-Classifier: Programming Language :: Python :: 3\r
-Classifier: Programming Language :: Python :: 3.1\r
-Classifier: Programming Language :: Python :: 3.2\r
-Classifier: Programming Language :: Python :: 3.3\r
-Classifier: Topic :: Communications :: Email :: Filters\r
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries\r
-Classifier: Topic :: Internet :: WWW/HTTP :: Site Management\r
-Classifier: Topic :: Software Development :: Documentation\r
-Classifier: Topic :: Software Development :: Libraries :: Python Modules\r
-Classifier: Topic :: Text Processing :: Filters\r
-Classifier: Topic :: Text Processing :: Markup :: HTML\r
+Metadata-Version: 1.0
+Name: Markdown
+Version: 2.5
+Summary: Python implementation of Markdown.
+Home-page: https://pythonhosted.org/Markdown/
+Author: Waylan Limberg
+Author-email: waylan [at] gmail.com
+License: BSD License
+Download-URL: http://pypi.python.org/packages/source/M/Markdown/Markdown-2.5.tar.gz
+Description: This is a Python implementation of John Gruber's Markdown_. 
+        It is almost completely compliant with the reference implementation,
+        though there are a few known issues. See Features_ for information 
+        on what exactly is supported and what is not. Additional features are 
+        supported by the `Available Extensions`_.
+        
+        .. _Markdown: http://daringfireball.net/projects/markdown/
+        .. _Features: https://pythonhosted.org/Markdown/index.html#Features
+        .. _`Available Extensions`: https://pythonhosted.org/Markdown/extensions/index.html
+        
+        Support
+        =======
+        
+        You may ask for help and discuss various other issues on the
+        `mailing list`_ and report bugs on the `bug tracker`_.
+        
+        .. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss
+        .. _`bug tracker`: http://github.com/waylan/Python-Markdown/issues
+        
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.2
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Topic :: Communications :: Email :: Filters
+Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries
+Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
+Classifier: Topic :: Software Development :: Documentation
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Topic :: Text Processing :: Filters
+Classifier: Topic :: Text Processing :: Markup :: HTML
index 7f8cba20911a1a124db4da639d5ba82c0940bda6..a7f855029b61a7e553c5a30cd06cf4de277c0c94 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,30 +1,35 @@
-[Python-Markdown][]\r
-===================\r
-\r
-This is a Python implementation of John Gruber's [Markdown][]. \r
-It is almost completely compliant with the reference implementation,\r
-though there are a few known issues. See [Features][] for information \r
-on what exactly is supported and what is not. Additional features are \r
-supported by the [Available Extensions][].\r
-\r
-[Python-Markdown]: http://packages.python.org/Markdown/\r
-[Markdown]: http://daringfireball.net/projects/markdown/\r
-[Features]: http://packages.python.org/Markdown/index.html#Features\r
-[Available Extensions]: http://packages.python.org/Markdown/extensions/index.html\r
-\r
-\r
-Documentation\r
--------------\r
-\r
-Installation and usage documentation is available in the `docs/` directory\r
-of the distribution and on the project website at \r
-<http://packages.python.org/Markdown/>.\r
-\r
-Support\r
--------\r
-\r
-You may ask for help and discuss various other issues on the [mailing list][] and report bugs on the [bug tracker][].\r
-\r
-[mailing list]: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss\r
-[bug tracker]: http://github.com/waylan/Python-Markdown/issues \r
-\r
+[Python-Markdown][]
+===================
+
+[![Build Status](http://img.shields.io/travis/waylan/Python-Markdown.svg)](https://travis-ci.org/waylan/Python-Markdown)
+[![Coverage Status](https://img.shields.io/coveralls/waylan/Python-Markdown.svg)](https://coveralls.io/r/waylan/Python-Markdown?branch=master)
+[![Downloads](http://img.shields.io/pypi/dm/Markdown.svg)](https://pypi.python.org/pypi/Markdown#downloads)
+[![Latest Version](http://img.shields.io/pypi/v/Markdown.svg)](http://pypi.python.org/pypi/Markdown)
+[![BSD License](http://img.shields.io/badge/license-BSD-yellow.svg)](http://opensource.org/licenses/BSD-3-Clause)
+
+This is a Python implementation of John Gruber's [Markdown][]. 
+It is almost completely compliant with the reference implementation,
+though there are a few known issues. See [Features][] for information 
+on what exactly is supported and what is not. Additional features are 
+supported by the [Available Extensions][].
+
+[Python-Markdown]: https://pythonhosted.org/Markdown/
+[Markdown]: http://daringfireball.net/projects/markdown/
+[Features]: https://pythonhosted.org/Markdown/index.html#Features
+[Available Extensions]: https://pythonhosted.org/Markdown/extensions/index.html
+
+
+Documentation
+-------------
+
+Installation and usage documentation is available in the `docs/` directory
+of the distribution and on the project website at 
+<https://pythonhosted.org/Markdown/>.
+
+Support
+-------
+
+You may ask for help and discuss various other issues on the [mailing list][] and report bugs on the [bug tracker][].
+
+[mailing list]: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss
+[bug tracker]: http://github.com/waylan/Python-Markdown/issues 
old mode 100644 (file)
new mode 100755 (executable)
index c767f94..220c666
@@ -1,34 +1,34 @@
-#!/usr/bin/env python\r
-"""\r
-Python Markdown, the Command Line Script\r
-========================================\r
-\r
-This is the command line script for Python Markdown.\r
-\r
-Basic use from the command line:\r
-\r
-    markdown source.txt > destination.html\r
-\r
-Run "markdown --help" to see more options.\r
-\r
-See markdown/__init__.py for information on using Python Markdown as a module.\r
-\r
-## Authors and License\r
-\r
-Started by [Manfred Stienstra](http://www.dwerg.net/).  Continued and\r
-maintained  by [Yuri Takhteyev](http://www.freewisdom.org), [Waylan\r
-Limberg](http://achinghead.com/) and [Artem Yunusov](http://blog.splyer.com).\r
-\r
-Contact: markdown@freewisdom.org\r
-\r
-Copyright 2007, 2008 The Python Markdown Project (v. 1.7 and later)\r
-Copyright 200? Django Software Foundation (OrderedDict implementation)\r
-Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)\r
-Copyright 2004 Manfred Stienstra (the original version)\r
-\r
-License: BSD (see docs/LICENSE for details).\r
-"""\r
-\r
-if __name__ == '__main__':\r
-    from markdown.__main__ import run\r
-    run()\r
+#!/usr/bin/env python
+"""
+Python Markdown, the Command Line Script
+========================================
+
+This is the command line script for Python Markdown.
+
+Basic use from the command line:
+
+    markdown source.txt > destination.html
+
+Run "markdown --help" to see more options.
+
+See markdown/__init__.py for information on using Python Markdown as a module.
+
+## Authors and License
+
+Started by [Manfred Stienstra](http://www.dwerg.net/).  Continued and
+maintained  by [Yuri Takhteyev](http://www.freewisdom.org), [Waylan
+Limberg](http://achinghead.com/) and [Artem Yunusov](http://blog.splyer.com).
+
+Contact: markdown@freewisdom.org
+
+Copyright 2007, 2008 The Python Markdown Project (v. 1.7 and later)
+Copyright 200? Django Software Foundation (OrderedDict implementation)
+Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
+Copyright 2004 Manfred Stienstra (the original version)
+
+License: BSD (see docs/LICENSE for details).
+"""
+
+if __name__ == '__main__':
+    from markdown.__main__ import run
+    run()
index e9234ccecd6c035418af3e80beb0627c421225e4..d3780dd2b27692462c83d6bfc1f25a3748042988 100644 (file)
@@ -1,81 +1,81 @@
-<!DOCTYPE html>\r
-<html>\r
-<head>\r
-<meta charset=utf-8>\r
-<title>%(page_title)s</title>\r
-<link rel="stylesheet" href="%(base)sdefault.css" type="text/css">\r
-</head>\r
-<body>\r
-\r
-<div class="related">\r
-  <h3>Navigation</h3>\r
-  <ul>\r
-    <li class="right" style="margin-right: 10px">\r
-      <a href="%(base)ssiteindex.html" title="General Index">index</a></li>\r
-    <li class="right">\r
-      <a href="%(next_url)s" title="%(next_title)s"\r
-         accesskey="N">next</a> |</li>\r
-    <li class="right">\r
-      <a href="%(prev_url)s" title="%(prev_title)s"\r
-         accesskey="P">previous</a> |</li>\r
-    <li><img src="%(base)spy.png" alt=""\r
-             style="vertical-align: middle; margin-top: -1px"/></li>\r
-    <li><a href="%(base)sindex.html">Python Markdown v%(version)s documentation</a> &raquo;</li>\r
-    %(crumb)s\r
-  </ul>\r
-</div> <!-- .related -->\r
-\r
-<div class="document">\r
-  <div class="documentwrapper">\r
-    <div class="bodywrapper">\r
-      <div class="body">\r
-%(body)s\r
-      </div> <!-- .body -->\r
-    </div> <!-- .bodywrapper -->\r
-  </div> <!-- .documentwrapper -->\r
-\r
-  <div class="sphinxsidebar">\r
-    <div class="sphinxsidebarwrapper">\r
-    <h3>Table Of Contents</h3>\r
-    %(toc)s\r
-\r
-    <h4>Previous topic</h4>\r
-      <p class="topless"><a href="%(prev_url)s"\r
-         title="previous chapter">%(prev_title)s</a></p>\r
-    <h4>Next topic</h4>\r
-      <p class="topless"><a href="%(next_url)s"\r
-         title="next chapter">%(next_title)s</a></p>\r
-    <h3>This Page</h3>\r
-    <ul class="this-page-menu">\r
-      <li><a href="https://github.com/waylan/Python-Markdown/issues"\r
-             >Report a Bug</a></li>\r
-      <li><a href="%(source)s"\r
-             rel="nofollow">Show Source</a></li>\r
-    </ul>\r
-    </div> <!-- .sphinxsidebarwrapper -->\r
-  </div> <!-- .sphinxsidebar -->\r
-\r
-  <div class="clearer"></div>\r
-</div> <!-- .document -->\r
-\r
-<div class="related">\r
-  <h3>Navigation</h3>\r
-  <ul>\r
-    <li class="right" style="margin-right: 10px">\r
-      <a href="%(base)ssiteindex.html" title="General Index">index</a></li>\r
-    <li class="right">\r
-      <a href="%(next_url)s" title="%(next_title)s"\r
-         accesskey="N">next</a> |</li>\r
-    <li class="right">\r
-      <a href="%(prev_url)s" title="%(prev_title)s"\r
-         accesskey="P">previous</a> |</li>\r
-    <li><img src="%(base)spy.png" alt=""\r
-             style="vertical-align: middle; margin-top: -1px"/></li>\r
-    <li><a href="%(base)sindex.html">Python Markdown v%(version)s documentation</a> &raquo;</li>\r
-    %(crumb)s\r
-  </ul>\r
-</div> <!-- .related -->\r
-\r
-<div class="footer">&copy; 2010-2012 Python Markdown Project</div>\r
-</body>\r
-</html>\r
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>%(page_title)s</title>
+<link rel="stylesheet" href="%(base)sdefault.css" type="text/css">
+</head>
+<body>
+
+<div class="related">
+  <h3>Navigation</h3>
+  <ul>
+    <li class="right" style="margin-right: 10px">
+      <a href="%(base)ssiteindex.html" title="General Index">index</a></li>
+    <li class="right">
+      <a href="%(next_url)s" title="%(next_title)s"
+         accesskey="N">next</a> |</li>
+    <li class="right">
+      <a href="%(prev_url)s" title="%(prev_title)s"
+         accesskey="P">previous</a> |</li>
+    <li><img src="%(base)spy.png" alt=""
+             style="vertical-align: middle; margin-top: -1px"/></li>
+    <li><a href="%(base)sindex.html">Python Markdown v%(version)s documentation</a> &raquo;</li>
+    %(crumb)s
+  </ul>
+</div> <!-- .related -->
+
+<div class="document">
+  <div class="documentwrapper">
+    <div class="bodywrapper">
+      <div class="body">
+%(body)s
+      </div> <!-- .body -->
+    </div> <!-- .bodywrapper -->
+  </div> <!-- .documentwrapper -->
+
+  <div class="sphinxsidebar">
+    <div class="sphinxsidebarwrapper">
+    <h3>Table Of Contents</h3>
+    %(toc)s
+
+    <h4>Previous topic</h4>
+      <p class="topless"><a href="%(prev_url)s"
+         title="previous chapter">%(prev_title)s</a></p>
+    <h4>Next topic</h4>
+      <p class="topless"><a href="%(next_url)s"
+         title="next chapter">%(next_title)s</a></p>
+    <h3>This Page</h3>
+    <ul class="this-page-menu">
+      <li><a href="https://github.com/waylan/Python-Markdown/issues"
+             >Report a Bug</a></li>
+      <li><a href="%(source)s"
+             rel="nofollow">Show Source</a></li>
+    </ul>
+    </div> <!-- .sphinxsidebarwrapper -->
+  </div> <!-- .sphinxsidebar -->
+
+  <div class="clearer"></div>
+</div> <!-- .document -->
+
+<div class="related">
+  <h3>Navigation</h3>
+  <ul>
+    <li class="right" style="margin-right: 10px">
+      <a href="%(base)ssiteindex.html" title="General Index">index</a></li>
+    <li class="right">
+      <a href="%(next_url)s" title="%(next_title)s"
+         accesskey="N">next</a> |</li>
+    <li class="right">
+      <a href="%(prev_url)s" title="%(prev_title)s"
+         accesskey="P">previous</a> |</li>
+    <li><img src="%(base)spy.png" alt=""
+             style="vertical-align: middle; margin-top: -1px"/></li>
+    <li><a href="%(base)sindex.html">Python Markdown v%(version)s documentation</a> &raquo;</li>
+    %(crumb)s
+  </ul>
+</div> <!-- .related -->
+
+<div class="footer">&copy; 2010-2012 Python Markdown Project</div>
+</body>
+</html>
index 694d2be2c2c31ba632f3a3e1b8899c4b37777d7b..53eaaba11dbec61304ca2a712911a4e690506bb2 100644 (file)
@@ -1,60 +1,60 @@
-title:      Authors\r
-prev_title: Release Notes for v2.0\r
-prev_url:   release-2.0.html\r
-next_title: Table of Contents\r
-next_url:   siteindex.html\r
-\r
-Primary Authors\r
-===============\r
-\r
-[Yuri Takteyev](http://freewisdom.org/)\r
-\r
-: Yuri has written much of the current code while procrastingating his Ph.D.\r
-\r
-[Waylan Limberg](http://achinghead.com/)\r
-\r
-: Waylan is the current maintainer of the code and has written much the current \r
-  code base, included a complete refactor of the core.  He started out by \r
-  authoring mmany of the available extensions and later was asked to join Yuri, \r
-  where he began fixing nummrious bugs, adding documentation and making general \r
-  improvements to the existing codebase.\r
-\r
-Artem Yunusov\r
-\r
-: Artem, who as part of a 2008 GSoC project, refactored inline patterns, \r
-  replaced the NanoDOM with ElementTree support and made various other \r
-  improvements.\r
-\r
-[Manfed Stienstra](http://www.dwerg.net/)\r
-\r
-: Manfed wrote the original version of the script and is responsible for \r
-  various parts of the existing codebase.\r
-\r
-David Wolever\r
-\r
-: David refactored the extension API and made other improvements\r
-  as he helped to integrate Markdown into Dr.Project.\r
-\r
-Other Contributors\r
-==================\r
-\r
-The incomplete list of individuals below have provided patches or otherwise \r
-contributed to the project in various ways. We would like to thank everyone \r
-who has contributed to the progect in any way.\r
-\r
-* Eric Abrahamsen\r
-* Jeff Balogh\r
-* Sergej Chodarev\r
-* Chris Clark\r
-* Tiago Cogumbreiro\r
-* Kjell Magne Fauske\r
-* G. Clark Haynes\r
-* Daniel Krech\r
-* Steward Midwinter\r
-* Jack Miller\r
-* Neale Pickett\r
-* Paul Stansifer\r
-* John Szakmeister\r
-* Malcolm Tredinnick\r
-* Ben Wilson\r
-* and many others who helped by reporting bugs\r
+title:      Authors
+prev_title: Release Notes for v2.0
+prev_url:   release-2.0.html
+next_title: Table of Contents
+next_url:   siteindex.html
+
+Primary Authors
+===============
+
+[Yuri Takteyev](http://freewisdom.org/)
+
+: Yuri has written much of the current code while procrastingating his Ph.D.
+
+[Waylan Limberg](http://achinghead.com/)
+
+: Waylan is the current maintainer of the code and has written much the current 
+  code base, included a complete refactor of the core.  He started out by 
+  authoring mmany of the available extensions and later was asked to join Yuri, 
+  where he began fixing nummrious bugs, adding documentation and making general 
+  improvements to the existing codebase.
+
+Artem Yunusov
+
+: Artem, who as part of a 2008 GSoC project, refactored inline patterns, 
+  replaced the NanoDOM with ElementTree support and made various other 
+  improvements.
+
+[Manfed Stienstra](http://www.dwerg.net/)
+
+: Manfed wrote the original version of the script and is responsible for 
+  various parts of the existing codebase.
+
+David Wolever
+
+: David refactored the extension API and made other improvements
+  as he helped to integrate Markdown into Dr.Project.
+
+Other Contributors
+==================
+
+The incomplete list of individuals below have provided patches or otherwise 
+contributed to the project in various ways. We would like to thank everyone 
+who has contributed to the progect in any way.
+
+* Eric Abrahamsen
+* Jeff Balogh
+* Sergej Chodarev
+* Chris Clark
+* Tiago Cogumbreiro
+* Kjell Magne Fauske
+* G. Clark Haynes
+* Daniel Krech
+* Steward Midwinter
+* Jack Miller
+* Neale Pickett
+* Paul Stansifer
+* John Szakmeister
+* Malcolm Tredinnick
+* Ben Wilson
+* and many others who helped by reporting bugs
index 63670e96074ecf3ff80e58c24cf6717f1ab9e4d0..3f7ad80209bdb65d62ef5b2df1532882493281ab 100644 (file)
-/**\r
- * Sphinx stylesheet -- basic theme\r
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
- */\r
-\r
-/* -- main layout ----------------------------------------------------------- */\r
-\r
-div.clearer {\r
-    clear: both;\r
-}\r
-\r
-/* -- relbar ---------------------------------------------------------------- */\r
-\r
-div.related {\r
-    width: 100%;\r
-    font-size: 90%;\r
-}\r
-\r
-div.related h3 {\r
-    display: none;\r
-}\r
-\r
-div.related ul {\r
-    margin: 0;\r
-    padding: 0 0 0 10px;\r
-    list-style: none;\r
-}\r
-\r
-div.related li {\r
-    display: inline;\r
-}\r
-\r
-div.related li.right {\r
-    float: right;\r
-    margin-right: 5px;\r
-}\r
-\r
-/* -- sidebar --------------------------------------------------------------- */\r
-\r
-div.sphinxsidebarwrapper {\r
-    padding: 10px 5px 0 10px;\r
-}\r
-\r
-div.sphinxsidebar {\r
-    float: left;\r
-    width: 230px;\r
-    margin-left: -100%;\r
-    font-size: 90%;\r
-}\r
-\r
-div.sphinxsidebar ul {\r
-    list-style: none;\r
-}\r
-\r
-div.sphinxsidebar ul ul,\r
-div.sphinxsidebar ul.want-points {\r
-    margin-left: 20px;\r
-    list-style: square;\r
-}\r
-\r
-div.sphinxsidebar ul ul {\r
-    margin-top: 0;\r
-    margin-bottom: 0;\r
-}\r
-\r
-div.sphinxsidebar form {\r
-    margin-top: 10px;\r
-}\r
-\r
-div.sphinxsidebar input {\r
-    border: 1px solid #98dbcc;\r
-    font-family: sans-serif;\r
-    font-size: 1em;\r
-}\r
-\r
-img {\r
-    border: 0;\r
-}\r
-\r
-/* -- search page ----------------------------------------------------------- */\r
-\r
-ul.search {\r
-    margin: 10px 0 0 20px;\r
-    padding: 0;\r
-}\r
-\r
-ul.search li {\r
-    padding: 5px 0 5px 20px;\r
-    background-image: url(file.png);\r
-    background-repeat: no-repeat;\r
-    background-position: 0 7px;\r
-}\r
-\r
-ul.search li a {\r
-    font-weight: bold;\r
-}\r
-\r
-ul.search li div.context {\r
-    color: #888;\r
-    margin: 2px 0 0 30px;\r
-    text-align: left;\r
-}\r
-\r
-ul.keywordmatches li.goodmatch a {\r
-    font-weight: bold;\r
-}\r
-\r
-/* -- index page ------------------------------------------------------------ */\r
-\r
-table.contentstable {\r
-    width: 90%;\r
-}\r
-\r
-table.contentstable p.biglink {\r
-    line-height: 150%;\r
-}\r
-\r
-a.biglink {\r
-    font-size: 1.3em;\r
-}\r
-\r
-span.linkdescr {\r
-    font-style: italic;\r
-    padding-top: 5px;\r
-    font-size: 90%;\r
-}\r
-\r
-/* -- general index --------------------------------------------------------- */\r
-\r
-table.indextable td {\r
-    text-align: left;\r
-    vertical-align: top;\r
-}\r
-\r
-table.indextable dl, table.indextable dd {\r
-    margin-top: 0;\r
-    margin-bottom: 0;\r
-}\r
-\r
-table.indextable tr.pcap {\r
-    height: 10px;\r
-}\r
-\r
-table.indextable tr.cap {\r
-    margin-top: 10px;\r
-    background-color: #f2f2f2;\r
-}\r
-\r
-img.toggler {\r
-    margin-right: 3px;\r
-    margin-top: 3px;\r
-    cursor: pointer;\r
-}\r
-\r
-/* -- general body styles --------------------------------------------------- */\r
-\r
-a.headerlink {\r
-    visibility: hidden;\r
-}\r
-\r
-h1:hover > a.headerlink,\r
-h2:hover > a.headerlink,\r
-h3:hover > a.headerlink,\r
-h4:hover > a.headerlink,\r
-h5:hover > a.headerlink,\r
-h6:hover > a.headerlink,\r
-dt:hover > a.headerlink {\r
-    visibility: visible;\r
-}\r
-\r
-div.body p.caption {\r
-    text-align: inherit;\r
-}\r
-\r
-div.body td {\r
-    text-align: left;\r
-}\r
-\r
-.field-list ul {\r
-    padding-left: 1em;\r
-}\r
-\r
-.first {\r
-    margin-top: 0 !important;\r
-}\r
-\r
-p.rubric {\r
-    margin-top: 30px;\r
-    font-weight: bold;\r
-}\r
-\r
-/* -- sidebars -------------------------------------------------------------- */\r
-\r
-div.sidebar {\r
-    margin: 0 0 0.5em 1em;\r
-    border: 1px solid #ddb;\r
-    padding: 7px 7px 0 7px;\r
-    background-color: #ffe;\r
-    width: 40%;\r
-    float: right;\r
-}\r
-\r
-p.sidebar-title {\r
-    font-weight: bold;\r
-}\r
-\r
-/* -- topics ---------------------------------------------------------------- */\r
-\r
-div.topic {\r
-    border: 1px solid #ccc;\r
-    padding: 7px 7px 0 7px;\r
-    margin: 10px 0 10px 0;\r
-}\r
-\r
-p.topic-title {\r
-    font-size: 1.1em;\r
-    font-weight: bold;\r
-    margin-top: 10px;\r
-}\r
-\r
-/* -- admonitions ----------------------------------------------------------- */\r
-\r
-div.admonition {\r
-    margin-top: 10px;\r
-    margin-bottom: 10px;\r
-    padding: 7px;\r
-}\r
-\r
-div.admonition dt {\r
-    font-weight: bold;\r
-}\r
-\r
-div.admonition dl {\r
-    margin-bottom: 0;\r
-}\r
-\r
-p.admonition-title {\r
-    margin: 0px 10px 5px 0px;\r
-    font-weight: bold;\r
-}\r
-\r
-div.body p.centered {\r
-    text-align: center;\r
-    margin-top: 25px;\r
-}\r
-\r
-/* -- tables ---------------------------------------------------------------- */\r
-\r
-table {\r
-    border: 0 solid #dce;\r
-    border-collapse: collapse;\r
-}\r
-\r
-table td, table th {\r
-    padding: 2px 5px 2px 5px;\r
-}\r
-\r
-table td {\r
-    border: 1px solid #ddd;\r
-    background-color: #eef;\r
-}\r
-\r
-table td p.last, table th p.last {\r
-    margin-bottom: 0;\r
-}\r
-\r
-table.field-list td, table.field-list th {\r
-    border: 0 !important;\r
-}\r
-\r
-table.footnote td, table.footnote th {\r
-    border: 0 !important;\r
-}\r
-\r
-table th {\r
-    border: 1px solid #cac;\r
-    background-color: #ede;\r
-}\r
-\r
-th {\r
-    text-align: left;\r
-    padding-right: 5px;\r
-}\r
-\r
-th.head {\r
-    text-align: center;\r
-}\r
-\r
-/* -- other body styles ----------------------------------------------------- */\r
-\r
-dl {\r
-    margin-bottom: 15px;\r
-}\r
-\r
-dd p {\r
-    margin-top: 0px;\r
-}\r
-\r
-dd ul, dd table {\r
-    margin-bottom: 10px;\r
-}\r
-\r
-dd {\r
-    margin-top: 3px;\r
-    margin-bottom: 10px;\r
-    margin-left: 30px;\r
-}\r
-\r
-dt:target, .highlight {\r
-    background-color: #fbe54e;\r
-}\r
-\r
-dl.glossary dt {\r
-    font-weight: bold;\r
-    font-size: 1.1em;\r
-}\r
-\r
-.field-list ul {\r
-    margin: 0;\r
-    padding-left: 1em;\r
-}\r
-\r
-.field-list p {\r
-    margin: 0;\r
-}\r
-\r
-.refcount {\r
-    color: #060;\r
-}\r
-\r
-.optional {\r
-    font-size: 1.3em;\r
-}\r
-\r
-.versionmodified {\r
-    font-style: italic;\r
-}\r
-\r
-p.deprecated {\r
-    background-color: #ffe4e4;\r
-    border: 1px solid #f66;\r
-    padding: 7px\r
-}\r
-\r
-.system-message {\r
-    background-color: #fda;\r
-    padding: 5px;\r
-    border: 3px solid red;\r
-}\r
-\r
-.footnote:target  {\r
-    background-color: #ffa;\r
-}\r
-\r
-.impl-detail {\r
-    margin-top: 10px;\r
-    margin-bottom: 10px;\r
-    padding: 7px;\r
-    border: 1px solid #ccc;\r
-}\r
-\r
-.impl-detail .compound-first {\r
-    margin-top: 0;\r
-}\r
-\r
-.impl-detail .compound-last {\r
-    margin-bottom: 0;\r
-}\r
-\r
-/* -- code displays --------------------------------------------------------- */\r
-\r
-pre {\r
-    overflow: auto;\r
-    overflow-y: hidden;\r
-}\r
-\r
-code {\r
-    font-size: 1.1em;\r
-}\r
-\r
-td.linenos pre {\r
-    padding: 5px 0px;\r
-    border: 0;\r
-    background-color: transparent;\r
-    color: #aaa;\r
-}\r
-\r
-table.highlighttable {\r
-    margin-left: 0.5em;\r
-}\r
-\r
-table.highlighttable td {\r
-    padding: 0 0.5em 0 0.5em;\r
-}\r
-\r
-tt.descname {\r
-    background-color: transparent;\r
-    font-weight: bold;\r
-    font-size: 1.2em;\r
-}\r
-\r
-tt.descclassname {\r
-    background-color: transparent;\r
-}\r
-\r
-tt.xref, a tt {\r
-    background-color: transparent;\r
-    font-weight: bold;\r
-}\r
-\r
-h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {\r
-    background-color: transparent;\r
-}\r
-\r
-/* -- math display ---------------------------------------------------------- */\r
-\r
-img.math {\r
-    vertical-align: middle;\r
-}\r
-\r
-div.body div.math p {\r
-    text-align: center;\r
-}\r
-\r
-span.eqno {\r
-    float: right;\r
-}\r
-\r
-/* -- printout stylesheet --------------------------------------------------- */\r
-\r
-@media print {\r
-    div.document,\r
-    div.documentwrapper,\r
-    div.bodywrapper {\r
-        margin: 0 !important;\r
-        width: 100%;\r
-    }\r
-\r
-    div.sphinxsidebar,\r
-    div.related,\r
-    div.footer,\r
-    #top-link {\r
-        display: none;\r
-    }\r
-}\r
+/**
+ * Sphinx stylesheet -- basic theme
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+    clear: both;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+    width: 100%;
+    font-size: 90%;
+}
+
+div.related h3 {
+    display: none;
+}
+
+div.related ul {
+    margin: 0;
+    padding: 0 0 0 10px;
+    list-style: none;
+}
+
+div.related li {
+    display: inline;
+}
+
+div.related li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+    padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+    float: left;
+    width: 230px;
+    margin-left: -100%;
+    font-size: 90%;
+}
+
+div.sphinxsidebar ul {
+    list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+    margin-left: 20px;
+    list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+    margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+img {
+    border: 0;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+    width: 90%;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+    visibility: visible;
+}
+
+div.body p.caption {
+    text-align: inherit;
+}
+
+div.body td {
+    text-align: left;
+}
+
+.field-list ul {
+    padding-left: 1em;
+}
+
+.first {
+    margin-top: 0 !important;
+}
+
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+    margin: 0 0 0.5em 1em;
+    border: 1px solid #ddb;
+    padding: 7px 7px 0 7px;
+    background-color: #ffe;
+    width: 40%;
+    float: right;
+}
+
+p.sidebar-title {
+    font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+    border: 1px solid #ccc;
+    padding: 7px 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table {
+    border: 0 solid #dce;
+    border-collapse: collapse;
+}
+
+table td, table th {
+    padding: 2px 5px 2px 5px;
+}
+
+table td {
+    border: 1px solid #ddd;
+    background-color: #eef;
+}
+
+table td p.last, table th p.last {
+    margin-bottom: 0;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+table th {
+    border: 1px solid #cac;
+    background-color: #ede;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+th.head {
+    text-align: center;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+dl {
+    margin-bottom: 15px;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+dt:target, .highlight {
+    background-color: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+.field-list ul {
+    margin: 0;
+    padding-left: 1em;
+}
+
+.field-list p {
+    margin: 0;
+}
+
+.refcount {
+    color: #060;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+p.deprecated {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+    padding: 7px
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+.footnote:target  {
+    background-color: #ffa;
+}
+
+.impl-detail {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+    border: 1px solid #ccc;
+}
+
+.impl-detail .compound-first {
+    margin-top: 0;
+}
+
+.impl-detail .compound-last {
+    margin-bottom: 0;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+    overflow: auto;
+    overflow-y: hidden;
+}
+
+code {
+    font-size: 1.1em;
+}
+
+td.linenos pre {
+    padding: 5px 0px;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+    vertical-align: middle;
+}
+
+div.body div.math p {
+    text-align: center;
+}
+
+span.eqno {
+    float: right;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+@media print {
+    div.document,
+    div.documentwrapper,
+    div.bodywrapper {
+        margin: 0 !important;
+        width: 100%;
+    }
+
+    div.sphinxsidebar,
+    div.related,
+    div.footer,
+    #top-link {
+        display: none;
+    }
+}
index 0da661d93b2caf6137253add8bd5bc0c1ac44dba..59f625de4f06a0c3a0af4963fcdd59e5123dab63 100644 (file)
-title:      Change Log\r
-prev_title: Test Suite\r
-prev_url:   test_suite.html\r
-next_title: Release Notes for v2.4\r
-next_url:   release-2.4.html\r
-\r
-Python-Markdown Changelog\r
-=========================\r
-\r
-__: Released version 2.4.0 ([Notes](release-2.4.html))\r
-\r
-Mar 22, 2013: Released version 2.3.1 (a bugfix release).\r
-\r
-Mar 14, 2013: Released version 2.3.0 ([Notes](release-2.3.html))\r
-\r
-Nov 4, 2012: Released version 2.2.1 ([Notes](release-2.2.1.html)).\r
-\r
-Jul 5, 2012: Released version 2.2.0 ([Notes](release-2.2.0.html)).\r
-\r
-Jan 22, 2012: Released version 2.1.1 ([Notes](release-2.1.1.html)).\r
-\r
-Nov 24, 2011: Released version 2.1.0 ([Notes](release-2.1.0.html)).\r
-\r
-Oct 7, 2009: Released version 2.0.3.\r
-\r
-Sept 28, 2009: Released version 2.0.2 ([Notes](release-2.0.2.html)).\r
-\r
-May 20, 2009: Released version 2.0.1 ([Notes](release-2.0.1.html)).\r
-\r
-Mar 30, 2009: Released version 2.0 ([Notes](release-2.0.html)).\r
-\r
-Mar 8, 2009: Release Candidate 2.0-rc-1.\r
-\r
-Feb 2009: Added support for multi-level lists to new Blockprocessors.\r
-\r
-Jan 2009: Added HTML 4 output as an option (thanks Eric Abrahamsen)\r
-\r
-Nov 2008: Added Definistion List ext. Replaced old core with BlockProcessors.\r
-Broken up into multiple files.\r
-\r
-Oct 2008: Changed logging behavior to work better with other systems.\r
-Refactored tree tarversing. Added treap implementation, then replaced with\r
-OrderedDEict. Renamed various processors to better reflect what they actually\r
-do. Refactored footnote ext to match php Extra's output.\r
-\r
-Sept 2008: Moved prettifyTree to a Postprocessor, replaced wikilink ext\r
-with wikilinks (note the s) ext (uses bracketed links instead of CamelCase)\r
-and various bug fixes.\r
-\r
-August 18 2008: Reorganized directory structure. Added a 'docs' dir\r
-and moved all extensions into a 'markdown-extensions' package.\r
-Added additional documentation and a few bug fixes. (v2.0-beta)\r
-\r
-August 4 2008: Updated included extensions to ElementTree. Added a\r
-seperate commanline script. (v2.0-alpha)\r
-\r
-July 2008: Switched from home-grown NanoDOM to ElementTree and\r
-various related bugs (thanks Artem Yunusov).\r
-\r
-June 2008: Fixed issues with nested inline patterns and cleaned\r
-up testing framework (thanks Artem Yunusov).\r
-\r
-May 2008: Added a number of additional extensions to the\r
-distribution and other minor changes. Moved repo to git from svn.\r
-\r
-Mar 2008: Refactored extension api to accept either an\r
-extension name (as a string) or an instance of an extension\r
-(Thanks David Wolever). Fixed various bugs and added doc strings.\r
-\r
-Feb 2008: Various bugfixes mostly regarding extensions.\r
-\r
-Feb 18, 2008: Version 1.7.\r
-\r
-Feb 13, 2008: A little code cleanup and better documentation\r
-and inheritance for pre/post proccessors.\r
-\r
-Feb 9, 2008: Doublequotes no longer html escaped and rawhtml\r
-honors `<?foo>`, `<@foo>`, and `<%foo>` for those who run markdown on\r
-template syntax.\r
-\r
-Dec 12, 2007: Updated docs. Removed encoding arg from Markdown\r
-and markdown as per list discussion. Clean up in prep for 1.7.\r
-\r
-Nov 29, 2007: Added support for images inside links. Also fixed\r
-a few bugs in the footnote extension.\r
-\r
-Nov 19, 2007: `message` now uses python's logging module. Also removed\r
-limit imposed by recursion in `_process_section()`. You can now parse as\r
-long of a document as your memory can handle.\r
-\r
-Nov 5, 2007: Moved safe_mode code to a textPostprocessor and added\r
-escaping option.\r
-\r
-Nov 3, 2007: Fixed convert method to accept empty strings.\r
-\r
-Oct 30, 2007: Fixed BOM removal (thanks Malcolm Tredinnick). Fixed\r
-infinite loop in bracket regex for inline links.\r
-\r
-Oct 11, 2007: LineBreaks is now an inlinePattern. Fixed HR in\r
-blockquotes. Refactored _processSection method (see tracker #1793419).\r
-\r
-Oct 9, 2007: Added textPreprocessor (from 1.6b).\r
-\r
-Oct 8, 2008: Fixed Lazy Blockquote. Fixed code block on first line.\r
-Fixed empty inline image link.\r
-\r
-Oct 7, 2007: Limit recursion on inlinePatterns. Added a 'safe' tag\r
-to htmlStash.\r
-\r
-March 18, 2007: Fixed or merged a bunch of minor bugs, including\r
-multi-line comments and markup inside links. (Tracker #s: 1683066,\r
-1671153, 1661751, 1627935, 1544371, 1458139.) -> v. 1.6b\r
-\r
-Oct 10, 2006: Fixed a bug that caused some text to be lost after\r
-comments.  Added "safe mode" (user's html tags are removed).\r
-\r
-Sept 6, 2006: Added exception for PHP tags when handling html blocks.\r
-\r
-August 7, 2006: Incorporated Sergej Chodarev's patch to fix a problem\r
-with ampersand normalization and html blocks.\r
-\r
-July 10, 2006: Switched to using optparse.  Added proper support for\r
-unicode.\r
-\r
-July 9, 2006: Fixed the `<!--@address.com>` problem (Tracker #1501354).\r
-\r
-May 18, 2006: Stopped catching unquoted titles in reference links.\r
-Stopped creating blank headers.\r
-\r
-May 15, 2006: A bug with lists, recursion on block-level elements,\r
-run-in headers, spaces before headers, unicode input (thanks to Aaron\r
-Swartz). Sourceforge tracker #s: 1489313, 1489312, 1489311, 1488370,\r
-1485178, 1485176. (v. 1.5)\r
-\r
-Mar. 24, 2006: Switched to a not-so-recursive algorithm with\r
-_handleInline.  (Version 1.4)\r
-\r
-Mar. 15, 2006: Replaced some instance variables with class variables\r
-(a patch from Stelios Xanthakis).  Chris Clark's new regexps that do\r
-not trigger midword underlining.\r
-\r
-Feb. 28, 2006: Clean-up and command-line handling by Stewart\r
-Midwinter. (Version 1.3)\r
-\r
-Feb. 24, 2006: Fixed a bug with the last line of the list appearing\r
-again as a separate paragraph.  Incorporated Chris Clark's "mailto"\r
-patch.  Added support for `<br />` at the end of lines ending in two or\r
-more spaces.  Fixed a crashing bug when using ImageReferencePattern.\r
-Added several utility methods to Nanodom.  (Version 1.2)\r
-\r
-Jan. 31, 2006: Added `hr` and `hr/` to BLOCK_LEVEL_ELEMENTS and\r
-changed `<hr/>` to `<hr />`.  (Thanks to Sergej Chodarev.)\r
-\r
-Nov. 26, 2005: Fixed a bug with certain tabbed lines inside lists\r
-getting wrapped in `<pre><code>`.  (v. 1.1)\r
-\r
-Nov. 19, 2005: Made `<!...`, `<?...`, etc. behave like block-level\r
-HTML tags.\r
-\r
-Nov. 14, 2005: Added entity code and email autolink fix by Tiago\r
-Cogumbreiro.  Fixed some small issues with backticks to get 100%\r
-compliance with John's test suite.  (v. 1.0)\r
-\r
-Nov. 7, 2005: Added an unlink method for documents to aid with memory\r
-collection (per Doug Sauder's suggestion).\r
-\r
-Oct. 29, 2005: Restricted a set of html tags that get treated as\r
-block-level elements.\r
-\r
-Sept. 18, 2005: Refactored the whole script to make it easier to\r
-customize it and made footnote functionality into an extension.\r
-(v. 0.9)\r
-\r
-Sept. 5, 2005: Fixed a bug with multi-paragraph footnotes.  Added\r
-attribute support.\r
-\r
-Sept. 1, 2005: Changed the way headers are handled to allow inline\r
-syntax in headers (e.g. links) and got the lists to use p-tags\r
-correctly (v. 0.8)\r
-\r
-Aug. 29, 2005: Added flexible tabs, fixed a few small issues, added\r
-basic support for footnotes.  Got rid of xml.dom.minidom and added\r
-pretty-printing. (v. 0.7)\r
-\r
-Aug. 13, 2005: Fixed a number of small bugs in order to conform to the\r
-test suite.  (v. 0.6)\r
-\r
-Aug. 11, 2005: Added support for inline html and entities, inline\r
-images, autolinks, underscore emphasis. Cleaned up and refactored the\r
-code, added some more comments.\r
-\r
-Feb. 19, 2005: Rewrote the handling of high-level elements to allow\r
-multi-line list items and all sorts of nesting.\r
-\r
-Feb. 3, 2005: Reference-style links, single-line lists, backticks,\r
-escape, emphasis in the beginning of the paragraph.\r
-\r
-Nov. 2004: Added links, blockquotes, html blocks to Manfred\r
-Stienstra's code\r
-\r
-Apr. 2004: Manfred's version at <http://www.dwerg.net/projects/markdown/>\r
-\r
+title:      Change Log
+prev_title: Test Suite
+prev_url:   test_suite.html
+next_title: Release Notes for v2.5
+next_url:   release-2.5.html
+
+Python-Markdown Changelog
+=========================
+
+[TBD]: Released version 2.5.0 ([Notes](release-2.5.html))
+
+Feb 16, 2014: Released version 2.4.0 ([Notes](release-2.4.html))
+
+Mar 22, 2013: Released version 2.3.1 (a bugfix release).
+
+Mar 14, 2013: Released version 2.3.0 ([Notes](release-2.3.html))
+
+Nov 4, 2012: Released version 2.2.1 ([Notes](release-2.2.1.html)).
+
+Jul 5, 2012: Released version 2.2.0 ([Notes](release-2.2.0.html)).
+
+Jan 22, 2012: Released version 2.1.1 ([Notes](release-2.1.1.html)).
+
+Nov 24, 2011: Released version 2.1.0 ([Notes](release-2.1.0.html)).
+
+Oct 7, 2009: Released version 2.0.3.
+
+Sept 28, 2009: Released version 2.0.2 ([Notes](release-2.0.2.html)).
+
+May 20, 2009: Released version 2.0.1 ([Notes](release-2.0.1.html)).
+
+Mar 30, 2009: Released version 2.0 ([Notes](release-2.0.html)).
+
+Mar 8, 2009: Release Candidate 2.0-rc-1.
+
+Feb 2009: Added support for multi-level lists to new Blockprocessors.
+
+Jan 2009: Added HTML 4 output as an option (thanks Eric Abrahamsen)
+
+Nov 2008: Added Definistion List ext. Replaced old core with BlockProcessors.
+Broken up into multiple files.
+
+Oct 2008: Changed logging behavior to work better with other systems.
+Refactored tree tarversing. Added treap implementation, then replaced with
+OrderedDEict. Renamed various processors to better reflect what they actually
+do. Refactored footnote ext to match php Extra's output.
+
+Sept 2008: Moved prettifyTree to a Postprocessor, replaced wikilink ext
+with wikilinks (note the s) ext (uses bracketed links instead of CamelCase)
+and various bug fixes.
+
+August 18 2008: Reorganized directory structure. Added a 'docs' dir
+and moved all extensions into a 'markdown-extensions' package.
+Added additional documentation and a few bug fixes. (v2.0-beta)
+
+August 4 2008: Updated included extensions to ElementTree. Added a
+seperate commanline script. (v2.0-alpha)
+
+July 2008: Switched from home-grown NanoDOM to ElementTree and
+various related bugs (thanks Artem Yunusov).
+
+June 2008: Fixed issues with nested inline patterns and cleaned
+up testing framework (thanks Artem Yunusov).
+
+May 2008: Added a number of additional extensions to the
+distribution and other minor changes. Moved repo to git from svn.
+
+Mar 2008: Refactored extension api to accept either an
+extension name (as a string) or an instance of an extension
+(Thanks David Wolever). Fixed various bugs and added doc strings.
+
+Feb 2008: Various bugfixes mostly regarding extensions.
+
+Feb 18, 2008: Version 1.7.
+
+Feb 13, 2008: A little code cleanup and better documentation
+and inheritance for pre/post proccessors.
+
+Feb 9, 2008: Doublequotes no longer html escaped and rawhtml
+honors `<?foo>`, `<@foo>`, and `<%foo>` for those who run markdown on
+template syntax.
+
+Dec 12, 2007: Updated docs. Removed encoding arg from Markdown
+and markdown as per list discussion. Clean up in prep for 1.7.
+
+Nov 29, 2007: Added support for images inside links. Also fixed
+a few bugs in the footnote extension.
+
+Nov 19, 2007: `message` now uses python's logging module. Also removed
+limit imposed by recursion in `_process_section()`. You can now parse as
+long of a document as your memory can handle.
+
+Nov 5, 2007: Moved safe_mode code to a textPostprocessor and added
+escaping option.
+
+Nov 3, 2007: Fixed convert method to accept empty strings.
+
+Oct 30, 2007: Fixed BOM removal (thanks Malcolm Tredinnick). Fixed
+infinite loop in bracket regex for inline links.
+
+Oct 11, 2007: LineBreaks is now an inlinePattern. Fixed HR in
+blockquotes. Refactored _processSection method (see tracker #1793419).
+
+Oct 9, 2007: Added textPreprocessor (from 1.6b).
+
+Oct 8, 2008: Fixed Lazy Blockquote. Fixed code block on first line.
+Fixed empty inline image link.
+
+Oct 7, 2007: Limit recursion on inlinePatterns. Added a 'safe' tag
+to htmlStash.
+
+March 18, 2007: Fixed or merged a bunch of minor bugs, including
+multi-line comments and markup inside links. (Tracker #s: 1683066,
+1671153, 1661751, 1627935, 1544371, 1458139.) -> v. 1.6b
+
+Oct 10, 2006: Fixed a bug that caused some text to be lost after
+comments.  Added "safe mode" (user's html tags are removed).
+
+Sept 6, 2006: Added exception for PHP tags when handling html blocks.
+
+August 7, 2006: Incorporated Sergej Chodarev's patch to fix a problem
+with ampersand normalization and html blocks.
+
+July 10, 2006: Switched to using optparse.  Added proper support for
+unicode.
+
+July 9, 2006: Fixed the `<!--@address.com>` problem (Tracker #1501354).
+
+May 18, 2006: Stopped catching unquoted titles in reference links.
+Stopped creating blank headers.
+
+May 15, 2006: A bug with lists, recursion on block-level elements,
+run-in headers, spaces before headers, unicode input (thanks to Aaron
+Swartz). Sourceforge tracker #s: 1489313, 1489312, 1489311, 1488370,
+1485178, 1485176. (v. 1.5)
+
+Mar. 24, 2006: Switched to a not-so-recursive algorithm with
+_handleInline.  (Version 1.4)
+
+Mar. 15, 2006: Replaced some instance variables with class variables
+(a patch from Stelios Xanthakis).  Chris Clark's new regexps that do
+not trigger midword underlining.
+
+Feb. 28, 2006: Clean-up and command-line handling by Stewart
+Midwinter. (Version 1.3)
+
+Feb. 24, 2006: Fixed a bug with the last line of the list appearing
+again as a separate paragraph.  Incorporated Chris Clark's "mailto"
+patch.  Added support for `<br />` at the end of lines ending in two or
+more spaces.  Fixed a crashing bug when using ImageReferencePattern.
+Added several utility methods to Nanodom.  (Version 1.2)
+
+Jan. 31, 2006: Added `hr` and `hr/` to BLOCK_LEVEL_ELEMENTS and
+changed `<hr/>` to `<hr />`.  (Thanks to Sergej Chodarev.)
+
+Nov. 26, 2005: Fixed a bug with certain tabbed lines inside lists
+getting wrapped in `<pre><code>`.  (v. 1.1)
+
+Nov. 19, 2005: Made `<!...`, `<?...`, etc. behave like block-level
+HTML tags.
+
+Nov. 14, 2005: Added entity code and email autolink fix by Tiago
+Cogumbreiro.  Fixed some small issues with backticks to get 100%
+compliance with John's test suite.  (v. 1.0)
+
+Nov. 7, 2005: Added an unlink method for documents to aid with memory
+collection (per Doug Sauder's suggestion).
+
+Oct. 29, 2005: Restricted a set of html tags that get treated as
+block-level elements.
+
+Sept. 18, 2005: Refactored the whole script to make it easier to
+customize it and made footnote functionality into an extension.
+(v. 0.9)
+
+Sept. 5, 2005: Fixed a bug with multi-paragraph footnotes.  Added
+attribute support.
+
+Sept. 1, 2005: Changed the way headers are handled to allow inline
+syntax in headers (e.g. links) and got the lists to use p-tags
+correctly (v. 0.8)
+
+Aug. 29, 2005: Added flexible tabs, fixed a few small issues, added
+basic support for footnotes.  Got rid of xml.dom.minidom and added
+pretty-printing. (v. 0.7)
+
+Aug. 13, 2005: Fixed a number of small bugs in order to conform to the
+test suite.  (v. 0.6)
+
+Aug. 11, 2005: Added support for inline html and entities, inline
+images, autolinks, underscore emphasis. Cleaned up and refactored the
+code, added some more comments.
+
+Feb. 19, 2005: Rewrote the handling of high-level elements to allow
+multi-line list items and all sorts of nesting.
+
+Feb. 3, 2005: Reference-style links, single-line lists, backticks,
+escape, emphasis in the beginning of the paragraph.
+
+Nov. 2004: Added links, blockquotes, html blocks to Manfred
+Stienstra's code
+
+Apr. 2004: Manfred's version at <http://www.dwerg.net/projects/markdown/>
+
index d14c91c9060dd7ce63bd340b3299dff82d7be5b2..5098771cd57461839fb4c4eee66f6d71dd4b49c6 100644 (file)
-title: Command Line\r
-prev_title: Library Reference\r
-prev_url:   reference.html\r
-next_title: Extensions\r
-next_url:   extensions/index.html\r
-\r
-\r
-Using Python-Markdown on the Command Line\r
-=========================================\r
-\r
-While Python-Markdown is primarily a python library, a command line script is \r
-included as well. While there are many other command line implementations \r
-of Markdown, you may not have them installed, or you may prefer to use \r
-Python-Markdown's various extensions.\r
-\r
-Generally, you will want to have the Markdown library fully installed on your\r
-system to run the command line script. See the \r
-[Installation instructions](install.html) for details.\r
-\r
-Python-Markdown's command line script takes advantage of Python's `-m` flag.\r
-Therefore, assuming the python executable is on your system path, use the \r
-following format:\r
-\r
-    $ python -m markdown [options] [args]\r
-\r
-That will run the module as a script with the options and args provided. \r
-\r
-!!! Note \r
-    Unfortunately, Python 2.6 does not fully support the `-m` flag. Therefore, you \r
-    may need to specify the module in which the command line script exists \r
-    (`markdown.__main__`):\r
-\r
-        $ python -m markdown.__main__ [options] [args]\r
-\r
-At its most basic usage, one would simply pass in a file name as the only argument:\r
-\r
-    $ python -m markdown input_file.txt\r
-\r
-Piping input and output (on STDIN and STDOUT) is fully supported as well. \r
-For example:\r
-\r
-    $ echo "Some **Markdown** text." | python -m markdown > output.html\r
-\r
-Use the `--help` option for a list all available options and args:\r
-\r
-    $ python -m markdown --help\r
-\r
-If you don't want to call the python executable directly (using the `-m` flag), \r
-follow the instructions below to use a wrapper script:\r
-\r
-Setup\r
------\r
-\r
-Upon installation, the ``markdown_py`` script will have been copied to\r
-your Python "Scripts" directory. Different systems require different methods to\r
-ensure that any files in the Python "Scripts" directory are on your system \r
-path.\r
-\r
-* **Windows**:\r
-\r
-    Assuming a default install of Python on Windows, your "Scripts" directory \r
-    is most likely something like ``C:\\Python26\Scripts``. Verify the location\r
-    of your "Scripts" directory and add it to you system path.\r
-\r
-    Calling ``markdown_py`` from the command line will call the wrapper batch \r
-    file ``markdown_py.bat`` in the "Scripts" directory created during install.\r
-\r
-* __*nix__ (Linux, OSX, BSD, Unix, etc.):\r
-\r
-    As each *nix distribution is different and we can't possibly document all \r
-    of them here, we'll provide a few helpful pointers:\r
-\r
-    * Some systems will automatically install the script on your path. Try it \r
-      and see if it works. Just run ``markdown_py`` from the command line.\r
-\r
-    * Other systems may maintain a separate "Scripts" ("bin") directory which \r
-      you need to add to your path. Find it (check with your distribution) and\r
-      either add it to your path or make a symbolic link to it from your path.\r
-\r
-    * If you are sure ``markdown_py`` is on your path, but it still isn't being\r
-      found, check the permissions of the file and make sure it is executable.\r
-\r
-    As an alternative, you could just ``cd`` into the directory which contains\r
-    the source distribution, and run it from there. However, remember that your\r
-    markdown text files will not likely be in that directory, so it is much \r
-    more convenient to have ``markdown_py`` on your path.\r
-\r
-!!!Note \r
-    Python-Markdown uses "markdown_py" as a script name because\r
-    the Perl implementation has already taken the more obvious name "markdown".\r
-    Additionally, the default Python configuration on some systems would cause a \r
-    script named "markdown.py" to fail by importing itself rather than the markdown\r
-    library. Therefore, the script has been named "markdown_py" as a compromise. If\r
-    you prefer a different name for the script on your system, it is suggested that\r
-    you create a symbolic link to `markdown_py` with your preferred name.\r
-\r
-Usage\r
------\r
-\r
-To use ``markdown_py`` from the command line, run it as \r
-\r
-    $ markdown_py input_file.txt\r
-\r
-or \r
-\r
-    $ markdown_py input_file.txt > output_file.html\r
-\r
-For a complete list of options, run\r
-\r
-    $ markdown_py --help\r
-\r
-Using Extensions\r
-----------------\r
-\r
-For an extension to be run from the command line it must be provided in a module\r
-on your python path (see the [Extension API](extensions/api.html) for details).\r
-It can then be invoked by the name of that module:\r
-\r
-    $ markdown_py -x footnotes text_with_footnotes.txt > output.html\r
-\r
-If the extension supports config options, you can pass them in as well:\r
-\r
-    $ markdown_py -x "footnotes(PLACE_MARKER=~~~~~~~~)" input.txt\r
-\r
+title: Command Line
+prev_title: Library Reference
+prev_url:   reference.html
+next_title: Extensions
+next_url:   extensions/index.html
+
+
+Using Python-Markdown on the Command Line
+=========================================
+
+While Python-Markdown is primarily a python library, a command line script is 
+included as well. While there are many other command line implementations 
+of Markdown, you may not have them installed, or you may prefer to use 
+Python-Markdown's various extensions.
+
+Generally, you will want to have the Markdown library fully installed on your
+system to run the command line script. See the 
+[Installation instructions](install.html) for details.
+
+Python-Markdown's command line script takes advantage of Python's `-m` flag.
+Therefore, assuming the python executable is on your system path, use the 
+following format:
+
+    $ python -m markdown [options] [args]
+
+That will run the module as a script with the options and args provided. 
+
+At its most basic usage, one would simply pass in a file name as the only argument:
+
+    $ python -m markdown input_file.txt
+
+Piping input and output (on STDIN and STDOUT) is fully supported as well. 
+For example:
+
+    $ echo "Some **Markdown** text." | python -m markdown > output.html
+
+Use the `--help` option for a list all available options and args:
+
+    $ python -m markdown --help
+
+If you don't want to call the python executable directly (using the `-m` flag), 
+follow the instructions below to use a wrapper script:
+
+Setup
+-----
+
+Upon installation, the ``markdown_py`` script will have been copied to
+your Python "Scripts" directory. Different systems require different methods to
+ensure that any files in the Python "Scripts" directory are on your system 
+path.
+
+* **Windows**:
+
+    Assuming a default install of Python on Windows, your "Scripts" directory 
+    is most likely something like ``C:\\Python26\Scripts``. Verify the location
+    of your "Scripts" directory and add it to you system path.
+
+    Calling ``markdown_py`` from the command line will call the wrapper batch 
+    file ``markdown_py.bat`` in the "Scripts" directory created during install.
+
+* __*nix__ (Linux, OSX, BSD, Unix, etc.):
+
+    As each *nix distribution is different and we can't possibly document all 
+    of them here, we'll provide a few helpful pointers:
+
+    * Some systems will automatically install the script on your path. Try it 
+      and see if it works. Just run ``markdown_py`` from the command line.
+
+    * Other systems may maintain a separate "Scripts" ("bin") directory which 
+      you need to add to your path. Find it (check with your distribution) and
+      either add it to your path or make a symbolic link to it from your path.
+
+    * If you are sure ``markdown_py`` is on your path, but it still isn't being
+      found, check the permissions of the file and make sure it is executable.
+
+    As an alternative, you could just ``cd`` into the directory which contains
+    the source distribution, and run it from there. However, remember that your
+    markdown text files will not likely be in that directory, so it is much 
+    more convenient to have ``markdown_py`` on your path.
+
+!!!Note 
+    Python-Markdown uses "markdown_py" as a script name because
+    the Perl implementation has already taken the more obvious name "markdown".
+    Additionally, the default Python configuration on some systems would cause a 
+    script named "markdown.py" to fail by importing itself rather than the markdown
+    library. Therefore, the script has been named "markdown_py" as a compromise. If
+    you prefer a different name for the script on your system, it is suggested that
+    you create a symbolic link to `markdown_py` with your preferred name.
+
+Usage
+-----
+
+To use ``markdown_py`` from the command line, run it as 
+
+    $ markdown_py input_file.txt
+
+or 
+
+    $ markdown_py input_file.txt > output_file.html
+
+For a complete list of options, run
+
+    $ markdown_py --help
+
+Using Extensions
+----------------
+
+To load a Python-Markdown extension from the command line use the `-x` 
+(or `--extension`) option. The extension module must be on your `PYTHONPATH` 
+(see the [Extension API](extensions/api.html) for details). The extension can 
+then be invoked by the name of that module using Python's dot syntax:
+
+       $ python -m markdown -x path.to.module input.txt
+
+To load multiple extensions, specify an `-x` option for each extension:
+
+       $ python -m markdown -x markdown.extensions.footnotes -x markdown.extensions.codehilite input.txt
+
+If the extension supports configuration options (see the documentation for the 
+extension you are using to determine what settings it supports, if any), you 
+can pass them in as well:
+
+       $ python -m markdown -x markdown.extensions.footnotes -c config.yml input.txt
+
+The `-c` (or `--extension_configs`) option accepts a file name. The file must be in
+either the [YAML] or [JSON] format and contain YAML or JSON data that would map to
+a Python Dictionary in the format required by the [`extension_configs`][ec] keyword 
+of the `markdown.Markdown` class. Therefore, the file `config.yaml` referenced in the 
+above example might look like this:
+
+       markdown.extensions.footnotes:
+               PLACE_MARKER: ~~~~~~~~
+               UNIQUE_IDS: True
+
+Note that while the `--extension_configs` option does specify the "markdown.extensions.footnotes" 
+extension, you still need to load the extension with the `-x` option, or the configs for that
+extension will be ignored.
+
+The `--extension_configs` option will only support YAML config files if [PyYaml] is
+installed on your system. JSON should work with no additional dependencies. The format
+of your config file is automatically detected.
+
+!!!warning
+       The previously documented method of appending the extension configs as a string to the 
+       extension name will be deprecated in Python-Markdown version 2.6. The `--extension_configs` 
+       option should be used instead. See the [2.5 release notes] for more information.
+
+[ec]: reference.html#extension_configs
+[YAML]: http://yaml.org/
+[JSON]: http://json.org/
+[PyYAML]: http://pyyaml.org/
+[2.5 release notes]: release-2.5.txt
+
index 2e3605950edfdaee3a02241cd473c0b6699f6414..7833719c136a18914acecdac1836ed7493f3df6b 100644 (file)
-/*\r
- * default.css_t\r
- * ~~~~~~~~~~~~~\r
- *\r
- * Sphinx stylesheet -- default theme.\r
- *\r
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.\r
- * :license: BSD, see LICENSE for details.\r
- *\r
- */\r
-\r
-@import url("basic.css");\r
-\r
-/* -- page layout ----------------------------------------------------------- */\r
-\r
-body {\r
-    font-family: sans-serif;\r
-    font-size: 100%;\r
-    background-color: #11303d;\r
-    color: #000;\r
-    margin: 0;\r
-    padding: 0;\r
-}\r
-\r
-div.document {\r
-    background-color: #1c4e63;\r
-}\r
-\r
-div.documentwrapper {\r
-    float: left;\r
-    width: 100%;\r
-}\r
-\r
-div.bodywrapper {\r
-    margin: 0 0 0 230px;\r
-}\r
-\r
-div.body {\r
-    background-color: #ffffff;\r
-    color: #000000;\r
-    padding: 0 20px 30px 20px;\r
-}\r
-\r
-div.footer {\r
-    color: #ffffff;\r
-    width: 100%;\r
-    padding: 9px 0 9px 0;\r
-    text-align: center;\r
-    font-size: 75%;\r
-}\r
-\r
-div.footer a {\r
-    color: #ffffff;\r
-    text-decoration: underline;\r
-}\r
-\r
-div.related {\r
-    background-color: #133f52;\r
-    line-height: 30px;\r
-    color: #ffffff;\r
-}\r
-\r
-div.related a {\r
-    color: #ffffff;\r
-}\r
-\r
-div.sphinxsidebar {\r
-}\r
-\r
-div.sphinxsidebar h3 {\r
-    font-family: 'Trebuchet MS', sans-serif;\r
-    color: #ffffff;\r
-    font-size: 1.4em;\r
-    font-weight: normal;\r
-    margin: 0;\r
-    padding: 0;\r
-}\r
-\r
-div.sphinxsidebar h3 a {\r
-    color: #ffffff;\r
-}\r
-\r
-div.sphinxsidebar h4 {\r
-    font-family: 'Trebuchet MS', sans-serif;\r
-    color: #ffffff;\r
-    font-size: 1.3em;\r
-    font-weight: normal;\r
-    margin: 5px 0 0 0;\r
-    padding: 0;\r
-}\r
-\r
-div.sphinxsidebar p {\r
-    color: #ffffff;\r
-}\r
-\r
-div.sphinxsidebar p.topless {\r
-    margin: 5px 10px 10px 10px;\r
-}\r
-\r
-div.sphinxsidebar ul {\r
-    margin: 10px;\r
-    padding: 0;\r
-    color: #ffffff;\r
-}\r
-\r
-div.sphinxsidebar a {\r
-    color: #98dbcc;\r
-}\r
-\r
-div.sphinxsidebar input {\r
-    border: 1px solid #98dbcc;\r
-    font-family: sans-serif;\r
-    font-size: 1em;\r
-}\r
-\r
-\r
-/* for collapsible sidebar */\r
-div#sidebarbutton {\r
-    background-color: #3c6e83;\r
-}\r
-\r
-\r
-/* -- hyperlink styles ------------------------------------------------------ */\r
-\r
-a {\r
-    color: #355f7c;\r
-    text-decoration: none;\r
-}\r
-\r
-a:visited {\r
-    color: #355f7c;\r
-    text-decoration: none;\r
-}\r
-\r
-a:hover {\r
-    text-decoration: underline;\r
-}\r
-\r
-\r
-\r
-/* -- body styles ----------------------------------------------------------- */\r
-\r
-div.body h1,\r
-div.body h2,\r
-div.body h3,\r
-div.body h4,\r
-div.body h5,\r
-div.body h6 {\r
-    font-family: 'Trebuchet MS', sans-serif;\r
-    background-color: #f2f2f2;\r
-    font-weight: normal;\r
-    color: #20435c;\r
-    border-bottom: 1px solid #ccc;\r
-    margin: 20px -20px 10px -20px;\r
-    padding: 3px 0 3px 10px;\r
-}\r
-\r
-div.body h1 { margin-top: 0; font-size: 200%; }\r
-div.body h2 { font-size: 160%; }\r
-div.body h3 { font-size: 140%; }\r
-div.body h4 { font-size: 120%; }\r
-div.body h5 { font-size: 110%; }\r
-div.body h6 { font-size: 100%; }\r
-\r
-a.headerlink {\r
-    color: #c60f0f;\r
-    font-size: 0.8em;\r
-    padding: 0 4px 0 4px;\r
-    text-decoration: none;\r
-}\r
-\r
-a.headerlink:hover {\r
-    background-color: #c60f0f;\r
-    color: white;\r
-}\r
-\r
-div.body p, div.body dd, div.body li {\r
-    text-align: justify;\r
-    line-height: 130%;\r
-}\r
-\r
-div.admonition p.admonition-title + p {\r
-    display: inline;\r
-}\r
-\r
-div.admonition p {\r
-    margin-bottom: 5px;\r
-}\r
-\r
-div.admonition pre {\r
-    margin-bottom: 5px;\r
-}\r
-\r
-div.admonition ul, div.admonition ol {\r
-    margin-bottom: 5px;\r
-}\r
-\r
-div.note {\r
-    background-color: #eee;\r
-    border: 1px solid #ccc;\r
-}\r
-\r
-div.seealso {\r
-    background-color: #ffc;\r
-    border: 1px solid #ff6;\r
-}\r
-\r
-div.topic {\r
-    background-color: #eee;\r
-}\r
-\r
-div.warning {\r
-    background-color: #ffe4e4;\r
-    border: 1px solid #f66;\r
-}\r
-\r
-p.admonition-title {\r
-    display: inline;\r
-}\r
-\r
-p.admonition-title:after {\r
-    content: ":";\r
-}\r
-\r
-pre {\r
-    padding: 5px;\r
-    background-color: #eeffcc;\r
-    color: #333333;\r
-    line-height: 120%;\r
-    border: 1px solid #ac9;\r
-    border-left: none;\r
-    border-right: none;\r
-}\r
-\r
-tt {\r
-    background-color: #ecf0f3;\r
-    padding: 0 1px 0 1px;\r
-    font-size: 0.95em;\r
-}\r
-\r
-th {\r
-    background-color: #ede;\r
-}\r
-\r
-.warning tt {\r
-    background: #efc2c2;\r
-}\r
-\r
-.note tt {\r
-    background: #d6d6d6;\r
-}\r
-\r
-.viewcode-back {\r
-    font-family: sans-serif;\r
-}\r
-\r
-div.viewcode-block:target {\r
-    background-color: #f4debf;\r
-    border-top: 1px solid #ac9;\r
-    border-bottom: 1px solid #ac9;\r
+/*
+ * default.css_t
+ * ~~~~~~~~~~~~~
+ *
+ * Sphinx stylesheet -- default theme.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+@import url("basic.css");
+
+/* -- page layout ----------------------------------------------------------- */
+
+body {
+    font-family: sans-serif;
+    font-size: 100%;
+    background-color: #11303d;
+    color: #000;
+    margin: 0;
+    padding: 0;
+}
+
+div.document {
+    background-color: #1c4e63;
+}
+
+div.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+div.bodywrapper {
+    margin: 0 0 0 230px;
+}
+
+div.body {
+    background-color: #ffffff;
+    color: #000000;
+    padding: 0 20px 30px 20px;
+}
+
+div.footer {
+    color: #ffffff;
+    width: 100%;
+    padding: 9px 0 9px 0;
+    text-align: center;
+    font-size: 75%;
+}
+
+div.footer a {
+    color: #ffffff;
+    text-decoration: underline;
+}
+
+div.related {
+    background-color: #133f52;
+    line-height: 30px;
+    color: #ffffff;
+}
+
+div.related a {
+    color: #ffffff;
+}
+
+div.sphinxsidebar {
+}
+
+div.sphinxsidebar h3 {
+    font-family: 'Trebuchet MS', sans-serif;
+    color: #ffffff;
+    font-size: 1.4em;
+    font-weight: normal;
+    margin: 0;
+    padding: 0;
+}
+
+div.sphinxsidebar h3 a {
+    color: #ffffff;
+}
+
+div.sphinxsidebar h4 {
+    font-family: 'Trebuchet MS', sans-serif;
+    color: #ffffff;
+    font-size: 1.3em;
+    font-weight: normal;
+    margin: 5px 0 0 0;
+    padding: 0;
+}
+
+div.sphinxsidebar p {
+    color: #ffffff;
+}
+
+div.sphinxsidebar p.topless {
+    margin: 5px 10px 10px 10px;
+}
+
+div.sphinxsidebar ul {
+    margin: 10px;
+    padding: 0;
+    color: #ffffff;
+}
+
+div.sphinxsidebar a {
+    color: #98dbcc;
+}
+
+div.sphinxsidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+
+/* for collapsible sidebar */
+div#sidebarbutton {
+    background-color: #3c6e83;
+}
+
+
+/* -- hyperlink styles ------------------------------------------------------ */
+
+a {
+    color: #355f7c;
+    text-decoration: none;
+}
+
+a:visited {
+    color: #355f7c;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+
+
+/* -- body styles ----------------------------------------------------------- */
+
+div.body h1,
+div.body h2,
+div.body h3,
+div.body h4,
+div.body h5,
+div.body h6 {
+    font-family: 'Trebuchet MS', sans-serif;
+    background-color: #f2f2f2;
+    font-weight: normal;
+    color: #20435c;
+    border-bottom: 1px solid #ccc;
+    margin: 20px -20px 10px -20px;
+    padding: 3px 0 3px 10px;
+}
+
+div.body h1 { margin-top: 0; font-size: 200%; }
+div.body h2 { font-size: 160%; }
+div.body h3 { font-size: 140%; }
+div.body h4 { font-size: 120%; }
+div.body h5 { font-size: 110%; }
+div.body h6 { font-size: 100%; }
+
+a.headerlink {
+    color: #c60f0f;
+    font-size: 0.8em;
+    padding: 0 4px 0 4px;
+    text-decoration: none;
+}
+
+a.headerlink:hover {
+    background-color: #c60f0f;
+    color: white;
+}
+
+div.body p, div.body dd, div.body li {
+    text-align: justify;
+    line-height: 130%;
+}
+
+div.admonition p.admonition-title + p {
+    display: inline;
+}
+
+div.admonition p {
+    margin-bottom: 5px;
+}
+
+div.admonition pre {
+    margin-bottom: 5px;
+}
+
+div.admonition ul, div.admonition ol {
+    margin-bottom: 5px;
+}
+
+div.note {
+    background-color: #eee;
+    border: 1px solid #ccc;
+}
+
+div.seealso {
+    background-color: #ffc;
+    border: 1px solid #ff6;
+}
+
+div.topic {
+    background-color: #eee;
+}
+
+div.warning {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+}
+
+p.admonition-title {
+    display: inline;
+}
+
+p.admonition-title:after {
+    content: ":";
+}
+
+pre {
+    padding: 5px;
+    background-color: #eeffcc;
+    color: #333333;
+    line-height: 120%;
+    border: 1px solid #ac9;
+    border-left: none;
+    border-right: none;
+}
+
+tt {
+    background-color: #ecf0f3;
+    padding: 0 1px 0 1px;
+    font-size: 0.95em;
+}
+
+th {
+    background-color: #ede;
+}
+
+.warning tt {
+    background: #efc2c2;
+}
+
+.note tt {
+    background: #d6d6d6;
+}
+
+.viewcode-back {
+    font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+    background-color: #f4debf;
+    border-top: 1px solid #ac9;
+    border-bottom: 1px solid #ac9;
 }
\ No newline at end of file
index 40d0e134d3064671eb132bd62155cd09c0dc7281..9ac7c953499244107317c7f3b2215c2b32fd9142 100644 (file)
@@ -1,45 +1,45 @@
-title:      Abbreviations Extension\r
-prev_title: Extra Extension\r
-prev_url:   extra.html\r
-next_title: Attribute Lists Extension\r
-next_url:   attr_list.html\r
-\r
-Abbreviations\r
-=============\r
-\r
-Summary\r
--------\r
-\r
-The Abbreviations extension adds the ability to define abbreviations. \r
-Specifically, any defined abbreviation is wrapped in  an `<abbr>` tag.\r
-\r
-The Abbreviations extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-Abbreviations are defined using the syntax established in \r
-[PHP Markdown Extra][php].\r
-\r
-[php]: http://www.michelf.com/projects/php-markdown/extra/#abbr\r
-\r
-Thus, the following text (taken from the above referenced PHP documentation):\r
-\r
-    The HTML specification \r
-    is maintained by the W3C.\r
-        \r
-    *[HTML]: Hyper Text Markup Language\r
-    *[W3C]:  World Wide Web Consortium\r
-\r
-will be rendered as:\r
-\r
-    <p>The <abbr title="Hyper Text Markup Language">HTML</abbr> specification \r
-    is maintained by the <abbr title="World Wide Web Consortium">W3C</abbr>.</p>\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `abbr`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
+title:      Abbreviations Extension
+prev_title: Extra Extension
+prev_url:   extra.html
+next_title: Attribute Lists Extension
+next_url:   attr_list.html
+
+Abbreviations
+=============
+
+Summary
+-------
+
+The Abbreviations extension adds the ability to define abbreviations. 
+Specifically, any defined abbreviation is wrapped in  an `<abbr>` tag.
+
+The Abbreviations extension is included in the standard Markdown library.
+
+Syntax
+------
+
+Abbreviations are defined using the syntax established in 
+[PHP Markdown Extra][php].
+
+[php]: http://www.michelf.com/projects/php-markdown/extra/#abbr
+
+Thus, the following text (taken from the above referenced PHP documentation):
+
+    The HTML specification 
+    is maintained by the W3C.
+        
+    *[HTML]: Hyper Text Markup Language
+    *[W3C]:  World Wide Web Consortium
+
+will be rendered as:
+
+    <p>The <abbr title="Hyper Text Markup Language">HTML</abbr> specification 
+    is maintained by the <abbr title="World Wide Web Consortium">W3C</abbr>.</p>
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.abbr`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
index fcf489e1f04abc3cb045018333ba6dd1fc24ca80..fcf866b9e1e5d17cacf2e122aa3264a04fadebe8 100644 (file)
@@ -1,79 +1,75 @@
-title:      Admonition Extension\r
-prev_title: Smart Strong Extension\r
-prev_url:   smart_strong.html\r
-next_title: CodeHilite Extension\r
-next_url:   code_hilite.html\r
-\r
-Admonition\r
-==========\r
-\r
-Summary\r
--------\r
-\r
-The Admonition extension adds [rST-style][rST] admonitions to Markdown documents.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-!!! Warning\r
-    This Extension is experimental and subject to change without notice.\r
-    Consider yourself warned.\r
-\r
-[rST]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions\r
-\r
-Syntax\r
-------\r
-\r
-Admonitions are created using the following syntax:\r
-\r
-    !!! type "optional explicit title within double quotes"\r
-        Any number of other indented markdown elements.\r
-\r
-        This is the second paragraph.\r
-\r
-`type` will be used as the CSS classname and as default title. It must be a\r
-single word. So, for instance:\r
-\r
-    !!! note\r
-        You should note that the title will be automatically capitalized.\r
-\r
-will render:\r
-\r
-    <div class="admonition note">\r
-    <p class="admonition-title">Note</p>\r
-    <p>You should note that the title will be automatically capitalized.</p>\r
-    </div>\r
-\r
-Optionally, you can use custom titles. For instance:\r
-\r
-    !!! danger "Don't try this at home"\r
-        ...\r
-\r
-will render:\r
-\r
-    <div class="admonition danger">\r
-    <p class="admonition-title">Don't try this at home</p>\r
-    <p>...</p>\r
-    </div>\r
-\r
-If you don't want a title, use a blank string `""`:\r
-\r
-    !!! important ""\r
-        This is a admonition box without a title.\r
-\r
-results in:\r
-\r
-    <div class="admonition important">\r
-    <p>This is a admonition box without a title.</p>\r
-    </div>\r
-\r
-\r
-rST suggests the following `types`, but you're free to use whatever you want:\r
-    attention, caution, danger, error, hint, important, note, tip, warning.\r
-\r
-Styling\r
--------\r
-\r
-There is no CSS included as part of this extension. Look up the default\r
-[Sphinx][sphinx] theme if you need inspiration.\r
-\r
-[sphinx]: http://sphinx.pocoo.org/\r
+title:      Admonition Extension
+prev_title: Smart Strong Extension
+prev_url:   smart_strong.html
+next_title: CodeHilite Extension
+next_url:   code_hilite.html
+
+Admonition
+==========
+
+Summary
+-------
+
+The Admonition extension adds [rST-style][rST] admonitions to Markdown documents.
+
+This extension is included in the standard Markdown library.
+
+[rST]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions
+
+Syntax
+------
+
+Admonitions are created using the following syntax:
+
+    !!! type "optional explicit title within double quotes"
+        Any number of other indented markdown elements.
+
+        This is the second paragraph.
+
+`type` will be used as the CSS classname and as default title. It must be a
+single word. So, for instance:
+
+    !!! note
+        You should note that the title will be automatically capitalized.
+
+will render:
+
+    <div class="admonition note">
+    <p class="admonition-title">Note</p>
+    <p>You should note that the title will be automatically capitalized.</p>
+    </div>
+
+Optionally, you can use custom titles. For instance:
+
+    !!! danger "Don't try this at home"
+        ...
+
+will render:
+
+    <div class="admonition danger">
+    <p class="admonition-title">Don't try this at home</p>
+    <p>...</p>
+    </div>
+
+If you don't want a title, use a blank string `""`:
+
+    !!! important ""
+        This is a admonition box without a title.
+
+results in:
+
+    <div class="admonition important">
+    <p>This is a admonition box without a title.</p>
+    </div>
+
+
+rST suggests the following `types`, but you're free to use whatever you want:
+    attention, caution, danger, error, hint, important, note, tip, warning.
+
+Styling
+-------
+
+There is no CSS included as part of this extension. Look up the default
+[Sphinx][sphinx] theme if you need inspiration.
+
+[sphinx]: http://sphinx.pocoo.org/
index c52256d6bd5b8d91a4f5f5fb37c57d129601b0cb..8837818cd4a5ddbc6e74e23e70207c0127823955 100644 (file)
-title:      Extensions API\r
-prev_title: WikiLinks Extension\r
-prev_url:   wikilinks.html\r
-next_title: Test Suite\r
-next_url:   ../test_suite.html\r
-\r
-Writing Extensions for Python-Markdown\r
-======================================\r
-\r
-Python-Markdown includes an API for extension writers to plug their own \r
-custom functionality and/or syntax into the parser. There are preprocessors\r
-which allow you to alter the source before it is passed to the parser, \r
-inline patterns which allow you to add, remove or override the syntax of\r
-any inline elements, and postprocessors which allow munging of the\r
-output of the parser before it is returned. If you really want to dive in, \r
-there are also blockprocessors which are part of the core BlockParser.\r
-\r
-As the parser builds an [ElementTree][] object which is later rendered \r
-as Unicode text, there are also some helpers provided to ease manipulation of \r
-the tree. Each part of the API is discussed in its respective section below. \r
-Additionally, reading the source of some [Available Extensions][] may be \r
-helpful. For example, the [Footnotes][] extension uses most of the features \r
-documented here.\r
-\r
-Preprocessors {: #preprocessors }\r
----------------------------------\r
-\r
-Preprocessors munge the source text before it is passed into the Markdown \r
-core. This is an excellent place to clean up bad syntax, extract things the \r
-parser may otherwise choke on and perhaps even store it for later retrieval.\r
-\r
-Preprocessors should inherit from ``markdown.preprocessors.Preprocessor`` and \r
-implement a ``run`` method with one argument ``lines``. The ``run`` method of \r
-each Preprocessor will be passed the entire source text as a list of Unicode \r
-strings. Each string will contain one line of text. The ``run`` method should \r
-return either that list, or an altered list of Unicode strings.\r
-\r
-A pseudo example:\r
-\r
-    from markdown.preprocessors import Preprocessor\r
-\r
-    class MyPreprocessor(Preprocessor):\r
-        def run(self, lines):\r
-            new_lines = []\r
-            for line in lines:\r
-                m = MYREGEX.match(line)\r
-                if m:\r
-                    # do stuff\r
-                else:\r
-                    new_lines.append(line)\r
-            return new_lines\r
-\r
-Inline Patterns {: #inlinepatterns }\r
-------------------------------------\r
-\r
-Inline Patterns implement the inline HTML element syntax for Markdown such as\r
-``*emphasis*`` or ``[links](http://example.com)``. Pattern objects should be \r
-instances of classes that inherit from ``markdown.inlinepatterns.Pattern`` or \r
-one of its children. Each pattern object uses a single regular expression and \r
-must have the following methods:\r
-\r
-* **``getCompiledRegExp()``**: \r
-\r
-    Returns a compiled regular expression.\r
-\r
-* **``handleMatch(m)``**: \r
-\r
-    Accepts a match object and returns an ElementTree element of a plain \r
-    Unicode string.\r
-\r
-Note that any regular expression returned by ``getCompiledRegExp`` must capture\r
-the whole block. Therefore, they should all start with ``r'^(.*?)'`` and end\r
-with ``r'(.*?)!'``. When using the default ``getCompiledRegExp()`` method \r
-provided in the ``Pattern`` you can pass in a regular expression without that \r
-and ``getCompiledRegExp`` will wrap your expression for you and set the \r
-`re.DOTALL` and `re.UNICODE` flags. This means that the first group of your \r
-match will be ``m.group(2)`` as ``m.group(1)`` will match everything before the\r
-pattern.\r
-\r
-For an example, consider this simplified emphasis pattern:\r
-\r
-    from markdown.inlinepatterns import Pattern\r
-    from markdown.util import etree\r
-\r
-    class EmphasisPattern(Pattern):\r
-        def handleMatch(self, m):\r
-            el = etree.Element('em')\r
-            el.text = m.group(3)\r
-            return el\r
-\r
-As discussed in [Integrating Your Code Into Markdown][], an instance of this\r
-class will need to be provided to Markdown. That instance would be created\r
-like so:\r
-\r
-    # an oversimplified regex\r
-    MYPATTERN = r'\*([^*]+)\*'\r
-    # pass in pattern and create instance\r
-    emphasis = EmphasisPattern(MYPATTERN)\r
-\r
-Actually it would not be necessary to create that pattern (and not just because\r
-a more sophisticated emphasis pattern already exists in Markdown). The fact is,\r
-that example pattern is not very DRY. A pattern for `**strong**` text would\r
-be almost identical, with the exception that it would create a 'strong' element.\r
-Therefore, Markdown provides a number of generic pattern classes that can \r
-provide some common functionality. For example, both emphasis and strong are\r
-implemented with separate instances of the ``SimpleTagPattern`` listed below.\r
-Feel free to use or extend any of the Pattern classes found at `markdown.inlinepatterns`.\r
-\r
-**Generic Pattern Classes**\r
-\r
-* **``SimpleTextPattern(pattern)``**:\r
-\r
-    Returns simple text of ``group(2)`` of a ``pattern``.\r
-\r
-* **``SimpleTagPattern(pattern, tag)``**:\r
-\r
-    Returns an element of type "`tag`" with a text attribute of ``group(3)``\r
-    of a ``pattern``. ``tag`` should be a string of a HTML element (i.e.: 'em').\r
-\r
-* **``SubstituteTagPattern(pattern, tag)``**:\r
-\r
-    Returns an element of type "`tag`" with no children or text (i.e.: 'br').\r
-\r
-There may be other Pattern classes in the Markdown source that you could extend\r
-or use as well. Read through the source and see if there is anything you can \r
-use. You might even get a few ideas for different approaches to your specific\r
-situation.\r
-\r
-Treeprocessors {: #treeprocessors }\r
------------------------------------\r
-\r
-Treeprocessors manipulate an ElemenTree object after it has passed through the\r
-core BlockParser. This is where additional manipulation of the tree takes\r
-place. Additionally, the InlineProcessor is a Treeprocessor which steps through\r
-the tree and runs the InlinePatterns on the text of each Element in the tree.\r
-\r
-A Treeprocessor should inherit from ``markdown.treeprocessors.Treeprocessor``,\r
-over-ride the ``run`` method which takes one argument ``root`` (an Elementree \r
-object) and returns either that root element or a modified root element.\r
-\r
-A pseudo example:\r
-\r
-    from markdown.treeprocessors import Treeprocessor\r
-\r
-    class MyTreeprocessor(Treeprocessor):\r
-        def run(self, root):\r
-            #do stuff\r
-            return my_modified_root\r
-\r
-For specifics on manipulating the ElementTree, see \r
-[Working with the ElementTree][] below.\r
-\r
-Postprocessors {: #postprocessors }\r
------------------------------------\r
-\r
-Postprocessors manipulate the document after the ElementTree has been \r
-serialized into a string. Postprocessors should be used to work with the\r
-text just before output.\r
-\r
-A Postprocessor should inherit from ``markdown.postprocessors.Postprocessor`` \r
-and over-ride the ``run`` method which takes one argument ``text`` and returns \r
-a Unicode string.\r
-\r
-Postprocessors are run after the ElementTree has been serialized back into \r
-Unicode text.  For example, this may be an appropriate place to add a table of \r
-contents to a document:\r
-\r
-    from markdown.postprocessors import Postprocessor\r
-\r
-    class TocPostprocessor(Postprocessor):\r
-        def run(self, text):\r
-            return MYMARKERRE.sub(MyToc, text)\r
-\r
-BlockParser {: #blockparser }\r
------------------------------\r
-\r
-Sometimes, pre/tree/postprocessors and Inline Patterns aren't going to do what \r
-you need. Perhaps you want a new type of block type that needs to be integrated \r
-into the core parsing. In such a situation, you can add/change/remove \r
-functionality of the core ``BlockParser``. The BlockParser is composed of a\r
-number of Blockproccessors. The BlockParser steps through each block of text\r
-(split by blank lines) and passes each block to the appropriate Blockprocessor.\r
-That Blockprocessor parses the block and adds it to the ElementTree. The\r
-[Definition Lists][] extension would be a good example of an extension that\r
-adds/modifies Blockprocessors.\r
-\r
-A Blockprocessor should inherit from ``markdown.blockprocessors.BlockProcessor``\r
-and implement both the ``test`` and ``run`` methods.\r
-\r
-The ``test`` method is used by BlockParser to identify the type of block.\r
-Therefore the ``test`` method must return a boolean value. If the test returns\r
-``True``, then the BlockParser will call that Blockprocessor's ``run`` method.\r
-If it returns ``False``, the BlockParser will move on to the next \r
-BlockProcessor.\r
-\r
-The **``test``** method takes two arguments:\r
-\r
-* **``parent``**: The parent etree Element of the block. This can be useful as\r
-  the block may need to be treated differently if it is inside a list, for\r
-  example.\r
-\r
-* **``block``**: A string of the current block of text. The test may be a \r
-  simple string method (such as ``block.startswith(some_text)``) or a complex \r
-  regular expression.\r
-\r
-The **``run``** method takes two arguments:\r
-\r
-* **``parent``**: A pointer to the parent etree Element of the block. The run \r
-  method will most likely attach additional nodes to this parent. Note that\r
-  nothing is returned by the method. The Elementree object is altered in place.\r
-\r
-* **``blocks``**: A list of all remaining blocks of the document. Your run \r
-  method must remove (pop) the first block from the list (which it altered in\r
-  place - not returned) and parse that block. You may find that a block of text\r
-  legitimately contains multiple block types. Therefore, after processing the \r
-  first type, your processor can insert the remaining text into the beginning\r
-  of the ``blocks`` list for future parsing.\r
-\r
-Please be aware that a single block can span multiple text blocks. For example,\r
-The official Markdown syntax rules state that a blank line does not end a\r
-Code Block. If the next block of text is also indented, then it is part of\r
-the previous block. Therefore, the BlockParser was specifically designed to \r
-address these types of situations. If you notice the ``CodeBlockProcessor``,\r
-in the core, you will note that it checks the last child of the ``parent``.\r
-If the last child is a code block (``<pre><code>...</code></pre>``), then it\r
-appends that block to the previous code block rather than creating a new \r
-code block.\r
-\r
-Each BlockProcessor has the following utility methods available:\r
-\r
-* **``lastChild(parent)``**: \r
-\r
-    Returns the last child of the given etree Element or ``None`` if it had no \r
-    children.\r
-\r
-* **``detab(text)``**: \r
-\r
-    Removes one level of indent (four spaces by default) from the front of each\r
-    line of the given text string.\r
-\r
-* **``looseDetab(text, level)``**: \r
-\r
-    Removes "level" levels of indent (defaults to 1) from the front of each line \r
-    of the given text string. However, this methods allows secondary lines to \r
-    not be indented as does some parts of the Markdown syntax.\r
-\r
-Each BlockProcessor also has a pointer to the containing BlockParser instance at\r
-``self.parser``, which can be used to check or alter the state of the parser.\r
-The BlockParser tracks it's state in a stack at ``parser.state``. The state\r
-stack is an instance of the ``State`` class.\r
-\r
-**``State``** is a subclass of ``list`` and has the additional methods:\r
-\r
-* **``set(state)``**: \r
-\r
-    Set a new state to string ``state``. The new state is appended to the end \r
-    of the stack.\r
-\r
-* **``reset()``**: \r
-\r
-    Step back one step in the stack. The last state at the end is removed from \r
-    the stack.\r
-\r
-* **``isstate(state)``**: \r
-\r
-    Test that the top (current) level of the stack is of the given string \r
-    ``state``.\r
-\r
-Note that to ensure that the state stack doesn't become corrupted, each time a\r
-state is set for a block, that state *must* be reset when the parser finishes\r
-parsing that block.\r
-\r
-An instance of the **``BlockParser``** is found at ``Markdown.parser``.\r
-``BlockParser`` has the following methods:\r
-\r
-* **``parseDocument(lines)``**: \r
-\r
-    Given a list of lines, an ElementTree object is returned. This should be \r
-    passed an entire document and is the only method the ``Markdown`` class \r
-    calls directly.\r
-\r
-* **``parseChunk(parent, text)``**: \r
-\r
-    Parses a chunk of markdown text composed of multiple blocks and attaches \r
-    those blocks to the ``parent`` Element. The ``parent`` is altered in place \r
-    and nothing is returned. Extensions would most likely use this method for \r
-    block parsing.\r
-\r
-* **``parseBlocks(parent, blocks)``**: \r
-\r
-    Parses a list of blocks of text and attaches those blocks to the ``parent``\r
-    Element. The ``parent`` is altered in place and nothing is returned. This \r
-    method will generally only be used internally to recursively parse nested \r
-    blocks of text.\r
-\r
-While is is not recommended, an extension could subclass or completely replace\r
-the ``BlockParser``. The new class would have to provide the same public API.\r
-However, be aware that other extensions may expect the core parser provided\r
-and will not work with such a drastically different parser.\r
-\r
-Working with the ElementTree {: #working_with_et }\r
---------------------------------------------------\r
-\r
-As mentioned, the Markdown parser converts a source document to an \r
-[ElementTree][] object before serializing that back to Unicode text. \r
-Markdown has provided some helpers to ease that manipulation within the context \r
-of the Markdown module.\r
-\r
-First, to get access to the ElementTree module import ElementTree from \r
-``markdown`` rather than importing it directly. This will ensure you are using \r
-the same version of ElementTree as markdown. The module is found at \r
-``markdown.util.etree`` within Markdown.\r
-\r
-    from markdown.util import etree\r
-    \r
-``markdown.util.etree`` tries to import ElementTree from any known location, \r
-first as a standard library module (from ``xml.etree`` in Python 2.5), then as \r
-a third party package (``Elementree``). In each instance, ``cElementTree`` is \r
-tried first, then ``ElementTree`` if the faster C implementation is not \r
-available on your system.\r
-\r
-Sometimes you may want text inserted into an element to be parsed by \r
-[InlinePatterns][]. In such a situation, simply insert the text as you normally\r
-would and the text will be automatically run through the InlinePatterns. \r
-However, if you do *not* want some text to be parsed by InlinePatterns,\r
-then insert the text as an ``AtomicString``.\r
-\r
-    from markdown.util import AtomicString\r
-    some_element.text = AtomicString(some_text)\r
-\r
-Here's a basic example which creates an HTML table (note that the contents of \r
-the second cell (``td2``) will be run through InlinePatterns latter):\r
-\r
-    table = etree.Element("table") \r
-    table.set("cellpadding", "2")                      # Set cellpadding to 2\r
-    tr = etree.SubElement(table, "tr")                 # Add child tr to table\r
-    td1 = etree.SubElement(tr, "td")                   # Add child td1 to tr\r
-    td1.text = markdown.util.AtomicString("Cell content") # Add plain text content\r
-    td2 = etree.SubElement(tr, "td")                   # Add second td to tr\r
-    td2.text = "*text* with **inline** formatting."    # Add markup text\r
-    table.tail = "Text after table"                    # Add text after table\r
-\r
-You can also manipulate an existing tree. Consider the following example which \r
-adds a ``class`` attribute to ``<a>`` elements:\r
-\r
-       def set_link_class(self, element):\r
-               for child in element: \r
-                   if child.tag == "a":\r
-                child.set("class", "myclass") #set the class attribute\r
-            set_link_class(child) # run recursively on children\r
-\r
-For more information about working with ElementTree see the ElementTree\r
-[Documentation](http://effbot.org/zone/element-index.htm) \r
-([Python Docs](http://docs.python.org/lib/module-xml.etree.ElementTree.html)).\r
-\r
-Integrating Your Code Into Markdown {: #integrating_into_markdown }\r
--------------------------------------------------------------------\r
-\r
-Once you have the various pieces of your extension built, you need to tell \r
-Markdown about them and ensure that they are run in the proper sequence. \r
-Markdown accepts an ``Extension`` instance for each extension. Therefore, you\r
-will need to define a class that extends ``markdown.extensions.Extension`` and \r
-over-rides the ``extendMarkdown`` method. Within this class you will manage \r
-configuration options for your extension and attach the various processors and \r
-patterns to the Markdown instance. \r
-\r
-It is important to note that the order of the various processors and patterns \r
-matters. For example, if we replace ``http://...`` links with ``<a>`` elements, \r
-and *then* try to deal with  inline html, we will end up with a mess. \r
-Therefore, the various types of processors and patterns are stored within an \r
-instance of the Markdown class in [OrderedDict][]s. Your ``Extension`` class \r
-will need to manipulate those OrderedDicts appropriately. You may insert \r
-instances of your processors and patterns into the appropriate location in an \r
-OrderedDict, remove a built-in instance, or replace a built-in instance with \r
-your own.\r
-\r
-### extendMarkdown {: #extendmarkdown }\r
-\r
-The ``extendMarkdown`` method of a ``markdown.extensions.Extension`` class \r
-accepts two arguments:\r
-\r
-* **``md``**:\r
-\r
-    A pointer to the instance of the Markdown class. You should use this to \r
-    access the [OrderedDict][]s of processors and patterns. They are found \r
-    under the following attributes:\r
-\r
-    * ``md.preprocessors``\r
-    * ``md.inlinePatterns``\r
-    * ``md.parser.blockprocessors``\r
-    * ``md.treeprocessors``\r
-    * ``md.postprocessors``\r
-\r
-    Some other things you may want to access in the markdown instance are:\r
-\r
-    * ``md.htmlStash``\r
-    * ``md.output_formats``\r
-    * ``md.set_output_format()``\r
-    * ``md.output_format``\r
-    * ``md.serializer``\r
-    * ``md.registerExtension()``\r
-    * ``md.html_replacement_text``\r
-    * ``md.tab_length``\r
-    * ``md.enable_attributes``\r
-    * ``md.smart_emphasis``\r
-\r
-* **``md_globals``**:\r
-\r
-    Contains all the various global variables within the markdown module.\r
-\r
-!!! Warning\r
-    With access to the above items, theoretically you have the option to \r
-    change anything through various [monkey_patching][] techniques. However, \r
-    you should be aware that the various undocumented parts of markdown may \r
-    change without notice and your monkey_patches may break with a new release.\r
-    Therefore, what you really should be doing is inserting processors and \r
-    patterns into the markdown pipeline. Consider yourself warned!\r
-\r
-[monkey_patching]: http://en.wikipedia.org/wiki/Monkey_patch\r
-\r
-A simple example:\r
-\r
-    from markdown.extensions import Extension\r
-\r
-    class MyExtension(Extension):\r
-        def extendMarkdown(self, md, md_globals):\r
-            # Insert instance of 'mypattern' before 'references' pattern\r
-            md.inlinePatterns.add('mypattern', MyPattern(md), '<references')\r
-\r
-### OrderedDict {: #ordereddict }\r
-\r
-An OrderedDict is a dictionary like object that retains the order of it's\r
-items. The items are ordered in the order in which they were appended to\r
-the OrderedDict. However, an item can also be inserted into the OrderedDict\r
-in a specific location in relation to the existing items.\r
-\r
-Think of OrderedDict as a combination of a list and a dictionary as it has \r
-methods common to both. For example, you can get and set items using the \r
-``od[key] = value`` syntax and the methods ``keys()``, ``values()``, and \r
-``items()`` work as expected with the keys, values and items returned in the \r
-proper order. At the same time, you can use ``insert()``, ``append()``, and \r
-``index()`` as you would with a list.\r
-\r
-Generally speaking, within Markdown extensions you will be using the special \r
-helper method ``add()`` to add additional items to an existing OrderedDict. \r
-\r
-The ``add()`` method accepts three arguments:\r
-\r
-* **``key``**: A string. The key is used for later reference to the item.\r
-\r
-* **``value``**: The object instance stored in this item.\r
-\r
-* **``location``**: Optional. The items location in relation to other items. \r
-\r
-    Note that the location can consist of a few different values:\r
-\r
-    * The special strings ``"_begin"`` and ``"_end"`` insert that item at the \r
-      beginning or end of the OrderedDict respectively. \r
-    \r
-    * A less-than sign (``<``) followed by an existing key (i.e.: \r
-      ``"<somekey"``) inserts that item before the existing key.\r
-    \r
-    * A greater-than sign (``>``) followed by an existing key (i.e.: \r
-      ``">somekey"``) inserts that item after the existing key. \r
-\r
-Consider the following example:\r
-\r
-    >>> from markdown.odict import OrderedDict\r
-    >>> od = OrderedDict()\r
-    >>> od['one'] =  1           # The same as: od.add('one', 1, '_begin')\r
-    >>> od['three'] = 3          # The same as: od.add('three', 3, '>one')\r
-    >>> od['four'] = 4           # The same as: od.add('four', 4, '_end')\r
-    >>> od.items()\r
-    [("one", 1), ("three", 3), ("four", 4)]\r
-\r
-Note that when building an OrderedDict in order, the extra features of the\r
-``add`` method offer no real value and are not necessary. However, when \r
-manipulating an existing OrderedDict, ``add`` can be very helpful. So let's \r
-insert another item into the OrderedDict.\r
-\r
-    >>> od.add('two', 2, '>one')         # Insert after 'one'\r
-    >>> od.values()\r
-    [1, 2, 3, 4]\r
-\r
-Now let's insert another item.\r
-\r
-    >>> od.add('twohalf', 2.5, '<three') # Insert before 'three'\r
-    >>> od.keys()\r
-    ["one", "two", "twohalf", "three", "four"]\r
-\r
-Note that we also could have set the location of "twohalf" to be 'after two'\r
-(i.e.: ``'>two'``). However, it's unlikely that you will have control over the \r
-order in which extensions will be loaded, and this could affect the final \r
-sorted order of an OrderedDict. For example, suppose an extension adding \r
-'twohalf' in the above examples was loaded before a separate  extension which \r
-adds 'two'. You may need to take this into consideration when adding your \r
-extension components to the various markdown OrderedDicts.\r
-\r
-Once an OrderedDict is created, the items are available via key:\r
-\r
-    MyNode = od['somekey']\r
-\r
-Therefore, to delete an existing item:\r
-\r
-    del od['somekey']\r
-\r
-To change the value of an existing item (leaving location unchanged):\r
-\r
-    od['somekey'] = MyNewObject()\r
-\r
-To change the location of an existing item:\r
-\r
-    t.link('somekey', '<otherkey')\r
-\r
-### registerExtension {: #registerextension }\r
-\r
-Some extensions may need to have their state reset between multiple runs of the\r
-Markdown class. For example, consider the following use of the [Footnotes][] \r
-extension:\r
-\r
-    md = markdown.Markdown(extensions=['footnotes'])\r
-    html1 = md.convert(text_with_footnote)\r
-    md.reset()\r
-    html2 = md.convert(text_without_footnote)\r
-\r
-Without calling ``reset``, the footnote definitions from the first document will\r
-be inserted into the second document as they are still stored within the class\r
-instance. Therefore the ``Extension`` class needs to define a ``reset`` method\r
-that will reset the state of the extension (i.e.: ``self.footnotes = {}``).\r
-However, as many extensions do not have a need for ``reset``, ``reset`` is only\r
-called on extensions that are registered.\r
-\r
-To register an extension, call ``md.registerExtension`` from within your \r
-``extendMarkdown`` method:\r
-\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        md.registerExtension(self)\r
-        # insert processors and patterns here\r
-\r
-Then, each time ``reset`` is called on the Markdown instance, the ``reset`` \r
-method of each registered extension will be called as well. You should also\r
-note that ``reset`` will be called on each registered extension after it is\r
-initialized the first time. Keep that in mind when over-riding the extension's\r
-``reset`` method.\r
-\r
-### Config Settings {: #configsettings }\r
-\r
-If an extension uses any parameters that the user may want to change,\r
-those parameters should be stored in ``self.config`` of your \r
-``markdown.Extension`` class in the following format:\r
-\r
-    self.config = {parameter_1_name : [value1, description1],\r
-                   parameter_2_name : [value2, description2] }\r
-\r
-When stored this way the config parameters can be over-ridden from the\r
-command line or at the time Markdown is initiated:\r
-\r
-    markdown.py -x myextension(SOME_PARAM=2) inputfile.txt > output.txt\r
-\r
-Note that parameters should always be assumed to be set to string\r
-values, and should be converted at run time. For example:\r
-\r
-    i = int(self.getConfig("SOME_PARAM"))\r
-\r
-### makeExtension {: #makeextension }\r
-\r
-As noted in the [library reference] an instance of an extension can be passed\r
-directly to Markdown. In fact, this is the prefered way to use third-party \r
-extensions.\r
-\r
-For example:\r
-\r
-    import markdown\r
-    import myextension\r
-    configs = {...}\r
-    myext = myextension.MyExtension(configs=configs)\r
-    md = markdown.Markdown(extensions=[myext])\r
-\r
-This is especially useful if you need to implement a large number of extensions \r
-with more than one residing in a module.\r
-\r
-However, for historical reasons, Markdown also accepts "named" third party \r
-extensions. In that case, only one extension can be defined per module\r
-and that extension must define a module-level function called \r
-`makeExtension` that takes an optional parameter consisting of a dictionary \r
-of configuration over-rides and returns an instance of the extension.  For example:\r
-\r
-    class MyExtension(markdown.extensions.Extension)\r
-        # Define extension here...\r
-\r
-    def makeExtension(configs=None):\r
-        return MyExtension(configs=configs)\r
-\r
-When Markdown is passed the "name" of your extension as a string, it will import \r
-the module and call the `makeExtension` function to initiate your extension.\r
-\r
-The "name" of your extension must be a string consisting of the importable path to\r
-your module using Python's dot notation. Therefore, if you are providing a library\r
-to your users and would like to include a custom markdown extensions within your \r
-library, that extension would be named `"mylib.mdext.myext"` where `mylib/mdext/myext.py`\r
-contains the `makeExtension` function and the `mylib` directory is on the PYTHONPATH.\r
-\r
-You may have noted that the extensions packaged with Python-Markdown do not\r
-use  Python's dot notation in their names. This is because they are \r
-all part of the `markdown.extensions` package. If a "name" contains any dots \r
-(`.`), then it will be imported as-is. Otherwise, Markdown will first try to \r
-import from `markdown.extensions.extname` and upon failure, `mdx_extname` where\r
-`"extname"` is the "name" passed to Markdown.\r
-\r
-!!! Note\r
-    While the `mdx_extname` method of naming extensions is still supported, it \r
-    remains solely for historical reasons to support the various existing \r
-    third-party extensions. This method is discouraged going forward and support\r
-    may be removed in a future release.\r
-\r
-[Preprocessors]: #preprocessors\r
-[InlinePatterns]: #inlinepatterns\r
-[Treeprocessors]: #treeprocessors\r
-[Postprocessors]: #postprocessors\r
-[BlockParser]: #blockparser\r
-[Working with the ElementTree]: #working_with_et\r
-[Integrating your code into Markdown]: #integrating_into_markdown\r
-[extendMarkdown]: #extendmarkdown\r
-[OrderedDict]: #ordereddict\r
-[registerExtension]: #registerextension\r
-[Config Settings]: #configsettings\r
-[makeExtension]: #makeextension\r
-[ElementTree]: http://effbot.org/zone/element-index.htm\r
-[Available Extensions]: index.html \r
-[Footnotes]: footnotes.html\r
-[Definition Lists]: definition_lists.html\r
-[library reference]: ../reference.html\r
+title:      Extensions API
+prev_title: WikiLinks Extension
+prev_url:   wikilinks.html
+next_title: Test Suite
+next_url:   ../test_suite.html
+
+Writing Extensions for Python-Markdown
+======================================
+
+Python-Markdown includes an API for extension writers to plug their own 
+custom functionality and/or syntax into the parser. There are preprocessors
+which allow you to alter the source before it is passed to the parser, 
+inline patterns which allow you to add, remove or override the syntax of
+any inline elements, and postprocessors which allow munging of the
+output of the parser before it is returned. If you really want to dive in, 
+there are also blockprocessors which are part of the core BlockParser.
+
+As the parser builds an [ElementTree][] object which is later rendered 
+as Unicode text, there are also some helpers provided to ease manipulation of 
+the tree. Each part of the API is discussed in its respective section below. 
+Additionally, reading the source of some [Available Extensions][] may be 
+helpful. For example, the [Footnotes][] extension uses most of the features 
+documented here.
+
+Preprocessors {: #preprocessors }
+---------------------------------
+
+Preprocessors munge the source text before it is passed into the Markdown 
+core. This is an excellent place to clean up bad syntax, extract things the 
+parser may otherwise choke on and perhaps even store it for later retrieval.
+
+Preprocessors should inherit from ``markdown.preprocessors.Preprocessor`` and 
+implement a ``run`` method with one argument ``lines``. The ``run`` method of 
+each Preprocessor will be passed the entire source text as a list of Unicode 
+strings. Each string will contain one line of text. The ``run`` method should 
+return either that list, or an altered list of Unicode strings.
+
+A pseudo example:
+
+    from markdown.preprocessors import Preprocessor
+
+    class MyPreprocessor(Preprocessor):
+        def run(self, lines):
+            new_lines = []
+            for line in lines:
+                m = MYREGEX.match(line)
+                if m:
+                    # do stuff
+                else:
+                    new_lines.append(line)
+            return new_lines
+
+Inline Patterns {: #inlinepatterns }
+------------------------------------
+
+Inline Patterns implement the inline HTML element syntax for Markdown such as
+``*emphasis*`` or ``[links](http://example.com)``. Pattern objects should be 
+instances of classes that inherit from ``markdown.inlinepatterns.Pattern`` or 
+one of its children. Each pattern object uses a single regular expression and 
+must have the following methods:
+
+* **``getCompiledRegExp()``**: 
+
+    Returns a compiled regular expression.
+
+* **``handleMatch(m)``**: 
+
+    Accepts a match object and returns an ElementTree element of a plain 
+    Unicode string.
+
+Note that any regular expression returned by ``getCompiledRegExp`` must capture
+the whole block. Therefore, they should all start with ``r'^(.*?)'`` and end
+with ``r'(.*?)!'``. When using the default ``getCompiledRegExp()`` method 
+provided in the ``Pattern`` you can pass in a regular expression without that 
+and ``getCompiledRegExp`` will wrap your expression for you and set the 
+`re.DOTALL` and `re.UNICODE` flags. This means that the first group of your 
+match will be ``m.group(2)`` as ``m.group(1)`` will match everything before the
+pattern.
+
+For an example, consider this simplified emphasis pattern:
+
+    from markdown.inlinepatterns import Pattern
+    from markdown.util import etree
+
+    class EmphasisPattern(Pattern):
+        def handleMatch(self, m):
+            el = etree.Element('em')
+            el.text = m.group(3)
+            return el
+
+As discussed in [Integrating Your Code Into Markdown][], an instance of this
+class will need to be provided to Markdown. That instance would be created
+like so:
+
+    # an oversimplified regex
+    MYPATTERN = r'\*([^*]+)\*'
+    # pass in pattern and create instance
+    emphasis = EmphasisPattern(MYPATTERN)
+
+Actually it would not be necessary to create that pattern (and not just because
+a more sophisticated emphasis pattern already exists in Markdown). The fact is,
+that example pattern is not very DRY. A pattern for `**strong**` text would
+be almost identical, with the exception that it would create a 'strong' element.
+Therefore, Markdown provides a number of generic pattern classes that can 
+provide some common functionality. For example, both emphasis and strong are
+implemented with separate instances of the ``SimpleTagPattern`` listed below.
+Feel free to use or extend any of the Pattern classes found at `markdown.inlinepatterns`.
+
+**Generic Pattern Classes**
+
+* **``SimpleTextPattern(pattern)``**:
+
+    Returns simple text of ``group(2)`` of a ``pattern``.
+
+* **``SimpleTagPattern(pattern, tag)``**:
+
+    Returns an element of type "`tag`" with a text attribute of ``group(3)``
+    of a ``pattern``. ``tag`` should be a string of a HTML element (i.e.: 'em').
+
+* **``SubstituteTagPattern(pattern, tag)``**:
+
+    Returns an element of type "`tag`" with no children or text (i.e.: 'br').
+
+There may be other Pattern classes in the Markdown source that you could extend
+or use as well. Read through the source and see if there is anything you can 
+use. You might even get a few ideas for different approaches to your specific
+situation.
+
+Treeprocessors {: #treeprocessors }
+-----------------------------------
+
+Treeprocessors manipulate an ElemenTree object after it has passed through the
+core BlockParser. This is where additional manipulation of the tree takes
+place. Additionally, the InlineProcessor is a Treeprocessor which steps through
+the tree and runs the InlinePatterns on the text of each Element in the tree.
+
+A Treeprocessor should inherit from ``markdown.treeprocessors.Treeprocessor``,
+over-ride the ``run`` method which takes one argument ``root`` (an Elementree 
+object) and returns either that root element or a modified root element.
+
+A pseudo example:
+
+    from markdown.treeprocessors import Treeprocessor
+
+    class MyTreeprocessor(Treeprocessor):
+        def run(self, root):
+            #do stuff
+            return my_modified_root
+
+For specifics on manipulating the ElementTree, see 
+[Working with the ElementTree][] below.
+
+Postprocessors {: #postprocessors }
+-----------------------------------
+
+Postprocessors manipulate the document after the ElementTree has been 
+serialized into a string. Postprocessors should be used to work with the
+text just before output.
+
+A Postprocessor should inherit from ``markdown.postprocessors.Postprocessor`` 
+and over-ride the ``run`` method which takes one argument ``text`` and returns 
+a Unicode string.
+
+Postprocessors are run after the ElementTree has been serialized back into 
+Unicode text.  For example, this may be an appropriate place to add a table of 
+contents to a document:
+
+    from markdown.postprocessors import Postprocessor
+
+    class TocPostprocessor(Postprocessor):
+        def run(self, text):
+            return MYMARKERRE.sub(MyToc, text)
+
+BlockParser {: #blockparser }
+-----------------------------
+
+Sometimes, pre/tree/postprocessors and Inline Patterns aren't going to do what 
+you need. Perhaps you want a new type of block type that needs to be integrated 
+into the core parsing. In such a situation, you can add/change/remove 
+functionality of the core ``BlockParser``. The BlockParser is composed of a
+number of Blockproccessors. The BlockParser steps through each block of text
+(split by blank lines) and passes each block to the appropriate Blockprocessor.
+That Blockprocessor parses the block and adds it to the ElementTree. The
+[Definition Lists][] extension would be a good example of an extension that
+adds/modifies Blockprocessors.
+
+A Blockprocessor should inherit from ``markdown.blockprocessors.BlockProcessor``
+and implement both the ``test`` and ``run`` methods.
+
+The ``test`` method is used by BlockParser to identify the type of block.
+Therefore the ``test`` method must return a boolean value. If the test returns
+``True``, then the BlockParser will call that Blockprocessor's ``run`` method.
+If it returns ``False``, the BlockParser will move on to the next 
+BlockProcessor.
+
+The **``test``** method takes two arguments:
+
+* **``parent``**: The parent etree Element of the block. This can be useful as
+  the block may need to be treated differently if it is inside a list, for
+  example.
+
+* **``block``**: A string of the current block of text. The test may be a 
+  simple string method (such as ``block.startswith(some_text)``) or a complex 
+  regular expression.
+
+The **``run``** method takes two arguments:
+
+* **``parent``**: A pointer to the parent etree Element of the block. The run 
+  method will most likely attach additional nodes to this parent. Note that
+  nothing is returned by the method. The Elementree object is altered in place.
+
+* **``blocks``**: A list of all remaining blocks of the document. Your run 
+  method must remove (pop) the first block from the list (which it altered in
+  place - not returned) and parse that block. You may find that a block of text
+  legitimately contains multiple block types. Therefore, after processing the 
+  first type, your processor can insert the remaining text into the beginning
+  of the ``blocks`` list for future parsing.
+
+Please be aware that a single block can span multiple text blocks. For example,
+The official Markdown syntax rules state that a blank line does not end a
+Code Block. If the next block of text is also indented, then it is part of
+the previous block. Therefore, the BlockParser was specifically designed to 
+address these types of situations. If you notice the ``CodeBlockProcessor``,
+in the core, you will note that it checks the last child of the ``parent``.
+If the last child is a code block (``<pre><code>...</code></pre>``), then it
+appends that block to the previous code block rather than creating a new 
+code block.
+
+Each BlockProcessor has the following utility methods available:
+
+* **``lastChild(parent)``**: 
+
+    Returns the last child of the given etree Element or ``None`` if it had no 
+    children.
+
+* **``detab(text)``**: 
+
+    Removes one level of indent (four spaces by default) from the front of each
+    line of the given text string.
+
+* **``looseDetab(text, level)``**: 
+
+    Removes "level" levels of indent (defaults to 1) from the front of each line 
+    of the given text string. However, this methods allows secondary lines to 
+    not be indented as does some parts of the Markdown syntax.
+
+Each BlockProcessor also has a pointer to the containing BlockParser instance at
+``self.parser``, which can be used to check or alter the state of the parser.
+The BlockParser tracks it's state in a stack at ``parser.state``. The state
+stack is an instance of the ``State`` class.
+
+**``State``** is a subclass of ``list`` and has the additional methods:
+
+* **``set(state)``**: 
+
+    Set a new state to string ``state``. The new state is appended to the end 
+    of the stack.
+
+* **``reset()``**: 
+
+    Step back one step in the stack. The last state at the end is removed from 
+    the stack.
+
+* **``isstate(state)``**: 
+
+    Test that the top (current) level of the stack is of the given string 
+    ``state``.
+
+Note that to ensure that the state stack doesn't become corrupted, each time a
+state is set for a block, that state *must* be reset when the parser finishes
+parsing that block.
+
+An instance of the **``BlockParser``** is found at ``Markdown.parser``.
+``BlockParser`` has the following methods:
+
+* **``parseDocument(lines)``**: 
+
+    Given a list of lines, an ElementTree object is returned. This should be 
+    passed an entire document and is the only method the ``Markdown`` class 
+    calls directly.
+
+* **``parseChunk(parent, text)``**: 
+
+    Parses a chunk of markdown text composed of multiple blocks and attaches 
+    those blocks to the ``parent`` Element. The ``parent`` is altered in place 
+    and nothing is returned. Extensions would most likely use this method for 
+    block parsing.
+
+* **``parseBlocks(parent, blocks)``**: 
+
+    Parses a list of blocks of text and attaches those blocks to the ``parent``
+    Element. The ``parent`` is altered in place and nothing is returned. This 
+    method will generally only be used internally to recursively parse nested 
+    blocks of text.
+
+While is is not recommended, an extension could subclass or completely replace
+the ``BlockParser``. The new class would have to provide the same public API.
+However, be aware that other extensions may expect the core parser provided
+and will not work with such a drastically different parser.
+
+Working with the ElementTree {: #working_with_et }
+--------------------------------------------------
+
+As mentioned, the Markdown parser converts a source document to an 
+[ElementTree][] object before serializing that back to Unicode text. 
+Markdown has provided some helpers to ease that manipulation within the context 
+of the Markdown module.
+
+First, to get access to the ElementTree module import ElementTree from 
+``markdown`` rather than importing it directly. This will ensure you are using 
+the same version of ElementTree as markdown. The module is found at 
+``markdown.util.etree`` within Markdown.
+
+    from markdown.util import etree
+    
+``markdown.util.etree`` tries to import ElementTree from any known location, 
+first as a standard library module (from ``xml.etree`` in Python 2.5), then as 
+a third party package (``Elementree``). In each instance, ``cElementTree`` is 
+tried first, then ``ElementTree`` if the faster C implementation is not 
+available on your system.
+
+Sometimes you may want text inserted into an element to be parsed by 
+[InlinePatterns][]. In such a situation, simply insert the text as you normally
+would and the text will be automatically run through the InlinePatterns. 
+However, if you do *not* want some text to be parsed by InlinePatterns,
+then insert the text as an ``AtomicString``.
+
+    from markdown.util import AtomicString
+    some_element.text = AtomicString(some_text)
+
+Here's a basic example which creates an HTML table (note that the contents of 
+the second cell (``td2``) will be run through InlinePatterns latter):
+
+    table = etree.Element("table") 
+    table.set("cellpadding", "2")                      # Set cellpadding to 2
+    tr = etree.SubElement(table, "tr")                 # Add child tr to table
+    td1 = etree.SubElement(tr, "td")                   # Add child td1 to tr
+    td1.text = markdown.util.AtomicString("Cell content") # Add plain text content
+    td2 = etree.SubElement(tr, "td")                   # Add second td to tr
+    td2.text = "*text* with **inline** formatting."    # Add markup text
+    table.tail = "Text after table"                    # Add text after table
+
+You can also manipulate an existing tree. Consider the following example which 
+adds a ``class`` attribute to ``<a>`` elements:
+
+       def set_link_class(self, element):
+               for child in element: 
+                   if child.tag == "a":
+                child.set("class", "myclass") #set the class attribute
+            set_link_class(child) # run recursively on children
+
+For more information about working with ElementTree see the ElementTree
+[Documentation](http://effbot.org/zone/element-index.htm) 
+([Python Docs](http://docs.python.org/lib/module-xml.etree.ElementTree.html)).
+
+Integrating Your Code Into Markdown {: #integrating_into_markdown }
+-------------------------------------------------------------------
+
+Once you have the various pieces of your extension built, you need to tell 
+Markdown about them and ensure that they are run in the proper sequence. 
+Markdown accepts an ``Extension`` instance for each extension. Therefore, you
+will need to define a class that extends ``markdown.extensions.Extension`` and 
+over-rides the ``extendMarkdown`` method. Within this class you will manage 
+configuration options for your extension and attach the various processors and 
+patterns to the Markdown instance. 
+
+It is important to note that the order of the various processors and patterns 
+matters. For example, if we replace ``http://...`` links with ``<a>`` elements, 
+and *then* try to deal with  inline html, we will end up with a mess. 
+Therefore, the various types of processors and patterns are stored within an 
+instance of the Markdown class in [OrderedDict][]s. Your ``Extension`` class 
+will need to manipulate those OrderedDicts appropriately. You may insert 
+instances of your processors and patterns into the appropriate location in an 
+OrderedDict, remove a built-in instance, or replace a built-in instance with 
+your own.
+
+### extendMarkdown {: #extendmarkdown }
+
+The ``extendMarkdown`` method of a ``markdown.extensions.Extension`` class 
+accepts two arguments:
+
+* **``md``**:
+
+    A pointer to the instance of the Markdown class. You should use this to 
+    access the [OrderedDict][]s of processors and patterns. They are found 
+    under the following attributes:
+
+    * ``md.preprocessors``
+    * ``md.inlinePatterns``
+    * ``md.parser.blockprocessors``
+    * ``md.treeprocessors``
+    * ``md.postprocessors``
+
+    Some other things you may want to access in the markdown instance are:
+
+    * ``md.htmlStash``
+    * ``md.output_formats``
+    * ``md.set_output_format()``
+    * ``md.output_format``
+    * ``md.serializer``
+    * ``md.registerExtension()``
+    * ``md.html_replacement_text``
+    * ``md.tab_length``
+    * ``md.enable_attributes``
+    * ``md.smart_emphasis``
+
+* **``md_globals``**:
+
+    Contains all the various global variables within the markdown module.
+
+!!! Warning
+    With access to the above items, theoretically you have the option to 
+    change anything through various [monkey_patching][] techniques. However, 
+    you should be aware that the various undocumented parts of markdown may 
+    change without notice and your monkey_patches may break with a new release.
+    Therefore, what you really should be doing is inserting processors and 
+    patterns into the markdown pipeline. Consider yourself warned!
+
+[monkey_patching]: http://en.wikipedia.org/wiki/Monkey_patch
+
+A simple example:
+
+    from markdown.extensions import Extension
+
+    class MyExtension(Extension):
+        def extendMarkdown(self, md, md_globals):
+            # Insert instance of 'mypattern' before 'references' pattern
+            md.inlinePatterns.add('mypattern', MyPattern(md), '<references')
+
+### OrderedDict {: #ordereddict }
+
+An OrderedDict is a dictionary like object that retains the order of it's
+items. The items are ordered in the order in which they were appended to
+the OrderedDict. However, an item can also be inserted into the OrderedDict
+in a specific location in relation to the existing items.
+
+Think of OrderedDict as a combination of a list and a dictionary as it has 
+methods common to both. For example, you can get and set items using the 
+``od[key] = value`` syntax and the methods ``keys()``, ``values()``, and 
+``items()`` work as expected with the keys, values and items returned in the 
+proper order. At the same time, you can use ``insert()``, ``append()``, and 
+``index()`` as you would with a list.
+
+Generally speaking, within Markdown extensions you will be using the special 
+helper method ``add()`` to add additional items to an existing OrderedDict. 
+
+The ``add()`` method accepts three arguments:
+
+* **``key``**: A string. The key is used for later reference to the item.
+
+* **``value``**: The object instance stored in this item.
+
+* **``location``**: Optional. The items location in relation to other items. 
+
+    Note that the location can consist of a few different values:
+
+    * The special strings ``"_begin"`` and ``"_end"`` insert that item at the 
+      beginning or end of the OrderedDict respectively. 
+    
+    * A less-than sign (``<``) followed by an existing key (i.e.: 
+      ``"<somekey"``) inserts that item before the existing key.
+    
+    * A greater-than sign (``>``) followed by an existing key (i.e.: 
+      ``">somekey"``) inserts that item after the existing key. 
+
+Consider the following example:
+
+    >>> from markdown.odict import OrderedDict
+    >>> od = OrderedDict()
+    >>> od['one'] =  1           # The same as: od.add('one', 1, '_begin')
+    >>> od['three'] = 3          # The same as: od.add('three', 3, '>one')
+    >>> od['four'] = 4           # The same as: od.add('four', 4, '_end')
+    >>> od.items()
+    [("one", 1), ("three", 3), ("four", 4)]
+
+Note that when building an OrderedDict in order, the extra features of the
+``add`` method offer no real value and are not necessary. However, when 
+manipulating an existing OrderedDict, ``add`` can be very helpful. So let's 
+insert another item into the OrderedDict.
+
+    >>> od.add('two', 2, '>one')         # Insert after 'one'
+    >>> od.values()
+    [1, 2, 3, 4]
+
+Now let's insert another item.
+
+    >>> od.add('twohalf', 2.5, '<three') # Insert before 'three'
+    >>> od.keys()
+    ["one", "two", "twohalf", "three", "four"]
+
+Note that we also could have set the location of "twohalf" to be 'after two'
+(i.e.: ``'>two'``). However, it's unlikely that you will have control over the 
+order in which extensions will be loaded, and this could affect the final 
+sorted order of an OrderedDict. For example, suppose an extension adding 
+'twohalf' in the above examples was loaded before a separate  extension which 
+adds 'two'. You may need to take this into consideration when adding your 
+extension components to the various markdown OrderedDicts.
+
+Once an OrderedDict is created, the items are available via key:
+
+    MyNode = od['somekey']
+
+Therefore, to delete an existing item:
+
+    del od['somekey']
+
+To change the value of an existing item (leaving location unchanged):
+
+    od['somekey'] = MyNewObject()
+
+To change the location of an existing item:
+
+    t.link('somekey', '<otherkey')
+
+### registerExtension {: #registerextension }
+
+Some extensions may need to have their state reset between multiple runs of the
+Markdown class. For example, consider the following use of the [Footnotes][] 
+extension:
+
+    md = markdown.Markdown(extensions=['footnotes'])
+    html1 = md.convert(text_with_footnote)
+    md.reset()
+    html2 = md.convert(text_without_footnote)
+
+Without calling ``reset``, the footnote definitions from the first document will
+be inserted into the second document as they are still stored within the class
+instance. Therefore the ``Extension`` class needs to define a ``reset`` method
+that will reset the state of the extension (i.e.: ``self.footnotes = {}``).
+However, as many extensions do not have a need for ``reset``, ``reset`` is only
+called on extensions that are registered.
+
+To register an extension, call ``md.registerExtension`` from within your 
+``extendMarkdown`` method:
+
+
+    def extendMarkdown(self, md, md_globals):
+        md.registerExtension(self)
+        # insert processors and patterns here
+
+Then, each time ``reset`` is called on the Markdown instance, the ``reset`` 
+method of each registered extension will be called as well. You should also
+note that ``reset`` will be called on each registered extension after it is
+initialized the first time. Keep that in mind when over-riding the extension's
+``reset`` method.
+
+### Config Settings {: #configsettings }
+
+If an extension uses any parameters that the user may want to change,
+those parameters should be stored in ``self.config`` of your 
+``markdown.extensions.Extension`` class in the following format:
+
+    class MyExtension(markdown.extensions.Extension):
+       def __init__(self, **kwargs):
+               self.config = {'option1' : ['value1', 'description1'],
+                           'option2' : ['value2', 'description2'] }
+            super(MyExtension, self).__init__(**kwargs)
+
+When implemented this way the config parameters can be over-ridden at 
+run time (thus the call to `super`). For example:
+
+    markdown.Markdown(extensions=[MyExtension(option1='other value'])
+
+Note that if a keyword is passed in that is not already defined in 
+`self.config`, then a `KeyError` is raised.
+
+The `markdown.extensions.Extension` class and its subclasses have the
+following methods available to assist in working with config settings:
+
+* **``getConfig(key [, default])``**: 
+
+       Returns the stored value for the given `key` or `default` if the `key`
+       does not exist. If not set, `default` returns an empty string.
+
+* **``getConfigs()``**:
+
+       Returns a dict of all key/value pairs.
+
+* **``getConfigInfo()``**:
+
+       Returns all config descriptions as a list of tuples.
+
+* **``setConfig(key, value)``**:
+       
+       Sets a config setting for `key` with the given `value`. If `key` is
+       unknown, a `KeyError` is raised. If the previous value of `key` was
+       a boolean value, then `value` is converted to a boolean value. If
+       the previous value of `key` is `None`, then `value` is converted to
+       a boolean value except when it is `None`. No conversion takes place
+       when the previous value of `key` is a string.
+
+* **``setConfigs(items)``**:
+
+       Sets multiple config settings given a dict of key/value pairs.
+
+### makeExtension {: #makeextension }
+
+As noted in the [library reference] an instance of an extension can be passed
+directly to Markdown. In fact, this is the prefered way to use third-party 
+extensions.
+
+For example:
+
+    import markdown
+    import myextension
+    myext = myextension.MyExtension(option='value')
+    md = markdown.Markdown(extensions=[myext])
+
+Markdown also accepts "named" third party extensions for those occassions
+when it is impractical to import an extension directly (from the command line or from
+within templates). 
+
+The "name" of your extension must be a string consisting of the importable path to
+your module using Python's dot notation. Therefore, if you are providing a library
+to your users and would like to include a custom markdown extension within your 
+library, that extension would be named `"mylib.mdext.myext"` where `mylib/mdext/myext.py`
+contains the extension and the `mylib` directory is on the PYTHONPATH.
+
+The string can also include the name of the class seperated by a colon.
+Therefore, if you were to import the class like this:
+       
+       from path.to.module import SomeExtensionClass
+
+Then the named extension would comprise this string:
+
+       "path.to.module:SomeExtensionClass"
+
+You do not need to do anything special to support this feature. As long as your extension
+class is able to be imported, a user can include it with the above syntax.
+
+The above two methods are especially useful if you need to implement a large number of 
+extensions with more than one residing in a module. However, if you do not want to require 
+that your users include the class name in their string, you must define only one extension 
+per module and that module must contain a module-level function called `makeExtension` 
+that accepts `**kwargs` and returns an extension instance.  
+
+For example:
+
+    class MyExtension(markdown.extensions.Extension)
+        # Define extension here...
+
+    def makeExtension(**kwargs):
+        return MyExtension(**kwargs)
+
+When Markdown is passed the "name" of your extension as a dot notation string, it will import 
+the module and call the `makeExtension` function to initiate your extension.
+
+
+[Preprocessors]: #preprocessors
+[InlinePatterns]: #inlinepatterns
+[Treeprocessors]: #treeprocessors
+[Postprocessors]: #postprocessors
+[BlockParser]: #blockparser
+[Working with the ElementTree]: #working_with_et
+[Integrating your code into Markdown]: #integrating_into_markdown
+[extendMarkdown]: #extendmarkdown
+[OrderedDict]: #ordereddict
+[registerExtension]: #registerextension
+[Config Settings]: #configsettings
+[makeExtension]: #makeextension
+[ElementTree]: http://effbot.org/zone/element-index.htm
+[Available Extensions]: index.html 
+[Footnotes]: footnotes.html
+[Definition Lists]: definition_lists.html
+[library reference]: ../reference.html
index d7a29c64614b3c8d92961c1aa2a62e1ae9f97052..01329c66cd89e0fbecc505e9eed05c391ab1a0ed 100644 (file)
@@ -1,88 +1,88 @@
-title:      Attribute Lists Extension\r
-prev_title: Abbreviations Extension\r
-prev_url:   abbreviations.html\r
-next_title: Definition Lists Extension\r
-next_url:   definition_lists.html\r
-\r
-Attribute Lists\r
-===============\r
-\r
-Summary\r
--------\r
-\r
-The Attribute Lists extension adds a syntax to define attributes on the various\r
-HTML elements in markdown's output.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-The basic syntax was inspired by [Maruku][]'s Attribute Lists feature.\r
-\r
-[Maruku]: http://maruku.rubyforge.org/proposal.html#attribute_lists\r
-\r
-### The List ###\r
-\r
-An example attribute list might look like this:\r
-\r
-    {: #someid .someclass somekey='some value' }\r
-\r
-A word which starts with a hash (`#`) will set the id of an element.\r
-\r
-A word which starts with a dot (`.`) will be added to the list of classes \r
-assigned to an element.\r
-\r
-A key/value pair (`somekey='some value'`) will assign that pair to the element.\r
-\r
-Be aware that while the dot syntax will add to a class, using key/value pairs\r
-will always override the previously defined attribute. Consider the following:\r
-\r
-    {: #id1 .class1 id=id2 class="class2 class3" .class4 }\r
-\r
-The above example would result in the following attributes being defined:\r
-\r
-    id="id2" class="class2 class3 class4"\r
-\r
-### Block Level ###\r
-\r
-To define attributes for a block level element, the attribute list should\r
-be defined on the last line of the block by itself.\r
-\r
-    This is a paragraph.\r
-    {: #an_id .a_class }\r
-\r
-The above results in the following output:\r
-\r
-    <p id="an_id" class="a_class">This is a paragraph.</p>\r
-\r
-The one exception is headers, as they are only ever allowed on one line.\r
-\r
-    A setext style header {: #setext}\r
-    =================================\r
-\r
-    ### A hash style header ### {: #hash }\r
-\r
-The above results in the following output:\r
-\r
-    <h1 id="setext">A setext style header</h1>\r
-    <h3 id="hash">A hash style header</h3>\r
-\r
-### Inline ###\r
-\r
-To define attributes on inline elements, the attribute list should be defined \r
-immediately after the inline element with no whitespace.\r
-\r
-    [link](http://example.com){: class="foo bar" title="Some title!" }\r
-\r
-The above results in the following output:\r
-\r
-    <p><a href="http://example.com" class="foo bar" title="Some title!">link</a></p>\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `attr_list`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
+title:      Attribute Lists Extension
+prev_title: Abbreviations Extension
+prev_url:   abbreviations.html
+next_title: Definition Lists Extension
+next_url:   definition_lists.html
+
+Attribute Lists
+===============
+
+Summary
+-------
+
+The Attribute Lists extension adds a syntax to define attributes on the various
+HTML elements in markdown's output.
+
+This extension is included in the standard Markdown library.
+
+Syntax
+------
+
+The basic syntax was inspired by [Maruku][]'s Attribute Lists feature.
+
+[Maruku]: http://maruku.rubyforge.org/proposal.html#attribute_lists
+
+### The List ###
+
+An example attribute list might look like this:
+
+    {: #someid .someclass somekey='some value' }
+
+A word which starts with a hash (`#`) will set the id of an element.
+
+A word which starts with a dot (`.`) will be added to the list of classes 
+assigned to an element.
+
+A key/value pair (`somekey='some value'`) will assign that pair to the element.
+
+Be aware that while the dot syntax will add to a class, using key/value pairs
+will always override the previously defined attribute. Consider the following:
+
+    {: #id1 .class1 id=id2 class="class2 class3" .class4 }
+
+The above example would result in the following attributes being defined:
+
+    id="id2" class="class2 class3 class4"
+
+### Block Level ###
+
+To define attributes for a block level element, the attribute list should
+be defined on the last line of the block by itself.
+
+    This is a paragraph.
+    {: #an_id .a_class }
+
+The above results in the following output:
+
+    <p id="an_id" class="a_class">This is a paragraph.</p>
+
+The one exception is headers, as they are only ever allowed on one line.
+
+    A setext style header {: #setext}
+    =================================
+
+    ### A hash style header ### {: #hash }
+
+The above results in the following output:
+
+    <h1 id="setext">A setext style header</h1>
+    <h3 id="hash">A hash style header</h3>
+
+### Inline ###
+
+To define attributes on inline elements, the attribute list should be defined 
+immediately after the inline element with no whitespace.
+
+    [link](http://example.com){: class="foo bar" title="Some title!" }
+
+The above results in the following output:
+
+    <p><a href="http://example.com" class="foo bar" title="Some title!">link</a></p>
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.attr_list`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
index 19da5286c2bf4c5d52260a3c34220abb4d05ba96..c775df73509ccdd44beb9e74ab2e80899e3476c5 100644 (file)
-title:      CodeHilite Extension\r
-prev_title: Admonition Extension\r
-prev_url:   admonition.html\r
-next_title: HeaderId Extension\r
-next_url:   header_id.html\r
-\r
-CodeHilite\r
-==========\r
-\r
-Summary\r
--------\r
-\r
-The CodeHilite extension adds code/syntax highlighting to standard\r
-Python-Markdown code blocks using [Pygments][].\r
-\r
-[Pygments]: http://pygments.org/\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Setup\r
------\r
-\r
-You will also need to [download][dl] and install the Pygments package on your\r
-`PYTHONPATH`. You will need to determine the appropriate CSS classes and create\r
-appropriate rules for them, which are either defined in or linked from the\r
-header of your HTML templates. See the excellent [documentation][] for more\r
-details. If no language is defined, Pygments will attempt to guess the\r
-language. When that fails, the code block will display as un-highlighted code.\r
-\r
-[dl]: http://pygments.org/download/\r
-[documentation]: http://pygments.org/docs\r
-\r
-!!! Note\r
-    The css and/or javascript is not included as part of this extension\r
-    but must be provided by the end user. The Pygments project provides\r
-    default css styles which you may find to be a useful starting point.\r
-\r
-Syntax\r
-------\r
-\r
-The CodeHilite extension follows the same [syntax][] as regular Markdown code\r
-blocks, with one exception. The hiliter needs to know what language to use for\r
-the code block. There are three ways to tell the hiliter what language the code\r
-block contains and each one has a different result.\r
-\r
-!!! Note\r
-    The format of the language identifier only effects the display of line numbers\r
-    if `linenums` is set to `None` (the default). If set to `True` or `False`\r
-    (see [Usage](#usage) below) the format of the identifier has no effect on the\r
-    display of line numbers -- it only serves as a means to define the language\r
-    of the code block.\r
-\r
-[syntax]: http://daringfireball.net/projects/markdown/syntax#precode\r
-\r
-### SheBang (with path) ###\r
-\r
-If the first line of the codeblock contains a shebang, the language is derived\r
-from that and line numbers are used.\r
-\r
-        #!/usr/bin/python\r
-        # Code goes here ...\r
-\r
-Will result in:\r
-\r
-    #!/usr/bin/python\r
-    # Code goes here ...\r
-\r
-### SheBang (no path) ###\r
-\r
-If the first line contains a shebang, but the shebang line does not contain a\r
-path (a single `/` or even a space), then that line is removed from the code\r
-block before processing. Line numbers are used.\r
-\r
-        #!python\r
-        # Code goes here ...\r
-\r
-Will result in:\r
-\r
-    # Code goes here ...\r
-\r
-### Colons ###\r
-\r
-If the first line begins with three or more colons, the text following the\r
-colons identifies the language. The first line is removed from the code block\r
-before processing and line numbers are not used.\r
-\r
-        :::python\r
-        # Code goes here ...\r
-\r
-Will result in:\r
-\r
-    # Code goes here ...\r
-\r
-Certain lines can be selected for emphasis with the colon syntax. When \r
-using Pygments' default css styles, emphasized lines have a yellow background. \r
-This is useful to direct the reader's attention to specific lines.\r
-\r
-    :::python hl_lines="1 3"\r
-    # This line is emphasized\r
-    # This line isn't\r
-    # This line is emphasized\r
-\r
-!!! Note\r
-    `hl_lines` is named for Pygments' option meaning "highlighted lines".\r
-\r
-### When No Language is Defined ###\r
-\r
-CodeHilite is completely backwards compatible so that if a code block is\r
-encountered that does not define a language, the block is simply wrapped in\r
-`<pre>` tags and output. \r
-\r
-        # Code goes here ...\r
-\r
-Will result in:\r
-\r
-    # Code goes here ...\r
-\r
-Lets see the source for that:\r
-\r
-    <div class="codehilite"><pre><code># Code goes here ...\r
-    </code></pre></div>\r
-\r
-!!! Note\r
-    When no language is defined, the Pygments highlighting engine will try to guess \r
-    the language (unless `guess_lang` is set to `False`). Upon failure, the same \r
-    behavior will happen as described above.\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `codehilite`\r
-as the name of the extension.\r
-\r
-See the [Library Reference](../reference.html#extensions) for information about\r
-configuring extensions.\r
-\r
-The following options are provided to configure the output:\r
-\r
-* **`linenums`**:\r
-    Use line numbers. Possible values are `True` for yes, `False` for no and\r
-    `None` for auto. Defaults to `None`.\r
-\r
-    Using `True` will force every code block to have line numbers, even when\r
-    using colons (`:::`) for language identification.\r
-\r
-    Using `False` will turn off all line numbers, even when using SheBangs\r
-    (`#!`) for language identification.\r
-\r
-* **`guess_lang`**:\r
-    Automatic language detection. Defaults to `True`.\r
-\r
-    Using `False` will prevent Pygments from guessing the language, and thus\r
-    highlighting blocks only when you explicitly set the language.\r
-\r
-* **`css_class`**:\r
-    Set CSS class name for the wrapper `<div>` tag. Defaults to\r
-    `codehilite`.\r
-\r
-* **`pygments_style`**:\r
-    Pygments HTML Formatter Style (ColorScheme). Defaults to `default`.\r
-\r
-    !!! Note\r
-        This is useful only when `noclasses` is set to `True`, otherwise the\r
-        CSS styles must be provided by the end user.\r
-\r
-* **`noclasses`**:\r
-    Use inline styles instead of CSS classes. Defaults to `False`.\r
+title:      CodeHilite Extension
+prev_title: Admonition Extension
+prev_url:   admonition.html
+next_title: HeaderId Extension
+next_url:   header_id.html
+
+CodeHilite
+==========
+
+Summary
+-------
+
+The CodeHilite extension adds code/syntax highlighting to standard
+Python-Markdown code blocks using [Pygments][].
+
+[Pygments]: http://pygments.org/
+
+This extension is included in the standard Markdown library.
+
+Setup
+-----
+
+You will also need to [download][dl] and install the Pygments package on your
+`PYTHONPATH`. You will need to determine the appropriate CSS classes and create
+appropriate rules for them, which are either defined in or linked from the
+header of your HTML templates. See the excellent [documentation][] for more
+details. If no language is defined, Pygments will attempt to guess the
+language. When that fails, the code block will display as un-highlighted code.
+
+[dl]: http://pygments.org/download/
+[documentation]: http://pygments.org/docs
+
+!!! Note
+    The css and/or javascript is not included as part of this extension
+    but must be provided by the end user. The Pygments project provides
+    default css styles which you may find to be a useful starting point.
+
+Syntax
+------
+
+The CodeHilite extension follows the same [syntax][] as regular Markdown code
+blocks, with one exception. The hiliter needs to know what language to use for
+the code block. There are three ways to tell the hiliter what language the code
+block contains and each one has a different result.
+
+!!! Note
+    The format of the language identifier only effects the display of line numbers
+    if `linenums` is set to `None` (the default). If set to `True` or `False`
+    (see [Usage](#usage) below) the format of the identifier has no effect on the
+    display of line numbers -- it only serves as a means to define the language
+    of the code block.
+
+[syntax]: http://daringfireball.net/projects/markdown/syntax#precode
+
+### SheBang (with path) ###
+
+If the first line of the codeblock contains a shebang, the language is derived
+from that and line numbers are used.
+
+        #!/usr/bin/python
+        # Code goes here ...
+
+Will result in:
+
+    #!/usr/bin/python
+    # Code goes here ...
+
+### SheBang (no path) ###
+
+If the first line contains a shebang, but the shebang line does not contain a
+path (a single `/` or even a space), then that line is removed from the code
+block before processing. Line numbers are used.
+
+        #!python
+        # Code goes here ...
+
+Will result in:
+
+    # Code goes here ...
+
+### Colons ###
+
+If the first line begins with three or more colons, the text following the
+colons identifies the language. The first line is removed from the code block
+before processing and line numbers are not used.
+
+        :::python
+        # Code goes here ...
+
+Will result in:
+
+    # Code goes here ...
+
+Certain lines can be selected for emphasis with the colon syntax. When 
+using Pygments' default css styles, emphasized lines have a yellow background. 
+This is useful to direct the reader's attention to specific lines.
+
+    :::python hl_lines="1 3"
+    # This line is emphasized
+    # This line isn't
+    # This line is emphasized
+
+!!! Note
+    `hl_lines` is named for Pygments' option meaning "highlighted lines".
+
+### When No Language is Defined ###
+
+CodeHilite is completely backwards compatible so that if a code block is
+encountered that does not define a language, the block is simply wrapped in
+`<pre>` tags and output. 
+
+        # Code goes here ...
+
+Will result in:
+
+    # Code goes here ...
+
+Lets see the source for that:
+
+    <div class="codehilite"><pre><code># Code goes here ...
+    </code></pre></div>
+
+!!! Note
+    When no language is defined, the Pygments highlighting engine will try to guess 
+    the language (unless `guess_lang` is set to `False`). Upon failure, the same 
+    behavior will happen as described above.
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.codehilite`
+as the name of the extension.
+
+See the [Library Reference](../reference.html#extensions) for information about
+configuring extensions.
+
+The following options are provided to configure the output:
+
+* **`linenums`**:
+    Use line numbers. Possible values are `True` for yes, `False` for no and
+    `None` for auto. Defaults to `None`.
+
+    Using `True` will force every code block to have line numbers, even when
+    using colons (`:::`) for language identification.
+
+    Using `False` will turn off all line numbers, even when using SheBangs
+    (`#!`) for language identification.
+
+* **`guess_lang`**:
+    Automatic language detection. Defaults to `True`.
+
+    Using `False` will prevent Pygments from guessing the language, and thus
+    highlighting blocks only when you explicitly set the language.
+
+* **`css_class`**:
+    Set CSS class name for the wrapper `<div>` tag. Defaults to
+    `codehilite`.
+
+* **`pygments_style`**:
+    Pygments HTML Formatter Style (ColorScheme). Defaults to `default`.
+
+    !!! Note
+        This is useful only when `noclasses` is set to `True`, otherwise the
+        CSS styles must be provided by the end user.
+
+* **`noclasses`**:
+    Use inline styles instead of CSS classes. Defaults to `False`.
index c5e235f1573268009c02b5d78d68d60523fd1236..d7003e29ae8e4a3e0f06b67b76549fbbfb543e6c 100644 (file)
@@ -1,53 +1,53 @@
-title:      Definition Lists Extension\r
-prev_title: Attribute Lists Extension\r
-prev_url:   attr_list.html\r
-next_title: Fenced Code Blocks Extension\r
-next_url:   fenced_code_blocks.html\r
-\r
-Definition Lists\r
-================\r
-\r
-Summary\r
--------\r
-\r
-The Definition Lists extension adds the ability to create definition lists in\r
-Markdown documents.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-Definition lists are defined using the syntax established in \r
-[PHP Markdown Extra][php].\r
-\r
-[php]: http://www.michelf.com/projects/php-markdown/extra/#def-list\r
-\r
-Thus, the following text (taken from the above referenced PHP documentation):\r
-\r
-    Apple\r
-    :   Pomaceous fruit of plants of the genus Malus in \r
-        the family Rosaceae.\r
-\r
-    Orange\r
-    :   The fruit of an evergreen tree of the genus Citrus.\r
-\r
-will be rendered as:\r
-\r
-    <dl>\r
-    <dt>Apple</dt>\r
-    <dd>Pomaceous fruit of plants of the genus Malus in \r
-    the family Rosaceae.</dd>\r
-\r
-    <dt>Orange</dt>\r
-    <dd>The fruit of an evergreen tree of the genus Citrus.</dd>\r
-    </dl>\r
-\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `def_list`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
+title:      Definition Lists Extension
+prev_title: Attribute Lists Extension
+prev_url:   attr_list.html
+next_title: Fenced Code Blocks Extension
+next_url:   fenced_code_blocks.html
+
+Definition Lists
+================
+
+Summary
+-------
+
+The Definition Lists extension adds the ability to create definition lists in
+Markdown documents.
+
+This extension is included in the standard Markdown library.
+
+Syntax
+------
+
+Definition lists are defined using the syntax established in 
+[PHP Markdown Extra][php].
+
+[php]: http://www.michelf.com/projects/php-markdown/extra/#def-list
+
+Thus, the following text (taken from the above referenced PHP documentation):
+
+    Apple
+    :   Pomaceous fruit of plants of the genus Malus in 
+        the family Rosaceae.
+
+    Orange
+    :   The fruit of an evergreen tree of the genus Citrus.
+
+will be rendered as:
+
+    <dl>
+    <dt>Apple</dt>
+    <dd>Pomaceous fruit of plants of the genus Malus in 
+    the family Rosaceae.</dd>
+
+    <dt>Orange</dt>
+    <dd>The fruit of an evergreen tree of the genus Citrus.</dd>
+    </dl>
+
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.def_list`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
index 0094a7883973ef5579741cbc0366d06754b8d168..bf4d12f880a2a8ddff1dcf288895dff1e80791d7 100644 (file)
-title:      Extra Extension\r
-prev_title: Extensions\r
-prev_url:   index.html\r
-next_title: Abreviations Extension\r
-next_url:   abbreviations.html\r
-\r
-Python-Markdown Extra\r
-=====================\r
-\r
-Summary\r
--------\r
-\r
-A compilation of various Python-Markdown extensions that (mostly) imitates\r
-[PHP Markdown Extra](http://michelf.com/projects/php-markdown/extra/).\r
-\r
-The supported extensions include:\r
-\r
-* [Abbreviations](abbreviations.html)\r
-* [Attribute Lists](attr_list.html)\r
-* [Definition Lists](definition_lists.html)\r
-* [Fenced Code Blocks](fenced_code_blocks.html)\r
-* [Footnotes](footnotes.html)\r
-* [Tables](tables.html)\r
-* [Smart Strong](smart_strong.html)\r
-\r
-See each individual extension for syntax documentation. Extra and all its \r
-supported extensions are included in the standard Markdown library.\r
-\r
-Usage\r
------\r
-\r
-From the Python interpreter:\r
-\r
-    >>> import markdown\r
-    >>> html = markdown.markdown(text, ['extra'])\r
-\r
-There may be [additional extensions](index.html) that are distributed with\r
-Python-Markdown that are not included here in Extra. The features \r
-of those extensions are not part of PHP Markdown Extra, and \r
-therefore, not part of Python-Markdown Extra. If you really would \r
-like Extra to include additional extensions, we suggest creating \r
-your own clone of Extra under a different name \r
-(see the [Extension API](api.html)).  \r
-\r
-Markdown Inside HTML Blocks\r
----------------------------\r
-\r
-Unlike the other Extra features, this feature is built into the markdown core and is turned on when `extra` is enabled.\r
-\r
-The content of any raw html block element can be Markdown-formatted simply by adding a `markdown` attribute to the opening tag. The markdown attribute will be stripped from the output, but all other attributes will be preserved.\r
-\r
-If the markdown value is set to `1` (recommended) or any value other than `span` or `block`, the default behavior will be executed: `p`,`h[1-6]`,`li`,`dd`,`dt`,`td`,`th`,`legend`, and `address` elements skip block parsing while others do not. If the default is overrident by a value of `span`, *block parsing will be skipped* regardless of tag. If the default is overriden by a value of `block`, *block parsing will occur* regardless of tag.\r
-\r
-#### Simple Example:\r
-```\r
-This is *true* markdown text.\r
-\r
-<div markdown="1">\r
-This is *true* markdown text.\r
-</div>\r
-```\r
-#### Result:\r
-```\r
-<p>This is <em>true</em> markdown text.</p>\r
-<div>\r
-<p>This is <em>true</em> markdown text.</p>\r
-</div>\r
-```\r
-\r
-### Nested Markdown Inside HTML BLocks\r
-Nested elements are more sensitive and must be used cautiously. To avoid unexpected results:\r
-\r
-* Only nest elements within block mode elements.\r
-* Follow the closing tag of inner elements with a blank line.\r
-* Only have one level of nesting.\r
-\r
-#### Complex Example:\r
-```\r
-<div markdown="1" name="Example">\r
-\r
-The text of the `Example` element.\r
-\r
-<div markdown="1" name="DefaultBlockMode">\r
-This text gets wrapped in `p` tags.\r
-</div>\r
-\r
-The tail of the `DefaultBlockMode` subelement.\r
-\r
-<p markdown="1" name="DefaultSpanMode">\r
-This text *is not* wrapped in additional `p` tags.\r
-</p>\r
-\r
-The tail of the `DefaultSpanMode` subelement.\r
-\r
-<div markdown="span" name="SpanModeOverride">\r
-This `div` block is not wrapped in paragraph tags.\r
-Note: Subelements are not required to have tail text.\r
-</div>\r
-\r
-<p markdown="block" name="BlockModeOverride">\r
-This `p` block *is* foolishly wrapped in further paragraph tags.\r
-</p>\r
-\r
-The tail of the `BlockModeOverride` subelement.\r
-\r
-<div name="RawHtml">\r
-Raw html blocks may also be nested.\r
-</div>\r
-\r
-</div>\r
-\r
-This text is after the markdown in html.\r
-```\r
-#### Result:\r
-```\r
-<div name="Example">\r
-<p>The text of the <code>Example</code> element.</p>\r
-<div name="DefaultBlockMode">\r
-<p>This text gets wrapped in <code>p</code> tags.</p>\r
-</div>\r
-<p>The tail of the <code>DefaultBlockMode</code> subelement.</p>\r
-<p name="DefaultSpanMode">\r
-This text <em>is not</em> wrapped in additional <code>p</code> tags.</p>\r
-<p>The tail of the <code>DefaultSpanMode</code> subelement.</p>\r
-<div name="SpanModeOverride">\r
-This <code>div</code> block is not wrapped in paragraph tags.\r
-Note: Subelements are not required to have tail text.</div>\r
-<p name="BlockModeOverride">\r
-<p>This <code>p</code> block <em>is</em> foolishly wrapped in further paragraph tags.</p>\r
-</p>\r
-<p>The tail of the <code>BlockModeOverride</code> subelement.</p>\r
-<div name="RawHtml">\r
-Raw html blocks may also be nested.\r
-</div>\r
-\r
-</div>\r
-<p>This text is after the markdown in html.</p>\r
-```\r
+title:      Extra Extension
+prev_title: Extensions
+prev_url:   index.html
+next_title: Abreviations Extension
+next_url:   abbreviations.html
+
+Python-Markdown Extra
+=====================
+
+Summary
+-------
+
+A compilation of various Python-Markdown extensions that (mostly) imitates
+[PHP Markdown Extra](http://michelf.com/projects/php-markdown/extra/).
+
+The supported extensions include:
+
+* [Abbreviations](abbreviations.html)
+* [Attribute Lists](attr_list.html)
+* [Definition Lists](definition_lists.html)
+* [Fenced Code Blocks](fenced_code_blocks.html)
+* [Footnotes](footnotes.html)
+* [Tables](tables.html)
+* [Smart Strong](smart_strong.html)
+
+See each individual extension for syntax documentation. Extra and all its 
+supported extensions are included in the standard Markdown library.
+
+Usage
+-----
+
+From the Python interpreter:
+
+    >>> import markdown
+    >>> html = markdown.markdown(text, ['markdown.extensions.extra'])
+
+There may be [additional extensions](index.html) that are distributed with
+Python-Markdown that are not included here in Extra. The features 
+of those extensions are not part of PHP Markdown Extra, and 
+therefore, not part of Python-Markdown Extra. If you really would 
+like Extra to include additional extensions, we suggest creating 
+your own clone of Extra under a different name 
+(see the [Extension API](api.html)).  
+
+Markdown Inside HTML Blocks
+---------------------------
+
+Unlike the other Extra features, this feature is built into the markdown core and is turned on when `markdown.extensions.extra` is enabled.
+
+The content of any raw html block element can be Markdown-formatted simply by adding a `markdown` attribute to the opening tag. The markdown attribute will be stripped from the output, but all other attributes will be preserved.
+
+If the markdown value is set to `1` (recommended) or any value other than `span` or `block`, the default behavior will be executed: `p`,`h[1-6]`,`li`,`dd`,`dt`,`td`,`th`,`legend`, and `address` elements skip block parsing while others do not. If the default is overrident by a value of `span`, *block parsing will be skipped* regardless of tag. If the default is overriden by a value of `block`, *block parsing will occur* regardless of tag.
+
+#### Simple Example:
+```
+This is *true* markdown text.
+
+<div markdown="1">
+This is *true* markdown text.
+</div>
+```
+#### Result:
+```
+<p>This is <em>true</em> markdown text.</p>
+<div>
+<p>This is <em>true</em> markdown text.</p>
+</div>
+```
+
+### Nested Markdown Inside HTML BLocks
+Nested elements are more sensitive and must be used cautiously. To avoid unexpected results:
+
+* Only nest elements within block mode elements.
+* Follow the closing tag of inner elements with a blank line.
+* Only have one level of nesting.
+
+#### Complex Example:
+```
+<div markdown="1" name="Example">
+
+The text of the `Example` element.
+
+<div markdown="1" name="DefaultBlockMode">
+This text gets wrapped in `p` tags.
+</div>
+
+The tail of the `DefaultBlockMode` subelement.
+
+<p markdown="1" name="DefaultSpanMode">
+This text *is not* wrapped in additional `p` tags.
+</p>
+
+The tail of the `DefaultSpanMode` subelement.
+
+<div markdown="span" name="SpanModeOverride">
+This `div` block is not wrapped in paragraph tags.
+Note: Subelements are not required to have tail text.
+</div>
+
+<p markdown="block" name="BlockModeOverride">
+This `p` block *is* foolishly wrapped in further paragraph tags.
+</p>
+
+The tail of the `BlockModeOverride` subelement.
+
+<div name="RawHtml">
+Raw html blocks may also be nested.
+</div>
+
+</div>
+
+This text is after the markdown in html.
+```
+#### Result:
+```
+<div name="Example">
+<p>The text of the <code>Example</code> element.</p>
+<div name="DefaultBlockMode">
+<p>This text gets wrapped in <code>p</code> tags.</p>
+</div>
+<p>The tail of the <code>DefaultBlockMode</code> subelement.</p>
+<p name="DefaultSpanMode">
+This text <em>is not</em> wrapped in additional <code>p</code> tags.</p>
+<p>The tail of the <code>DefaultSpanMode</code> subelement.</p>
+<div name="SpanModeOverride">
+This <code>div</code> block is not wrapped in paragraph tags.
+Note: Subelements are not required to have tail text.</div>
+<p name="BlockModeOverride">
+<p>This <code>p</code> block <em>is</em> foolishly wrapped in further paragraph tags.</p>
+</p>
+<p>The tail of the <code>BlockModeOverride</code> subelement.</p>
+<div name="RawHtml">
+Raw html blocks may also be nested.
+</div>
+
+</div>
+<p>This text is after the markdown in html.</p>
+```
index 1af75c94a450820c9b60a993630898ebe0183a6d..19999fd25060710b61218dc80dc9676a6ed7dbcb 100644 (file)
-title:      Fenced Code Blocks Extension\r
-prev_title: Definition Lists Extension\r
-prev_url:   definition_lists.html\r
-next_title: Footnotes Extension\r
-next_url:   footnotes.html\r
-\r
-Fenced Code Blocks\r
-==================\r
-\r
-Summary\r
--------\r
-\r
-The Fenced Code Blocks extension adds a secondary way to define code blocks,\r
-which overcomes a few limitations of the indented code blocks.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-Fenced Code Blocks are defined using the syntax established in \r
-[PHP Markdown Extra][php].\r
-\r
-[php]: http://www.michelf.com/projects/php-markdown/extra/#fenced-code-blocks\r
-\r
-Thus, the following text (taken from the above referenced PHP documentation):\r
-\r
-    This is a paragraph introducing:\r
-\r
-    ~~~~~~~~~~~~~~~~~~~~\r
-    a one-line code block\r
-    ~~~~~~~~~~~~~~~~~~~~\r
-\r
-Fenced code blocks can have a blank line as the first  and/or last line of a \r
-code block and they can also come immediately after a list item without becoming\r
-part of the list.\r
-\r
-!!! warning\r
-\r
-    Fenced Code Blocks are only supported at the document root level.\r
-    Therefore, they cannot be nested inside lists or blockquotes.\r
-\r
-### Language ###\r
-\r
-In addition to PHP Extra's syntax, you can define the language of the code \r
-block for use by syntax highlighters etc. The language will be assigned as a \r
-class attribute of the ``<code>`` element in the output. Therefore, you should \r
-define the language as you would a css class - ``.language``. For consistency \r
-with other markdown syntax, the language can *optionally* be wrapped in curly \r
-brackets:\r
-\r
-    ~~~~{.python}\r
-    # python code\r
-    ~~~~\r
-\r
-    ~~~~.html\r
-    <p>HTML Document</p>\r
-    ~~~~\r
-\r
-The above will output:\r
-\r
-    <pre><code class="python"># python code\r
-    </code></pre>\r
-    \r
-    <pre><code class="html">&lt;p&gt;HTML Document&lt;/p&gt;\r
-    </code></pre>\r
-\r
-[Github][]'s backtick (`\``) syntax is also supported:\r
-\r
-    ```python\r
-    # more python code\r
-    ```\r
-\r
-[Github]: http://github.github.com/github-flavored-markdown/\r
-\r
-### Emphasized Lines ###\r
-\r
-If you would like to have your fenced code blocks highlighted with the \r
-[CodeHilite][] extension, simply enable that extension (remember that\r
-[Pygments][] is its dependency) and the language of your fenced code blocks\r
-will be passed in and highlighted appropriately.\r
-\r
-Similar to the [colon][] syntax of the CodeHilite extension, fenced code blocks\r
-can also have emphasized certain lines of code.\r
-\r
-The lines can be specified with PHP Extra's syntax:\r
-\r
-    ~~~~{.python hl_lines="1 3"}\r
-    # This line is emphasized\r
-    # This line isn't\r
-    # This line is emphasized\r
-    ~~~~\r
-\r
-... or with GitHub's:\r
-\r
-    ```python hl_lines="1 3"\r
-    # This line is emphasized\r
-    # This line isn't\r
-    # This line is emphasized\r
-    ```\r
-\r
-[CodeHilite]: code_hilite.html\r
-[Pygments]: http://pygments.org/\r
-[colon]: code_hilite.html#colons\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `fenced_code`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
+title:      Fenced Code Blocks Extension
+prev_title: Definition Lists Extension
+prev_url:   definition_lists.html
+next_title: Footnotes Extension
+next_url:   footnotes.html
+
+Fenced Code Blocks
+==================
+
+Summary
+-------
+
+The Fenced Code Blocks extension adds a secondary way to define code blocks,
+which overcomes a few limitations of the indented code blocks.
+
+This extension is included in the standard Markdown library.
+
+Syntax
+------
+
+Fenced Code Blocks are defined using the syntax established in 
+[PHP Markdown Extra][php].
+
+[php]: http://www.michelf.com/projects/php-markdown/extra/#fenced-code-blocks
+
+Thus, the following text (taken from the above referenced PHP documentation):
+
+    This is a paragraph introducing:
+
+    ~~~~~~~~~~~~~~~~~~~~
+    a one-line code block
+    ~~~~~~~~~~~~~~~~~~~~
+
+Fenced code blocks can have a blank line as the first  and/or last line of a 
+code block and they can also come immediately after a list item without becoming
+part of the list.
+
+!!! warning
+
+    Fenced Code Blocks are only supported at the document root level.
+    Therefore, they cannot be nested inside lists or blockquotes.
+
+### Language ###
+
+In addition to PHP Extra's syntax, you can define the language of the code 
+block for use by syntax highlighters etc. The language will be assigned as a 
+class attribute of the ``<code>`` element in the output. Therefore, you should 
+define the language as you would a css class - ``.language``. For consistency 
+with other markdown syntax, the language can *optionally* be wrapped in curly 
+brackets:
+
+    ~~~~{.python}
+    # python code
+    ~~~~
+
+    ~~~~.html
+    <p>HTML Document</p>
+    ~~~~
+
+The above will output:
+
+    <pre><code class="python"># python code
+    </code></pre>
+    
+    <pre><code class="html">&lt;p&gt;HTML Document&lt;/p&gt;
+    </code></pre>
+
+[Github][]'s backtick (`\``) syntax is also supported:
+
+    ```python
+    # more python code
+    ```
+
+[Github]: http://github.github.com/github-flavored-markdown/
+
+### Emphasized Lines ###
+
+If you would like to have your fenced code blocks highlighted with the 
+[CodeHilite][] extension, simply enable that extension (remember that
+[Pygments][] is its dependency) and the language of your fenced code blocks
+will be passed in and highlighted appropriately.
+
+Similar to the [colon][] syntax of the CodeHilite extension, fenced code blocks
+can also have emphasized certain lines of code.
+
+The lines can be specified with PHP Extra's syntax:
+
+    ~~~~{.python hl_lines="1 3"}
+    # This line is emphasized
+    # This line isn't
+    # This line is emphasized
+    ~~~~
+
+... or with GitHub's:
+
+    ```python hl_lines="1 3"
+    # This line is emphasized
+    # This line isn't
+    # This line is emphasized
+    ```
+
+[CodeHilite]: code_hilite.html
+[Pygments]: http://pygments.org/
+[colon]: code_hilite.html#colons
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.fenced_code`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
index 4638c87b059b397c4406d92a0a04ae02cae59430..40081e5b5f435b877c0fbbe3c1dd44e0d5a3cd29 100644 (file)
@@ -1,88 +1,88 @@
-title:      Footnotes Extension\r
-prev_title: Fenced Code Blocks Extension\r
-prev_url:   fenced_code_blocks.html\r
-next_title: Tables Extension\r
-next_url:   tables.html\r
-\r
-Footnotes\r
-=========\r
-\r
-Summary\r
--------\r
-\r
-The Footnotes extension adds syntax for defining footnotes in Markdown\r
-documents.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-Python-Markdown's Footnote syntax follows the generally accepted syntax of the \r
-Markdown community at large and almost exactly matches [PHP Markdown Extra][]'s\r
-implementation of footnotes. The only differences involve a few subtleties in \r
-the output.\r
-\r
-[PHP Markdown Extra]: http://michelf.com/projects/php-markdown/extra/#footnotes\r
-\r
-Example:\r
-\r
-    Footnotes[^1] have a label[^@#$%] and the footnote's content.\r
-\r
-    [^1]: This is a footnote content.\r
-    [^@#$%]: A footnote on the label: "@#$%".\r
-\r
-A footnote label must start with a caret `^` and may contain any inline text \r
-(including spaces) between a set of square brackets `[]`. Only the first\r
-caret has any special meaning.\r
-\r
-A footnote content must start with the label followed by a colon and at least \r
-one space. The label used to define the content must exactly match the label used\r
-in the body (including capitalization and whitespace). The content would then \r
-follow the label either on the same line or on the next line. The content may \r
-contain multiple lines, paragraphs, code blocks, blockquotes and most any other \r
-markdown syntax. The additional lines must be indented one level (four spaces or \r
-one tab). \r
-\r
-When working with multiple blocks, it may be helpful to start the content on a \r
-separate line from the label which defines the content. This way the entire block \r
-is indented consistently and any errors are more easily discernible by the author.\r
-\r
-    [^1]: \r
-        The first paragraph of the definition.\r
-\r
-        Paragraph two of the definition.\r
-\r
-        > A blockquote with\r
-        > multiple lines.\r
-\r
-            a code block\r
-\r
-        A final paragraph.\r
-\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `footnotes`\r
-as the name of the extension.\r
-\r
-See the [Library Reference](../reference.html#extensions) for information about\r
-configuring extensions.\r
-\r
-The following options are provided to configure the output:\r
-\r
-* **`PLACE_MARKER`**:\r
-    A text string used to mark the position where the footnotes are rendered.\r
-    Defaults to `///Footnotes Go Here///`.\r
-\r
-    If the place marker text is not found in the document, the footnote\r
-    definitions are placed at the end of the resulting HTML document.\r
-\r
-* **`UNIQUE_IDS`**:\r
-    Whether to avoid collisions across multiple calls to `reset()`. Defaults to\r
-    `False`.\r
-    \r
-* **`BACKLINK_TEXT`**:\r
-    The text string that links from the footnote definition back to the position\r
-    in the document. Defaults to `&#8617;`.\r
+title:      Footnotes Extension
+prev_title: Fenced Code Blocks Extension
+prev_url:   fenced_code_blocks.html
+next_title: Tables Extension
+next_url:   tables.html
+
+Footnotes
+=========
+
+Summary
+-------
+
+The Footnotes extension adds syntax for defining footnotes in Markdown
+documents.
+
+This extension is included in the standard Markdown library.
+
+Syntax
+------
+
+Python-Markdown's Footnote syntax follows the generally accepted syntax of the 
+Markdown community at large and almost exactly matches [PHP Markdown Extra][]'s
+implementation of footnotes. The only differences involve a few subtleties in 
+the output.
+
+[PHP Markdown Extra]: http://michelf.com/projects/php-markdown/extra/#footnotes
+
+Example:
+
+    Footnotes[^1] have a label[^@#$%] and the footnote's content.
+
+    [^1]: This is a footnote content.
+    [^@#$%]: A footnote on the label: "@#$%".
+
+A footnote label must start with a caret `^` and may contain any inline text 
+(including spaces) between a set of square brackets `[]`. Only the first
+caret has any special meaning.
+
+A footnote content must start with the label followed by a colon and at least 
+one space. The label used to define the content must exactly match the label used
+in the body (including capitalization and whitespace). The content would then 
+follow the label either on the same line or on the next line. The content may 
+contain multiple lines, paragraphs, code blocks, blockquotes and most any other 
+markdown syntax. The additional lines must be indented one level (four spaces or 
+one tab). 
+
+When working with multiple blocks, it may be helpful to start the content on a 
+separate line from the label which defines the content. This way the entire block 
+is indented consistently and any errors are more easily discernible by the author.
+
+    [^1]: 
+        The first paragraph of the definition.
+
+        Paragraph two of the definition.
+
+        > A blockquote with
+        > multiple lines.
+
+            a code block
+
+        A final paragraph.
+
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.footnotes`
+as the name of the extension.
+
+See the [Library Reference](../reference.html#extensions) for information about
+configuring extensions.
+
+The following options are provided to configure the output:
+
+* **`PLACE_MARKER`**:
+    A text string used to mark the position where the footnotes are rendered.
+    Defaults to `///Footnotes Go Here///`.
+
+    If the place marker text is not found in the document, the footnote
+    definitions are placed at the end of the resulting HTML document.
+
+* **`UNIQUE_IDS`**:
+    Whether to avoid collisions across multiple calls to `reset()`. Defaults to
+    `False`.
+    
+* **`BACKLINK_TEXT`**:
+    The text string that links from the footnote definition back to the position
+    in the document. Defaults to `&#8617;`.
index e22cd785c6c6e5472534569bb1e1bf40845b49c4..2881c502358f5eb9487beba7c893256ad861960a 100644 (file)
-title:      HeaderId Extension\r
-prev_title: CodeHilite Extension\r
-prev_url:   code_hilite.html\r
-next_title: Meta-Data Extension\r
-next_url:   meta_data.html\r
-\r
-HeaderId\r
-========\r
-\r
-Summary\r
--------\r
-\r
-The HeaderId extension automatically generates `id` attributes for the header\r
-elements (`h1`-`h6`) in the resulting HTML document.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-By default, all headers will automatically have unique `id` attributes \r
-generated based upon the text of the header (see below to turn this off). \r
-Note this example, in which all three headers would have the same `id`:\r
-\r
-    #Header\r
-    #Header\r
-    #Header\r
-\r
-Results in:\r
-\r
-    <h1 id="header">Header</h1>\r
-    <h1 id="header_1">Header</h1>\r
-    <h1 id="header_2">Header</h1>\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `headerid`\r
-as the name of the extension.\r
-\r
-See the [Library Reference](../reference.html#extensions) for information about\r
-configuring extensions.\r
-\r
-The following options are provided to configure the output:\r
-\r
-* **`level`**: Base level for headers.\r
-\r
-    Default: `1`\r
-\r
-    The `level` setting allows you to automatically adjust the header levels to\r
-    fit within the hierarchy of your html templates. For example, suppose the \r
-    markdown text for a page should not contain any headers higher than level 3\r
-    (`<h3>`). The following will accomplish that:\r
-\r
-        >>>  text = '''\r
-        ... #Some Header\r
-        ... ## Next Level'''\r
-        >>> html = markdown.markdown(text, extensions=['headerid(level=3)'])\r
-        >>> print html\r
-        <h3 id="some_header">Some Header</h3>\r
-        <h4 id="next_level">Next Level</h4>'\r
-\r
-* **`forceid`**: Force all headers to have an id.\r
-\r
-    Default: `True`\r
-\r
-    The `forceid` setting turns on or off the automatically generated ids for \r
-    headers that do not have one explicitly defined (using the\r
-    [Attribute List](attr_list.html) extension).\r
-\r
-        >>> text = '''\r
-        ... # Some Header\r
-        ... # Header with ID # { #foo }'''\r
-        >>> html = markdown.markdown(text, \r
-                        extensions=['attr_list', 'headerid(forceid=False)'])\r
-        >>> print html\r
-        <h1>Some Header</h1>\r
-        <h1 id="foo">Header with ID</h1>\r
-\r
-* **`separator`**: Word separator. Character which replaces whitespace in id.\r
-\r
-    Default: `-`\r
-\r
-* **`slugify`**: Callable to generate anchors.\r
-\r
-    Default: `markdown.extensions.headerid.slugify`\r
-\r
-    If you would like to use a different algorithm to define the ids, you can\r
-    pass in a callable which takes two arguments:\r
-\r
-    * `value`: The string to slugify.\r
-    * `separator`: The Word Separator.\r
-\r
-Using with Meta-Data\r
---------------------\r
-\r
-The HeaderId extension also supports the [Meta-Data](meta_data.html) extension.\r
-Please see the documentation for that extension for specifics. The supported \r
-meta-data keywords are:\r
-\r
-* `header_level`\r
-* `header_forceid`\r
-\r
-When used, the meta-data will override the settings provided through the  \r
-`extension_configs` interface. \r
-\r
-This document:\r
-\r
-    header_level: 2\r
-    header_forceid: Off\r
-\r
-    # A Header\r
-\r
-\r
-Will result in the following output:\r
-\r
-    <h2>A Header</h2>\r
+title:      HeaderId Extension
+prev_title: CodeHilite Extension
+prev_url:   code_hilite.html
+next_title: Meta-Data Extension
+next_url:   meta_data.html
+
+HeaderId
+========
+
+Summary
+-------
+
+The HeaderId extension automatically generates `id` attributes for the header
+elements (`h1`-`h6`) in the resulting HTML document.
+
+This extension is included in the standard Markdown library.
+
+Syntax
+------
+
+By default, all headers will automatically have unique `id` attributes 
+generated based upon the text of the header (see below to turn this off). 
+Note this example, in which all three headers would have the same `id`:
+
+    #Header
+    #Header
+    #Header
+
+Results in:
+
+    <h1 id="header">Header</h1>
+    <h1 id="header_1">Header</h1>
+    <h1 id="header_2">Header</h1>
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.headerid`
+as the name of the extension.
+
+See the [Library Reference](../reference.html#extensions) for information about
+configuring extensions.
+
+The following options are provided to configure the output:
+
+* **`level`**: Base level for headers.
+
+    Default: `1`
+
+    The `level` setting allows you to automatically adjust the header levels to
+    fit within the hierarchy of your html templates. For example, suppose the 
+    markdown text for a page should not contain any headers higher than level 3
+    (`<h3>`). The following will accomplish that:
+
+        >>>  text = '''
+        ... #Some Header
+        ... ## Next Level'''
+               >>> from markdown.extensions.headerid import HeaderIdExtension
+        >>> html = markdown.markdown(text, extensions=[HeaderIdExtension(level=3)])
+        >>> print html
+        <h3 id="some_header">Some Header</h3>
+        <h4 id="next_level">Next Level</h4>'
+
+* **`forceid`**: Force all headers to have an id.
+
+    Default: `True`
+
+    The `forceid` setting turns on or off the automatically generated ids for 
+    headers that do not have one explicitly defined (using the
+    [Attribute List](attr_list.html) extension).
+
+        >>> text = '''
+        ... # Some Header
+        ... # Header with ID # { #foo }'''
+        >>> html = markdown.markdown(text, 
+                        extensions=['attr_list', HeaderIdExtension(forceid=False)])
+        >>> print html
+        <h1>Some Header</h1>
+        <h1 id="foo">Header with ID</h1>
+
+* **`separator`**: Word separator. Character which replaces whitespace in id.
+
+    Default: `-`
+
+* **`slugify`**: Callable to generate anchors.
+
+    Default: `markdown.extensions.headerid.slugify`
+
+    If you would like to use a different algorithm to define the ids, you can
+    pass in a callable which takes two arguments:
+
+    * `value`: The string to slugify.
+    * `separator`: The Word Separator.
+
+Using with Meta-Data
+--------------------
+
+The HeaderId extension also supports the [Meta-Data](meta_data.html) extension.
+Please see the documentation for that extension for specifics. The supported 
+meta-data keywords are:
+
+* `header_level`
+* `header_forceid`
+
+When used, the meta-data will override the settings provided through the  
+`extension_configs` interface. 
+
+This document:
+
+    header_level: 2
+    header_forceid: Off
+
+    # A Header
+
+
+Will result in the following output:
+
+    <h2>A Header</h2>
index fac051346d7d6e21c9f25a0f4136020eefbdb1e6..1052d158440c336f9a9afa2344a8b58d7e7603c1 100644 (file)
@@ -1,87 +1,87 @@
-title:      Extensions\r
-prev_title: Command Line\r
-prev_url:   ../cli.html\r
-next_title: Extra Extension\r
-next_url:   extra.html\r
-\r
-\r
-Available Extensions\r
-====================\r
-\r
-Python Markdown offers a flexible extension mechanism, which makes it possible\r
-to change and/or extend the behavior of the parser without having to edit the\r
-actual source files.\r
-\r
-To use an extension, pass it to markdown with the `extensions` keyword.\r
-\r
-    markdown.markdown(some_text, extensions=[MyExtension(), 'path.to.my.ext', 'footnotes'])\r
-\r
-See the [Library Reference](../reference.html#extensions) for more details.\r
-\r
-From the command line, specify an extension with the `-x` option. \r
-\r
-    $ python -m markdown -x footnotes -x tables input.txt > output.html\r
-\r
-See the [Command Line docs](../cli.html) or use the `--help` option for more details.\r
-\r
-!!! seealso "See Also"\r
-    If you would like to write your own extensions, see the\r
-    [Extension API](api.html) for details.\r
-\r
-Officially Supported Extensions\r
--------------------------------\r
-\r
-The extensions listed below are included with (at least) the most recent release\r
-and are officially supported by Python-Markdown. Any documentation is\r
-maintained here and all bug reports should be made to the project. If you\r
-have a typical install of Python-Markdown, these extensions are already\r
-available to you using the "name" listed in the second column below.\r
-\r
-Extension                            | "Name"\r
------------------------------------- | ---------------\r
-[Extra]                              | `extra`\r
-&nbsp; &nbsp; [Abbreviations][]      | `abbr`\r
-&nbsp; &nbsp; [Attribute Lists][]    | `attr_list`\r
-&nbsp; &nbsp; [Definition Lists][]   | `def_list`\r
-&nbsp; &nbsp; [Fenced Code Blocks][] | `fenced_code`\r
-&nbsp; &nbsp; [Footnotes][]          | `footnotes`\r
-&nbsp; &nbsp; [Tables][]             | `tables`\r
-&nbsp; &nbsp; [Smart Strong][]       | `smart_strong`\r
-[Admonition][]                       | `admonition`\r
-[CodeHilite][]                       | `codehilite`\r
-[HeaderId]                           | `headerid`\r
-[Meta-Data]                          | `meta`\r
-[New Line to Break]                  | `nl2br`\r
-[Sane Lists]                         | `sane_lists`\r
-[SmartyPants]                        | `smarty`\r
-[Table of Contents]                  | `toc`\r
-[WikiLinks]                          | `wikilinks`\r
-\r
-[Extra]: extra.html\r
-[Abbreviations]: abbreviations.html\r
-[Attribute Lists]: attr_list.html\r
-[Definition Lists]: definition_lists.html\r
-[Fenced Code Blocks]: fenced_code_blocks.html\r
-[Footnotes]: footnotes.html\r
-[Tables]: tables.html\r
-[Smart Strong]: smart_strong.html\r
-[Admonition]: admonition.html\r
-[CodeHilite]: code_hilite.html\r
-[HeaderId]: header_id.html\r
-[Meta-Data]: meta_data.html\r
-[New Line to Break]: nl2br.html\r
-[Sane Lists]: sane_lists.html\r
-[SmartyPants]: smarty.html\r
-[Table of Contents]: toc.html\r
-[WikiLinks]: wikilinks.html\r
-\r
-Third Party Extensions\r
-----------------------\r
-\r
-Various individuals and/or organizations have developed extensions which they\r
-have made available to the public. A [list of third party extensions][list]\r
-is maintained on the wiki for your convenience. The Python-Markdown team\r
-offers no official support for these extensions. Please see the developer of\r
-each extension for support.\r
-\r
-[list]: https://github.com/waylan/Python-Markdown/wiki/Third-Party-Extensions\r
+title:      Extensions
+prev_title: Command Line
+prev_url:   ../cli.html
+next_title: Extra Extension
+next_url:   extra.html
+
+
+Available Extensions
+====================
+
+Python Markdown offers a flexible extension mechanism, which makes it possible
+to change and/or extend the behavior of the parser without having to edit the
+actual source files.
+
+To use an extension, pass it to markdown with the `extensions` keyword.
+
+    markdown.markdown(some_text, extensions=[MyExtension(), 'path.to.my.ext', 'markdown.extensions.footnotes'])
+
+See the [Library Reference](../reference.html#extensions) for more details.
+
+From the command line, specify an extension with the `-x` option. 
+
+    $ python -m markdown -x markdown.extensions.footnotes -x markdown.extensions.tables input.txt > output.html
+
+See the [Command Line docs](../cli.html) or use the `--help` option for more details.
+
+!!! seealso "See Also"
+    If you would like to write your own extensions, see the
+    [Extension API](api.html) for details.
+
+Officially Supported Extensions
+-------------------------------
+
+The extensions listed below are included with (at least) the most recent release
+and are officially supported by Python-Markdown. Any documentation is
+maintained here and all bug reports should be made to the project. If you
+have a typical install of Python-Markdown, these extensions are already
+available to you using the "name" listed in the second column below.
+
+Extension                            | "Name"
+------------------------------------ | ---------------
+[Extra]                              | `markdown.extensions.extra`
+&nbsp; &nbsp; [Abbreviations][]      | `markdown.extensions.abbr`
+&nbsp; &nbsp; [Attribute Lists][]    | `markdown.extensions.attr_list`
+&nbsp; &nbsp; [Definition Lists][]   | `markdown.extensions.def_list`
+&nbsp; &nbsp; [Fenced Code Blocks][] | `markdown.extensions.fenced_code`
+&nbsp; &nbsp; [Footnotes][]          | `markdown.extensions.footnotes`
+&nbsp; &nbsp; [Tables][]             | `markdown.extensions.tables`
+&nbsp; &nbsp; [Smart Strong][]       | `markdown.extensions.smart_strong`
+[Admonition][]                       | `markdown.extensions.admonition`
+[CodeHilite][]                       | `markdown.extensions.codehilite`
+[HeaderId]                           | `markdown.extensions.headerid`
+[Meta-Data]                          | `markdown.extensions.meta`
+[New Line to Break]                  | `markdown.extensions.nl2br`
+[Sane Lists]                         | `markdown.extensions.sane_lists`
+[SmartyPants]                        | `markdown.extensions.smarty`
+[Table of Contents]                  | `markdown.extensions.toc`
+[WikiLinks]                          | `markdown.extensions.wikilinks`
+
+[Extra]: extra.html
+[Abbreviations]: abbreviations.html
+[Attribute Lists]: attr_list.html
+[Definition Lists]: definition_lists.html
+[Fenced Code Blocks]: fenced_code_blocks.html
+[Footnotes]: footnotes.html
+[Tables]: tables.html
+[Smart Strong]: smart_strong.html
+[Admonition]: admonition.html
+[CodeHilite]: code_hilite.html
+[HeaderId]: header_id.html
+[Meta-Data]: meta_data.html
+[New Line to Break]: nl2br.html
+[Sane Lists]: sane_lists.html
+[SmartyPants]: smarty.html
+[Table of Contents]: toc.html
+[WikiLinks]: wikilinks.html
+
+Third Party Extensions
+----------------------
+
+Various individuals and/or organizations have developed extensions which they
+have made available to the public. A [list of third party extensions][list]
+is maintained on the wiki for your convenience. The Python-Markdown team
+offers no official support for these extensions. Please see the developer of
+each extension for support.
+
+[list]: https://github.com/waylan/Python-Markdown/wiki/Third-Party-Extensions
index 14d320b90b87e7fb9e61c0952fe30ded1403438b..406755b3f933956e31355abc27e4356144f4ceb7 100644 (file)
-title:      Meta-Data Extension\r
-prev_title: HeaderId Extension\r
-prev_url:   header_id.html\r
-next_title: New Line to Break Extension\r
-next_url:   nl2br.html\r
-\r
-Meta-Data\r
-=========\r
-\r
-Summary\r
--------\r
-\r
-The Meta-Data extension adds a syntax for defining meta-data about a document.\r
-It is inspired by and follows the syntax of [MultiMarkdown][]. Currently,\r
-this extension does not use the meta-data in any way, but simply provides it as\r
-a `Meta` attribute of a Markdown instance for use by other extensions or\r
-directly by your python code.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-[MultiMarkdown]: http://fletcherpenney.net/MultiMarkdown_Syntax_Guide#metadata\r
-\r
-Syntax\r
-------\r
-\r
-Meta-data consists of a series of keywords and values defined at the beginning \r
-of a markdown document like this:\r
-\r
-    Title:   My Document\r
-    Summary: A brief description of my document.\r
-    Authors: Waylan Limberg\r
-             John Doe\r
-    Date:    October 2, 2007\r
-    blank-value: \r
-    base_url: http://example.com\r
-\r
-    This is the first paragraph of the document.\r
-\r
-The keywords are case-insensitive and may consist of letters, numbers, \r
-underscores and dashes and must end with a colon. The values consist of \r
-anything following the colon on the line and may even be blank.\r
-\r
-If a line is indented by 4 or more spaces, that line is assumed to be an\r
-additional line of the value for the previous keyword. A keyword may have as\r
-many lines as desired. \r
-\r
-The first blank line ends all meta-data for the document. Therefore, the first \r
-line of a document must not be blank. All meta-data is stripped from the \r
-document prior to any further processing by Markdown.\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `meta`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
-\r
-Accessing the Meta-Data\r
------------------------\r
-\r
-The meta-data is made available as a python Dict in the `Meta` attribute of an \r
-instance of the Markdown class. For example, using the above document:\r
-\r
-    >>> md = markdown.Markdown(extensions = ['meta'])\r
-    >>> html = md.convert(text)\r
-    >>> # Meta-data has been stripped from output\r
-    >>> print html\r
-    <p>This is the first paragraph of the document.</p>\r
-\r
-    >>> # View meta-data\r
-    >>> print md.Meta\r
-    {\r
-    'title' : ['My Document'],\r
-    'summary' : ['A brief description of my document.'],\r
-    'authors' : ['Waylan Limberg', 'John Doe'],\r
-    'date' : ['October 2, 2007'],\r
-    'blank-value' : [''],\r
-    'base_url' : ['http://example.com']\r
-    }\r
-\r
-Note that the keys are all lowercase and the values consist of a list of \r
-strings where each item is one line for that key. This way, one could preserve \r
-line breaks if desired. Or the items could be joined where appropriate. No \r
-assumptions are made regarding the data. It is simply passed as found to the \r
-`Meta` attribute.\r
-\r
-Perhaps the meta-data could be passed into a template system, or used by \r
-various Markdown extensions. The possibilities are left to the imagination of \r
-the developer.\r
-\r
-Compatible Extensions\r
----------------------\r
-\r
-The following extensions are currently known to work with the Meta-Data \r
-extension. The keywords they are known to support are also listed.\r
-\r
-* [HeaderId](header_id.html)\r
-    * `header_level`\r
-    * `header_forceid`\r
-* [WikiLinks](wikilinks.html)\r
-    * `wiki_base_url`\r
-    * `wiki_end_url`\r
-    * `wiki_html_class`\r
-\r
+title:      Meta-Data Extension
+prev_title: HeaderId Extension
+prev_url:   header_id.html
+next_title: New Line to Break Extension
+next_url:   nl2br.html
+
+Meta-Data
+=========
+
+Summary
+-------
+
+The Meta-Data extension adds a syntax for defining meta-data about a document.
+It is inspired by and follows the syntax of [MultiMarkdown][]. Currently,
+this extension does not use the meta-data in any way, but simply provides it as
+a `Meta` attribute of a Markdown instance for use by other extensions or
+directly by your python code.
+
+This extension is included in the standard Markdown library.
+
+[MultiMarkdown]: http://fletcherpenney.net/MultiMarkdown_Syntax_Guide#metadata
+
+Syntax
+------
+
+Meta-data consists of a series of keywords and values defined at the beginning 
+of a markdown document like this:
+
+    Title:   My Document
+    Summary: A brief description of my document.
+    Authors: Waylan Limberg
+             John Doe
+    Date:    October 2, 2007
+    blank-value: 
+    base_url: http://example.com
+
+    This is the first paragraph of the document.
+
+The keywords are case-insensitive and may consist of letters, numbers, 
+underscores and dashes and must end with a colon. The values consist of 
+anything following the colon on the line and may even be blank.
+
+If a line is indented by 4 or more spaces, that line is assumed to be an
+additional line of the value for the previous keyword. A keyword may have as
+many lines as desired. 
+
+The first blank line ends all meta-data for the document. Therefore, the first 
+line of a document must not be blank. All meta-data is stripped from the 
+document prior to any further processing by Markdown.
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.meta`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
+
+Accessing the Meta-Data
+-----------------------
+
+The meta-data is made available as a python Dict in the `Meta` attribute of an 
+instance of the Markdown class. For example, using the above document:
+
+    >>> md = markdown.Markdown(extensions = ['markdown.extensions.meta'])
+    >>> html = md.convert(text)
+    >>> # Meta-data has been stripped from output
+    >>> print html
+    <p>This is the first paragraph of the document.</p>
+
+    >>> # View meta-data
+    >>> print md.Meta
+    {
+    'title' : ['My Document'],
+    'summary' : ['A brief description of my document.'],
+    'authors' : ['Waylan Limberg', 'John Doe'],
+    'date' : ['October 2, 2007'],
+    'blank-value' : [''],
+    'base_url' : ['http://example.com']
+    }
+
+Note that the keys are all lowercase and the values consist of a list of 
+strings where each item is one line for that key. This way, one could preserve 
+line breaks if desired. Or the items could be joined where appropriate. No 
+assumptions are made regarding the data. It is simply passed as found to the 
+`Meta` attribute.
+
+Perhaps the meta-data could be passed into a template system, or used by 
+various Markdown extensions. The possibilities are left to the imagination of 
+the developer.
+
+Compatible Extensions
+---------------------
+
+The following extensions are currently known to work with the Meta-Data 
+extension. The keywords they are known to support are also listed.
+
+* [HeaderId](header_id.html)
+    * `header_level`
+    * `header_forceid`
+* [WikiLinks](wikilinks.html)
+    * `wiki_base_url`
+    * `wiki_end_url`
+    * `wiki_html_class`
+
index 08ce1bc84846b78ac00e77379df32554a07e9b90..5cc070c1950600db13774527676a5274d1fb04ab 100644 (file)
@@ -1,37 +1,37 @@
-title:      New Line to Break Extension\r
-prev_title: Meta-Data Extension\r
-prev_url:   meta_data.html\r
-next_title: Sane Lists Extension\r
-next_url:   sane_lists.html\r
-\r
-NL2BR\r
-=====\r
-\r
-Summary\r
--------\r
-\r
-The NL2BR extension will cause newlines to be treated as hard breaks; like\r
-StackOverflow and [GitHub][] flavored Markdown do.\r
-\r
-[Github]: http://github.github.com/github-flavored-markdown/\r
-\r
-Example\r
--------\r
-\r
-    >>> import markdown\r
-    >>> text = """\r
-    ... Line 1\r
-    ... Line 2\r
-    ... """\r
-    >>> html = markdown.markdown(text, extensions=['nl2br'])\r
-    >>> print html\r
-    <p>Line 1<br />\r
-    Line 2</p>\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `nl2br`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
+title:      New Line to Break Extension
+prev_title: Meta-Data Extension
+prev_url:   meta_data.html
+next_title: Sane Lists Extension
+next_url:   sane_lists.html
+
+NL2BR
+=====
+
+Summary
+-------
+
+The NL2BR extension will cause newlines to be treated as hard breaks; like
+StackOverflow and [GitHub][] flavored Markdown do.
+
+[Github]: http://github.github.com/github-flavored-markdown/
+
+Example
+-------
+
+    >>> import markdown
+    >>> text = """
+    ... Line 1
+    ... Line 2
+    ... """
+    >>> html = markdown.markdown(text, extensions=['nl2br'])
+    >>> print html
+    <p>Line 1<br />
+    Line 2</p>
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.nl2br`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
index fa4dfa5a632d3783070ec85df2810400620f30e1..8f713d0a716abb4a31616ad8b86a93aa06284a90 100644 (file)
@@ -1,73 +1,73 @@
-title:      Sane Lists Extension\r
-prev_title: New Line to Break Extension\r
-prev_url:   nl2br.html\r
-next_title: SmartyPants Extension\r
-next_url:   smarty.html\r
-\r
-Sane Lists\r
-==========\r
-\r
-Summary\r
--------\r
-\r
-The Sane Lists extension alters the behavior of the Markdown List syntax\r
-to be less surprising.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-Sane Lists do not allow the mixing of list types. In other words, an ordered\r
-list will not continue when an unordered list item is encountered and\r
-vice versa. For example:\r
-\r
-    1. Ordered item 1\r
-    2. Ordered item 2\r
-\r
-    * Unordered item 1\r
-    * Unordered item 2\r
-\r
-will result in the following output:\r
-\r
-    <ol>\r
-      <li>Ordered item 1</li>\r
-      <li>Ordered item 2</li>\r
-    </ol>\r
-\r
-    <ul>\r
-      <li>Unordered item 1</li>\r
-      <li>Unordered item 2</li>\r
-    </ul>\r
-\r
-Whereas the default Markdown behavior would be to generate an unordered list.\r
-\r
-Note that, unlike the default Markdown behavior, if a blank line is not\r
-included between list items, the different list type is ignored completely. \r
-This corresponds to the behavior of paragraphs. For example:\r
-\r
-    A Paragraph.\r
-    * Not a list item.\r
-\r
-    1. Ordered list item.\r
-    * Not a separate list item.\r
-\r
-With this extension the above will result in the following output:\r
-\r
-    <p>A Paragraph.\r
-    * Not a list item.</p>\r
-\r
-    <ol>\r
-      <li>Ordered list item.\r
-      * Not a separate list item.</li>\r
-    </ol>\r
-\r
-In all other ways, Sane Lists should behave as normal Markdown lists.\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `sane_lists`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
+title:      Sane Lists Extension
+prev_title: New Line to Break Extension
+prev_url:   nl2br.html
+next_title: SmartyPants Extension
+next_url:   smarty.html
+
+Sane Lists
+==========
+
+Summary
+-------
+
+The Sane Lists extension alters the behavior of the Markdown List syntax
+to be less surprising.
+
+This extension is included in the standard Markdown library.
+
+Syntax
+------
+
+Sane Lists do not allow the mixing of list types. In other words, an ordered
+list will not continue when an unordered list item is encountered and
+vice versa. For example:
+
+    1. Ordered item 1
+    2. Ordered item 2
+
+    * Unordered item 1
+    * Unordered item 2
+
+will result in the following output:
+
+    <ol>
+      <li>Ordered item 1</li>
+      <li>Ordered item 2</li>
+    </ol>
+
+    <ul>
+      <li>Unordered item 1</li>
+      <li>Unordered item 2</li>
+    </ul>
+
+Whereas the default Markdown behavior would be to generate an unordered list.
+
+Note that, unlike the default Markdown behavior, if a blank line is not
+included between list items, the different list type is ignored completely. 
+This corresponds to the behavior of paragraphs. For example:
+
+    A Paragraph.
+    * Not a list item.
+
+    1. Ordered list item.
+    * Not a separate list item.
+
+With this extension the above will result in the following output:
+
+    <p>A Paragraph.
+    * Not a list item.</p>
+
+    <ol>
+      <li>Ordered list item.
+      * Not a separate list item.</li>
+    </ol>
+
+In all other ways, Sane Lists should behave as normal Markdown lists.
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.sane_lists`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
index 11838f187e461586f659f5f61c998fcb79ca4c70..e2e5458831ca2a53ae594298b87e854e9c413ee1 100644 (file)
@@ -1,41 +1,41 @@
-title:      Smart Strong Extension\r
-prev_title: Tables Extension\r
-prev_url:   tables.html\r
-next_title: Admonition Extension\r
-next_url:   admonition.html\r
-\r
-Smart_Strong\r
-============\r
-\r
-Summary\r
--------\r
-\r
-The Smart_Strong extension adds smarter handling of double underscores within\r
-words. This does for double underscores what [smart_emphasis][] does for single\r
-underscores.\r
-\r
-The Smart_Strong extension is included in the standard Markdown library.\r
-\r
-[smart_emphasis]: ../reference.html#smart_emphasis\r
-\r
-Example\r
--------\r
-\r
-    >>> import markdown\r
-    >>> markdown.markdown('Text with double__underscore__words.', \\r
-                          extensions=['smart_strong'])\r
-    u'<p>Text with double__underscore__words.</p>'\r
-    >>> markdown.markdown('__Strong__ still works.', \\r
-                          extensions=['smart_strong'])\r
-    u'<p><strong>Strong</strong> still works.</p>'\r
-    >>> markdown.markdown('__this__works__too__.', \\r
-                          extensions=['smart_strong'])\r
-    u'<p><strong>this__works__too</strong>.</p>'\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `smart_strong`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
+title:      Smart Strong Extension
+prev_title: Tables Extension
+prev_url:   tables.html
+next_title: Admonition Extension
+next_url:   admonition.html
+
+Smart_Strong
+============
+
+Summary
+-------
+
+The Smart_Strong extension adds smarter handling of double underscores within
+words. This does for double underscores what [smart_emphasis][] does for single
+underscores.
+
+The Smart_Strong extension is included in the standard Markdown library.
+
+[smart_emphasis]: ../reference.html#smart_emphasis
+
+Example
+-------
+
+    >>> import markdown
+    >>> markdown.markdown('Text with double__underscore__words.', \
+                          extensions=['markdown.extensions.smart_strong'])
+    u'<p>Text with double__underscore__words.</p>'
+    >>> markdown.markdown('__Strong__ still works.', \
+                          extensions=['markdown.extensions.smart_strong'])
+    u'<p><strong>Strong</strong> still works.</p>'
+    >>> markdown.markdown('__this__works__too__.', \
+                          extensions=['markdown.extensions.smart_strong'])
+    u'<p><strong>this__works__too</strong>.</p>'
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.smart_strong`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
index a64d3e21b3049acd0c611a6c1b2aa7ea6282ece7..a0680af257aa7233799da5931d59961444ffe759 100644 (file)
@@ -1,59 +1,80 @@
-title: SmartyPants Extension\r
-prev_title: Sane Lists Extension\r
-prev_url:   sane_lists.html\r
-next_title: Table of Contents Extension\r
-next_url:   toc.html\r
-\r
-SmartyPants\r
-===========\r
-\r
-Summary\r
--------\r
-\r
-The SmartyPants extension converts ASCII dashes, quotes and ellipses to\r
-their HTML entity equivalents.\r
-\r
-ASCII symbol | Replacements    | HTML Entities\r
------------- | --------------- | -------------------\r
-&#39;        | &lsquo; &rsquo; | `&lsquo;` `&rsquo;`\r
-&quot;       | &ldquo; &rdquo; | `&ldquo;` `&rdquo;`\r
-\...         | &hellip;        | `&hellip;`\r
-\--          | &ndash;         | `&ndash;`\r
--\--         | &mdash;         | `&mdash;`\r
-\r
-!!! note\r
-    This extension reimplements the Python [SmartyPants] \r
-    library by intregated it into the markdown parser.\r
-    While this does not provide any additional features,\r
-    it does offer a few advantages. Notably, it will not \r
-    try to work on highlighted code blocks (using the \r
-    [CodeHilite] Extension) like the third party library \r
-    has been known to do.\r
-    \r
-[SmartyPants]: http://pythonhosted.org/smartypants/\r
-[CodeHilite]: code_hilite.html\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `smarty`\r
-as the name of the extension.\r
-\r
-See the [Library Reference](../reference.html#extensions) for information about\r
-configuring extensions.\r
-\r
-The following options are provided to configure the output (all three are set to `True` by default):\r
-\r
-Option           | Description\r
-------           | -----------\r
-`smart_dashes`   | whether to convert dashes\r
-`smart_quotes`   | whether to convert quotes\r
-`smart_ellipses` | whether to convert ellipses\r
-\r
-Further reading\r
----------------\r
-\r
-SmartyPants extension is based on the original SmartyPants implementation\r
-by John Gruber. Please read it's [documentation][1] for details.\r
-\r
-[1]: http://daringfireball.net/projects/smartypants/\r
+title: SmartyPants Extension
+prev_title: Sane Lists Extension
+prev_url:   sane_lists.html
+next_title: Table of Contents Extension
+next_url:   toc.html
+
+SmartyPants
+===========
+
+Summary
+-------
+
+The SmartyPants extension converts ASCII dashes, quotes and ellipses to
+their HTML entity equivalents.
+
+ASCII symbol | Replacements    | HTML Entities       | Substitution Keys
+------------ | --------------- | ------------------- | ----------------------------------------
+`'`          | &lsquo; &rsquo; | `&lsquo;` `&rsquo;` | `'left-single-quote'`, `'right-single-quote'`
+`"`          | &ldquo; &rdquo; | `&ldquo;` `&rdquo;` | `'left-double-quote'`, `'right-double-quote'`
+`<< >>`      | &laquo; &raquo; | `&laquo;` `&raquo;` | `'left-angle-quote'`, `'right-angle-quote'`
+`...`        | &hellip;        | `&hellip;`          | `'ellipsis'`
+`--`         | &ndash;         | `&ndash;`           | `'ndash'`
+`---`        | &mdash;         | `&mdash;`           | `'mdash'`
+
+Using the configuration option 'substitutions' you can overwrite the
+default substitutions. Just pass a dict mapping (a subset of) the 
+keys to the substitution strings.
+    
+For example, one might use the following config to get correct quotes for 
+the German language:
+
+    extensionConfigs = {
+        'smarty': {
+                       'substitutions': {
+                               'left-single-quote': '&sbquo;', # sb is not a typo!
+                'right-single-quote': '&lsquo;',
+                'left-double-quote': '&bdquo;',
+                'right-double-quote': '&ldquo;'
+            }
+               }
+    }
+
+!!! note
+    This extension reimplements the Python [SmartyPants] 
+    library by intregated it into the markdown parser.
+    While this does not provide any additional features,
+    it does offer a few advantages. Notably, it will not 
+    try to work on highlighted code blocks (using the 
+    [CodeHilite] Extension) like the third party library 
+    has been known to do.
+    
+[SmartyPants]: http://pythonhosted.org/smartypants/
+[CodeHilite]: code_hilite.html
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify 
+`markdown.extensions.smarty` as the name of the extension.
+
+See the [Library Reference](../reference.html#extensions) for information about
+configuring extensions.
+
+The following options are provided to configure the output:
+
+Option                | Default value | Description
+------                | ------------- | -----------
+`smart_dashes`        | `True`        | whether to convert dashes
+`smart_quotes`        | `True`        | whether to convert straight quotes
+`smart_angled_quotes` | `False`       | whether to convert angled quotes
+`smart_ellipses`      | `True`        | whether to convert ellipses
+`substitutions`       | `{}`          | overwrite default substitutions
+
+Further reading
+---------------
+
+SmartyPants extension is based on the original SmartyPants implementation
+by John Gruber. Please read it's [documentation][1] for details.
+
+[1]: http://daringfireball.net/projects/smartypants/
index 1c140dba88e99fc7b7f4db321e33b4e64b4f8540..759772a02a7eff0a64fcdb08e45cde7897648d47 100644 (file)
@@ -1,58 +1,58 @@
-title:      Tables Extension\r
-prev_title: Footnotes Extension\r
-prev_url:   footnotes.html\r
-next_title: Smart Strong Extension\r
-next_url:   smart_strong.html\r
-\r
-Tables\r
-======\r
-\r
-Summary\r
--------\r
-\r
-The Tables extension adds the ability to create tables in Markdown documents.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-Tables are defined using the syntax established in [PHP Markdown Extra][php].\r
-\r
-[php]: http://www.michelf.com/projects/php-markdown/extra/#table\r
-\r
-Thus, the following text (taken from the above referenced PHP documentation):\r
-\r
-    First Header  | Second Header\r
-    ------------- | -------------\r
-    Content Cell  | Content Cell\r
-    Content Cell  | Content Cell\r
-\r
-will be rendered as:\r
-\r
-    <table>\r
-      <thead>\r
-        <tr>\r
-          <th>First Header</th>\r
-          <th>Second Header</th>\r
-        </tr>\r
-      </thead>\r
-      <tbody>\r
-        <tr>\r
-          <td>Content Cell</td>\r
-          <td>Content Cell</td>\r
-        </tr>\r
-        <tr>\r
-          <td>Content Cell</td>\r
-          <td>Content Cell</td>\r
-        </tr>\r
-      </tbody>\r
-    </table>\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `tables`\r
-as the name of the extension.\r
-\r
-This extension does not accept any special configuration options.\r
+title:      Tables Extension
+prev_title: Footnotes Extension
+prev_url:   footnotes.html
+next_title: Smart Strong Extension
+next_url:   smart_strong.html
+
+Tables
+======
+
+Summary
+-------
+
+The Tables extension adds the ability to create tables in Markdown documents.
+
+This extension is included in the standard Markdown library.
+
+Syntax
+------
+
+Tables are defined using the syntax established in [PHP Markdown Extra][php].
+
+[php]: http://www.michelf.com/projects/php-markdown/extra/#table
+
+Thus, the following text (taken from the above referenced PHP documentation):
+
+    First Header  | Second Header
+    ------------- | -------------
+    Content Cell  | Content Cell
+    Content Cell  | Content Cell
+
+will be rendered as:
+
+    <table>
+      <thead>
+        <tr>
+          <th>First Header</th>
+          <th>Second Header</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>Content Cell</td>
+          <td>Content Cell</td>
+        </tr>
+        <tr>
+          <td>Content Cell</td>
+          <td>Content Cell</td>
+        </tr>
+      </tbody>
+    </table>
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.tables`
+as the name of the extension.
+
+This extension does not accept any special configuration options.
index bd185d07496e981e4a9e15022b55d589f2da1f4b..7b5d11906e36d2882b4f19eb72faa1347c133914 100644 (file)
@@ -1,88 +1,88 @@
-title:      Table of Contents Extension\r
-prev_title: SmartyPants Extension\r
-prev_url:   smarty.html\r
-next_title: WikiLinks Extension\r
-next_url:   wikilinks.html\r
-\r
-Table of Contents\r
-=================\r
-\r
-Summary\r
--------\r
-\r
-The Table of Contents extension generates a Table of Contents from a Markdown\r
-document and adds it into the resulting HTML document.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-Syntax\r
-------\r
-\r
-Place a marker in the document where you would like the Table of Contents to\r
-appear. Then, a nested list of all the headers in the document will replace the\r
-marker. The marker defaults to `[TOC]` so the following document:\r
-\r
-    [TOC]\r
-\r
-    # Header 1\r
-\r
-    ## Header 2\r
-\r
-would generate the following output:\r
-\r
-    <div class="toc">\r
-      <ul>\r
-        <li><a href="#header-1">Header 1</a></li>\r
-          <ul>\r
-            <li><a href="#header-2">Header 2</a></li>\r
-          </ul>\r
-      </ul>\r
-    </div>\r
-    <h1 id="header-1">Header 1</h1>\r
-    <h1 id="header-2">Header 2</h1>\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `toc`\r
-as the name of the extension.\r
-\r
-See the [Library Reference](../reference.html#extensions) for information about\r
-configuring extensions.\r
-\r
-The following options are provided to configure the output:\r
-\r
-* **`marker`**:\r
-    Text to find and replace with the Table of Contents. Defaults\r
-    to `[TOC]`.\r
-\r
-    If a `marker` is not found in the document, then the Table of Contents is\r
-    available as an attribute of the Markdown class. This allows one to insert\r
-    the Table of Contents elsewhere in their page template. For example:\r
-\r
-        >>> text = '''\r
-        # Header 1\r
-        \r
-        ## Header 2\r
-        '''\r
-        >>> md = markdown.Markdown(extensions=['toc'])\r
-        >>> html = md.convert(text)\r
-        >>> render_some_template(context={'body': html, 'toc': md.toc})\r
-\r
-* **`slugify`**:\r
-    Callable to generate anchors based on header text. Defaults to a built in\r
-    `slugify` method. The callable must accept one argument which contains the\r
-    text content of the header and return a string which will be used as the\r
-    anchor text.\r
-\r
-* **`title`**:\r
-    Title to insert in the Table of Contents' `<div>`. Defaults to `None`.\r
-\r
-* **`anchorlink`**:\r
-    Setting to `True` will cause the headers link to themselves. Default is\r
-    `False`.\r
-\r
-* **`permalink`**:\r
-    Set to `True` to have this extension generate a Sphinx-style permanent links\r
-    near the headers (for use with Sphinx stylesheets).\r
-\r
+title:      Table of Contents Extension
+prev_title: SmartyPants Extension
+prev_url:   smarty.html
+next_title: WikiLinks Extension
+next_url:   wikilinks.html
+
+Table of Contents
+=================
+
+Summary
+-------
+
+The Table of Contents extension generates a Table of Contents from a Markdown
+document and adds it into the resulting HTML document.
+
+This extension is included in the standard Markdown library.
+
+Syntax
+------
+
+Place a marker in the document where you would like the Table of Contents to
+appear. Then, a nested list of all the headers in the document will replace the
+marker. The marker defaults to `[TOC]` so the following document:
+
+    [TOC]
+
+    # Header 1
+
+    ## Header 2
+
+would generate the following output:
+
+    <div class="toc">
+      <ul>
+        <li><a href="#header-1">Header 1</a></li>
+          <ul>
+            <li><a href="#header-2">Header 2</a></li>
+          </ul>
+      </ul>
+    </div>
+    <h1 id="header-1">Header 1</h1>
+    <h1 id="header-2">Header 2</h1>
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.toc`
+as the name of the extension.
+
+See the [Library Reference](../reference.html#extensions) for information about
+configuring extensions.
+
+The following options are provided to configure the output:
+
+* **`marker`**:
+    Text to find and replace with the Table of Contents. Defaults
+    to `[TOC]`.
+
+    If a `marker` is not found in the document, then the Table of Contents is
+    available as an attribute of the Markdown class. This allows one to insert
+    the Table of Contents elsewhere in their page template. For example:
+
+        >>> text = '''
+        # Header 1
+        
+        ## Header 2
+        '''
+        >>> md = markdown.Markdown(extensions=['markdown.extensions.toc'])
+        >>> html = md.convert(text)
+        >>> render_some_template(context={'body': html, 'toc': md.toc})
+
+* **`slugify`**:
+    Callable to generate anchors based on header text. Defaults to a built in
+    `slugify` method. The callable must accept one argument which contains the
+    text content of the header and return a string which will be used as the
+    anchor text.
+
+* **`title`**:
+    Title to insert in the Table of Contents' `<div>`. Defaults to `None`.
+
+* **`anchorlink`**:
+    Setting to `True` will cause the headers link to themselves. Default is
+    `False`.
+
+* **`permalink`**:
+    Set to `True` to have this extension generate a Sphinx-style permanent links
+    near the headers (for use with Sphinx stylesheets).
+
index d9b70af84a108d0e5fe964860031f6cecf93fedc..b52e0d052745520deb947cbcb259e887772aab7b 100644 (file)
-title:      WikiLinks Extension\r
-prev_title: Table of Contents Extension\r
-prev_url:   toc.html\r
-next_title: Extension API\r
-next_url:   api.html\r
-\r
-WikiLinks\r
-=========\r
-\r
-Summary\r
--------\r
-\r
-The WikiLinks extension adds support for [WikiLinks][]. Specifically, any\r
-``[[bracketed]]`` word is converted to a link.\r
-\r
-This extension is included in the standard Markdown library.\r
-\r
-[WikiLinks]: http://en.wikipedia.org/wiki/Wikilink\r
-\r
-Syntax\r
-------\r
-\r
-A ``[[bracketed]]`` word is any combination of  upper or lower case letters,\r
-number, dashes, underscores and spaces surrounded by double brackets. Therefore\r
-\r
-    [[Bracketed]]\r
-\r
-would produce the following html:\r
-\r
-    <a href="/Bracketed/" class="wikilink">Bracketed</a>\r
-\r
-Note that wikilinks are automatically assigned `class="wikilink"` making it\r
-easy to style wikilinks differently from other links on a page if one so\r
-desires. See below for ways to alter the class.\r
-\r
-Also note that when a space is used, the space is converted to an underscore in\r
-the link but left as-is in the label. Perhaps an example would illustrate this\r
-best:\r
-\r
-    [[Wiki Link]]\r
-\r
-becomes\r
-\r
-    <a href="/Wiki_Link/" class="wikilink">Wiki Link</a>\r
-\r
-Usage\r
------\r
-\r
-See [Extensions](index.html) for general extension usage, specify `wikilinks`\r
-as the name of the extension.\r
-\r
-See the [Library Reference](../reference.html#extensions) for information about\r
-configuring extensions.\r
-\r
-The default behavior is to point each link to the document root of the current\r
-domain and close with a trailing slash. Additionally, each link is assigned to\r
-the html class `wikilink`.\r
-\r
-The following options are provided to change the default behavior:\r
-\r
-* **`base_url`**: String to append to beginning of URL.\r
-\r
-    Default: `'/'`\r
-\r
-* **`end_url`**: String to append to end of URL.\r
-\r
-    Default: `'/'`\r
-\r
-* **`html_class`**: CSS class. Leave blank for none.\r
-\r
-    Default: `'wikilink'`\r
-\r
-* **`build_url`**: Callable which formats the URL from its parts.\r
-\r
-### Examples ###\r
-\r
-For an example, let us suppose links should always point to the subdirectory\r
-`/wiki/` and end with `.html`\r
-\r
-    >>> html = markdown.markdown(text,\r
-    ...     ['wikilinks(base_url=/wiki/,end_url=.html)']\r
-    ... )\r
-\r
-The above would result in the following link for `[[WikiLink]]`.\r
-\r
-    <a href="/wiki/WikiLink.html" class="wikilink">WikiLink</a>\r
-\r
-If you want to do more that just alter the base and/or end of the URL, you\r
-could also pass in a callable which must accept three arguments (``label``,\r
-``base``, and ``end``). The callable must return the URL in it's entirety.\r
-\r
-    def my_url_builder(label, base, end):\r
-        # do stuff\r
-        return url\r
-\r
-    md = markdown.Markdown(\r
-            extensions=['wikilinks],\r
-            extension_configs={'wikilinks' : [('build_url', my_url_builder)]}\r
-    )\r
-\r
-The option is also provided to change or remove the class attribute.\r
-\r
-    >>> html = markdown.markdown(text,\r
-    ...     ['wikilinks(html_class=myclass)']\r
-    ... )\r
-\r
-Would cause all wikilinks to be assigned to the class `myclass`.\r
-\r
-    <a href="/WikiLink/" class="myclass">WikiLink</a>\r
-\r
-Using with Meta-Data extension\r
-------------------------------\r
-\r
-The WikiLink extension also supports the [Meta-Data](meta_data.html) extension.\r
-Please see the documentation for that extension for specifics. The supported\r
-meta-data keywords are:\r
-\r
-* `wiki_base_url`\r
-* `wiki_end_url`\r
-* `wiki_html_class`\r
-\r
-When used, the meta-data will override the settings provided through the\r
-`extension_configs` interface.\r
-\r
-This document:\r
-\r
-    wiki_base_url: http://example.com/\r
-    wiki_end_url:  .html\r
-    wiki_html_class:\r
-\r
-    A [[WikiLink]] in the first paragraph.\r
-\r
-would result in the following output (notice the blank `wiki_html_class`):\r
-\r
-    <p>A <a href="http://example.com/WikiLink.html">WikiLink</a> in the first paragraph.</p>\r
+title:      WikiLinks Extension
+prev_title: Table of Contents Extension
+prev_url:   toc.html
+next_title: Extension API
+next_url:   api.html
+
+WikiLinks
+=========
+
+Summary
+-------
+
+The WikiLinks extension adds support for [WikiLinks][]. Specifically, any
+``[[bracketed]]`` word is converted to a link.
+
+This extension is included in the standard Markdown library.
+
+[WikiLinks]: http://en.wikipedia.org/wiki/Wikilink
+
+Syntax
+------
+
+A ``[[bracketed]]`` word is any combination of  upper or lower case letters,
+number, dashes, underscores and spaces surrounded by double brackets. Therefore
+
+    [[Bracketed]]
+
+would produce the following html:
+
+    <a href="/Bracketed/" class="wikilink">Bracketed</a>
+
+Note that wikilinks are automatically assigned `class="wikilink"` making it
+easy to style wikilinks differently from other links on a page if one so
+desires. See below for ways to alter the class.
+
+Also note that when a space is used, the space is converted to an underscore in
+the link but left as-is in the label. Perhaps an example would illustrate this
+best:
+
+    [[Wiki Link]]
+
+becomes
+
+    <a href="/Wiki_Link/" class="wikilink">Wiki Link</a>
+
+Usage
+-----
+
+See [Extensions](index.html) for general extension usage, specify `markdown.extensions.wikilinks`
+as the name of the extension.
+
+See the [Library Reference](../reference.html#extensions) for information about
+configuring extensions.
+
+The default behavior is to point each link to the document root of the current
+domain and close with a trailing slash. Additionally, each link is assigned to
+the html class `wikilink`.
+
+The following options are provided to change the default behavior:
+
+* **`base_url`**: String to append to beginning of URL.
+
+    Default: `'/'`
+
+* **`end_url`**: String to append to end of URL.
+
+    Default: `'/'`
+
+* **`html_class`**: CSS class. Leave blank for none.
+
+    Default: `'wikilink'`
+
+* **`build_url`**: Callable which formats the URL from its parts.
+
+### Examples ###
+
+For an example, let us suppose links should always point to the subdirectory
+`/wiki/` and end with `.html`
+
+    >>> from markdown.extensions.wikilinks import WikiLinkExtension
+       >>> html = markdown.markdown(text,
+    ...     extensions=[WikiLinkExtension(base_url='/wiki/', end_url='.html')]
+    ... )
+
+The above would result in the following link for `[[WikiLink]]`.
+
+    <a href="/wiki/WikiLink.html" class="wikilink">WikiLink</a>
+
+If you want to do more that just alter the base and/or end of the URL, you
+could also pass in a callable which must accept three arguments (``label``,
+``base``, and ``end``). The callable must return the URL in it's entirety.
+
+    >>> def my_url_builder(label, base, end):
+    ...    # do stuff
+    ...    return url
+       ...
+    >>> html = markdown.markdown(text,
+    ...     extensions=[WikiLinkExtension(build_url=my_url_builder)],
+    ... )
+
+The option is also provided to change or remove the class attribute.
+
+    >>> html = markdown.markdown(text,
+    ...     extensions=[WikiLinkExtension(html_class='myclass')]
+    ... )
+
+Would cause all wikilinks to be assigned to the class `myclass`.
+
+    <a href="/WikiLink/" class="myclass">WikiLink</a>
+
+Using with Meta-Data extension
+------------------------------
+
+The WikiLink extension also supports the [Meta-Data](meta_data.html) extension.
+Please see the documentation for that extension for specifics. The supported
+meta-data keywords are:
+
+* `wiki_base_url`
+* `wiki_end_url`
+* `wiki_html_class`
+
+When used, the meta-data will override the settings provided through the
+`extension_configs` interface.
+
+This document:
+
+    wiki_base_url: http://example.com/
+    wiki_end_url:  .html
+    wiki_html_class:
+
+    A [[WikiLink]] in the first paragraph.
+
+would result in the following output (notice the blank `wiki_html_class`):
+
+    <p>A <a href="http://example.com/WikiLink.html">WikiLink</a> in the first paragraph.</p>
index 7318fe660fae7fc5a44c6c8bea37e5be7ccacf69..bfe18182b3adf4c0707fe216abb905c34a32e77d 100644 (file)
-next_url:   install.html\r
-next_title: Installation\r
-prev_title: Table of Contents\r
-prev_url:   siteindex.html\r
-\r
-Python-Markdown\r
-===============\r
-\r
-This is a Python implementation of John Gruber's \r
-[Markdown](http://daringfireball.net/projects/markdown/). \r
-It is almost completely compliant with the reference implementation,\r
-though there are a few very minor [differences](#differences). See John's \r
-[Syntax Documentation](http://daringfireball.net/projects/markdown/syntax) \r
-for the syntax rules.\r
-\r
-See the [installation instructions](install.html) to get started.\r
-\r
-Goals\r
------\r
-\r
-The Python-Markdown project is developed with the following goals in mind:\r
-\r
-* Maintain a Python 2 *and* Python 3 library (with an optional CLI wrapper)\r
-  suited to use in web server environments (never raise an exception, never \r
-  write to stdout, etc.) as an implementation of the markdown parser that \r
-  follows the [syntax rules](http://daringfireball.net/projects/markdown/syntax)\r
-  and the behavior of the original (markdown.pl) implementation as reasonably\r
-  as possible (see [differences](#differences) for a few exceptions).\r
-\r
-* Provide an [Extension API](extensions/api.html) which makes it possible\r
-  to change and/or extend the behavior of the parser.\r
-\r
-Features\r
---------\r
-\r
-In addition to the basic markdown syntax, Python-Markdown supports the following\r
-features:\r
-\r
-* __International Input__\r
-\r
-    Python-Markdown will accept [input](reference.html#text) in any language \r
-    supported by Unicode including bi-directional text. In fact the test suite \r
-    includes documents written in Russian and Arabic.\r
-\r
-* __Extensions__\r
-\r
-    Various [extensions](extensions/index.html) are provided (including \r
-    [extra](extensions/extra.html)) to change and/or extend the base syntax. \r
-    Additionally, a public [Extension API](extensions/api.html) is available \r
-    to write your own extensions.\r
-\r
-* __Output Formats__\r
-\r
-    Python-Markdown can output documents in HTML4, XHTML and HTML5. See the\r
-    [Library Reference](reference.html#output_format) for details.\r
-\r
-* __"Safe Mode"__\r
-\r
-    When using Python-Markdown to parse input from untrusted users on the web,\r
-    the handling of raw HTML can be controlled in various ways to prevent \r
-    harmful code from being injected into your site. See the\r
-    [Library Reference](reference.html#safe_mode) for details.\r
-\r
-* __Command Line Interface__\r
-\r
-    In addition to being a Python Library, a \r
-    [command line script](cli.html) is available for your convenience.\r
-\r
-Differences\r
------------\r
-\r
-While Python-Markdown strives to fully implement markdown as described in the \r
-[syntax rules](http://daringfireball.net/projects/markdown/syntax), the rules \r
-can be interpreted in different ways and different implementations \r
-occasionally vary in their behavior (see the \r
-[Babelmark FAQ](http://johnmacfarlane.net/babelmark2/faq.html#what-are-some-examples-of-interesting-divergences-between-implementations)\r
-for some examples). Known and intentional differences found in Python-Markdown \r
-are summarized below:\r
-\r
-* __Middle-Word Emphasis__\r
-\r
-    Python-Markdown defaults to ignoring middle-word emphasis. In other words,\r
-    `some_long_filename.txt` will not become `some<em>long</em>filename.txt`.\r
-    This can be switched off if desired. See the \r
-    [Library Reference](reference.html#smart_emphasis) for details.\r
-\r
-* __Indentation/Tab Length__\r
-\r
-    The [syntax rules](http://daringfireball.net/projects/markdown/syntax#list) \r
-    clearly state that when a list item consists of multiple paragraphs, "each \r
-    subsequent paragraph in a list item **must** be indented by either 4 spaces \r
-    or one tab" (emphasis added). However, many implementations do not enforce \r
-    this rule and allow less than 4 spaces of indentation. The implementers of \r
-    Python-Markdown consider it a bug to not enforce this rule. \r
-\r
-    This applies to any block level elements nested in a list, including\r
-    paragraphs, sub-lists, blockquotes, code blocks, etc. They **must** always \r
-    be indented by at least four spaces (or one tab) for each level of nesting.\r
-\r
-    In the event that one would prefer different behavior,\r
-    [tab_length](reference.html#tab_length) can be set to whatever length is \r
-    desired. Be warned however, as this will affect indentation for all aspects \r
-    of the syntax (including root level code blocks).\r
-\r
-* __Consecutive Lists__\r
-\r
-    While the syntax rules are not clear on this, many implementations (including \r
-    the original) do not end one list and start a second list when the list marker\r
-    (asterisks, pluses, hyphens, and numbers) changes. For consistency, \r
-    Python-Markdown maintains the same behavior with no plans to change in the \r
-    foreseeable future. That said, the [Sane List Extension](extensions/sane_lists.html)\r
-    is available to provide a less surprising behavior.\r
-    \r
-\r
-Support\r
--------\r
-\r
-You may ask for help and discuss various other issues on the [mailing list][] \r
-and report bugs on the [bug tracker][].\r
-\r
-[mailing list]: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss\r
-[bug tracker]: http://github.com/waylan/Python-Markdown/issues \r
+next_url:   install.html
+next_title: Installation
+prev_title: Table of Contents
+prev_url:   siteindex.html
+
+Python-Markdown
+===============
+
+This is a Python implementation of John Gruber's 
+[Markdown](http://daringfireball.net/projects/markdown/). 
+It is almost completely compliant with the reference implementation,
+though there are a few very minor [differences](#differences). See John's 
+[Syntax Documentation](http://daringfireball.net/projects/markdown/syntax) 
+for the syntax rules.
+
+See the [installation instructions](install.html) to get started.
+
+Goals
+-----
+
+The Python-Markdown project is developed with the following goals in mind:
+
+* Maintain a Python 2 *and* Python 3 library (with an optional CLI wrapper)
+  suited to use in web server environments (never raise an exception, never 
+  write to stdout, etc.) as an implementation of the markdown parser that 
+  follows the [syntax rules](http://daringfireball.net/projects/markdown/syntax)
+  and the behavior of the original (markdown.pl) implementation as reasonably
+  as possible (see [differences](#differences) for a few exceptions).
+
+* Provide an [Extension API](extensions/api.html) which makes it possible
+  to change and/or extend the behavior of the parser.
+
+Features
+--------
+
+In addition to the basic markdown syntax, Python-Markdown supports the following
+features:
+
+* __International Input__
+
+    Python-Markdown will accept [input](reference.html#text) in any language 
+    supported by Unicode including bi-directional text. In fact the test suite 
+    includes documents written in Russian and Arabic.
+
+* __Extensions__
+
+    Various [extensions](extensions/index.html) are provided (including 
+    [extra](extensions/extra.html)) to change and/or extend the base syntax. 
+    Additionally, a public [Extension API](extensions/api.html) is available 
+    to write your own extensions.
+
+* __Output Formats__
+
+    Python-Markdown can output documents in HTML4, XHTML and HTML5. See the
+    [Library Reference](reference.html#output_format) for details.
+
+* __Command Line Interface__
+
+    In addition to being a Python Library, a 
+    [command line script](cli.html) is available for your convenience.
+
+Differences
+-----------
+
+While Python-Markdown strives to fully implement markdown as described in the 
+[syntax rules](http://daringfireball.net/projects/markdown/syntax), the rules 
+can be interpreted in different ways and different implementations 
+occasionally vary in their behavior (see the 
+[Babelmark FAQ](http://johnmacfarlane.net/babelmark2/faq.html#what-are-some-examples-of-interesting-divergences-between-implementations)
+for some examples). Known and intentional differences found in Python-Markdown 
+are summarized below:
+
+* __Middle-Word Emphasis__
+
+    Python-Markdown defaults to ignoring middle-word emphasis. In other words,
+    `some_long_filename.txt` will not become `some<em>long</em>filename.txt`.
+    This can be switched off if desired. See the 
+    [Library Reference](reference.html#smart_emphasis) for details.
+
+* __Indentation/Tab Length__
+
+    The [syntax rules](http://daringfireball.net/projects/markdown/syntax#list) 
+    clearly state that when a list item consists of multiple paragraphs, "each 
+    subsequent paragraph in a list item **must** be indented by either 4 spaces 
+    or one tab" (emphasis added). However, many implementations do not enforce 
+    this rule and allow less than 4 spaces of indentation. The implementers of 
+    Python-Markdown consider it a bug to not enforce this rule. 
+
+    This applies to any block level elements nested in a list, including
+    paragraphs, sub-lists, blockquotes, code blocks, etc. They **must** always 
+    be indented by at least four spaces (or one tab) for each level of nesting.
+
+    In the event that one would prefer different behavior,
+    [tab_length](reference.html#tab_length) can be set to whatever length is 
+    desired. Be warned however, as this will affect indentation for all aspects 
+    of the syntax (including root level code blocks).
+
+* __Consecutive Lists__
+
+    While the syntax rules are not clear on this, many implementations (including 
+    the original) do not end one list and start a second list when the list marker
+    (asterisks, pluses, hyphens, and numbers) changes. For consistency, 
+    Python-Markdown maintains the same behavior with no plans to change in the 
+    foreseeable future. That said, the [Sane List Extension](extensions/sane_lists.html)
+    is available to provide a less surprising behavior.
+    
+
+Support
+-------
+
+You may ask for help and discuss various other issues on the [mailing list][] 
+and report bugs on the [bug tracker][].
+
+[mailing list]: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss
+[bug tracker]: http://github.com/waylan/Python-Markdown/issues 
index 9bcbe8e5c3891b84522738151eb6ba0f2255fc8c..d24e1bae5d6d0bd8f7c013d577064a29224da576 100644 (file)
@@ -1,67 +1,67 @@
-title:      Installation\r
-prev_title: Summary\r
-prev_url:   index.html\r
-next_title: Library Reference\r
-next_url:   reference.html\r
-\r
-Installing Python-Markdown\r
-==========================\r
-\r
-The Easy Way\r
-------------\r
-\r
-The easiest way to install Python-Markdown is simply to type one of the \r
-following commands from the command line as an Admin/Root user:\r
-\r
-    pip install markdown\r
-\r
-or\r
-\r
-    easy_install markdown\r
-\r
-That's it! You're ready to [use](reference.html) Python-Markdown. Enjoy!\r
-\r
-Installing on Windows {: #windows }\r
------------------------------------\r
-\r
-Download the Windows installer (.exe) from \r
-[PyPI](http://pypi.python.org/pypi/Markdown)\r
-\r
-Double-click the file and follow the instructions.\r
-\r
-If you prefer to manually install Python-Markdown in Windows, download the\r
-Zip file, unzip it, and on the command line in the directory you unzipped to,\r
-run the following command:\r
-\r
-    C://path/to/python.exe setup.py install\r
-\r
-If you plan to use the provided command line script, you need to make sure your\r
-script directory is on your system path. On a typical Python install of Windows\r
-the Scripts directory is `C:\PythonXX\Scripts\` (were "XX" is the Python version\r
-number, i.e., "27"). Adjust the path according to your system and add to your \r
-system path.\r
-\r
-Installing on *nix Systems {: #linux }\r
---------------------------------------\r
-\r
-From the command line do the following (where 2.x is the version number):\r
-\r
-    wget http://pypi.python.org/packages/source/M/Markdown/Markdown-2.x.tar.gz\r
-    tar xvzf Markdown-2.x.tar.gz\r
-    cd markdown-2.x/\r
-    sudo python setup.py install\r
-\r
-See [PyPI](http://pypi.python.org/pypi/Markdown) for all available versions.\r
-\r
-Using the Git Repository {: #git }\r
-----------------------------------\r
-\r
-If you're the type that likes to live on the edge, you may want to keep up with \r
-the latest additions and bug fixes in the repository between releases.\r
-Python-Markdown is maintained in a Git repository on github.com. To\r
-get a copy of Python-Markdown from the repository do the following from the\r
-command line:\r
-\r
-    git clone git://github.com/waylan/Python-Markdown.git python-markdown\r
-    cd python-markdown\r
-    python setup.py install\r
+title:      Installation
+prev_title: Summary
+prev_url:   index.html
+next_title: Library Reference
+next_url:   reference.html
+
+Installing Python-Markdown
+==========================
+
+The Easy Way
+------------
+
+The easiest way to install Python-Markdown is simply to type one of the 
+following commands from the command line as an Admin/Root user:
+
+    pip install markdown
+
+or
+
+    easy_install markdown
+
+That's it! You're ready to [use](reference.html) Python-Markdown. Enjoy!
+
+Installing on Windows {: #windows }
+-----------------------------------
+
+Download the Windows installer (.exe) from 
+[PyPI](http://pypi.python.org/pypi/Markdown)
+
+Double-click the file and follow the instructions.
+
+If you prefer to manually install Python-Markdown in Windows, download the
+Zip file, unzip it, and on the command line in the directory you unzipped to,
+run the following command:
+
+    C://path/to/python.exe setup.py install
+
+If you plan to use the provided command line script, you need to make sure your
+script directory is on your system path. On a typical Python install of Windows
+the Scripts directory is `C:\PythonXX\Scripts\` (were "XX" is the Python version
+number, i.e., "27"). Adjust the path according to your system and add to your 
+system path.
+
+Installing on *nix Systems {: #linux }
+--------------------------------------
+
+From the command line do the following (where 2.x is the version number):
+
+    wget http://pypi.python.org/packages/source/M/Markdown/Markdown-2.x.tar.gz
+    tar xvzf Markdown-2.x.tar.gz
+    cd markdown-2.x/
+    sudo python setup.py install
+
+See [PyPI](http://pypi.python.org/pypi/Markdown) for all available versions.
+
+Using the Git Repository {: #git }
+----------------------------------
+
+If you're the type that likes to live on the edge, you may want to keep up with 
+the latest additions and bug fixes in the repository between releases.
+Python-Markdown is maintained in a Git repository on github.com. To
+get a copy of Python-Markdown from the repository do the following from the
+command line:
+
+    git clone git://github.com/waylan/Python-Markdown.git python-markdown
+    cd python-markdown
+    python setup.py install
index 779c2856b6262e15c90da1cd2b0007586e7c9442..2e1985d6817523c3392e537e0efc00e1895724ad 100644 (file)
-title:      Library Reference\r
-prev_title: Installation\r
-prev_url:   install.html\r
-next_title: Command Line\r
-next_url:   cli.html\r
-\r
-\r
-Using Markdown as a Python Library\r
-==================================\r
-\r
-First and foremost, Python-Markdown is intended to be a python library module\r
-used by various projects to convert Markdown syntax into HTML.\r
-\r
-The Basics\r
-----------\r
-\r
-To use markdown as a module:\r
-\r
-    import markdown\r
-    html = markdown.markdown(your_text_string)\r
-\r
-The Details\r
------------\r
-\r
-Python-Markdown provides two public functions ([`markdown.markdown`](#markdown)\r
-and [`markdown.markdownFromFile`](#markdownFromFile)) both of which wrap the \r
-public class [`markdown.Markdown`](#Markdown). If you're processing one \r
-document at a time, the functions will serve your needs. However, if you need \r
-to process multiple documents, it may be advantageous to create a single \r
-instance of the `markdown.Markdown` class and pass multiple documents through \r
-it.\r
-\r
-### `markdown.markdown (text [, **kwargs])` {: #markdown }\r
-\r
-The following options are available on the `markdown.markdown` function:\r
-\r
-* __`text`__{: #text } (required): The source unicode string.\r
-\r
-    !!! note "Important"\r
-        Python-Markdown expects **Unicode** as input (although\r
-        some simple ASCII strings *may* work) and returns output as Unicode.\r
-        Do not pass encoded strings to it! If your input is encoded, (e.g. as \r
-        UTF-8), it is your responsibility to decode it.  For example:\r
-\r
-            input_file = codecs.open("some_file.txt", mode="r", encoding="utf-8")\r
-            text = input_file.read()\r
-            html = markdown.markdown(text)\r
-\r
-        If you want to write the output to disk, you *must* encode it yourself:\r
-\r
-            output_file = codecs.open("some_file.html", "w", \r
-                                      encoding="utf-8", \r
-                                      errors="xmlcharrefreplace"\r
-            )\r
-            output_file.write(html)\r
-\r
-* __`extensions`__{: #extensions }: A list of extensions.\r
-\r
-    Python-Markdown provides an [API](extensions/api.html) for third parties to\r
-    write extensions to the parser adding their own additions or changes to the\r
-    syntax. A few commonly used extensions are shipped with the markdown \r
-    library. See the [extension documentation](extensions/index.html) for a \r
-    list of available extensions.\r
-\r
-    The list of extensions may contain instances of extensions and/or strings \r
-    of extension names. \r
-\r
-        extensions=[MyExtension(), 'path.to.my.ext', 'extra']\r
-    \r
-    When passing in extension instances, each class instance must be a subclass\r
-    of `markdown.extensions.Extension` and any configuration options should be \r
-    defined when initiating the class instance rather than using the \r
-    [extension_configs](#extension_configs) keyword. For example:\r
-\r
-        from markdown.extensions import Extension\r
-        class MyExtension(Extension):\r
-            # define your extension here...\r
-    \r
-        markdown.markdown(text, extensions=[MyExtension(configs={'option': 'value'}))\r
-\r
-    If an extension name is provided as a string, the extension must be \r
-    importable as a python module on your PYTHONPATH. Python's dot notation is \r
-    supported. Therefore, to import the 'extra' extension, one could do \r
-    `extensions=['markdown.extensions.extra']` However, if no dots are provided \r
-    in the string (`extensions=['extra']`) Markdown will first look for the \r
-    module `markdown.extensions.extra` (the built-in extension), then a module \r
-    named `mdx_extra` ('mdx_' will be appended to the beginning of the string) \r
-    at the root of your PYTHONPATH. \r
-\r
-    When loading an extension by name (as a sting), you may either pass in\r
-    configuration settings to the extension using the \r
-    [extension_configs](#extension_configs) keyword or by appending the \r
-    settings to the name in the following format:\r
-\r
-        extensions=['name(option1=value,option2=value)']\r
-    \r
-    Note that there are no quotes or whitespace in the above format, which \r
-    severely limits how it can be used. For more complex settings, it is \r
-    suggested that the [extension_configs](#extension_configs) keyword\r
-    be used or an instance of a class be passed in.\r
-\r
-    !!! seealso "See Also"\r
-        See the documentation of the [Extension API](extensions/api.html) for \r
-        assistance in creating extensions.\r
-\r
-* __`extension_configs`__{: #extension_configs }: A dictionary of\r
-  configuration settings for extensions.\r
-\r
-    Any configuration settings will only be passed to extensions loaded by name \r
-    (as a string). When loading extensions as class instances, pass the \r
-    configuration settings directly to the class when initializing it. \r
-    \r
-    The dictionary of configuration settings must be in the following format:\r
-\r
-        extension_configs = {'extension_name_1':\r
-                               [\r
-                                  ('option_1', 'value_1'),\r
-                                  ('option_2', 'value_2')\r
-                               ],\r
-                             'extension_name_2':\r
-                               [\r
-                                  ('option_1', 'value_1')\r
-                               ]\r
-                            }\r
-    See the documentation specific to the extension you are using for help in \r
-    specifying configuration settings for that extension.\r
-\r
-* __`output_format`__{: #output_format }: Format of output. \r
-\r
-    Supported formats are:\r
-\r
-    * `"xhtml1"`: Outputs XHTML 1.x. **Default**.\r
-    * `"xhtml5"`: Outputs XHTML style tags of HTML 5\r
-    * `"xhtml"`: Outputs latest supported version of XHTML (currently XHTML 1.1).\r
-    * `"html4"`: Outputs HTML 4\r
-    * `"html5"`: Outputs HTML style tags of HTML 5\r
-    * `"html"`: Outputs latest supported version of HTML (currently HTML 4).\r
-\r
-    The values can be in either lowercase or uppercase.\r
-\r
-    !!! warning\r
-        It is suggested that the more specific formats ("xhtml1", "html5", & \r
-        "html4") be used as the more general formats ("xhtml" or "html") may \r
-        change in the future if it makes sense at that time. \r
-\r
-* __`safe_mode`__{: #safe_mode }: Disallow raw html.\r
-\r
-    If you are using Markdown on a web system which will transform text \r
-    provided by untrusted users, you may want to use the "safe_mode" \r
-    option which ensures that the user's HTML tags are either replaced, \r
-    removed or escaped. (They can still create links using Markdown syntax.)\r
-    \r
-    The following values are accepted:\r
-\r
-    * `False` (Default): Raw HTML is passed through unaltered.\r
-\r
-    * `replace`: Replace all HTML blocks with the text assigned to \r
-      `html_replacement_text` To maintain backward compatibility, setting \r
-      `safe_mode=True` will have the same effect as `safe_mode='replace'`.   \r
-\r
-        To replace raw HTML with something other than the default, do:\r
-\r
-            md = markdown.Markdown(safe_mode='replace', \r
-                               html_replacement_text='--RAW HTML NOT ALLOWED--')\r
-\r
-    * `remove`: All raw HTML will be completely stripped from the text with\r
-      no warning to the author.\r
-\r
-    * `escape`: All raw HTML will be escaped and included in the document.\r
-\r
-        For example, the following source:\r
-\r
-            Foo <b>bar</b>.\r
-\r
-        Will result in the following HTML:\r
-\r
-            <p>Foo &lt;b&gt;bar&lt;/b&gt;.</p>\r
-\r
-    !!! Note \r
-        "safe_mode" also alters the default value for the \r
-        [`enable_attributes`](#enable_attributes) option.\r
-    \r
-    !!! seealso "See Also"\r
-        HTML sanitizers (like [Bleach]) may provide a better solution for \r
-        dealing with markdown text submitted by untrusted users. That way, \r
-        both the HTML generated by Markdown and user submited raw HTML are \r
-        fully sanitized.\r
-    \r
-            import markdown\r
-            import bleach\r
-            html = bleach.clean(markdown.markdown(evil_text))\r
-    \r
-[Bleach]: https://github.com/jsocol/bleach\r
-\r
-* __`html_replacement_text`__{: #html_replacement_text }: Text used when \r
-  safe_mode is set to `replace`. Defaults to `[HTML_REMOVED]`.\r
-\r
-* __`tab_length`__{: #tab_length }: Length of tabs in the source. Default: 4\r
-\r
-* __`enable_attributes`__{: #enable_attributes}: Enable the conversion of \r
-  attributes. Defaults to `True`, unless [`safe_mode`](#safe_mode) is enabled, \r
-  in which case the default is `False`.\r
-\r
-    !!! Note \r
-        `safe_mode` only overrides the default. If `enable_attributes` \r
-        is explicitly set, the explicit value is used regardless of `safe_mode`.\r
-        However, this could potentially allow an untrusted user to inject\r
-        JavaScript into your documents.\r
-\r
-* __`smart_emphasis`__{: #smart_emphasis }: Treat `_connected_words_` \r
-  intelligently Default: True\r
-\r
-* __`lazy_ol`__{: #lazy_ol }: Ignore number of first item of ordered lists. \r
-  Default: True\r
-\r
-    Given the following list:\r
-\r
-        4. Apples\r
-        5. Oranges\r
-        6. Pears\r
-\r
-    By default markdown will ignore the fact the the first line started \r
-    with item number "4" and the HTML list will start with a number "1".\r
-    If `lazy_ol` is set to `False`, then markdown will output the following\r
-    HTML:\r
-\r
-        <ol>\r
-          <li start="4">Apples</li>\r
-          <li>Oranges</li>\r
-          <li>Pears</li>\r
-        </ol>\r
-\r
-\r
-### `markdown.markdownFromFile (**kwargs)` {: #markdownFromFile }\r
-\r
-With a few exceptions, `markdown.markdownFromFile` accepts the same options as \r
-`markdown.markdown`. It does **not** accept a `text` (or Unicode) string. \r
-Instead, it accepts the following required options:\r
-\r
-* __`input`__{: #input } (required): The source text file.\r
-\r
-    `input` may be set to one of three options:\r
-\r
-    * a string which contains a path to a readable file on the file system,\r
-    * a readable file-like object,\r
-    * or `None` (default) which will read from `stdin`.\r
-\r
-* __`output`__{: #output }: The target which output is written to.\r
-\r
-    `output` may be set to one of three options:\r
-\r
-    * a string which contains a path to a writable file on the file system,\r
-    * a writable file-like object,\r
-    * or `None` (default) which will write to `stdout`.\r
-\r
-* __`encoding`__{: #encoding }: The encoding of the source text file. Defaults \r
-  to "utf-8". The same encoding will always be used for input and output. \r
-  The 'xmlcharrefreplace' error handler is used when encoding the output.\r
-\r
-    !!! Note \r
-        This is the only place that decoding and encoding of unicode\r
-        takes place in Python-Markdown. If this rather naive solution does not\r
-        meet your specific needs, it is suggested that you write your own code\r
-        to handle your encoding/decoding needs.\r
-\r
-### `markdown.Markdown ([**kwargs])` {: #Markdown }\r
-\r
-The same options are available when initializing the `markdown.Markdown` class\r
-as on the [`markdown.markdown`](#markdown) function, except that the class does\r
-**not** accept a source text string on initialization. Rather, the source text\r
-string must be passed to one of two instance methods:\r
-\r
-* `Markdown.convert(source)`{: #convert }\r
-\r
-    The `source` text must meet the same requirements as the [`text`](#text) \r
-    argument of the [`markdown.markdown`](#markdown) function.\r
-\r
-    You should also use this method if you want to process multiple strings\r
-    without creating a new instance of the class for each string.\r
-\r
-        md = markdown.Markdown()\r
-        html1 = md.convert(text1)\r
-        html2 = md.convert(text2)\r
-\r
-    Note that depending on which options and/or extensions are being used,\r
-    the parser may need its state reset between each call to `convert`.\r
-\r
-        html1 = md.convert(text1)\r
-        md.reset()\r
-        html2 = md.convert(text2)\r
-    \r
-    You can also chain calls to `reset` together:\r
-    \r
-        html3 = md.reset().convert(text3)\r
-\r
-* `Markdown.convertFile(**kwargs)`{: #convertFile }\r
-\r
-    The arguments of this method are identical to the arguments of the same\r
-    name on the `markdown.markdownFromFile` function ([`input`](#input), \r
-    [`output`](#output), and [`encoding`](#encoding)). As with the \r
-    [`convert`](#convert) method, this method should be used to \r
-    process multiple files without creating a new instance of the class for \r
-    each document. State may need to be `reset` between each call to \r
-    `convertFile` as is the case with `convert`.\r
+title:      Library Reference
+prev_title: Installation
+prev_url:   install.html
+next_title: Command Line
+next_url:   cli.html
+
+
+Using Markdown as a Python Library
+==================================
+
+First and foremost, Python-Markdown is intended to be a python library module
+used by various projects to convert Markdown syntax into HTML.
+
+The Basics
+----------
+
+To use markdown as a module:
+
+    import markdown
+    html = markdown.markdown(your_text_string)
+
+The Details
+-----------
+
+Python-Markdown provides two public functions ([`markdown.markdown`](#markdown)
+and [`markdown.markdownFromFile`](#markdownFromFile)) both of which wrap the 
+public class [`markdown.Markdown`](#Markdown). If you're processing one 
+document at a time, these functions will serve your needs. However, if you need
+to process multiple documents, it may be advantageous to create a single 
+instance of the `markdown.Markdown` class and pass multiple documents through 
+it. If you do use a single instance though, make sure to call the `reset`
+method appropriately ([see below](#convert)).
+
+### `markdown.markdown (text [, **kwargs])` {: #markdown }
+
+The following options are available on the `markdown.markdown` function:
+
+* __`text`__{: #text } (required): The source unicode string.
+
+    !!! note "Important"
+        Python-Markdown expects **Unicode** as input (although
+        some simple ASCII strings *may* work) and returns output as Unicode.
+        Do not pass encoded strings to it! If your input is encoded, (e.g. as 
+        UTF-8), it is your responsibility to decode it.  For example:
+
+            input_file = codecs.open("some_file.txt", mode="r", encoding="utf-8")
+            text = input_file.read()
+            html = markdown.markdown(text)
+
+        If you want to write the output to disk, you *must* encode it yourself:
+
+            output_file = codecs.open("some_file.html", "w", 
+                                      encoding="utf-8", 
+                                      errors="xmlcharrefreplace"
+            )
+            output_file.write(html)
+
+* __`extensions`__{: #extensions }: A list of extensions.
+
+    Python-Markdown provides an [API](extensions/api.html) for third parties to
+    write extensions to the parser adding their own additions or changes to the
+    syntax. A few commonly used extensions are shipped with the markdown 
+    library. See the [extension documentation](extensions/index.html) for a 
+    list of available extensions.
+
+    The list of extensions may contain instances of extensions and/or strings 
+    of extension names. 
+
+        extensions=[MyExtension(), 'path.to.my.ext']
+    
+    !!! note
+        The prefered method is to pass in an instance of an extension. Strings
+               should only be used when it is impossable to import the Extension Class
+               directly (from the command line or in a template).
+    
+    When passing in extension instances, each class instance must be a subclass
+    of `markdown.extensions.Extension` and any configuration options should be 
+    defined when initiating the class instance rather than using the 
+    [extension_configs](#extension_configs) keyword. For example:
+
+        from markdown.extensions import Extension
+        class MyExtension(Extension):
+            # define your extension here...
+    
+        markdown.markdown(text, extensions=[MyExtension(option='value')])
+
+    If an extension name is provided as a string, the extension must be 
+    importable as a python module on your PYTHONPATH. Python's dot notation is 
+    supported. Therefore, to import the 'extra' extension, one could do 
+    `extensions=['markdown.extensions.extra']`  
+
+       Additionaly, a Class may be specified in the name. The class must be at the end of 
+       the name and be seperated by a colon from the module. 
+
+       Therefore, if you were to import the class like this:
+       
+               from path.to.module import SomeExtensionClass
+
+       Then the named extension would comprise this string:
+
+               "path.to.module:SomeExtensionClass"
+
+       !!! note
+               You should only need to specify the class name if more than one extension 
+               is defined      within the same module. The extensions that come with 
+               Python-Markdown do *not* need to have the class name specified. However,
+               doing so will not effect the behavior of the parser.
+
+    When loading an extension by name (as a string), you may pass in
+    configuration settings to the extension using the 
+    [extension_configs](#extension_configs) keyword.
+
+    !!! seealso "See Also"
+        See the documentation of the [Extension API](extensions/api.html) for 
+        assistance in creating extensions.
+
+* __`extension_configs`__{: #extension_configs }: A dictionary of
+  configuration settings for extensions.
+
+    Any configuration settings will only be passed to extensions loaded by name 
+    (as a string). When loading extensions as class instances, pass the 
+    configuration settings directly to the class when initializing it. 
+    
+    !!! Note
+        The prefered method is to pass in an instance of an extension, which
+        does not require use of the `extension_configs` keyword at all.
+        See the [extensions](#extensions) keyword for details.
+    
+    The dictionary of configuration settings must be in the following format:
+
+        extension_configs = 
+        {
+            'extension_name_1':
+            {
+                'option_1': 'value_1',
+                'option_2': 'value_2'
+            },
+        {
+            'extension_name_2':
+            {
+                'option_1': 'value_1'
+            }
+        }
+
+    See the documentation specific to the extension you are using for help in 
+    specifying configuration settings for that extension.
+
+* __`output_format`__{: #output_format }: Format of output. 
+
+    Supported formats are:
+
+    * `"xhtml1"`: Outputs XHTML 1.x. **Default**.
+    * `"xhtml5"`: Outputs XHTML style tags of HTML 5
+    * `"xhtml"`: Outputs latest supported version of XHTML (currently XHTML 1.1).
+    * `"html4"`: Outputs HTML 4
+    * `"html5"`: Outputs HTML style tags of HTML 5
+    * `"html"`: Outputs latest supported version of HTML (currently HTML 4).
+
+    The values can be in either lowercase or uppercase.
+
+    !!! warning
+        It is suggested that the more specific formats ("xhtml1", "html5", & 
+        "html4") be used as the more general formats ("xhtml" or "html") may 
+        change in the future if it makes sense at that time. 
+
+* __`safe_mode`__{: #safe_mode }: Disallow raw html.
+
+    !!! warning
+        "`safe_mode`" is pending deprecation and should not be used.
+
+        HTML sanitizers (like [Bleach]) provide a better solution for 
+        dealing with markdown text submitted by untrusted users. 
+
+            import markdown
+            import bleach
+            html = bleach.clean(markdown.markdown(untrusted_text))
+
+        See the [release notes] for more info.
+    
+[Bleach]: https://github.com/jsocol/bleach
+[release notes]: release-2.5.html
+    
+    The following values are accepted:
+
+    * `False` (Default): Raw HTML is passed through unaltered.
+
+    * `replace`: Replace all HTML blocks with the text assigned to 
+      `html_replacement_text` To maintain backward compatibility, setting 
+      `safe_mode=True` will have the same effect as `safe_mode='replace'`.   
+
+        To replace raw HTML with something other than the default, do:
+
+            md = markdown.Markdown(safe_mode='replace', 
+                               html_replacement_text='--RAW HTML NOT ALLOWED--')
+
+    * `remove`: All raw HTML will be completely stripped from the text with
+      no warning to the author.
+
+    * `escape`: All raw HTML will be escaped and included in the document.
+
+        For example, the following source:
+
+            Foo <b>bar</b>.
+
+        Will result in the following HTML:
+
+            <p>Foo &lt;b&gt;bar&lt;/b&gt;.</p>
+
+    !!! Note 
+        "safe_mode" also alters the default value for the 
+        [`enable_attributes`](#enable_attributes) option.
+    
+
+* __`html_replacement_text`__{: #html_replacement_text }: Text used when 
+  safe_mode is set to `replace`. Defaults to `[HTML_REMOVED]`.
+
+    !!! warning
+        "`html_replacement_text`" is pending deprecation and should not be used.
+        See the [release notes] for more info.
+
+* __`tab_length`__{: #tab_length }: Length of tabs in the source. Default: 4
+
+* __`enable_attributes`__{: #enable_attributes}: Enable the conversion of 
+  attributes. Defaults to `True`, unless [`safe_mode`](#safe_mode) is enabled, 
+  in which case the default is `False`.
+
+    !!! Note 
+        `safe_mode` only overrides the default. If `enable_attributes` 
+        is explicitly set, the explicit value is used regardless of `safe_mode`.
+        However, this could potentially allow an untrusted user to inject
+        JavaScript into your documents.
+
+* __`smart_emphasis`__{: #smart_emphasis }: Treat `_connected_words_` 
+  intelligently Default: True
+
+* __`lazy_ol`__{: #lazy_ol }: Ignore number of first item of ordered lists. 
+  Default: True
+
+    Given the following list:
+
+        4. Apples
+        5. Oranges
+        6. Pears
+
+    By default markdown will ignore the fact the the first line started 
+    with item number "4" and the HTML list will start with a number "1".
+    If `lazy_ol` is set to `False`, then markdown will output the following
+    HTML:
+
+        <ol>
+          <li start="4">Apples</li>
+          <li>Oranges</li>
+          <li>Pears</li>
+        </ol>
+
+
+### `markdown.markdownFromFile (**kwargs)` {: #markdownFromFile }
+
+With a few exceptions, `markdown.markdownFromFile` accepts the same options as 
+`markdown.markdown`. It does **not** accept a `text` (or Unicode) string. 
+Instead, it accepts the following required options:
+
+* __`input`__{: #input } (required): The source text file.
+
+    `input` may be set to one of three options:
+
+    * a string which contains a path to a readable file on the file system,
+    * a readable file-like object,
+    * or `None` (default) which will read from `stdin`.
+
+* __`output`__{: #output }: The target which output is written to.
+
+    `output` may be set to one of three options:
+
+    * a string which contains a path to a writable file on the file system,
+    * a writable file-like object,
+    * or `None` (default) which will write to `stdout`.
+
+* __`encoding`__{: #encoding }: The encoding of the source text file. Defaults 
+  to "utf-8". The same encoding will always be used for input and output. 
+  The 'xmlcharrefreplace' error handler is used when encoding the output.
+
+    !!! Note 
+        This is the only place that decoding and encoding of unicode
+        takes place in Python-Markdown. If this rather naive solution does not
+        meet your specific needs, it is suggested that you write your own code
+        to handle your encoding/decoding needs.
+
+### `markdown.Markdown ([**kwargs])` {: #Markdown }
+
+The same options are available when initializing the `markdown.Markdown` class
+as on the [`markdown.markdown`](#markdown) function, except that the class does
+**not** accept a source text string on initialization. Rather, the source text
+string must be passed to one of two instance methods:
+
+* `Markdown.convert(source)`{: #convert }
+
+    The `source` text must meet the same requirements as the [`text`](#text) 
+    argument of the [`markdown.markdown`](#markdown) function.
+
+    You should also use this method if you want to process multiple strings
+    without creating a new instance of the class for each string.
+
+        md = markdown.Markdown()
+        html1 = md.convert(text1)
+        html2 = md.convert(text2)
+
+    Depending on which options and/or extensions are being used, the parser may
+    need its state reset between each call to `convert`, otherwise performance
+    can degrade drastically:
+
+        html1 = md.convert(text1)
+        md.reset()
+        html2 = md.convert(text2)
+    
+    To make this easier, you can also chain calls to `reset` together:
+    
+        html3 = md.reset().convert(text3)
+
+
+* `Markdown.convertFile(**kwargs)`{: #convertFile }
+
+    The arguments of this method are identical to the arguments of the same
+    name on the `markdown.markdownFromFile` function ([`input`](#input), 
+    [`output`](#output), and [`encoding`](#encoding)). As with the 
+    [`convert`](#convert) method, this method should be used to 
+    process multiple files without creating a new instance of the class for 
+    each document. State may need to be `reset` between each call to 
+    `convertFile` as is the case with `convert`.
index 49de2f507e3d04c526b86535ae57e4bf2c3b4191..c40b471e907aeeaa8fe9830ac77db5bbf2bf08e9 100644 (file)
@@ -1,22 +1,22 @@
-title:      Release Notes for v2.0.1\r
-prev_title: Release Notes for v2.0.2\r
-prev_url:   release-2.0.2.html\r
-next_title: Release Notes for v2.0\r
-next_url:   release-2.0.html\r
-\r
-Python-Markdown 2.0.1 Release Notes\r
-===================================\r
-\r
-Python-Markdown 2.0.1 is a bug-fix release. No new features have been added.\r
-Most notably, various issues with the command line script have been fixed.\r
-There have also been a few fixes for minor parsing bugs in some edge cases.\r
-For a full list of changes, see the git log.\r
-\r
-Backwards-incompatible Changes\r
-------------------------------\r
-\r
-Due to various complications in how Python handles command line scripts in \r
-differance systems and with differant installation tools, we were forced to \r
-rename the commandline script to ``markdown`` (no ".py"). A matching batch\r
-script will get installed on Windows. Any shell scripts which call \r
-``markdown.py`` will need to be altered to call ``markdown`` instead.\r
+title:      Release Notes for v2.0.1
+prev_title: Release Notes for v2.0.2
+prev_url:   release-2.0.2.html
+next_title: Release Notes for v2.0
+next_url:   release-2.0.html
+
+Python-Markdown 2.0.1 Release Notes
+===================================
+
+Python-Markdown 2.0.1 is a bug-fix release. No new features have been added.
+Most notably, various issues with the command line script have been fixed.
+There have also been a few fixes for minor parsing bugs in some edge cases.
+For a full list of changes, see the git log.
+
+Backwards-incompatible Changes
+------------------------------
+
+Due to various complications in how Python handles command line scripts in 
+differance systems and with differant installation tools, we were forced to 
+rename the commandline script to ``markdown`` (no ".py"). A matching batch
+script will get installed on Windows. Any shell scripts which call 
+``markdown.py`` will need to be altered to call ``markdown`` instead.
index 3d1552b88c00d6ae40ef0411222b5d762be843e0..5315c8009ec83a8efa34a275a02127a3fa2bfda2 100644 (file)
@@ -1,15 +1,15 @@
-title:      Release Notes for v2.0.2\r
-prev_title: Release Notes for v2.1.0\r
-prev_url:   release-2.1.0.html\r
-next_title: Release Notes for v2.0.1\r
-next_url:   release-2.0.1.html\r
-\r
-Python-Markdown 2.0.2 Release Notes\r
-===================================\r
-\r
-Python-Markdown 2.0.2 is a bug-fix release. No new features have been added.\r
-Most notably, the setup script has been updated to include a dependency on \r
-ElementTree on older versions of Python (< 2.5). There have also been a few \r
-fixes for minor parsing bugs in some edge cases. For a full list of changes, \r
-see the git log.\r
-\r
+title:      Release Notes for v2.0.2
+prev_title: Release Notes for v2.1.0
+prev_url:   release-2.1.0.html
+next_title: Release Notes for v2.0.1
+next_url:   release-2.0.1.html
+
+Python-Markdown 2.0.2 Release Notes
+===================================
+
+Python-Markdown 2.0.2 is a bug-fix release. No new features have been added.
+Most notably, the setup script has been updated to include a dependency on 
+ElementTree on older versions of Python (< 2.5). There have also been a few 
+fixes for minor parsing bugs in some edge cases. For a full list of changes, 
+see the git log.
+
index 66a4c3fc9f1e1161dc2ade0581aa01bdb288653c..ec11522226ee489d5532e9937d0e6ecfe6609c64 100644 (file)
@@ -1,73 +1,73 @@
-title:      Release Notes for v2.0\r
-prev_title: Release Notes for v2.0.1\r
-prev_url:   release-2.0.1.html\r
-next_title: Authors\r
-next_url:   authors.html\r
-\r
-Python-Markdown 2.0 Release Notes\r
-=================================\r
-\r
-We are happy to release Python-Markdown 2.0, which has been over a year in the \r
-making. We have rewritten significant portions of the code, dramatically \r
-extending the extension API, increased performance, and added numerous \r
-extensions to the distribution (including an extension that mimics PHP Markdown\r
-Extra), all while maintaining backward compatibility with the end user API in\r
-version 1.7.\r
-\r
-Python-Markdown supports Python versions 2.3, 2.4, 2.5, and 2.6. We've even \r
-released a version converted to Python 3.0!\r
-\r
-Backwards-incompatible Changes\r
-------------------------------\r
-\r
-While Python-Markdown has experienced numerous internal changes, those changes \r
-should only affect extension authors. If you have not written your own \r
-extensions, then you should not need to make any changes to your code. \r
-However, you may want to ensure that any third party extensions you are using\r
-are compatible with the new API.\r
-\r
-The new extension API is fully [documented](extensions/api.html) in the docs. \r
-Below is a summary of the significant changes:\r
-\r
-* The old home-grown NanoDOM has been replaced with ElementTree. Therefore all\r
-  extensions must use ElementTree rather than the old NanoDOM.\r
-* The various processors and patterns are now stored with OrderedDicts rather \r
-  than lists. Any code adding processors and/or patterns into Python-Markdown \r
-  will need to be adjusted to use the new API using OrderedDicts.\r
-* The various types of processors available have been either combined, added, \r
-  or removed. Ensure that your processors match the currently supported types.\r
-\r
-What's New in Python-Markdown 2.0\r
----------------------------------\r
-\r
-Thanks to the work of Artem Yunusov as part of GSoC 2008, Python-Markdown uses\r
-ElementTree internally to build the (X)HTML document from markdown source text.\r
-This has resolved various issues with the older home-grown NanoDOM and made\r
-notable increases in performance.\r
-\r
-Artem also refactored the Inline Patterns to better support nested patterns \r
-which has resolved many inconsistencies in Python-Markdown's parsing of the \r
-markdown syntax.\r
-\r
-The core parser had been completely rewritten, increasing performance and, for \r
-the first time, making it possible to override/add/change the way block level\r
-content is parsed.\r
-\r
-Python-Markdown now parses markdown source text more closely to the other \r
-popular implementations (Perl, PHP, etc.) than it ever has before. With the\r
-exception of a few minor insignificant differences, any difference should be\r
-considered a bug, rather than a limitation of the parser.\r
-\r
-The option to return HTML4 output as apposed to XHTML has been added. In \r
-addition, extensions should be able to easily add additional output formats.\r
-\r
-As part of implementing markdown in the Dr. Project project (a Trac fork), among\r
-other things, David Wolever refactored the "extension" keyword so that it\r
-accepts either the extension names as strings or instances of extensions. This\r
-makes it possible to include multiple extensions in a single module.\r
-\r
-Numerous extensions are included in the distribution by default. See\r
-[available_extensions](extensions/index.html) for a complete list.\r
-\r
-See the [Change Log](change_log.html) for a full list of changes.\r
-\r
+title:      Release Notes for v2.0
+prev_title: Release Notes for v2.0.1
+prev_url:   release-2.0.1.html
+next_title: Authors
+next_url:   authors.html
+
+Python-Markdown 2.0 Release Notes
+=================================
+
+We are happy to release Python-Markdown 2.0, which has been over a year in the 
+making. We have rewritten significant portions of the code, dramatically 
+extending the extension API, increased performance, and added numerous 
+extensions to the distribution (including an extension that mimics PHP Markdown
+Extra), all while maintaining backward compatibility with the end user API in
+version 1.7.
+
+Python-Markdown supports Python versions 2.3, 2.4, 2.5, and 2.6. We've even 
+released a version converted to Python 3.0!
+
+Backwards-incompatible Changes
+------------------------------
+
+While Python-Markdown has experienced numerous internal changes, those changes 
+should only affect extension authors. If you have not written your own 
+extensions, then you should not need to make any changes to your code. 
+However, you may want to ensure that any third party extensions you are using
+are compatible with the new API.
+
+The new extension API is fully [documented](extensions/api.html) in the docs. 
+Below is a summary of the significant changes:
+
+* The old home-grown NanoDOM has been replaced with ElementTree. Therefore all
+  extensions must use ElementTree rather than the old NanoDOM.
+* The various processors and patterns are now stored with OrderedDicts rather 
+  than lists. Any code adding processors and/or patterns into Python-Markdown 
+  will need to be adjusted to use the new API using OrderedDicts.
+* The various types of processors available have been either combined, added, 
+  or removed. Ensure that your processors match the currently supported types.
+
+What's New in Python-Markdown 2.0
+---------------------------------
+
+Thanks to the work of Artem Yunusov as part of GSoC 2008, Python-Markdown uses
+ElementTree internally to build the (X)HTML document from markdown source text.
+This has resolved various issues with the older home-grown NanoDOM and made
+notable increases in performance.
+
+Artem also refactored the Inline Patterns to better support nested patterns 
+which has resolved many inconsistencies in Python-Markdown's parsing of the 
+markdown syntax.
+
+The core parser had been completely rewritten, increasing performance and, for 
+the first time, making it possible to override/add/change the way block level
+content is parsed.
+
+Python-Markdown now parses markdown source text more closely to the other 
+popular implementations (Perl, PHP, etc.) than it ever has before. With the
+exception of a few minor insignificant differences, any difference should be
+considered a bug, rather than a limitation of the parser.
+
+The option to return HTML4 output as apposed to XHTML has been added. In 
+addition, extensions should be able to easily add additional output formats.
+
+As part of implementing markdown in the Dr. Project project (a Trac fork), among
+other things, David Wolever refactored the "extension" keyword so that it
+accepts either the extension names as strings or instances of extensions. This
+makes it possible to include multiple extensions in a single module.
+
+Numerous extensions are included in the distribution by default. See
+[available_extensions](extensions/index.html) for a complete list.
+
+See the [Change Log](change_log.html) for a full list of changes.
+
index 0d620071afb98718f3bb3832effbe141ff7fd179..606bad26f5faf40b0c7aecfc566e1cc1c6ef6936 100644 (file)
-title:      Release Notes for v2.1.0\r
-prev_title: Release Notes for v2.1.1\r
-prev_url:   release-2.1.1.html\r
-next_title: Release Notes for v2.0.2\r
-next_url:   release-2.0.2.html\r
-\r
-Python-Markdown 2.1.0 Release Notes\r
-===================================\r
-\r
-We are pleased to release Python-Markdown 2.1 which makes many \r
-improvements on 2.0. In fact, we consider 2.1 to be what 2.0 should have been. \r
-While 2.1 consists mostly of bug fixes, bringing Python-Markdown more inline \r
-with other implementations, some internal improvements were made to the parser, \r
-a few new builtin extensions were added, and HTML5 support was added.\r
-\r
-Python-Markdown supports Python versions 2.4, 2.5, 2.6, 2.7, 3.1, and 3.2 out \r
-of the box. In fact, the same codebase installs on Python 3.1 and 3.2 with no \r
-extra work by the end user.\r
-\r
-Backwards-incompatible Changes\r
-------------------------------\r
-\r
-While Python-Markdown has received only minor internal changes since the last\r
-release, there are a few backward-incompatible changes to note:\r
-\r
-* Support had been dropped for Python 2.3. No guarantees are made that the \r
-library will work in any version of Python lower than 2.4. Additionally, while \r
-the library had been tested with Python 2.4, consider Python 2.4 support to be \r
-depreciated. It is not likely that any future versions will continue to support\r
-any version of Python less than 2.5. Note that Python 3.0 is not supported due \r
-to a bug in its 2to3 tool. If you must use Python-Markdown with Python 3.0, it \r
-is suggested you manually use Python 3.1's 2to3 tool to do a conversion.\r
-\r
-* Python-Markdown previously accepted positional arguments on its class and\r
-wrapper methods. It now expects keyword arguments. Currently, the positional\r
-arguments should continue to work, but the solution feels hacky and may be \r
-removed in a future version. All users are encouraged to use keyword arguments \r
-as documented in the [Library Reference](reference.html).\r
-\r
-* Past versions of Python-Markdown provided module level Global variables which\r
-controlled the behavior of a few different aspects of the parser. Those global\r
-variables have been replaced with attributes on the Markdown class. \r
-Additionally, those attributes are settable as keyword arguments when \r
-initializing a class instance. Therefore, if you were editing the global \r
-variables (either by editing the source or by overriding them in your code), \r
-you should now set them on the class. See the \r
-[Library Reference](reference.html) for the options available.\r
-\r
-* If you have been using the [HeaderID](extensions/header_id.html) extension \r
-to define custom ids on headers, you will want to switch to using the new \r
-[Attribute List](extensions/attr_list.html) extension. The HeaderId extension \r
-now only auto-generates ids on headers which have not already had ids defined. \r
-Note that the [Extra](extensions/extra.html) extension has been switched to use \r
-Attribute Lists instead of HeaderId as it did previously.\r
-\r
-* Some code was moved into the `markdown.util` namespace which was previously\r
-in the `markdown` namespace. Extension authors may need to adjust a few\r
-import statements in their extensions to work with the changes.\r
-\r
-* The commandline script name was changed to `markdown_py`. The previous name\r
-(`markdown`) was conflicting with people (and Linux package systems) who also\r
-had markdown.pl installed on there system as markdown.pl's commandline script\r
-was also named `markdown`. Be aware that installing Python-Markdown 2.1\r
-will not remove the old versions of the script with different names. You\r
-may want to remove them yourself as they are unlikely to work properly.\r
-\r
-What's New in Python-Markdown 2.1\r
----------------------------------\r
-\r
-Three new extensions were added. [Attribute Lists](extensions/attr_list.html), \r
-which was inspired by Maruku's feature of the same name, \r
-[Newline to Break](extensions/nl2br.html), which was inspired by Github \r
-Flavored Markdown, and [Smart Strong](extensions/smart_strong.html), which \r
-fills a hole in the Extra extension.\r
-\r
-HTML5 is now supported. All this really means is that new block level elements \r
-introduced in the HTML5 spec are now properly recognized as raw HTML. As\r
-valid  HTML5 can consist of either HTML4 or XHTML1, there is no need to add a\r
-new HTML5  searializers. That said, `html5` and `xhtml5` have been added as \r
-aliases of the `html4` and `xhtml1` searializers respectively.\r
-\r
-An XHTML searializer has been added. Previously, ElementTree's XML searializer \r
-was being used for XHTML output. With the new searliazer we are able to avoid\r
-more invalid output like empty elements (i.e., `<p />`) which can choke \r
-browsers.\r
-\r
-Improved support for Python 3.x. Now when running `setupy.py install` in \r
-Python 3.1 or greater the 2to3 tool is run automatically. Note that Python 3.0 \r
-is not supported due to a bug in its 2to3 tool. If you must use Python-Markdown\r
-with Python 3.0, it is suggested you manually use Python 3.1's 2to3 tool to\r
-do a conversion.\r
-\r
-Methods on instances of the Markdown class that do not return results can now\r
-be changed allowing one to do `md.reset().convert(moretext)`.\r
-\r
-The Markdown class was refactored so that a subclass could define it's own \r
-`build_parser` method which would build a completely different parser. In\r
-other words, one could use the basic machinery in the markdown library to \r
-build a parser of a different markup language without the overhead of building\r
-the markdown parser and throwing it away.\r
-\r
-Import statements within markdown have been improved so that third party \r
-libraries can embed the markdown library if they desire (licencing permitting).\r
-\r
-Added support for Python's `-m` command line option. You can run the markdown \r
-package as a command line script. Do `python -m markdown [options] [args]`. \r
-Note that this is only fully supported in Python 2.7+. Python 2.5 & 2.6 \r
-require you to call the module directly (`markdown.__main__`) rather than\r
-the package (`markdown`). This does not work in Python 2.4.\r
-\r
-The commandline script has been renamed to `markdown_py` which avoids all the \r
-various problems we had with previous names.  Also improved the commandline \r
-script to accept input on stdin.\r
-\r
-The testing framework has been completely rebuilt using the Nose testing \r
-framework. This provides a number of benefits including the ability to better\r
-test the builtin extensions and other options available to change the parsing \r
-behavior. See the [Test Suite](test_suite.html) documentation for details.\r
-\r
-Various bug fixes have been made, which are too numerous to list here. See the \r
-[commit log](https://github.com/waylan/Python-Markdown/commits/master) for a \r
-complete history of the changes.\r
+title:      Release Notes for v2.1.0
+prev_title: Release Notes for v2.1.1
+prev_url:   release-2.1.1.html
+next_title: Release Notes for v2.0.2
+next_url:   release-2.0.2.html
+
+Python-Markdown 2.1.0 Release Notes
+===================================
+
+We are pleased to release Python-Markdown 2.1 which makes many 
+improvements on 2.0. In fact, we consider 2.1 to be what 2.0 should have been. 
+While 2.1 consists mostly of bug fixes, bringing Python-Markdown more inline 
+with other implementations, some internal improvements were made to the parser, 
+a few new builtin extensions were added, and HTML5 support was added.
+
+Python-Markdown supports Python versions 2.4, 2.5, 2.6, 2.7, 3.1, and 3.2 out 
+of the box. In fact, the same codebase installs on Python 3.1 and 3.2 with no 
+extra work by the end user.
+
+Backwards-incompatible Changes
+------------------------------
+
+While Python-Markdown has received only minor internal changes since the last
+release, there are a few backward-incompatible changes to note:
+
+* Support had been dropped for Python 2.3. No guarantees are made that the 
+library will work in any version of Python lower than 2.4. Additionally, while 
+the library had been tested with Python 2.4, consider Python 2.4 support to be 
+depreciated. It is not likely that any future versions will continue to support
+any version of Python less than 2.5. Note that Python 3.0 is not supported due 
+to a bug in its 2to3 tool. If you must use Python-Markdown with Python 3.0, it 
+is suggested you manually use Python 3.1's 2to3 tool to do a conversion.
+
+* Python-Markdown previously accepted positional arguments on its class and
+wrapper methods. It now expects keyword arguments. Currently, the positional
+arguments should continue to work, but the solution feels hacky and may be 
+removed in a future version. All users are encouraged to use keyword arguments 
+as documented in the [Library Reference](reference.html).
+
+* Past versions of Python-Markdown provided module level Global variables which
+controlled the behavior of a few different aspects of the parser. Those global
+variables have been replaced with attributes on the Markdown class. 
+Additionally, those attributes are settable as keyword arguments when 
+initializing a class instance. Therefore, if you were editing the global 
+variables (either by editing the source or by overriding them in your code), 
+you should now set them on the class. See the 
+[Library Reference](reference.html) for the options available.
+
+* If you have been using the [HeaderID](extensions/header_id.html) extension 
+to define custom ids on headers, you will want to switch to using the new 
+[Attribute List](extensions/attr_list.html) extension. The HeaderId extension 
+now only auto-generates ids on headers which have not already had ids defined. 
+Note that the [Extra](extensions/extra.html) extension has been switched to use 
+Attribute Lists instead of HeaderId as it did previously.
+
+* Some code was moved into the `markdown.util` namespace which was previously
+in the `markdown` namespace. Extension authors may need to adjust a few
+import statements in their extensions to work with the changes.
+
+* The commandline script name was changed to `markdown_py`. The previous name
+(`markdown`) was conflicting with people (and Linux package systems) who also
+had markdown.pl installed on there system as markdown.pl's commandline script
+was also named `markdown`. Be aware that installing Python-Markdown 2.1
+will not remove the old versions of the script with different names. You
+may want to remove them yourself as they are unlikely to work properly.
+
+What's New in Python-Markdown 2.1
+---------------------------------
+
+Three new extensions were added. [Attribute Lists](extensions/attr_list.html), 
+which was inspired by Maruku's feature of the same name, 
+[Newline to Break](extensions/nl2br.html), which was inspired by Github 
+Flavored Markdown, and [Smart Strong](extensions/smart_strong.html), which 
+fills a hole in the Extra extension.
+
+HTML5 is now supported. All this really means is that new block level elements 
+introduced in the HTML5 spec are now properly recognized as raw HTML. As
+valid  HTML5 can consist of either HTML4 or XHTML1, there is no need to add a
+new HTML5  searializers. That said, `html5` and `xhtml5` have been added as 
+aliases of the `html4` and `xhtml1` searializers respectively.
+
+An XHTML searializer has been added. Previously, ElementTree's XML searializer 
+was being used for XHTML output. With the new searliazer we are able to avoid
+more invalid output like empty elements (i.e., `<p />`) which can choke 
+browsers.
+
+Improved support for Python 3.x. Now when running `setupy.py install` in 
+Python 3.1 or greater the 2to3 tool is run automatically. Note that Python 3.0 
+is not supported due to a bug in its 2to3 tool. If you must use Python-Markdown
+with Python 3.0, it is suggested you manually use Python 3.1's 2to3 tool to
+do a conversion.
+
+Methods on instances of the Markdown class that do not return results can now
+be changed allowing one to do `md.reset().convert(moretext)`.
+
+The Markdown class was refactored so that a subclass could define it's own 
+`build_parser` method which would build a completely different parser. In
+other words, one could use the basic machinery in the markdown library to 
+build a parser of a different markup language without the overhead of building
+the markdown parser and throwing it away.
+
+Import statements within markdown have been improved so that third party 
+libraries can embed the markdown library if they desire (licencing permitting).
+
+Added support for Python's `-m` command line option. You can run the markdown 
+package as a command line script. Do `python -m markdown [options] [args]`. 
+Note that this is only fully supported in Python 2.7+. Python 2.5 & 2.6 
+require you to call the module directly (`markdown.__main__`) rather than
+the package (`markdown`). This does not work in Python 2.4.
+
+The commandline script has been renamed to `markdown_py` which avoids all the 
+various problems we had with previous names.  Also improved the commandline 
+script to accept input on stdin.
+
+The testing framework has been completely rebuilt using the Nose testing 
+framework. This provides a number of benefits including the ability to better
+test the builtin extensions and other options available to change the parsing 
+behavior. See the [Test Suite](test_suite.html) documentation for details.
+
+Various bug fixes have been made, which are too numerous to list here. See the 
+[commit log](https://github.com/waylan/Python-Markdown/commits/master) for a 
+complete history of the changes.
index f49b0b5f8ed13ad24c9bc7f221c996d19f62ecb7..59caf6842459e1ba58cc68ebfb5e401027c65b1c 100644 (file)
@@ -1,13 +1,13 @@
-title:      Release Notes for v2.1.1\r
-prev_title: Release Notes for v2.2.0\r
-prev_url:   release-2.2.0.html\r
-next_title: Release Notes for v2.1.0\r
-next_url:   release-2.1.0.html\r
-\r
-Python-Markdown 2.1.1 Release Notes\r
-===================================\r
-\r
-Python-Markdown 2.1.1 is a bug-fix release. No new features have been added.\r
-Most notably, a bug which caused raw HTML paring to run __very__ slowly has\r
-been fixed along with a few bugs which caused the parser to raise exceptions\r
-while parsing. For a full list of changes, see the git log.\r
+title:      Release Notes for v2.1.1
+prev_title: Release Notes for v2.2.0
+prev_url:   release-2.2.0.html
+next_title: Release Notes for v2.1.0
+next_url:   release-2.1.0.html
+
+Python-Markdown 2.1.1 Release Notes
+===================================
+
+Python-Markdown 2.1.1 is a bug-fix release. No new features have been added.
+Most notably, a bug which caused raw HTML paring to run __very__ slowly has
+been fixed along with a few bugs which caused the parser to raise exceptions
+while parsing. For a full list of changes, see the git log.
index e214323827f3e5a33b34a9a5c7645cde37f6678c..fe27c71f9be81346ac6dd0c0e6635edd1449a4c3 100644 (file)
@@ -1,12 +1,12 @@
-title:      Release Notes for v2.2.1\r
-prev_title: Release Notes for v2.3\r
-prev_url:   release-2.3.html\r
-next_title: Release Notes for v2.2.0\r
-next_url:   release-2.2.0.html\r
-\r
-Python-Markdown 2.2.1 Release Notes\r
-===================================\r
-\r
-Python-Markdown 2.2.1 is a bug-fix release. No new features have been added.\r
-However, at least one bug fix does not work in Python 2.4 so that version of\r
-Python is no longer supported. For a full list of changes, see the git log.\r
+title:      Release Notes for v2.2.1
+prev_title: Release Notes for v2.3
+prev_url:   release-2.3.html
+next_title: Release Notes for v2.2.0
+next_url:   release-2.2.0.html
+
+Python-Markdown 2.2.1 Release Notes
+===================================
+
+Python-Markdown 2.2.1 is a bug-fix release. No new features have been added.
+However, at least one bug fix does not work in Python 2.4 so that version of
+Python is no longer supported. For a full list of changes, see the git log.
index b2e8b7ee4cef69a4a58b28828b28e5ce78d12d47..d2cef63cf8c5a586f92c16edd86b8488340bd61d 100644 (file)
@@ -1,88 +1,88 @@
-title:      Release Notes for v2.3\r
-prev_title: Release Notes for v2.4\r
-prev_url:   release-2.4.html\r
-next_title: Release Notes for v2.2.1\r
-next_url:   release-2.2.1.html\r
-\r
-Python-Markdown 2.3 Release Notes\r
-=================================\r
-\r
-We are pleased to release Python-Markdown 2.3 which adds one new extension,\r
-removes a few old (obsolete) extensions, and now runs on both Python 2 and \r
-Python 3 without running the 2to3 conversion tool. See the list of changes \r
-below for details.\r
-\r
-Python-Markdown supports Python versions 2.6, 2.7, 3.1, 3.2, and 3.3.\r
-\r
-Backwards-incompatible Changes\r
-------------------------------\r
-\r
-* Support has been dropped for Python 2.5. No guarantees are made that the\r
-library will work in any version of Python lower than 2.6. As all supported\r
-Python versions include the ElementTree library, Python-Markdown will no \r
-longer try to import a third-party installation of ElementTree.\r
-\r
-* All classes are now "new-style" classes. In other words, all classes\r
-subclass from 'object'. While this is not likely to affect most users, \r
-extension authors may need to make a few minor adjustments to their code.\r
-\r
-* "safe_mode" has been further restricted. Markdown formated links must be\r
-of a known whitelisted scheme when in "safe_mode" or the url is discarded.\r
-The whitelisted schemes are: 'http', 'https', 'ftp', 'ftps', 'mailto', and\r
-'news'. Schemeless urls are also permitted, but are checked in other ways - \r
-as they have been for some time.\r
-\r
-* The ids assigned to footnotes now contain a dash (`-`) rather than a colon\r
-(`:`) when `output_format` it set to "html5" or "xhtml5". If you are making\r
-reference to those ids in your JavaScript or CSS and using the HTML5 output,\r
-you will need to update your code accordingly. No changes are necessary if\r
-you are outputing XHTML (the default) or HTML4.\r
-\r
-* The "force_linenos" config setting of the CodeHilite extension has been\r
-marked as **Pending Deprecation** and a new setting "linenums" has been added to\r
-replace it. See documentation for the [CodeHilite Extension] for an explanation\r
-of the new "linenums" setting. The new setting will honor the old \r
-"force_linenos" if it is set, but it will raise a PendingDeprecationWarning \r
-and will likely be removed in a future version of Python-Markdown.\r
-\r
-[CodeHilite Extension]: extensions/codehilite.html\r
-\r
-* The "RSS" extension has been removed and no longer ships with Python-Markdown.\r
-If you would like to continue using the extension (not recomended), it is \r
-archived on [Github](https://gist.github.com/waylan/4773365).\r
-\r
-* The "HTML Tidy" Extension has been removed and no longer ships with Python-Markdown.\r
-If you would like to continue using the extension (not recomended), it is \r
-archived on [Github](https://gist.github.com/waylan/5152650). Note that the \r
-underlying library, uTidylib, is not Python 3 compatable. Instead, it is \r
-recommended that the newer [PyTidyLib] (version 0.2.2+ for Python 3 \r
-compatability - install from github not PyPI) be used. As the API for that \r
-library is rather simple, it is recommended that the output of Markdown be \r
-wrapped in a call to PyTidyLib rather than using an extension (for example: \r
-`tidylib.tidy_fragment(markdown.markdown(source), options={...})`).\r
-\r
-[PyTidyLib]: http://countergram.com/open-source/pytidylib\r
-\r
-What's New in Python-Markdown 2.3\r
----------------------------------\r
-\r
-* The entire code base now universally runs in Python 2 and Python 3 without\r
-any need for running the 2to3 conversion tool. This not only simplifies testing,\r
-but by using unicode_literals, results in more consistent behavior across\r
-Python versions. Additionally, the relative imports (made possible in Python 2\r
-via absolute_import) allows the entire library to more easily be embedded in a \r
-subdirectory of another project. The various files within the library will \r
-still import each other properly even though 'markdown' may not be in Python's\r
-root namespace.\r
-\r
-* The [Admonition Extension] has been added, which implements [rST-style][rST] \r
-admonitions in the Markdown syntax. However, be warned that this extension \r
-is experimental and the syntax and behavior is still subject to change. Please \r
-try it out and report bugs and/or improvements.\r
-\r
-[Admonition Extension]: extensions/admonition.html\r
-[rST]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions\r
-\r
-* Various bug fixes have been made.  See the\r
-[commit log](https://github.com/waylan/Python-Markdown/commits/master)\r
-for a complete history of the changes.\r
+title:      Release Notes for v2.3
+prev_title: Release Notes for v2.4
+prev_url:   release-2.4.html
+next_title: Release Notes for v2.2.1
+next_url:   release-2.2.1.html
+
+Python-Markdown 2.3 Release Notes
+=================================
+
+We are pleased to release Python-Markdown 2.3 which adds one new extension,
+removes a few old (obsolete) extensions, and now runs on both Python 2 and 
+Python 3 without running the 2to3 conversion tool. See the list of changes 
+below for details.
+
+Python-Markdown supports Python versions 2.6, 2.7, 3.1, 3.2, and 3.3.
+
+Backwards-incompatible Changes
+------------------------------
+
+* Support has been dropped for Python 2.5. No guarantees are made that the
+library will work in any version of Python lower than 2.6. As all supported
+Python versions include the ElementTree library, Python-Markdown will no 
+longer try to import a third-party installation of ElementTree.
+
+* All classes are now "new-style" classes. In other words, all classes
+subclass from 'object'. While this is not likely to affect most users, 
+extension authors may need to make a few minor adjustments to their code.
+
+* "safe_mode" has been further restricted. Markdown formated links must be
+of a known whitelisted scheme when in "safe_mode" or the url is discarded.
+The whitelisted schemes are: 'http', 'https', 'ftp', 'ftps', 'mailto', and
+'news'. Schemeless urls are also permitted, but are checked in other ways - 
+as they have been for some time.
+
+* The ids assigned to footnotes now contain a dash (`-`) rather than a colon
+(`:`) when `output_format` it set to "html5" or "xhtml5". If you are making
+reference to those ids in your JavaScript or CSS and using the HTML5 output,
+you will need to update your code accordingly. No changes are necessary if
+you are outputing XHTML (the default) or HTML4.
+
+* The "force_linenos" config setting of the CodeHilite extension has been
+marked as **Pending Deprecation** and a new setting "linenums" has been added to
+replace it. See documentation for the [CodeHilite Extension] for an explanation
+of the new "linenums" setting. The new setting will honor the old 
+"force_linenos" if it is set, but it will raise a PendingDeprecationWarning 
+and will likely be removed in a future version of Python-Markdown.
+
+[CodeHilite Extension]: extensions/codehilite.html
+
+* The "RSS" extension has been removed and no longer ships with Python-Markdown.
+If you would like to continue using the extension (not recomended), it is 
+archived on [Github](https://gist.github.com/waylan/4773365).
+
+* The "HTML Tidy" Extension has been removed and no longer ships with Python-Markdown.
+If you would like to continue using the extension (not recomended), it is 
+archived on [Github](https://gist.github.com/waylan/5152650). Note that the 
+underlying library, uTidylib, is not Python 3 compatable. Instead, it is 
+recommended that the newer [PyTidyLib] (version 0.2.2+ for Python 3 
+compatability - install from github not PyPI) be used. As the API for that 
+library is rather simple, it is recommended that the output of Markdown be 
+wrapped in a call to PyTidyLib rather than using an extension (for example: 
+`tidylib.tidy_fragment(markdown.markdown(source), options={...})`).
+
+[PyTidyLib]: http://countergram.com/open-source/pytidylib
+
+What's New in Python-Markdown 2.3
+---------------------------------
+
+* The entire code base now universally runs in Python 2 and Python 3 without
+any need for running the 2to3 conversion tool. This not only simplifies testing,
+but by using unicode_literals, results in more consistent behavior across
+Python versions. Additionally, the relative imports (made possible in Python 2
+via absolute_import) allows the entire library to more easily be embedded in a 
+subdirectory of another project. The various files within the library will 
+still import each other properly even though 'markdown' may not be in Python's
+root namespace.
+
+* The [Admonition Extension] has been added, which implements [rST-style][rST] 
+admonitions in the Markdown syntax. However, be warned that this extension 
+is experimental and the syntax and behavior is still subject to change. Please 
+try it out and report bugs and/or improvements.
+
+[Admonition Extension]: extensions/admonition.html
+[rST]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions
+
+* Various bug fixes have been made.  See the
+[commit log](https://github.com/waylan/Python-Markdown/commits/master)
+for a complete history of the changes.
index 0ccff28392c69a9eecf766981acab378d6856d09..af2110b787ffd0788fd0dab98339121a4e5e57a9 100644 (file)
@@ -1,77 +1,77 @@
-title:      Release Notes for v2.4\r
-prev_title: Change Log\r
-prev_url:   change_log.html\r
-next_title: Release Notes for v2.3\r
-next_url:   release-2.3.html\r
-\r
-Python-Markdown 2.4 Release Notes\r
-=================================\r
-\r
-We are pleased to release Python-Markdown 2.4 which adds one new extension\r
-and fixes various bugs. See the list of changes below for details.\r
-\r
-Python-Markdown supports Python versions 2.6, 2.7, 3.1, 3.2, and 3.3.\r
-\r
-Backwards-incompatible Changes\r
-------------------------------\r
-\r
-* The "force_linenos" config setting of the CodeHilite extension has been\r
-marked as **Deprecated**. It had previously been marked as "Pending Deprecation"\r
-in version 2.3 when a new setting "linenums" was added to replace it. See \r
-documentation for the [CodeHilite Extension] for an explanation of the new \r
-"linenums" setting. The new setting will honor the old "force_linenos" if it \r
-is set, but "force_linenos" will raise a DeprecationWarning and will likely \r
-be removed in a future version of Python-Markdown.\r
-\r
-[CodeHilite Extension]: extensions/code_hilite.html\r
-\r
-* URLs are no longer percent-encoded. This improves compatibility with the\r
-original (written in Perl) Markdown implementation. Please percent-encode\r
-your URLs manually when needed.\r
-\r
-What's New in Python-Markdown 2.4\r
----------------------------------\r
-\r
-* Thanks to the hard work of [Dmitry Shachnev] the [Smarty Extension] has been \r
-added, which implements [SmartyPants] using Python-Markdown's Extension API. \r
-This offers a few benefits over a third party sript. The HTML does not need\r
-to be "tokenized" twice, no hacks are required to combine SmartyPants and\r
-code highlighting, and we get markdown's escaping feature for free. Please try \r
-it out and report bugs and/or improvements.\r
-\r
-[Dmitry Shachnev]: https://github.com/mitya57\r
-[Smarty Extension]: extensions/smarty.html\r
-[SmartyPants]: http://daringfireball.net/projects/smartypants/\r
-\r
-* The [Table of Contents Extension] now supports new `permalink` option\r
-for creating [Sphinx]-style anchor links.\r
-\r
-[Table of Contents Extension]: extensions/toc.html\r
-[Sphinx]: http://sphinx-doc.org/\r
-\r
-* It is now possible to enable Markdown formatting inside HTML blocks by\r
-appending `markdown=1` to opening tag attributes. See [Markdown Inside HTML\r
-Blocks] section for details. Thanks to [ryneeverett] for implementing this\r
-feature.\r
-\r
-[Markdown Inside HTML Blocks]: extensions/extra.html#nested-markdown-inside-html-blocks\r
-[ryneeverett]: https://github.com/ryneeverett\r
-\r
-* The code blocks now support emphasizing some of the code lines. To use this\r
-feature, specify `hl_lines` option after language name, for example (using\r
-the [Fenced Code Extension]):\r
-\r
-        ```.python hl_lines="1 3"\r
-        # This line will be emphasized.\r
-        # This one won't.\r
-        # This one will be also emphasized.\r
-        ```\r
-\r
-    Thanks to [A. Jesse Jiryu Davis] for implementing this feature.\r
-\r
-[Fenced Code Extension]: extensions/fenced_code_blocks.html\r
-[A. Jesse Jiryu Davis]: https://github.com/ajdavis\r
-\r
-* Various bug fixes have been made.  See the\r
-[commit log](https://github.com/waylan/Python-Markdown/commits/master)\r
-for a complete history of the changes.\r
+title:      Release Notes for v2.4
+prev_title: Release Notes for v2.5
+prev_url:   release-2.5.html
+next_title: Release Notes for v2.3
+next_url:   release-2.3.html
+
+Python-Markdown 2.4 Release Notes
+=================================
+
+We are pleased to release Python-Markdown 2.4 which adds one new extension
+and fixes various bugs. See the list of changes below for details.
+
+Python-Markdown supports Python versions 2.6, 2.7, 3.1, 3.2, and 3.3.
+
+Backwards-incompatible Changes
+------------------------------
+
+* The "force_linenos" config setting of the CodeHilite extension has been
+marked as **Deprecated**. It had previously been marked as "Pending Deprecation"
+in version 2.3 when a new setting "linenums" was added to replace it. See 
+documentation for the [CodeHilite Extension] for an explanation of the new 
+"linenums" setting. The new setting will honor the old "force_linenos" if it 
+is set, but "force_linenos" will raise a DeprecationWarning and will likely 
+be removed in a future version of Python-Markdown.
+
+[CodeHilite Extension]: extensions/code_hilite.html
+
+* URLs are no longer percent-encoded. This improves compatibility with the
+original (written in Perl) Markdown implementation. Please percent-encode
+your URLs manually when needed.
+
+What's New in Python-Markdown 2.4
+---------------------------------
+
+* Thanks to the hard work of [Dmitry Shachnev] the [Smarty Extension] has been 
+added, which implements [SmartyPants] using Python-Markdown's Extension API. 
+This offers a few benefits over a third party sript. The HTML does not need
+to be "tokenized" twice, no hacks are required to combine SmartyPants and
+code highlighting, and we get markdown's escaping feature for free. Please try 
+it out and report bugs and/or improvements.
+
+[Dmitry Shachnev]: https://github.com/mitya57
+[Smarty Extension]: extensions/smarty.html
+[SmartyPants]: http://daringfireball.net/projects/smartypants/
+
+* The [Table of Contents Extension] now supports new `permalink` option
+for creating [Sphinx]-style anchor links.
+
+[Table of Contents Extension]: extensions/toc.html
+[Sphinx]: http://sphinx-doc.org/
+
+* It is now possible to enable Markdown formatting inside HTML blocks by
+appending `markdown=1` to opening tag attributes. See [Markdown Inside HTML
+Blocks] section for details. Thanks to [ryneeverett] for implementing this
+feature.
+
+[Markdown Inside HTML Blocks]: extensions/extra.html#nested-markdown-inside-html-blocks
+[ryneeverett]: https://github.com/ryneeverett
+
+* The code blocks now support emphasizing some of the code lines. To use this
+feature, specify `hl_lines` option after language name, for example (using
+the [Fenced Code Extension]):
+
+        ```.python hl_lines="1 3"
+        # This line will be emphasized.
+        # This one won't.
+        # This one will be also emphasized.
+        ```
+
+    Thanks to [A. Jesse Jiryu Davis] for implementing this feature.
+
+[Fenced Code Extension]: extensions/fenced_code_blocks.html
+[A. Jesse Jiryu Davis]: https://github.com/ajdavis
+
+* Various bug fixes have been made.  See the
+[commit log](https://github.com/waylan/Python-Markdown/commits/master)
+for a complete history of the changes.
diff --git a/docs/release-2.5.txt b/docs/release-2.5.txt
new file mode 100644 (file)
index 0000000..207d876
--- /dev/null
@@ -0,0 +1,190 @@
+title:      Release Notes for v2.5
+prev_title: Change Log
+prev_url:   change_log.html
+next_title: Release Notes for v2.4
+next_url:   release-2.4.html
+
+Python-Markdown 2.5 Release Notes
+=================================
+
+We are pleased to release Python-Markdown 2.5 which adds a few new features
+and fixes various bugs. See the list of changes below for details.
+
+Python-Markdown version 2.5 supports Python versions 2.7, 3.2, 3.3, and 3.4.
+
+Backwards-incompatible Changes
+------------------------------
+
+* Python-Markdown no longer supports Python version 2.6. You must be using Python 
+  versions 2.7, 3.2, 3.3, or 3.4. While Python-Markdown is no longer tested against
+  Python 2.6, you may be able to get it working if you install a copy of [importlib] 
+  which has been backported for Python 2.6. However, the developers of Python-Markdown 
+  offer no guarentees in that situation.
+
+[importlib]: https://pypi.python.org/pypi/importlib
+
+* The `force_linenos` config key on the [CodeHilite Extension] has been **deprecated**
+  and will raise a `KeyError` if provided. In the previous release (2.4), it was 
+  issuing a `DeprecationWarning`. The [`linenums`][linenums] keyword should be used 
+  instead, which provides more control of the output.
+
+[CodeHilite Extension]: extensions/code_hilite.html
+[linenums]: extensions/code_hilite.html#usage
+
+* Both `safe_mode` and the associated `html_replacement_text` keywords will be deprecated 
+  in version 2.6 and will raise a **`PendingDeprecationWarning`** in 2.5. The so-called
+  "safe mode" was never actually "safe" which has resulted in many people having a false 
+  sense of security when using it. As an alternative, the developers of Python-Markdown 
+  recommend that any untrusted content be passed through an HTML sanitizer (like [Bleach])
+  after being converted to HTML by markdown.
+
+    If your code previously looked like this:
+
+           html = markdown.markdown(text, same_mode=True)
+
+       Then it is recommended that you change your code to read something like this:
+
+           import bleach
+        html = bleach.clean(markdown.markdown(text))
+
+       If you are not interested in sanitizing untrusted text, but simply desire to escape
+       raw HTML, then that can be accomplished through an extension which removes HTML parsing:
+
+               from markdown.extensions import Extension
+
+               class EscapeHtml(Extension):
+                       def extendMarkdown(self, md, md_globals):
+                               del md.preprocessors['html_block']
+                               del md.inlinePatterns['html']
+
+               html = markdown.markdown(text, extensions=[EscapeHtml()])
+
+       As the HTML would not be parsed with the above Extension, then the searializer will
+       escape the raw HTML, which is exactly what happens now when `safe_mode="escape"`.
+
+[Bleach]: http://bleach.readthedocs.org/
+
+* Positional arguments on the `markdown.Markdown()` are pending deprecation as are
+  all except the `text` argument on the `markdown.markdown()` wrapper function.
+  Only keyword arguments should be used. For example, if your code previosuly
+  looked like this:
+
+         html = markdown.markdown(text, ['extra'])
+    
+       Then it is recommended that you change it to read something like this:
+
+           html = markdown.markdown(text, extensions=['extra'])
+
+       !!! Note
+           This change is being made as a result of deprecating `"safe_mode"` as the 
+               `safe_mode` argumnet was one of the positional arguments. When that argument 
+               is removed, the two arguments following it will no longer be at the correct 
+               position. It is recomended that you always use keywords when they are supported
+               for this reason.
+
+* In previous versions of Python-Markdown, the builtin extensions received
+  special status and did not require the full path to be provided. Additionaly,
+  third party extensions whose name started with "mdx_" received the same 
+  special treatment. This behavior will be deprecated in version 2.6 and will
+  raise a **`PendingDeprecationWarning`** in 2.5. Ensure that you always use the full 
+  path to your extensions. For example, if you previously did the following:
+
+        markdown.markdown(text, extensions=['extra'])
+
+    You should change your code to the following:
+
+           markdown.markdown(text, extensions=['markdown.extensions.extra'])
+
+    The same applies to the command line:
+
+        $ python -m markdown -x markdown.extensions.extra input.txt
+
+    See the [documentation](reference.html#extensions) for a full explaination
+    of the current behavior.
+
+* The previously documented method of appending the extension configs as 
+  a string to the extension name will be deprecated in Python-Markdown 
+  version 2.6 and will raise a **`PendingDeprecationWarning`** in 2.5. The 
+  [extension_configs](reference.html#extension_configs) keyword should 
+  be used instead. See the [documentation](reference.html#extension-configs) 
+  for a full explaination of the current behavior.
+
+What's New in Python-Markdown 2.5
+---------------------------------
+
+*   The [Smarty Extension] has had a number of additional configuration settings
+    added, which allows one to define their own subtitutions to better support
+    languages other than English. Thanks to [Martin Altmayer] for implementing this 
+       feature.
+
+[Smarty Extension]: extensions/smarty.html
+[Martin Altmayer]:https://github.com/MartinAltmayer
+
+*   Named Extensions (strings passed to the [`extensions`][ex] keyword of 
+    `markdown.Markdown`) can now point to any module and/or Class on your PYTHONPATH. 
+       While dot notation was previously supported, a module could not be at the root of 
+       your PYTHONPATH. The name had to contain at least one dot (requiring it to be a 
+       submodule). This restriction no longer exists. 
+
+       Additionaly, a Class may be specified in the name. The class must be at the end of 
+       the name (which uses dot notation from PYTHONPATH) and be seperated by a colon from 
+       the module. 
+
+       Therefore, if you were to import the class like this:
+       
+               from path.to.module import SomeExtensionClass
+
+       Then the named extension would comprise this string:
+
+               "path.to.module:SomeExtensionClass"
+       
+       This allows multiple extensions to be implemented within the same module and still 
+       accessable when the user isn't able to import the extension directly (perhaps from 
+       a template filter or the command line).
+
+       This also means that extension modules are no longer required to include the 
+       `makeExtension` function which returns an instance of the extension class. However, 
+       if the user does not specify the class name (she only provides `"path.to.module"`)
+       the extension will fail to load without the `makeExtension` function included in
+       the module. Extension authors will want to document carfully what is required to
+       load their extensions.
+
+[ex]: reference.html#extensions
+
+*   The Extension Configuration code has been refactord to make it a little easier 
+    for extension authors to work with config settings. As a result, the 
+    [`extension_configs`][ec] keyword now accepts a dictionary rather than requiring 
+    a list of tuples. A list of tuples is still supported so no one needs to change 
+    their existing code. This should also simplify the learning curve for new users.
+
+       Extension authors are encouraged to review the new methods available on the 
+       `markdown.extnesions.Extension` class for handling configs and adjust their
+       code going forward. The included extensions provide a model for best practices.
+       See the [API] documentation for a full explaination.
+
+[ec]: reference.html#extension_configs
+[API]: extensions/api.html#configsettings
+
+*   The [Command Line Interface][cli] now accepts a `--extensions_config` (or `-c`) 
+    option which accepts a filename and passes the parsed content of a [YAML] or 
+       [JSON]   file to the [`extension_configs`][ec] keyword of the `markdown.Markdown`
+       class. The contents of the YAML or JSON must map to a Python Dictionary which 
+       matches the format required by the `extension_configs` kerword. Note that 
+       [PyYAML] is required to parse YAML files.
+
+[cli]: cli.html#using-extensions
+[YAML]: http://yaml.org/
+[JSON]: http://json.org/
+[PyYAML]: http://pyyaml.org/
+
+*   The [amonition extension][ae] is no longer considered "experimental."
+
+[ae]: extensions/admonition.html
+
+*   There have been various refactors of the testing framework. While those changes
+    will not directly effect end users, the code is being better tested which will 
+    benefit everyone.
+
+*   Various bug fixes have been made.  See the
+    [commit log](https://github.com/waylan/Python-Markdown/commits/master)
+    for a complete history of the changes.
index 22068ccd1156bb61f8269afcf736dcf79e6737b4..3d1e22e4b8f6a4d1fdfbb2ede0db8ef68e40ca9c 100644 (file)
@@ -1,77 +1,77 @@
-title:      Table of Contents\r
-prev_title: Authors\r
-prev_url:   authors.html\r
-next_title: Summary\r
-next_url:   index.html\r
-\r
-Table of Contents\r
-=================\r
-\r
-* [Python Markdown](index.html)\r
-    * [Goals](index.html#goals)\r
-    * [Features](index.html#features)\r
-    * [Differences](index.html#differences)\r
-    * [Support](index.html#support)\r
-* [Installation](install.html)\r
-    * [The Easy Way](install.html#the-easy-way)\r
-    * [Installing on Windows](install.html#windows)\r
-    * [Installing on *nix Systems](install.html#linux)\r
-    * [Using the Git Repository](install.html#git)\r
-    * [Dependencies](install.html#dependencies)\r
-* [Library Reference](reference.html)\r
-    * [The Basics](reference.html#the-basics)\r
-    * [The Details](reference.html#the-details)\r
-        * [markdown.markdown](reference.html#markdown)\r
-        * [markdown.markdownFromFile](reference.html#markdownFromFile)\r
-        * [markdown.Markdown](reference.html#Markdown)\r
-* [Command Line](cli.html)\r
-    * [Setup](cli.html#setup)\r
-    * [Usage](cli.html#usage)\r
-    * [Using Extensions](cli.html#using-extensions)\r
-* [Extensions](extensions/index.html)\r
-    * [Officially Supported Extensions](extensions/index.html#officially-supported-extensions)\r
-        * [Extra](extensions/extra.html)\r
-            * [Abbreviations](extensions/abbreviations.html)\r
-            * [Attribute Lists](extensions/attr_list.html)\r
-            * [Definition Lists](extensions/definition_lists.html)\r
-            * [Fenced Code Blocks](extensions/fenced_code_blocks.html)\r
-            * [Footnotes](extensions/footnotes.html)\r
-            * [Tables](extensions/tables.html)\r
-            * [Smart Strong](extensions/smart_strong.html)\r
-        * [Admonition](extensions/admonition.html)\r
-        * [CodeHilite](extensions/code_hilite.html)\r
-        * [HeaderId](extensions/header_id.html)\r
-        * [Meta-Data](extensions/meta_data.html)\r
-        * [New Line to Break](extensions/nl2br.html)\r
-        * [Sane Lists](extensions/sane_lists.html)\r
-        * [SmartyPants](extensions/smarty.html)\r
-        * [Table of Contents](extensions/toc.html)\r
-        * [WikiLinks](extensions/wikilinks.html)\r
-    * [Third Party Extensions](extensions/index.html#third-party-extensions)\r
-    * [Extension API](extensions/api.html)\r
-        * [Preprocessors](extensions/api.html#preprocessors)\r
-        * [InlinePatterns](extensions/api.html#inlinepatterns)\r
-        * [Treeprocessors](extensions/api.html#treeprocessors)\r
-        * [Postprocessors](extensions/api.html#postprocessors)\r
-        * [BlockParser](extensions/api.html#blockparser)\r
-        * [Working with the ElementTree](extensions/api.html#working_with_et)\r
-        * [Integrating your code into Markdown](extensions/api.html#integrating_into_markdown)\r
-            * [extendMarkdown](extensions/api.html#extendmarkdown)\r
-            * [OrderedDict](extensions/api.html#ordereddict)\r
-            * [registerExtension](extensions/api.html#registerextension)\r
-            * [Config Settings](extensions/api.html#configsettings)\r
-            * [makeExtension](extensions/api.html#makeextension)\r
-* [Test Suite](test_suite.html)\r
-    * [Markdown Syntax Test](test_suite.html#markdown-syntax-tests)\r
-    * [Syntax Test Config Settings](test_suite.html#syntax-test-config-settings)\r
-    * [Unit Tests](test_suite.html#unit-tests)\r
-    * [Doc Tests](test_suite.html#doc-tests)\r
-* [Change Log](change_log.html)\r
-    * [Release Notes for v.2.4](release-2.4.html)\r
-    * [Release Notes for v.2.3](release-2.3.html)\r
-    * [Release Notes for v.2.2.1](release-2.1.1.html)\r
-    * [Release Notes for v.2.2.0](release-2.1.0.html)\r
-    * [Release Notes for v.2.0.2](release-2.0.2.html)\r
-    * [Release Notes for v.2.0.1](release-2.0.1.html)\r
-    * [Release Notes for v.2.0](release-2.0.html)\r
-* [Authors](authors.html)\r
+title:      Table of Contents
+prev_title: Authors
+prev_url:   authors.html
+next_title: Summary
+next_url:   index.html
+
+Table of Contents
+=================
+
+* [Python Markdown](index.html)
+    * [Goals](index.html#goals)
+    * [Features](index.html#features)
+    * [Differences](index.html#differences)
+    * [Support](index.html#support)
+* [Installation](install.html)
+    * [The Easy Way](install.html#the-easy-way)
+    * [Installing on Windows](install.html#windows)
+    * [Installing on *nix Systems](install.html#linux)
+    * [Using the Git Repository](install.html#git)
+    * [Dependencies](install.html#dependencies)
+* [Library Reference](reference.html)
+    * [The Basics](reference.html#the-basics)
+    * [The Details](reference.html#the-details)
+        * [markdown.markdown](reference.html#markdown)
+        * [markdown.markdownFromFile](reference.html#markdownFromFile)
+        * [markdown.Markdown](reference.html#Markdown)
+* [Command Line](cli.html)
+    * [Setup](cli.html#setup)
+    * [Usage](cli.html#usage)
+    * [Using Extensions](cli.html#using-extensions)
+* [Extensions](extensions/index.html)
+    * [Officially Supported Extensions](extensions/index.html#officially-supported-extensions)
+        * [Extra](extensions/extra.html)
+            * [Abbreviations](extensions/abbreviations.html)
+            * [Attribute Lists](extensions/attr_list.html)
+            * [Definition Lists](extensions/definition_lists.html)
+            * [Fenced Code Blocks](extensions/fenced_code_blocks.html)
+            * [Footnotes](extensions/footnotes.html)
+            * [Tables](extensions/tables.html)
+            * [Smart Strong](extensions/smart_strong.html)
+        * [Admonition](extensions/admonition.html)
+        * [CodeHilite](extensions/code_hilite.html)
+        * [HeaderId](extensions/header_id.html)
+        * [Meta-Data](extensions/meta_data.html)
+        * [New Line to Break](extensions/nl2br.html)
+        * [Sane Lists](extensions/sane_lists.html)
+        * [SmartyPants](extensions/smarty.html)
+        * [Table of Contents](extensions/toc.html)
+        * [WikiLinks](extensions/wikilinks.html)
+    * [Third Party Extensions](extensions/index.html#third-party-extensions)
+    * [Extension API](extensions/api.html)
+        * [Preprocessors](extensions/api.html#preprocessors)
+        * [InlinePatterns](extensions/api.html#inlinepatterns)
+        * [Treeprocessors](extensions/api.html#treeprocessors)
+        * [Postprocessors](extensions/api.html#postprocessors)
+        * [BlockParser](extensions/api.html#blockparser)
+        * [Working with the ElementTree](extensions/api.html#working_with_et)
+        * [Integrating your code into Markdown](extensions/api.html#integrating_into_markdown)
+            * [extendMarkdown](extensions/api.html#extendmarkdown)
+            * [OrderedDict](extensions/api.html#ordereddict)
+            * [registerExtension](extensions/api.html#registerextension)
+            * [Config Settings](extensions/api.html#configsettings)
+            * [makeExtension](extensions/api.html#makeextension)
+* [Test Suite](test_suite.html)
+    * [Markdown Syntax Test](test_suite.html#markdown-syntax-tests)
+    * [Syntax Test Config Settings](test_suite.html#syntax-test-config-settings)
+    * [Unit Tests](test_suite.html#unit-tests)
+* [Change Log](change_log.html)
+    * [Release Notes for v.2.5](release-2.5.html)
+    * [Release Notes for v.2.4](release-2.4.html)
+    * [Release Notes for v.2.3](release-2.3.html)
+    * [Release Notes for v.2.2.1](release-2.1.1.html)
+    * [Release Notes for v.2.2.0](release-2.1.0.html)
+    * [Release Notes for v.2.0.2](release-2.0.2.html)
+    * [Release Notes for v.2.0.1](release-2.0.1.html)
+    * [Release Notes for v.2.0](release-2.0.html)
+* [Authors](authors.html)
index 6ca22db60758190fade3dc9cc2d84fe3fd213282..43829e9d2ccd054b3425a0d40e4757dd9e16566e 100644 (file)
-title:      Test Suite\r
-prev_title: Extension API\r
-prev_url:   extensions/api.html\r
-next_title: Change Log\r
-next_url:   change_log.html\r
-\r
-# Test Suite\r
-\r
-Python-Markdown comes with a test suite which uses the [Nose][] testing\r
-framework.The test suite primarily serves to ensure that new bugs are not\r
-introduced as existing bugs are patched or new features are added. It also\r
-allows Python-Markdown to be tested with the tests from other implementations\r
-such as John Gruber's [Perl][] implementation or Michel Fortin's [PHP][]\r
-implementation.\r
-\r
-The test suite can be run by calling the `run_tests.py` command at the root of\r
-the distribution tarball or by calling the `nosetests` command directly. Either\r
-way, Nose will need to be installed on your system first (run `easy_install\r
-nose`). Any standard nosetests config options can be passed in on the command\r
-line (i.e.: verbosity level or use of a plugin like coverage).\r
-\r
-Additionally, a nicely formatted HTML report of all output is written to a\r
-temporary file in `test-output.html`. Open the file in a browser to view\r
-the report.\r
-\r
-A tox.ini file is also provided, so [tox] can be used to automatically create\r
-virtual environments and run the tests on each supported Python version. See\r
-the wiki for instructions on [setting up a testing environment] to use tox.\r
-\r
-The test suite contains two kinds of tests: Markdown Syntax Tests and Unit\r
-Tests.\r
-\r
-## Markdown Syntax Tests\r
-\r
-The Syntax Tests are in the various directories contained within the 'tests'\r
-directory of the packaged tarball. Each test consists of a matching pair of txt\r
-and html files. The txt file contains a snippet of Markdown source text\r
-formated for a specific syntax feature and the html file contains the expected\r
-HTML output of that snippet. When the test suite is run, each txt file is run\r
-through Markdown and the output is compared with the html file as a separate\r
-Unit Test.\r
-\r
-In fact, this is the primary reason for using Nose, it gives us an easy way to\r
-treat each of these tests as a separate unit test which is reported on\r
-separately. Additionally, with the help of a couple custom Nose plugins which\r
-are included with the Markdown Test Suite, we are able to get back an easy to\r
-read diff of the actual output compared to expected output when a test fails.\r
-\r
-Here is some sample output with a test that is failing because of some\r
-insignificant white space differences:\r
-\r
-    $ ./run-tests.py\r
-    ..........................................................M...........\r
-    ............................SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS\r
-    SSSSSSSSSS.................S..........................................\r
-    .........\r
-    ======================================================================\r
-    MarkdownSyntaxError: TestSyntax: "misc/lists3"\r
-    ----------------------------------------------------------------------\r
-    MarkdownSyntaxError: Output from "/home/waylan/code/python-markdown/te\r
-    sts/misc/lists3.txt" failed to match expected output.\r
-\r
-    --- /home/waylan/code/python-markdown/tests/misc/lists3.html \r
-    +++ actual_output.html \r
-    @@ -1,5 +1,5 @@ \r
-     <ul> \r
-     <li>blah blah blah \r
-    -sdf asdf asdf asdf asdf \r
-    -asda asdf asdfasd</li> \r
-    +    sdf asdf asdf asdf asdf \r
-    +    asda asdf asdfasd</li> \r
-     </ul>\r
-\r
-    ---------------------------------------------------------------------- \r
-    Ran 219 tests in 7.698s\r
-\r
-    FAILED (MarkdownSyntaxError=1, SKIP=53)\r
-\r
-Note that 219 tests were run, one of which failed with a `MarkdownSyntaxError`.\r
-Only Markdown Syntax Tests should fail with a `MarkdownSyntaxError`. Nose then\r
-formats the error reports for `MarkdownSyntaxError`s so that they only include\r
-useful information. Namely the txt file which failed and a unified diff showing\r
-the failure. Without the plugin, you would also get a useless traceback showing\r
-how the code stepped through the test framework, but nothing about how Markdown\r
-actually ran.\r
-\r
-If, on the other hand, a Syntax Test failed because some other exception gets\r
-raised by either Markdown or the test suite, then that would be reported as per\r
-a normal unit test failure with the appropriate traceback for debugging\r
-purposes.\r
-\r
-### Syntax Test Config Settings\r
-\r
-The other thing to note about the above example is that 53 tests were skipped.\r
-Those tests have been explicitly configured to be skipped as they are primarily\r
-tests from either PHP or Perl which are known to fail for various reasons. In\r
-fact, a number of different configuration settings can be set for any specific\r
-test.\r
-\r
-Each Syntax Test directory contains a `test.cfg` file in the ini format. The\r
-file may contain a separate section for each txt file named exactly as the file\r
-is named minus the file extension (i.e.; the section for a test in `foo.txt`\r
-would be `[foo]`). All settings are optional. Default settings for the entire\r
-directory can be set under the `[DEFAULT]` section (must be all caps). Any\r
-settings under a specific file section will override anything in the\r
-`[DEFAULT]` section for that specific test only.\r
-\r
-Below are each of the config options available and the defaults used when they\r
-are not explicitly set.\r
-\r
-* `normalize`: Switches whitespace normalization of the test output on or off. \r
-  Defaults to `0` (off). Note: This requires that [PyTidyLib] be installed on \r
-  the system. Otherwise the test will be skipped, regardless of any other \r
-  settings.  \r
-* `skip`: Switches skipping of the test on and off. Defaults to `0` (off).  \r
-* `input_ext`: Extension of input file. Defaults to `.txt`. Useful for tests \r
-  from other implementations.\r
-* `output_ext`: Extension of output file. Defaults to `.html`. Useful for tests\r
-  from other implementations.\r
-* Any keyword arguement accepted by the Markdown class. If not set, Markdown's \r
-  defaults are used. \r
-\r
-## Unit Tests\r
-\r
-Unit Tests are used as regression tests for Python-Markdown's API.\r
-All Unit Tests shipped with Python-Markdown are standard Python Unit Tests and\r
-are all contained in `tests/test_apis.py` and `tests/test_extensions.py`. \r
-Standard discovery methods are used to find and run the tests. Therefore, when \r
-writing new tests, those standards and naming conventions should be followed.\r
-\r
-[Nose]: http://somethingaboutorange.com/mrl/projects/nose/ \r
-[Perl]: http://daringfireball.net/projects/markdown/ \r
-[PHP]: http://michelf.com/projects/php-markdown/ \r
-[PyTidyLib]: http://countergram.com/open-source/pytidylib/\r
-[tox]: http://testrun.org/tox/latest/\r
-[setting up a testing environment]: https://github.com/waylan/Python-Markdown/wiki/Test-Environment-Setup\r
+title:      Test Suite
+prev_title: Extension API
+prev_url:   extensions/api.html
+next_title: Change Log
+next_url:   change_log.html
+
+# Test Suite
+
+Python-Markdown comes with a test suite which uses the [Nose] testing
+framework and [YAML]. The test suite primarily serves to ensure that new bugs 
+are not introduced as existing bugs are patched or new features are added. It 
+also allows Python-Markdown to be tested with the tests from other 
+implementations such as John Gruber's [Perl] implementation or Michel 
+Fortin's [PHP] implementation.
+
+The test suite can be run by calling the `run_tests.py` command at the root of
+the distribution tarball or by calling the `nosetests` command directly. Either
+way, Nose will need to be installed on your system first (run `easy_install
+nose`). Any standard nosetests config options can be passed in on the command
+line (i.e.: verbosity level or use of a plugin like coverage).
+
+Additionally, a nicely formatted HTML report of all output is written to a
+temporary file in `test-output.html`. Open the file in a browser to view
+the report.
+
+A tox.ini file is also provided, so [tox] can be used to automatically create
+virtual environments, install all testing dependencies and run the tests on 
+each supported Python version. See the wiki for instructions on 
+[setting up a testing environment] to use tox.
+
+The test suite contains two kinds of tests: Markdown Syntax Tests and Unit
+Tests.
+
+## Markdown Syntax Tests
+
+The Syntax Tests are in the various directories contained within the 'tests'
+directory of the packaged tarball. Each test consists of a matching pair of txt
+and html files. The txt file contains a snippet of Markdown source text
+formated for a specific syntax feature and the html file contains the expected
+HTML output of that snippet. When the test suite is run, each txt file is run
+through Markdown and the output is compared with the html file as a separate
+Unit Test.
+
+In fact, this is the primary reason for using Nose, it gives us an easy way to
+treat each of these tests as a separate unit test which is reported on
+separately. Additionally, with the help of a couple custom Nose plugins which
+are included with the Markdown Test Suite, we are able to get back an easy to
+read diff of the actual output compared to expected output when a test fails.
+
+Here is some sample output with a test that is failing because of some
+insignificant white space differences:
+
+    $ ./run-tests.py
+    ..........................................................M...........
+    ............................SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
+    SSSSSSSSSS.................S..........................................
+    .........
+    ======================================================================
+    MarkdownSyntaxError: TestSyntax: "misc/lists3"
+    ----------------------------------------------------------------------
+    MarkdownSyntaxError: Output from "/home/waylan/code/python-markdown/te
+    sts/misc/lists3.txt" failed to match expected output.
+
+    --- /home/waylan/code/python-markdown/tests/misc/lists3.html 
+    +++ actual_output.html 
+    @@ -1,5 +1,5 @@ 
+     <ul> 
+     <li>blah blah blah 
+    -sdf asdf asdf asdf asdf 
+    -asda asdf asdfasd</li> 
+    +    sdf asdf asdf asdf asdf 
+    +    asda asdf asdfasd</li> 
+     </ul>
+
+    ---------------------------------------------------------------------- 
+    Ran 219 tests in 7.698s
+
+    FAILED (MarkdownSyntaxError=1, SKIP=53)
+
+Note that 219 tests were run, one of which failed with a `MarkdownSyntaxError`.
+Only Markdown Syntax Tests should fail with a `MarkdownSyntaxError`. Nose then
+formats the error reports for `MarkdownSyntaxError`s so that they only include
+useful information. Namely the txt file which failed and a unified diff showing
+the failure. Without the plugin, you would also get a useless traceback showing
+how the code stepped through the test framework, but nothing about how Markdown
+actually ran.
+
+If, on the other hand, a Syntax Test failed because some other exception gets
+raised by either Markdown or the test suite, then that would be reported as per
+a normal unit test failure with the appropriate traceback for debugging
+purposes.
+
+### Syntax Test Config Settings
+
+The other thing to note about the above example is that 53 tests were skipped.
+Those tests have been explicitly configured to be skipped as they are primarily
+tests from either PHP or Perl which are known to fail for various reasons. In
+fact, a number of different configuration settings can be set for any specific
+test.
+
+Each Syntax Test directory contains a `test.cfg` file in the [YAML] format. The
+file may contain a separate section for each txt file named exactly as the file
+is named minus the file extension (i.e.; the section for a test in `foo.txt`
+would be `foo`). All settings are optional. Default settings for the entire
+directory can be set under the `DEFAULT` section (must be all caps). Any
+settings under a specific file section will override anything in the
+`DEFAULT` section for that specific test only.
+
+Below are the config options available and the defaults used when they
+are not explicitly set.
+
+* `normalize`: Switches whitespace normalization of the test output on or off. 
+  Defaults to `False` (off). Note: This requires that [PyTidyLib] be installed on 
+  the system. Otherwise the test will be skipped, regardless of any other 
+  settings.  
+* `skip`: Switches skipping of the test on and off. Defaults to `False` (off).  
+* `input_ext`: Extension of input file. Defaults to `.txt`. Useful for tests 
+  from other implementations.
+* `output_ext`: Extension of output file. Defaults to `.html`. Useful for tests
+  from other implementations.
+* Any keyword arguement accepted by the Markdown class. If not set, Markdown's 
+  defaults are used. 
+
+## Unit Tests
+
+Unit Tests are used as regression tests for Python-Markdown's API.
+All Unit Tests shipped with Python-Markdown are standard Python Unit Tests and
+are all contained in `tests/test_apis.py` and `tests/test_extensions.py`. 
+Standard discovery methods are used to find and run the tests. Therefore, when 
+writing new tests, those standards and naming conventions should be followed.
+
+[Nose]: http://somethingaboutorange.com/mrl/projects/nose/ 
+[Perl]: http://daringfireball.net/projects/markdown/ 
+[PHP]: http://michelf.com/projects/php-markdown/ 
+[PyTidyLib]: http://countergram.com/open-source/pytidylib/
+[tox]: http://testrun.org/tox/latest/
+[setting up a testing environment]: https://github.com/waylan/Python-Markdown/wiki/Test-Environment-Setup
+[YAML]: http://yaml.org/
index 3aa337059edb436ce2929617c8240ab3a12a695c..3945db6f0e37d17849c4b595990ed3dbcafac804 100644 (file)
--- a/makefile
+++ b/makefile
@@ -1,49 +1,52 @@
-# Python-Markdown makefile\r
-\r
-.PHONY : install\r
-install:\r
-       python setup.py install\r
-\r
-.PHONY : deploy\r
-deploy:\r
-       python setup.py register\r
-       python setup.py sdist --formats zip,gztar upload\r
-\r
-.PHONY : build\r
-build:\r
-       python setup.py sdist --formats zip,gztar\r
-\r
-.PHONY : build-win\r
-build-win:\r
-       python setup.py bdist_wininst\r
-\r
-.PHONY : docs\r
-docs:\r
-       python setup.py build_docs --force\r
-       cd build/docs && zip -r ../docs.zip .\r
-\r
-.PHONY : test\r
-test:\r
-       tox\r
-\r
-.PHONY : update-tests\r
-update-tests:\r
-       python run-tests.py update\r
-\r
-.PHONY : clean\r
-clean:\r
-       rm -f MANIFEST\r
-       rm -f test-output.html\r
-       rm -f *.pyc\r
-       rm -f markdown/*.pyc\r
-       rm -f markdown/extensions/*.pyc\r
-       rm -f *.bak\r
-       rm -f markdown/*.bak\r
-       rm -f markdown/extensions/*.bak\r
-       rm -f *.swp\r
-       rm -f markdown/*.swp\r
-       rm -f markdown/extensions/*.swp\r
-       rm -rf build\r
-       rm -rf dist\r
-       rm -rf tmp\r
-       # git clean -dfx'\r
+# Python-Markdown makefile
+
+.PHONY : install
+install:
+       python setup.py install
+
+.PHONY : deploy
+deploy:
+       python setup.py register
+       python setup.py sdist --manifest-only
+       python setup.py sdist --formats zip,gztar upload
+
+.PHONY : build
+build:
+       python setup.py sdist --manifest-only
+       python setup.py sdist --formats zip,gztar
+
+.PHONY : build-win
+build-win:
+       python setup.py sdist --manifest-only
+       python setup.py bdist_wininst
+
+.PHONY : docs
+docs:
+       python setup.py build_docs --force
+       cd build/docs && zip -r ../docs.zip .
+
+.PHONY : test
+test:
+       tox
+
+.PHONY : update-tests
+update-tests:
+       python run-tests.py update
+
+.PHONY : clean
+clean:
+       rm -f MANIFEST
+       rm -f test-output.html
+       rm -f *.pyc
+       rm -f markdown/*.pyc
+       rm -f markdown/extensions/*.pyc
+       rm -f *.bak
+       rm -f markdown/*.bak
+       rm -f markdown/extensions/*.bak
+       rm -f *.swp
+       rm -f markdown/*.swp
+       rm -f markdown/extensions/*.swp
+       rm -rf build
+       rm -rf dist
+       rm -rf tmp
+       # git clean -dfx'
index 12d5e12e5582a487712ad48f0d833e75d2b85327..cbcee58906a7d4c9e543fd410037ddf25df03dbc 100644 (file)
-"""\r
-Python Markdown\r
-===============\r
-\r
-Python Markdown converts Markdown to HTML and can be used as a library or\r
-called from the command line.\r
-\r
-## Basic usage as a module:\r
-\r
-    import markdown\r
-    html = markdown.markdown(your_text_string)\r
-\r
-See <http://packages.python.org/Markdown/> for more\r
-information and instructions on how to extend the functionality of\r
-Python Markdown.  Read that before you try modifying this file.\r
-\r
-## Authors and License\r
-\r
-Started by [Manfred Stienstra](http://www.dwerg.net/).  Continued and\r
-maintained  by [Yuri Takhteyev](http://www.freewisdom.org), [Waylan\r
-Limberg](http://achinghead.com/) and [Artem Yunusov](http://blog.splyer.com).\r
-\r
-Contact: markdown@freewisdom.org\r
-\r
-Copyright 2007-2013 The Python Markdown Project (v. 1.7 and later)\r
-Copyright 200? Django Software Foundation (OrderedDict implementation)\r
-Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)\r
-Copyright 2004 Manfred Stienstra (the original version)\r
-\r
-License: BSD (see LICENSE for details).\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from .__version__ import version, version_info\r
-import codecs\r
-import sys\r
-import logging\r
-from . import util\r
-from .preprocessors import build_preprocessors\r
-from .blockprocessors import build_block_parser\r
-from .treeprocessors import build_treeprocessors\r
-from .inlinepatterns import build_inlinepatterns\r
-from .postprocessors import build_postprocessors\r
-from .extensions import Extension\r
-from .serializers import to_html_string, to_xhtml_string\r
-\r
-__all__ = ['Markdown', 'markdown', 'markdownFromFile']\r
-\r
-logger = logging.getLogger('MARKDOWN')\r
-\r
-\r
-class Markdown(object):\r
-    """Convert Markdown to HTML."""\r
-\r
-    doc_tag = "div"     # Element used to wrap document - later removed\r
-\r
-    option_defaults = {\r
-        'html_replacement_text' : '[HTML_REMOVED]',\r
-        'tab_length'            : 4,\r
-        'enable_attributes'     : True,\r
-        'smart_emphasis'        : True,\r
-        'lazy_ol'               : True,\r
-    }\r
-\r
-    output_formats = {\r
-        'html'  : to_html_string,\r
-        'html4' : to_html_string,\r
-        'html5' : to_html_string,\r
-        'xhtml' : to_xhtml_string,\r
-        'xhtml1': to_xhtml_string,\r
-        'xhtml5': to_xhtml_string,\r
-    }\r
-\r
-    ESCAPED_CHARS = ['\\', '`', '*', '_', '{', '}', '[', ']',\r
-                    '(', ')', '>', '#', '+', '-', '.', '!']\r
-\r
-    def __init__(self, *args, **kwargs):\r
-        """\r
-        Creates a new Markdown instance.\r
-\r
-        Keyword arguments:\r
-\r
-        * extensions: A list of extensions.\r
-           If they are of type string, the module mdx_name.py will be loaded.\r
-           If they are a subclass of markdown.Extension, they will be used\r
-           as-is.\r
-        * extension_configs: Configuration settingis for extensions.\r
-        * output_format: Format of output. Supported formats are:\r
-            * "xhtml1": Outputs XHTML 1.x. Default.\r
-            * "xhtml5": Outputs XHTML style tags of HTML 5\r
-            * "xhtml": Outputs latest supported version of XHTML (currently XHTML 1.1).\r
-            * "html4": Outputs HTML 4\r
-            * "html5": Outputs HTML style tags of HTML 5\r
-            * "html": Outputs latest supported version of HTML (currently HTML 4).\r
-            Note that it is suggested that the more specific formats ("xhtml1"\r
-            and "html4") be used as "xhtml" or "html" may change in the future\r
-            if it makes sense at that time.\r
-        * safe_mode: Disallow raw html. One of "remove", "replace" or "escape".\r
-        * html_replacement_text: Text used when safe_mode is set to "replace".\r
-        * tab_length: Length of tabs in the source. Default: 4\r
-        * enable_attributes: Enable the conversion of attributes. Default: True\r
-        * smart_emphasis: Treat `_connected_words_` intelligently Default: True\r
-        * lazy_ol: Ignore number of first item of ordered lists. Default: True\r
-\r
-        """\r
-\r
-        # For backward compatibility, loop through old positional args\r
-        pos = ['extensions', 'extension_configs', 'safe_mode', 'output_format']\r
-        c = 0\r
-        for arg in args:\r
-            if pos[c] not in kwargs:\r
-                kwargs[pos[c]] = arg\r
-            c += 1\r
-            if c == len(pos):\r
-                # ignore any additional args\r
-                break\r
-\r
-        # Loop through kwargs and assign defaults\r
-        for option, default in self.option_defaults.items():\r
-            setattr(self, option, kwargs.get(option, default))\r
-\r
-        self.safeMode = kwargs.get('safe_mode', False)\r
-        if self.safeMode and 'enable_attributes' not in kwargs:\r
-            # Disable attributes in safeMode when not explicitly set\r
-            self.enable_attributes = False\r
-\r
-        self.registeredExtensions = []\r
-        self.docType = ""\r
-        self.stripTopLevelTags = True\r
-\r
-        self.build_parser()\r
-\r
-        self.references = {}\r
-        self.htmlStash = util.HtmlStash()\r
-        self.registerExtensions(extensions=kwargs.get('extensions', []),\r
-                                configs=kwargs.get('extension_configs', {}))\r
-        self.set_output_format(kwargs.get('output_format', 'xhtml1'))\r
-        self.reset()\r
-\r
-    def build_parser(self):\r
-        """ Build the parser from the various parts. """\r
-        self.preprocessors = build_preprocessors(self)\r
-        self.parser = build_block_parser(self)\r
-        self.inlinePatterns = build_inlinepatterns(self)\r
-        self.treeprocessors = build_treeprocessors(self)\r
-        self.postprocessors = build_postprocessors(self)\r
-        return self\r
-\r
-    def registerExtensions(self, extensions, configs):\r
-        """\r
-        Register extensions with this instance of Markdown.\r
-\r
-        Keyword arguments:\r
-\r
-        * extensions: A list of extensions, which can either\r
-           be strings or objects.  See the docstring on Markdown.\r
-        * configs: A dictionary mapping module names to config options.\r
-\r
-        """\r
-        for ext in extensions:\r
-            if isinstance(ext, util.string_type):\r
-                ext = self.build_extension(ext, configs.get(ext, []))\r
-            if isinstance(ext, Extension):\r
-                ext.extendMarkdown(self, globals())\r
-            elif ext is not None:\r
-                raise TypeError(\r
-                    'Extension "%s.%s" must be of type: "markdown.Extension"'\r
-                    % (ext.__class__.__module__, ext.__class__.__name__))\r
-\r
-        return self\r
-\r
-    def build_extension(self, ext_name, configs = []):\r
-        """Build extension by name, then return the module.\r
-\r
-        The extension name may contain arguments as part of the string in the\r
-        following format: "extname(key1=value1,key2=value2)"\r
-\r
-        """\r
-\r
-        # Parse extensions config params (ignore the order)\r
-        configs = dict(configs)\r
-        pos = ext_name.find("(") # find the first "("\r
-        if pos > 0:\r
-            ext_args = ext_name[pos+1:-1]\r
-            ext_name = ext_name[:pos]\r
-            pairs = [x.split("=") for x in ext_args.split(",")]\r
-            configs.update([(x.strip(), y.strip()) for (x, y) in pairs])\r
-\r
-        # Setup the module name\r
-        module_name = ext_name\r
-        if '.' not in ext_name:\r
-            module_name = '.'.join(['markdown.extensions', ext_name])\r
-\r
-        # Try loading the extension first from one place, then another\r
-        try: # New style (markdown.extensions.<extension>)\r
-            module = __import__(module_name, {}, {}, [module_name.rpartition('.')[0]])\r
-        except ImportError:\r
-            module_name_old_style = '_'.join(['mdx', ext_name])\r
-            try: # Old style (mdx_<extension>)\r
-                module = __import__(module_name_old_style)\r
-            except ImportError as e:\r
-                message = "Failed loading extension '%s' from '%s' or '%s'" \\r
-                    % (ext_name, module_name, module_name_old_style)\r
-                e.args = (message,) + e.args[1:]\r
-                raise\r
-\r
-        # If the module is loaded successfully, we expect it to define a\r
-        # function called makeExtension()\r
-        try:\r
-            return module.makeExtension(configs.items())\r
-        except AttributeError as e:\r
-            message = e.args[0]\r
-            message = "Failed to initiate extension " \\r
-                      "'%s': %s" % (ext_name, message)\r
-            e.args = (message,) + e.args[1:]\r
-            raise\r
-\r
-    def registerExtension(self, extension):\r
-        """ This gets called by the extension """\r
-        self.registeredExtensions.append(extension)\r
-        return self\r
-\r
-    def reset(self):\r
-        """\r
-        Resets all state variables so that we can start with a new text.\r
-        """\r
-        self.htmlStash.reset()\r
-        self.references.clear()\r
-\r
-        for extension in self.registeredExtensions:\r
-            if hasattr(extension, 'reset'):\r
-                extension.reset()\r
-\r
-        return self\r
-\r
-    def set_output_format(self, format):\r
-        """ Set the output format for the class instance. """\r
-        self.output_format = format.lower()\r
-        try:\r
-            self.serializer = self.output_formats[self.output_format]\r
-        except KeyError as e:\r
-            valid_formats = list(self.output_formats.keys())\r
-            valid_formats.sort()\r
-            message = 'Invalid Output Format: "%s". Use one of %s.' \\r
-                       % (self.output_format, \r
-                          '"' + '", "'.join(valid_formats) + '"')\r
-            e.args = (message,) + e.args[1:]\r
-            raise\r
-        return self\r
-\r
-    def convert(self, source):\r
-        """\r
-        Convert markdown to serialized XHTML or HTML.\r
-\r
-        Keyword arguments:\r
-\r
-        * source: Source text as a Unicode string.\r
-\r
-        Markdown processing takes place in five steps:\r
-\r
-        1. A bunch of "preprocessors" munge the input text.\r
-        2. BlockParser() parses the high-level structural elements of the\r
-           pre-processed text into an ElementTree.\r
-        3. A bunch of "treeprocessors" are run against the ElementTree. One\r
-           such treeprocessor runs InlinePatterns against the ElementTree,\r
-           detecting inline markup.\r
-        4. Some post-processors are run against the text after the ElementTree\r
-           has been serialized into text.\r
-        5. The output is written to a string.\r
-\r
-        """\r
-\r
-        # Fixup the source text\r
-        if not source.strip():\r
-            return ''  # a blank unicode string\r
-\r
-        try:\r
-            source = util.text_type(source)\r
-        except UnicodeDecodeError as e:\r
-            # Customise error message while maintaining original trackback\r
-            e.reason += '. -- Note: Markdown only accepts unicode input!'\r
-            raise\r
-\r
-        # Split into lines and run the line preprocessors.\r
-        self.lines = source.split("\n")\r
-        for prep in self.preprocessors.values():\r
-            self.lines = prep.run(self.lines)\r
-\r
-        # Parse the high-level elements.\r
-        root = self.parser.parseDocument(self.lines).getroot()\r
-\r
-        # Run the tree-processors\r
-        for treeprocessor in self.treeprocessors.values():\r
-            newRoot = treeprocessor.run(root)\r
-            if newRoot is not None:\r
-                root = newRoot\r
-\r
-        # Serialize _properly_.  Strip top-level tags.\r
-        output = self.serializer(root)\r
-        if self.stripTopLevelTags:\r
-            try:\r
-                start = output.index('<%s>'%self.doc_tag)+len(self.doc_tag)+2\r
-                end = output.rindex('</%s>'%self.doc_tag)\r
-                output = output[start:end].strip()\r
-            except ValueError:\r
-                if output.strip().endswith('<%s />'%self.doc_tag):\r
-                    # We have an empty document\r
-                    output = ''\r
-                else:\r
-                    # We have a serious problem\r
-                    raise ValueError('Markdown failed to strip top-level tags. Document=%r' % output.strip())\r
-\r
-        # Run the text post-processors\r
-        for pp in self.postprocessors.values():\r
-            output = pp.run(output)\r
-\r
-        return output.strip()\r
-\r
-    def convertFile(self, input=None, output=None, encoding=None):\r
-        """Converts a markdown file and returns the HTML as a unicode string.\r
-\r
-        Decodes the file using the provided encoding (defaults to utf-8),\r
-        passes the file content to markdown, and outputs the html to either\r
-        the provided stream or the file with provided name, using the same\r
-        encoding as the source file. The 'xmlcharrefreplace' error handler is\r
-        used when encoding the output.\r
-\r
-        **Note:** This is the only place that decoding and encoding of unicode\r
-        takes place in Python-Markdown.  (All other code is unicode-in /\r
-        unicode-out.)\r
-\r
-        Keyword arguments:\r
-\r
-        * input: File object or path. Reads from stdin if `None`.\r
-        * output: File object or path. Writes to stdout if `None`.\r
-        * encoding: Encoding of input and output files. Defaults to utf-8.\r
-\r
-        """\r
-\r
-        encoding = encoding or "utf-8"\r
-\r
-        # Read the source\r
-        if input:\r
-            if isinstance(input, util.string_type):\r
-                input_file = codecs.open(input, mode="r", encoding=encoding)\r
-            else:\r
-                input_file = codecs.getreader(encoding)(input)\r
-            text = input_file.read()\r
-            input_file.close()\r
-        else:\r
-            text = sys.stdin.read()\r
-            if not isinstance(text, util.text_type):\r
-                text = text.decode(encoding)\r
-\r
-        text = text.lstrip('\ufeff') # remove the byte-order mark\r
-\r
-        # Convert\r
-        html = self.convert(text)\r
-\r
-        # Write to file or stdout\r
-        if output:\r
-            if isinstance(output, util.string_type):\r
-                output_file = codecs.open(output, "w",\r
-                                          encoding=encoding,\r
-                                          errors="xmlcharrefreplace")\r
-                output_file.write(html)\r
-                output_file.close()\r
-            else:\r
-                writer = codecs.getwriter(encoding)\r
-                output_file = writer(output, errors="xmlcharrefreplace")\r
-                output_file.write(html)\r
-                # Don't close here. User may want to write more.\r
-        else:\r
-            # Encode manually and write bytes to stdout. \r
-            html = html.encode(encoding, "xmlcharrefreplace")\r
-            try:\r
-                # Write bytes directly to buffer (Python 3).\r
-                sys.stdout.buffer.write(html)\r
-            except AttributeError:\r
-                # Probably Python 2, which works with bytes by default.\r
-                sys.stdout.write(html)\r
-\r
-        return self\r
-\r
-\r
-"""\r
-EXPORTED FUNCTIONS\r
-=============================================================================\r
-\r
-Those are the two functions we really mean to export: markdown() and\r
-markdownFromFile().\r
-"""\r
-\r
-def markdown(text, *args, **kwargs):\r
-    """Convert a markdown string to HTML and return HTML as a unicode string.\r
-\r
-    This is a shortcut function for `Markdown` class to cover the most\r
-    basic use case.  It initializes an instance of Markdown, loads the\r
-    necessary extensions and runs the parser on the given text.\r
-\r
-    Keyword arguments:\r
-\r
-    * text: Markdown formatted text as Unicode or ASCII string.\r
-    * Any arguments accepted by the Markdown class.\r
-\r
-    Returns: An HTML document as a string.\r
-\r
-    """\r
-    md = Markdown(*args, **kwargs)\r
-    return md.convert(text)\r
-\r
-\r
-def markdownFromFile(*args, **kwargs):\r
-    """Read markdown code from a file and write it to a file or a stream.\r
-\r
-    This is a shortcut function which initializes an instance of Markdown,\r
-    and calls the convertFile method rather than convert.\r
-\r
-    Keyword arguments:\r
-\r
-    * input: a file name or readable object.\r
-    * output: a file name or writable object.\r
-    * encoding: Encoding of input and output.\r
-    * Any arguments accepted by the Markdown class.\r
-\r
-    """\r
-    # For backward compatibility loop through positional args\r
-    pos = ['input', 'output', 'extensions', 'encoding']\r
-    c = 0\r
-    for arg in args:\r
-        if pos[c] not in kwargs:\r
-            kwargs[pos[c]] = arg\r
-        c += 1\r
-        if c == len(pos):\r
-            break\r
-\r
-    md = Markdown(**kwargs)\r
-    md.convertFile(kwargs.get('input', None),\r
-                   kwargs.get('output', None),\r
-                   kwargs.get('encoding', None))\r
-\r
+"""
+Python Markdown
+===============
+
+Python Markdown converts Markdown to HTML and can be used as a library or
+called from the command line.
+
+## Basic usage as a module:
+
+    import markdown
+    html = markdown.markdown(your_text_string)
+
+See <https://pythonhosted.org/Markdown/> for more
+information and instructions on how to extend the functionality of
+Python Markdown.  Read that before you try modifying this file.
+
+## Authors and License
+
+Started by [Manfred Stienstra](http://www.dwerg.net/).  Continued and
+maintained  by [Yuri Takhteyev](http://www.freewisdom.org), [Waylan
+Limberg](http://achinghead.com/) and [Artem Yunusov](http://blog.splyer.com).
+
+Contact: markdown@freewisdom.org
+
+Copyright 2007-2013 The Python Markdown Project (v. 1.7 and later)
+Copyright 200? Django Software Foundation (OrderedDict implementation)
+Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
+Copyright 2004 Manfred Stienstra (the original version)
+
+License: BSD (see LICENSE for details).
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from .__version__ import version, version_info
+import codecs
+import sys
+import logging
+import warnings
+import importlib
+from . import util
+from .preprocessors import build_preprocessors
+from .blockprocessors import build_block_parser
+from .treeprocessors import build_treeprocessors
+from .inlinepatterns import build_inlinepatterns
+from .postprocessors import build_postprocessors
+from .extensions import Extension
+from .serializers import to_html_string, to_xhtml_string
+
+__all__ = ['Markdown', 'markdown', 'markdownFromFile']
+
+logger = logging.getLogger('MARKDOWN')
+logging.captureWarnings(True)
+
+
+class Markdown(object):
+    """Convert Markdown to HTML."""
+
+    doc_tag = "div"     # Element used to wrap document - later removed
+
+    option_defaults = {
+        'html_replacement_text' : '[HTML_REMOVED]',
+        'tab_length'            : 4,
+        'enable_attributes'     : True,
+        'smart_emphasis'        : True,
+        'lazy_ol'               : True,
+    }
+
+    output_formats = {
+        'html'  : to_html_string,
+        'html4' : to_html_string,
+        'html5' : to_html_string,
+        'xhtml' : to_xhtml_string,
+        'xhtml1': to_xhtml_string,
+        'xhtml5': to_xhtml_string,
+    }
+
+    ESCAPED_CHARS = ['\\', '`', '*', '_', '{', '}', '[', ']',
+                    '(', ')', '>', '#', '+', '-', '.', '!']
+
+    def __init__(self, *args, **kwargs):
+        """
+        Creates a new Markdown instance.
+
+        Keyword arguments:
+
+        * extensions: A list of extensions.
+           If they are of type string, the module mdx_name.py will be loaded.
+           If they are a subclass of markdown.Extension, they will be used
+           as-is.
+        * extension_configs: Configuration settingis for extensions.
+        * output_format: Format of output. Supported formats are:
+            * "xhtml1": Outputs XHTML 1.x. Default.
+            * "xhtml5": Outputs XHTML style tags of HTML 5
+            * "xhtml": Outputs latest supported version of XHTML (currently XHTML 1.1).
+            * "html4": Outputs HTML 4
+            * "html5": Outputs HTML style tags of HTML 5
+            * "html": Outputs latest supported version of HTML (currently HTML 4).
+            Note that it is suggested that the more specific formats ("xhtml1"
+            and "html4") be used as "xhtml" or "html" may change in the future
+            if it makes sense at that time.
+        * safe_mode: Deprecated! Disallow raw html. One of "remove", "replace" or "escape".
+        * html_replacement_text: Deprecated! Text used when safe_mode is set to "replace".
+        * tab_length: Length of tabs in the source. Default: 4
+        * enable_attributes: Enable the conversion of attributes. Default: True
+        * smart_emphasis: Treat `_connected_words_` intelligently Default: True
+        * lazy_ol: Ignore number of first item of ordered lists. Default: True
+
+        """
+
+        # For backward compatibility, loop through old positional args
+        pos = ['extensions', 'extension_configs', 'safe_mode', 'output_format']
+        for c, arg in enumerate(args):
+            if pos[c] not in kwargs:
+                kwargs[pos[c]] = arg
+            if c+1 == len(pos): #pragma: no cover
+                # ignore any additional args
+                break
+        if len(args):
+            warnings.warn('Positional arguments are pending depreacted in Markdown '
+                          'and will be deprecated in version 2.6. Use keyword '
+                          'arguments only.', PendingDeprecationWarning)
+
+        # Loop through kwargs and assign defaults
+        for option, default in self.option_defaults.items():
+            setattr(self, option, kwargs.get(option, default))
+
+        self.safeMode = kwargs.get('safe_mode', False)
+        if self.safeMode and 'enable_attributes' not in kwargs:
+            # Disable attributes in safeMode when not explicitly set
+            self.enable_attributes = False
+
+        if 'safe_mode' in kwargs:
+            warnings.warn('"safe_mode" is pending deprecation in Python-Markdown '
+                          'and will be deprecated in version 2.6. Use an HTML '
+                          'sanitizer (like Bleach http://bleach.readthedocs.org/) '
+                          'if you are parsing untrusted markdown text. See the '
+                          '2.5 release notes for more info', PendingDeprecationWarning)
+
+        if 'html_replacement_text' in kwargs:
+            warnings.warn('The "html_replacement_text" keyword is pending deprecation '
+                          'in Python-Markdown and will be deprecated in version 2.6 '
+                          'along with "safe_mode".', PendingDeprecationWarning)
+
+        self.registeredExtensions = []
+        self.docType = ""
+        self.stripTopLevelTags = True
+
+        self.build_parser()
+
+        self.references = {}
+        self.htmlStash = util.HtmlStash()
+        self.registerExtensions(extensions=kwargs.get('extensions', []),
+                                configs=kwargs.get('extension_configs', {}))
+        self.set_output_format(kwargs.get('output_format', 'xhtml1'))
+        self.reset()
+
+    def build_parser(self):
+        """ Build the parser from the various parts. """
+        self.preprocessors = build_preprocessors(self)
+        self.parser = build_block_parser(self)
+        self.inlinePatterns = build_inlinepatterns(self)
+        self.treeprocessors = build_treeprocessors(self)
+        self.postprocessors = build_postprocessors(self)
+        return self
+
+    def registerExtensions(self, extensions, configs):
+        """
+        Register extensions with this instance of Markdown.
+
+        Keyword arguments:
+
+        * extensions: A list of extensions, which can either
+           be strings or objects.  See the docstring on Markdown.
+        * configs: A dictionary mapping module names to config options.
+
+        """
+        for ext in extensions:
+            if isinstance(ext, util.string_type):
+                ext = self.build_extension(ext, configs.get(ext, {}))
+            if isinstance(ext, Extension):
+                ext.extendMarkdown(self, globals())
+                logger.info('Successfully loaded extension "%s.%s".' 
+                            % (ext.__class__.__module__, ext.__class__.__name__))
+            elif ext is not None:
+                raise TypeError(
+                    'Extension "%s.%s" must be of type: "markdown.Extension"'
+                    % (ext.__class__.__module__, ext.__class__.__name__))
+
+        return self
+
+    def build_extension(self, ext_name, configs):
+        """Build extension by name, then return the module.
+
+        The extension name may contain arguments as part of the string in the
+        following format: "extname(key1=value1,key2=value2)"
+
+        """
+        
+        configs = dict(configs)
+        
+        # Parse extensions config params (ignore the order)
+        pos = ext_name.find("(") # find the first "("
+        if pos > 0:
+            ext_args = ext_name[pos+1:-1]
+            ext_name = ext_name[:pos]
+            pairs = [x.split("=") for x in ext_args.split(",")]
+            configs.update([(x.strip(), y.strip()) for (x, y) in pairs])
+            warnings.warn('Setting configs in the Named Extension string is pending deprecation. '
+                          'It is recommended that you pass an instance of the extension class to '
+                          'Markdown or use the "extension_configs" keyword. The current behavior '
+                          'will be deprecated in version 2.6 and raise an error in version 2.7. '
+                          'See the Release Notes for Python-Markdown version 2.5 for more info.', 
+                          PendingDeprecationWarning)
+
+        # Get class name (if provided): `path.to.module:ClassName`
+        ext_name, class_name = ext_name.split(':', 1) if ':' in ext_name else (ext_name, '')
+
+        # Try loading the extension first from one place, then another
+        try: 
+            # Assume string uses dot syntax (`path.to.some.module`)
+            module = importlib.import_module(ext_name)
+            logger.debug('Successfuly imported extension module "%s".' % ext_name)
+        except ImportError:
+            # Preppend `markdown.extensions.` to name
+            module_name = '.'.join(['markdown.extensions', ext_name])
+            try: 
+                module = importlib.import_module(module_name)
+                logger.debug('Successfuly imported extension module "%s".' % module_name)
+                warnings.warn('Using short names for Markdown\'s builtin extensions is pending deprecation. '
+                              'Use the full path to the extension with Python\'s dot notation '
+                              '(eg: "%s" instead of "%s"). The current behavior will be deprecated in '
+                              'version 2.6 and raise an error in version 2.7. See the Release Notes for '
+                              'Python-Markdown version 2.5 for more info.' % (module_name, ext_name), 
+                              PendingDeprecationWarning) 
+            except ImportError:
+                # Preppend `mdx_` to name
+                module_name_old_style = '_'.join(['mdx', ext_name])
+                try: 
+                    module = importlib.import_module(module_name_old_style)
+                    logger.debug('Successfuly imported extension module "%s".' % module_name_old_style)
+                    warnings.warn('Markdown\'s behavuor of appending "mdx_" to an extension name '
+                                  'is pending deprecation. Use the full path to the extension with '
+                                  'Python\'s dot notation (eg: "%s" instead of "%s"). The '
+                                  'current behavior will be deprecated in version 2.6 and raise an '
+                                  'error in version 2.7. See the Release Notes for Python-Markdown '
+                                  'version 2.5 for more info.' % (module_name_old_style, ext_name),
+                                  PendingDeprecationWarning) 
+                except ImportError as e:
+                    message = "Failed loading extension '%s' from '%s', '%s' or '%s'" \
+                        % (ext_name, ext_name, module_name, module_name_old_style)
+                    e.args = (message,) + e.args[1:]
+                    raise
+
+        if class_name:
+            # Load given class name from module.
+            return getattr(module, class_name)(**configs)
+        else:
+            # Expect  makeExtension() function to return a class.
+            try:
+                return module.makeExtension(**configs)
+            except AttributeError as e:
+                message = e.args[0]
+                message = "Failed to initiate extension " \
+                          "'%s': %s" % (ext_name, message)
+                e.args = (message,) + e.args[1:]
+                raise
+
+    def registerExtension(self, extension):
+        """ This gets called by the extension """
+        self.registeredExtensions.append(extension)
+        return self
+
+    def reset(self):
+        """
+        Resets all state variables so that we can start with a new text.
+        """
+        self.htmlStash.reset()
+        self.references.clear()
+
+        for extension in self.registeredExtensions:
+            if hasattr(extension, 'reset'):
+                extension.reset()
+
+        return self
+
+    def set_output_format(self, format):
+        """ Set the output format for the class instance. """
+        self.output_format = format.lower()
+        try:
+            self.serializer = self.output_formats[self.output_format]
+        except KeyError as e:
+            valid_formats = list(self.output_formats.keys())
+            valid_formats.sort()
+            message = 'Invalid Output Format: "%s". Use one of %s.' \
+                       % (self.output_format, 
+                          '"' + '", "'.join(valid_formats) + '"')
+            e.args = (message,) + e.args[1:]
+            raise
+        return self
+
+    def convert(self, source):
+        """
+        Convert markdown to serialized XHTML or HTML.
+
+        Keyword arguments:
+
+        * source: Source text as a Unicode string.
+
+        Markdown processing takes place in five steps:
+
+        1. A bunch of "preprocessors" munge the input text.
+        2. BlockParser() parses the high-level structural elements of the
+           pre-processed text into an ElementTree.
+        3. A bunch of "treeprocessors" are run against the ElementTree. One
+           such treeprocessor runs InlinePatterns against the ElementTree,
+           detecting inline markup.
+        4. Some post-processors are run against the text after the ElementTree
+           has been serialized into text.
+        5. The output is written to a string.
+
+        """
+
+        # Fixup the source text
+        if not source.strip():
+            return ''  # a blank unicode string
+
+        try:
+            source = util.text_type(source)
+        except UnicodeDecodeError as e:
+            # Customise error message while maintaining original trackback
+            e.reason += '. -- Note: Markdown only accepts unicode input!'
+            raise
+
+        # Split into lines and run the line preprocessors.
+        self.lines = source.split("\n")
+        for prep in self.preprocessors.values():
+            self.lines = prep.run(self.lines)
+
+        # Parse the high-level elements.
+        root = self.parser.parseDocument(self.lines).getroot()
+
+        # Run the tree-processors
+        for treeprocessor in self.treeprocessors.values():
+            newRoot = treeprocessor.run(root)
+            if newRoot is not None:
+                root = newRoot
+
+        # Serialize _properly_.  Strip top-level tags.
+        output = self.serializer(root)
+        if self.stripTopLevelTags:
+            try:
+                start = output.index('<%s>'%self.doc_tag)+len(self.doc_tag)+2
+                end = output.rindex('</%s>'%self.doc_tag)
+                output = output[start:end].strip()
+            except ValueError: #pragma: no cover
+                if output.strip().endswith('<%s />'%self.doc_tag):
+                    # We have an empty document
+                    output = ''
+                else:
+                    # We have a serious problem
+                    raise ValueError('Markdown failed to strip top-level tags. Document=%r' % output.strip())
+
+        # Run the text post-processors
+        for pp in self.postprocessors.values():
+            output = pp.run(output)
+
+        return output.strip()
+
+    def convertFile(self, input=None, output=None, encoding=None):
+        """Converts a markdown file and returns the HTML as a unicode string.
+
+        Decodes the file using the provided encoding (defaults to utf-8),
+        passes the file content to markdown, and outputs the html to either
+        the provided stream or the file with provided name, using the same
+        encoding as the source file. The 'xmlcharrefreplace' error handler is
+        used when encoding the output.
+
+        **Note:** This is the only place that decoding and encoding of unicode
+        takes place in Python-Markdown.  (All other code is unicode-in /
+        unicode-out.)
+
+        Keyword arguments:
+
+        * input: File object or path. Reads from stdin if `None`.
+        * output: File object or path. Writes to stdout if `None`.
+        * encoding: Encoding of input and output files. Defaults to utf-8.
+
+        """
+
+        encoding = encoding or "utf-8"
+
+        # Read the source
+        if input:
+            if isinstance(input, util.string_type):
+                input_file = codecs.open(input, mode="r", encoding=encoding)
+            else:
+                input_file = codecs.getreader(encoding)(input)
+            text = input_file.read()
+            input_file.close()
+        else:
+            text = sys.stdin.read()
+            if not isinstance(text, util.text_type):
+                text = text.decode(encoding)
+
+        text = text.lstrip('\ufeff') # remove the byte-order mark
+
+        # Convert
+        html = self.convert(text)
+
+        # Write to file or stdout
+        if output:
+            if isinstance(output, util.string_type):
+                output_file = codecs.open(output, "w",
+                                          encoding=encoding,
+                                          errors="xmlcharrefreplace")
+                output_file.write(html)
+                output_file.close()
+            else:
+                writer = codecs.getwriter(encoding)
+                output_file = writer(output, errors="xmlcharrefreplace")
+                output_file.write(html)
+                # Don't close here. User may want to write more.
+        else:
+            # Encode manually and write bytes to stdout. 
+            html = html.encode(encoding, "xmlcharrefreplace")
+            try:
+                # Write bytes directly to buffer (Python 3).
+                sys.stdout.buffer.write(html)
+            except AttributeError:
+                # Probably Python 2, which works with bytes by default.
+                sys.stdout.write(html)
+
+        return self
+
+
+"""
+EXPORTED FUNCTIONS
+=============================================================================
+
+Those are the two functions we really mean to export: markdown() and
+markdownFromFile().
+"""
+
+def markdown(text, *args, **kwargs):
+    """Convert a markdown string to HTML and return HTML as a unicode string.
+
+    This is a shortcut function for `Markdown` class to cover the most
+    basic use case.  It initializes an instance of Markdown, loads the
+    necessary extensions and runs the parser on the given text.
+
+    Keyword arguments:
+
+    * text: Markdown formatted text as Unicode or ASCII string.
+    * Any arguments accepted by the Markdown class.
+
+    Returns: An HTML document as a string.
+
+    """
+    md = Markdown(*args, **kwargs)
+    return md.convert(text)
+
+
+def markdownFromFile(*args, **kwargs):
+    """Read markdown code from a file and write it to a file or a stream.
+
+    This is a shortcut function which initializes an instance of Markdown,
+    and calls the convertFile method rather than convert.
+
+    Keyword arguments:
+
+    * input: a file name or readable object.
+    * output: a file name or writable object.
+    * encoding: Encoding of input and output.
+    * Any arguments accepted by the Markdown class.
+
+    """
+    # For backward compatibility loop through positional args
+    pos = ['input', 'output', 'extensions', 'encoding']
+    c = 0
+    for arg in args:
+        if pos[c] not in kwargs:
+            kwargs[pos[c]] = arg
+        c += 1
+        if c == len(pos):
+            break
+    if len(args):
+        warnings.warn('Positional arguments are pending depreacted in Markdown '
+                      'and will be deprecated in version 2.6. Use keyword '
+                      'arguments only.', PendingDeprecationWarning)
+
+    md = Markdown(**kwargs)
+    md.convertFile(kwargs.get('input', None),
+                   kwargs.get('output', None),
+                   kwargs.get('encoding', None))
+
index 6da1d32ce2f7b8a62e5ebb6459becb2ae5cb5abf..d085540bce64766652e31ec2ca1f736ecdb2e361 100644 (file)
-"""\r
-COMMAND-LINE SPECIFIC STUFF\r
-=============================================================================\r
-\r
-"""\r
-\r
-import markdown\r
-import sys\r
-import optparse\r
-\r
-import logging\r
-from logging import DEBUG, INFO, CRITICAL\r
-\r
-logger =  logging.getLogger('MARKDOWN')\r
-\r
-def parse_options():\r
-    """\r
-    Define and parse `optparse` options for command-line usage.\r
-    """\r
-    usage = """%prog [options] [INPUTFILE]\r
-       (STDIN is assumed if no INPUTFILE is given)"""\r
-    desc = "A Python implementation of John Gruber's Markdown. " \\r
-           "http://packages.python.org/Markdown/"\r
-    ver = "%%prog %s" % markdown.version\r
-    \r
-    parser = optparse.OptionParser(usage=usage, description=desc, version=ver)\r
-    parser.add_option("-f", "--file", dest="filename", default=None,\r
-                      help="Write output to OUTPUT_FILE. Defaults to STDOUT.",\r
-                      metavar="OUTPUT_FILE")\r
-    parser.add_option("-e", "--encoding", dest="encoding",\r
-                      help="Encoding for input and output files.",)\r
-    parser.add_option("-q", "--quiet", default = CRITICAL,\r
-                      action="store_const", const=CRITICAL+10, dest="verbose",\r
-                      help="Suppress all warnings.")\r
-    parser.add_option("-v", "--verbose",\r
-                      action="store_const", const=INFO, dest="verbose",\r
-                      help="Print all warnings.")\r
-    parser.add_option("-s", "--safe", dest="safe", default=False,\r
-                      metavar="SAFE_MODE",\r
-                      help="'replace', 'remove' or 'escape' HTML tags in input")\r
-    parser.add_option("-o", "--output_format", dest="output_format", \r
-                      default='xhtml1', metavar="OUTPUT_FORMAT",\r
-                      help="'xhtml1' (default), 'html4' or 'html5'.")\r
-    parser.add_option("--noisy",\r
-                      action="store_const", const=DEBUG, dest="verbose",\r
-                      help="Print debug messages.")\r
-    parser.add_option("-x", "--extension", action="append", dest="extensions",\r
-                      help = "Load extension EXTENSION.", metavar="EXTENSION")\r
-    parser.add_option("-n", "--no_lazy_ol", dest="lazy_ol", \r
-                      action='store_false', default=True,\r
-                      help="Observe number of first item of ordered lists.")\r
-\r
-    (options, args) = parser.parse_args()\r
-\r
-    if len(args) == 0:\r
-        input_file = None\r
-    else:\r
-        input_file = args[0]\r
-\r
-    if not options.extensions:\r
-        options.extensions = []\r
-\r
-    return {'input': input_file,\r
-            'output': options.filename,\r
-            'safe_mode': options.safe,\r
-            'extensions': options.extensions,\r
-            'encoding': options.encoding,\r
-            'output_format': options.output_format,\r
-            'lazy_ol': options.lazy_ol}, options.verbose\r
-\r
-def run():\r
-    """Run Markdown from the command line."""\r
-\r
-    # Parse options and adjust logging level if necessary\r
-    options, logging_level = parse_options()\r
-    if not options: sys.exit(2)\r
-    logger.setLevel(logging_level)\r
-    logger.addHandler(logging.StreamHandler())\r
-\r
-    # Run\r
-    markdown.markdownFromFile(**options)\r
-\r
-if __name__ == '__main__':\r
-    # Support running module as a commandline command. \r
-    # Python 2.5 & 2.6 do: `python -m markdown.__main__ [options] [args]`.\r
-    # Python 2.7 & 3.x do: `python -m markdown [options] [args]`.\r
-    run()\r
+"""
+COMMAND-LINE SPECIFIC STUFF
+=============================================================================
+
+"""
+
+import markdown
+import sys
+import optparse
+import codecs
+try: 
+    import yaml
+except ImportError: #pragma: no cover
+    import json as yaml
+
+import logging
+from logging import DEBUG, INFO, CRITICAL
+
+logger =  logging.getLogger('MARKDOWN')
+
+def parse_options(args=None, values=None):
+    """
+    Define and parse `optparse` options for command-line usage.
+    """
+    usage = """%prog [options] [INPUTFILE]
+       (STDIN is assumed if no INPUTFILE is given)"""
+    desc = "A Python implementation of John Gruber's Markdown. " \
+           "https://pythonhosted.org/Markdown/"
+    ver = "%%prog %s" % markdown.version
+    
+    parser = optparse.OptionParser(usage=usage, description=desc, version=ver)
+    parser.add_option("-f", "--file", dest="filename", default=None,
+                      help="Write output to OUTPUT_FILE. Defaults to STDOUT.",
+                      metavar="OUTPUT_FILE")
+    parser.add_option("-e", "--encoding", dest="encoding",
+                      help="Encoding for input and output files.",)
+    parser.add_option("-s", "--safe", dest="safe", default=False,
+                      metavar="SAFE_MODE",
+                      help="Deprecated! 'replace', 'remove' or 'escape' HTML tags in input")
+    parser.add_option("-o", "--output_format", dest="output_format", 
+                      default='xhtml1', metavar="OUTPUT_FORMAT",
+                      help="'xhtml1' (default), 'html4' or 'html5'.")
+    parser.add_option("-n", "--no_lazy_ol", dest="lazy_ol", 
+                      action='store_false', default=True,
+                      help="Observe number of first item of ordered lists.")
+    parser.add_option("-x", "--extension", action="append", dest="extensions",
+                      help = "Load extension EXTENSION.", metavar="EXTENSION")
+    parser.add_option("-c", "--extension_configs", dest="configfile", default=None,
+                      help="Read extension configurations from CONFIG_FILE. "
+                      "CONFIG_FILE must be of JSON or YAML format. YAML format requires "
+                      "that a python YAML library be installed. The parsed JSON or YAML "
+                      "must result in a python dictionary which would be accepted by the "
+                      "'extension_configs' keyword on the markdown.Markdown class. "
+                      "The extensions must also be loaded with the `--extension` option.",
+                      metavar="CONFIG_FILE")
+    parser.add_option("-q", "--quiet", default = CRITICAL,
+                      action="store_const", const=CRITICAL+10, dest="verbose",
+                      help="Suppress all warnings.")
+    parser.add_option("-v", "--verbose",
+                      action="store_const", const=INFO, dest="verbose",
+                      help="Print all warnings.")
+    parser.add_option("--noisy",
+                      action="store_const", const=DEBUG, dest="verbose",
+                      help="Print debug messages.")
+
+    (options, args) = parser.parse_args(args, values)
+
+    if len(args) == 0:
+        input_file = None
+    else:
+        input_file = args[0]
+
+    if not options.extensions:
+        options.extensions = []
+
+    extension_configs = {}
+    if options.configfile:
+        with codecs.open(options.configfile, mode="r", encoding=options.encoding) as fp:
+            try:
+                extension_configs = yaml.load(fp)
+            except Exception as e:
+                message = "Failed parsing extension config file: %s" % options.configfile
+                e.args = (message,) + e.args[1:]
+                raise
+
+    return {'input': input_file,
+            'output': options.filename,
+            'safe_mode': options.safe,
+            'extensions': options.extensions,
+            'extension_configs': extension_configs,
+            'encoding': options.encoding,
+            'output_format': options.output_format,
+            'lazy_ol': options.lazy_ol}, options.verbose
+
+def run(): #pragma: no cover
+    """Run Markdown from the command line."""
+
+    # Parse options and adjust logging level if necessary
+    options, logging_level = parse_options()
+    if not options: sys.exit(2)
+    logger.setLevel(logging_level)
+    logger.addHandler(logging.StreamHandler())
+
+    # Run
+    markdown.markdownFromFile(**options)
+
+if __name__ == '__main__': #pragma: no cover
+    # Support running module as a commandline command. 
+    # Python 2.5 & 2.6 do: `python -m markdown.__main__ [options] [args]`.
+    # Python 2.7 & 3.x do: `python -m markdown [options] [args]`.
+    run()
index 65edeeddbe2024b9e9a9513b5ec0deaec794cfdb..cabeff37d0fd4b0fb4977db3051a5e1b7833fa2e 100644 (file)
@@ -1,28 +1,28 @@
-#\r
-# markdown/__version__.py\r
-#\r
-# version_info should conform to PEP 386 \r
-# (major, minor, micro, alpha/beta/rc/final, #)\r
-# (1, 1, 2, 'alpha', 0) => "1.1.2.dev"\r
-# (1, 2, 0, 'beta', 2) => "1.2b2"\r
-version_info = (2, 4, 0, 'final', 0)\r
-\r
-def _get_version():\r
-    " Returns a PEP 386-compliant version number from version_info. "\r
-    assert len(version_info) == 5\r
-    assert version_info[3] in ('alpha', 'beta', 'rc', 'final')\r
-\r
-    parts = 2 if version_info[2] == 0 else 3\r
-    main = '.'.join(map(str, version_info[:parts]))\r
-\r
-    sub = ''\r
-    if version_info[3] == 'alpha' and version_info[4] == 0:\r
-        # TODO: maybe append some sort of git info here??\r
-        sub = '.dev'\r
-    elif version_info[3] != 'final':\r
-        mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'}\r
-        sub = mapping[version_info[3]] + str(version_info[4])\r
-\r
-    return str(main + sub)\r
-\r
-version = _get_version()\r
+#
+# markdown/__version__.py
+#
+# version_info should conform to PEP 386 
+# (major, minor, micro, alpha/beta/rc/final, #)
+# (1, 1, 2, 'alpha', 0) => "1.1.2.dev"
+# (1, 2, 0, 'beta', 2) => "1.2b2"
+version_info = (2, 5, 0, 'final', 0)
+
+def _get_version():
+    " Returns a PEP 386-compliant version number from version_info. "
+    assert len(version_info) == 5
+    assert version_info[3] in ('alpha', 'beta', 'rc', 'final')
+
+    parts = 2 if version_info[2] == 0 else 3
+    main = '.'.join(map(str, version_info[:parts]))
+
+    sub = ''
+    if version_info[3] == 'alpha' and version_info[4] == 0:
+        # TODO: maybe append some sort of git info here??
+        sub = '.dev'
+    elif version_info[3] != 'final':
+        mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'}
+        sub = mapping[version_info[3]] + str(version_info[4])
+
+    return str(main + sub)
+
+version = _get_version()
index 6ea0323c039fd3ecfc010553bc1a2fa71cefb89c..4504a16f518b2406c85f5fdce1eccfa5ea4eceb5 100644 (file)
@@ -1,99 +1,99 @@
-from __future__ import unicode_literals\r
-from __future__ import absolute_import\r
-from . import util\r
-from . import odict\r
-\r
-class State(list):\r
-    """ Track the current and nested state of the parser. \r
-    \r
-    This utility class is used to track the state of the BlockParser and \r
-    support multiple levels if nesting. It's just a simple API wrapped around\r
-    a list. Each time a state is set, that state is appended to the end of the\r
-    list. Each time a state is reset, that state is removed from the end of\r
-    the list.\r
-\r
-    Therefore, each time a state is set for a nested block, that state must be \r
-    reset when we back out of that level of nesting or the state could be\r
-    corrupted.\r
-\r
-    While all the methods of a list object are available, only the three\r
-    defined below need be used.\r
-\r
-    """\r
-\r
-    def set(self, state):\r
-        """ Set a new state. """\r
-        self.append(state)\r
-\r
-    def reset(self):\r
-        """ Step back one step in nested state. """\r
-        self.pop()\r
-\r
-    def isstate(self, state):\r
-        """ Test that top (current) level is of given state. """\r
-        if len(self):\r
-            return self[-1] == state\r
-        else:\r
-            return False\r
-\r
-class BlockParser:\r
-    """ Parse Markdown blocks into an ElementTree object. \r
-    \r
-    A wrapper class that stitches the various BlockProcessors together,\r
-    looping through them and creating an ElementTree object.\r
-    """\r
-\r
-    def __init__(self, markdown):\r
-        self.blockprocessors = odict.OrderedDict()\r
-        self.state = State()\r
-        self.markdown = markdown\r
-\r
-    def parseDocument(self, lines):\r
-        """ Parse a markdown document into an ElementTree. \r
-        \r
-        Given a list of lines, an ElementTree object (not just a parent Element)\r
-        is created and the root element is passed to the parser as the parent.\r
-        The ElementTree object is returned.\r
-        \r
-        This should only be called on an entire document, not pieces.\r
-\r
-        """\r
-        # Create a ElementTree from the lines\r
-        self.root = util.etree.Element(self.markdown.doc_tag)\r
-        self.parseChunk(self.root, '\n'.join(lines))\r
-        return util.etree.ElementTree(self.root)\r
-\r
-    def parseChunk(self, parent, text):\r
-        """ Parse a chunk of markdown text and attach to given etree node. \r
-        \r
-        While the ``text`` argument is generally assumed to contain multiple\r
-        blocks which will be split on blank lines, it could contain only one\r
-        block. Generally, this method would be called by extensions when\r
-        block parsing is required. \r
-        \r
-        The ``parent`` etree Element passed in is altered in place. \r
-        Nothing is returned.\r
-\r
-        """\r
-        self.parseBlocks(parent, text.split('\n\n'))\r
-\r
-    def parseBlocks(self, parent, blocks):\r
-        """ Process blocks of markdown text and attach to given etree node. \r
-        \r
-        Given a list of ``blocks``, each blockprocessor is stepped through\r
-        until there are no blocks left. While an extension could potentially\r
-        call this method directly, it's generally expected to be used internally.\r
-\r
-        This is a public method as an extension may need to add/alter additional\r
-        BlockProcessors which call this method to recursively parse a nested\r
-        block.\r
-\r
-        """\r
-        while blocks:\r
-            for processor in self.blockprocessors.values():\r
-                if processor.test(parent, blocks[0]):\r
-                    if processor.run(parent, blocks) is not False:\r
-                        # run returns True or None\r
-                        break\r
-\r
-\r
+from __future__ import unicode_literals
+from __future__ import absolute_import
+from . import util
+from . import odict
+
+class State(list):
+    """ Track the current and nested state of the parser. 
+    
+    This utility class is used to track the state of the BlockParser and 
+    support multiple levels if nesting. It's just a simple API wrapped around
+    a list. Each time a state is set, that state is appended to the end of the
+    list. Each time a state is reset, that state is removed from the end of
+    the list.
+
+    Therefore, each time a state is set for a nested block, that state must be 
+    reset when we back out of that level of nesting or the state could be
+    corrupted.
+
+    While all the methods of a list object are available, only the three
+    defined below need be used.
+
+    """
+
+    def set(self, state):
+        """ Set a new state. """
+        self.append(state)
+
+    def reset(self):
+        """ Step back one step in nested state. """
+        self.pop()
+
+    def isstate(self, state):
+        """ Test that top (current) level is of given state. """
+        if len(self):
+            return self[-1] == state
+        else:
+            return False
+
+class BlockParser:
+    """ Parse Markdown blocks into an ElementTree object. 
+    
+    A wrapper class that stitches the various BlockProcessors together,
+    looping through them and creating an ElementTree object.
+    """
+
+    def __init__(self, markdown):
+        self.blockprocessors = odict.OrderedDict()
+        self.state = State()
+        self.markdown = markdown
+
+    def parseDocument(self, lines):
+        """ Parse a markdown document into an ElementTree. 
+        
+        Given a list of lines, an ElementTree object (not just a parent Element)
+        is created and the root element is passed to the parser as the parent.
+        The ElementTree object is returned.
+        
+        This should only be called on an entire document, not pieces.
+
+        """
+        # Create a ElementTree from the lines
+        self.root = util.etree.Element(self.markdown.doc_tag)
+        self.parseChunk(self.root, '\n'.join(lines))
+        return util.etree.ElementTree(self.root)
+
+    def parseChunk(self, parent, text):
+        """ Parse a chunk of markdown text and attach to given etree node. 
+        
+        While the ``text`` argument is generally assumed to contain multiple
+        blocks which will be split on blank lines, it could contain only one
+        block. Generally, this method would be called by extensions when
+        block parsing is required. 
+        
+        The ``parent`` etree Element passed in is altered in place. 
+        Nothing is returned.
+
+        """
+        self.parseBlocks(parent, text.split('\n\n'))
+
+    def parseBlocks(self, parent, blocks):
+        """ Process blocks of markdown text and attach to given etree node. 
+        
+        Given a list of ``blocks``, each blockprocessor is stepped through
+        until there are no blocks left. While an extension could potentially
+        call this method directly, it's generally expected to be used internally.
+
+        This is a public method as an extension may need to add/alter additional
+        BlockProcessors which call this method to recursively parse a nested
+        block.
+
+        """
+        while blocks:
+            for processor in self.blockprocessors.values():
+                if processor.test(parent, blocks[0]):
+                    if processor.run(parent, blocks) is not False:
+                        # run returns True or None
+                        break
+
+
index ae4ac18168bfbd3919f8ec21b5e93c241db5f25b..08fbcf86b309491c0e2a4e6935df1b952f5a864d 100644 (file)
-"""\r
-CORE MARKDOWN BLOCKPARSER\r
-===========================================================================\r
-\r
-This parser handles basic parsing of Markdown blocks.  It doesn't concern itself\r
-with inline elements such as **bold** or *italics*, but rather just catches\r
-blocks, lists, quotes, etc.\r
-\r
-The BlockParser is made up of a bunch of BlockProssors, each handling a\r
-different type of block. Extensions may add/replace/remove BlockProcessors\r
-as they need to alter how markdown blocks are parsed.\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import division\r
-from __future__ import unicode_literals\r
-import logging\r
-import re\r
-from . import util\r
-from .blockparser import BlockParser\r
-\r
-logger =  logging.getLogger('MARKDOWN')\r
-\r
-\r
-def build_block_parser(md_instance, **kwargs):\r
-    """ Build the default block parser used by Markdown. """\r
-    parser = BlockParser(md_instance)\r
-    parser.blockprocessors['empty'] = EmptyBlockProcessor(parser)\r
-    parser.blockprocessors['indent'] = ListIndentProcessor(parser)\r
-    parser.blockprocessors['code'] = CodeBlockProcessor(parser)\r
-    parser.blockprocessors['hashheader'] = HashHeaderProcessor(parser)\r
-    parser.blockprocessors['setextheader'] = SetextHeaderProcessor(parser)\r
-    parser.blockprocessors['hr'] = HRProcessor(parser)\r
-    parser.blockprocessors['olist'] = OListProcessor(parser)\r
-    parser.blockprocessors['ulist'] = UListProcessor(parser)\r
-    parser.blockprocessors['quote'] = BlockQuoteProcessor(parser)\r
-    parser.blockprocessors['paragraph'] = ParagraphProcessor(parser)\r
-    return parser\r
-\r
-\r
-class BlockProcessor:\r
-    """ Base class for block processors. \r
-    \r
-    Each subclass will provide the methods below to work with the source and\r
-    tree. Each processor will need to define it's own ``test`` and ``run``\r
-    methods. The ``test`` method should return True or False, to indicate\r
-    whether the current block should be processed by this processor. If the\r
-    test passes, the parser will call the processors ``run`` method.\r
-\r
-    """\r
-\r
-    def __init__(self, parser):\r
-        self.parser = parser\r
-        self.tab_length = parser.markdown.tab_length\r
-\r
-    def lastChild(self, parent):\r
-        """ Return the last child of an etree element. """\r
-        if len(parent):\r
-            return parent[-1]\r
-        else:\r
-            return None\r
-\r
-    def detab(self, text):\r
-        """ Remove a tab from the front of each line of the given text. """\r
-        newtext = []\r
-        lines = text.split('\n')\r
-        for line in lines:\r
-            if line.startswith(' '*self.tab_length):\r
-                newtext.append(line[self.tab_length:])\r
-            elif not line.strip():\r
-                newtext.append('')\r
-            else:\r
-                break\r
-        return '\n'.join(newtext), '\n'.join(lines[len(newtext):])\r
-\r
-    def looseDetab(self, text, level=1):\r
-        """ Remove a tab from front of lines but allowing dedented lines. """\r
-        lines = text.split('\n')\r
-        for i in range(len(lines)):\r
-            if lines[i].startswith(' '*self.tab_length*level):\r
-                lines[i] = lines[i][self.tab_length*level:]\r
-        return '\n'.join(lines)\r
-\r
-    def test(self, parent, block):\r
-        """ Test for block type. Must be overridden by subclasses. \r
-        \r
-        As the parser loops through processors, it will call the ``test`` method\r
-        on each to determine if the given block of text is of that type. This\r
-        method must return a boolean ``True`` or ``False``. The actual method of\r
-        testing is left to the needs of that particular block type. It could \r
-        be as simple as ``block.startswith(some_string)`` or a complex regular\r
-        expression. As the block type may be different depending on the parent\r
-        of the block (i.e. inside a list), the parent etree element is also \r
-        provided and may be used as part of the test.\r
-\r
-        Keywords:\r
-        \r
-        * ``parent``: A etree element which will be the parent of the block.\r
-        * ``block``: A block of text from the source which has been split at \r
-            blank lines.\r
-        """\r
-        pass\r
-\r
-    def run(self, parent, blocks):\r
-        """ Run processor. Must be overridden by subclasses. \r
-        \r
-        When the parser determines the appropriate type of a block, the parser\r
-        will call the corresponding processor's ``run`` method. This method\r
-        should parse the individual lines of the block and append them to\r
-        the etree. \r
-\r
-        Note that both the ``parent`` and ``etree`` keywords are pointers\r
-        to instances of the objects which should be edited in place. Each\r
-        processor must make changes to the existing objects as there is no\r
-        mechanism to return new/different objects to replace them.\r
-\r
-        This means that this method should be adding SubElements or adding text\r
-        to the parent, and should remove (``pop``) or add (``insert``) items to\r
-        the list of blocks.\r
-\r
-        Keywords:\r
-\r
-        * ``parent``: A etree element which is the parent of the current block.\r
-        * ``blocks``: A list of all remaining blocks of the document.\r
-        """\r
-        pass\r
-\r
-\r
-class ListIndentProcessor(BlockProcessor):\r
-    """ Process children of list items. \r
-    \r
-    Example:\r
-        * a list item\r
-            process this part\r
-\r
-            or this part\r
-\r
-    """\r
-\r
-    ITEM_TYPES = ['li']\r
-    LIST_TYPES = ['ul', 'ol']\r
-\r
-    def __init__(self, *args):\r
-        BlockProcessor.__init__(self, *args)\r
-        self.INDENT_RE = re.compile(r'^(([ ]{%s})+)'% self.tab_length)\r
-\r
-    def test(self, parent, block):\r
-        return block.startswith(' '*self.tab_length) and \\r
-                not self.parser.state.isstate('detabbed') and  \\r
-                (parent.tag in self.ITEM_TYPES or \\r
-                    (len(parent) and parent[-1] and \\r
-                        (parent[-1].tag in self.LIST_TYPES)\r
-                    )\r
-                )\r
-\r
-    def run(self, parent, blocks):\r
-        block = blocks.pop(0)\r
-        level, sibling = self.get_level(parent, block)\r
-        block = self.looseDetab(block, level)\r
-\r
-        self.parser.state.set('detabbed')\r
-        if parent.tag in self.ITEM_TYPES:\r
-            # It's possible that this parent has a 'ul' or 'ol' child list\r
-            # with a member.  If that is the case, then that should be the\r
-            # parent.  This is intended to catch the edge case of an indented \r
-            # list whose first member was parsed previous to this point\r
-            # see OListProcessor\r
-            if len(parent) and parent[-1].tag in self.LIST_TYPES:\r
-                self.parser.parseBlocks(parent[-1], [block])\r
-            else:\r
-                # The parent is already a li. Just parse the child block.\r
-                self.parser.parseBlocks(parent, [block])\r
-        elif sibling.tag in self.ITEM_TYPES:\r
-            # The sibling is a li. Use it as parent.\r
-            self.parser.parseBlocks(sibling, [block])\r
-        elif len(sibling) and sibling[-1].tag in self.ITEM_TYPES:\r
-            # The parent is a list (``ol`` or ``ul``) which has children.\r
-            # Assume the last child li is the parent of this block.\r
-            if sibling[-1].text:\r
-                # If the parent li has text, that text needs to be moved to a p\r
-                # The p must be 'inserted' at beginning of list in the event\r
-                # that other children already exist i.e.; a nested sublist.\r
-                p = util.etree.Element('p')\r
-                p.text = sibling[-1].text\r
-                sibling[-1].text = ''\r
-                sibling[-1].insert(0, p)\r
-            self.parser.parseChunk(sibling[-1], block)\r
-        else:\r
-            self.create_item(sibling, block)\r
-        self.parser.state.reset()\r
-\r
-    def create_item(self, parent, block):\r
-        """ Create a new li and parse the block with it as the parent. """\r
-        li = util.etree.SubElement(parent, 'li')\r
-        self.parser.parseBlocks(li, [block])\r
\r
-    def get_level(self, parent, block):\r
-        """ Get level of indent based on list level. """\r
-        # Get indent level\r
-        m = self.INDENT_RE.match(block)\r
-        if m:\r
-            indent_level = len(m.group(1))/self.tab_length\r
-        else:\r
-            indent_level = 0\r
-        if self.parser.state.isstate('list'):\r
-            # We're in a tightlist - so we already are at correct parent.\r
-            level = 1\r
-        else:\r
-            # We're in a looselist - so we need to find parent.\r
-            level = 0\r
-        # Step through children of tree to find matching indent level.\r
-        while indent_level > level:\r
-            child = self.lastChild(parent)\r
-            if child is not None and (child.tag in self.LIST_TYPES or child.tag in self.ITEM_TYPES):\r
-                if child.tag in self.LIST_TYPES:\r
-                    level += 1\r
-                parent = child\r
-            else:\r
-                # No more child levels. If we're short of indent_level,\r
-                # we have a code block. So we stop here.\r
-                break\r
-        return level, parent\r
-\r
-\r
-class CodeBlockProcessor(BlockProcessor):\r
-    """ Process code blocks. """\r
-\r
-    def test(self, parent, block):\r
-        return block.startswith(' '*self.tab_length)\r
-    \r
-    def run(self, parent, blocks):\r
-        sibling = self.lastChild(parent)\r
-        block = blocks.pop(0)\r
-        theRest = ''\r
-        if sibling is not None and sibling.tag == "pre" and len(sibling) \\r
-                    and sibling[0].tag == "code":\r
-            # The previous block was a code block. As blank lines do not start\r
-            # new code blocks, append this block to the previous, adding back\r
-            # linebreaks removed from the split into a list.\r
-            code = sibling[0]\r
-            block, theRest = self.detab(block)\r
-            code.text = util.AtomicString('%s\n%s\n' % (code.text, block.rstrip()))\r
-        else:\r
-            # This is a new codeblock. Create the elements and insert text.\r
-            pre = util.etree.SubElement(parent, 'pre')\r
-            code = util.etree.SubElement(pre, 'code')\r
-            block, theRest = self.detab(block)\r
-            code.text = util.AtomicString('%s\n' % block.rstrip())\r
-        if theRest:\r
-            # This block contained unindented line(s) after the first indented \r
-            # line. Insert these lines as the first block of the master blocks\r
-            # list for future processing.\r
-            blocks.insert(0, theRest)\r
-\r
-\r
-class BlockQuoteProcessor(BlockProcessor):\r
-\r
-    RE = re.compile(r'(^|\n)[ ]{0,3}>[ ]?(.*)')\r
-\r
-    def test(self, parent, block):\r
-        return bool(self.RE.search(block))\r
-\r
-    def run(self, parent, blocks):\r
-        block = blocks.pop(0)\r
-        m = self.RE.search(block)\r
-        if m:\r
-            before = block[:m.start()] # Lines before blockquote\r
-            # Pass lines before blockquote in recursively for parsing forst.\r
-            self.parser.parseBlocks(parent, [before])\r
-            # Remove ``> `` from begining of each line.\r
-            block = '\n'.join([self.clean(line) for line in \r
-                            block[m.start():].split('\n')])\r
-        sibling = self.lastChild(parent)\r
-        if sibling is not None and sibling.tag == "blockquote":\r
-            # Previous block was a blockquote so set that as this blocks parent\r
-            quote = sibling\r
-        else:\r
-            # This is a new blockquote. Create a new parent element.\r
-            quote = util.etree.SubElement(parent, 'blockquote')\r
-        # Recursively parse block with blockquote as parent.\r
-        # change parser state so blockquotes embedded in lists use p tags\r
-        self.parser.state.set('blockquote')\r
-        self.parser.parseChunk(quote, block)\r
-        self.parser.state.reset()\r
-\r
-    def clean(self, line):\r
-        """ Remove ``>`` from beginning of a line. """\r
-        m = self.RE.match(line)\r
-        if line.strip() == ">":\r
-            return ""\r
-        elif m:\r
-            return m.group(2)\r
-        else:\r
-            return line\r
-\r
-class OListProcessor(BlockProcessor):\r
-    """ Process ordered list blocks. """\r
-\r
-    TAG = 'ol'\r
-    # Detect an item (``1. item``). ``group(1)`` contains contents of item.\r
-    RE = re.compile(r'^[ ]{0,3}\d+\.[ ]+(.*)')\r
-    # Detect items on secondary lines. they can be of either list type.\r
-    CHILD_RE = re.compile(r'^[ ]{0,3}((\d+\.)|[*+-])[ ]+(.*)')\r
-    # Detect indented (nested) items of either type\r
-    INDENT_RE = re.compile(r'^[ ]{4,7}((\d+\.)|[*+-])[ ]+.*')\r
-    # The integer (python string) with which the lists starts (default=1)\r
-    # Eg: If list is intialized as)\r
-    #   3. Item\r
-    # The ol tag will get starts="3" attribute\r
-    STARTSWITH = '1'\r
-    # List of allowed sibling tags. \r
-    SIBLING_TAGS = ['ol', 'ul']\r
-\r
-    def test(self, parent, block):\r
-        return bool(self.RE.match(block))\r
-\r
-    def run(self, parent, blocks):\r
-        # Check fr multiple items in one block.\r
-        items = self.get_items(blocks.pop(0))\r
-        sibling = self.lastChild(parent)\r
-\r
-        if sibling is not None and sibling.tag in self.SIBLING_TAGS:\r
-            # Previous block was a list item, so set that as parent\r
-            lst = sibling\r
-            # make sure previous item is in a p- if the item has text, then it\r
-            # it isn't in a p\r
-            if lst[-1].text: \r
-                # since it's possible there are other children for this sibling,\r
-                # we can't just SubElement the p, we need to insert it as the \r
-                # first item\r
-                p = util.etree.Element('p')\r
-                p.text = lst[-1].text\r
-                lst[-1].text = ''\r
-                lst[-1].insert(0, p)\r
-            # if the last item has a tail, then the tail needs to be put in a p\r
-            # likely only when a header is not followed by a blank line\r
-            lch = self.lastChild(lst[-1])\r
-            if lch is not None and lch.tail:\r
-                p = util.etree.SubElement(lst[-1], 'p')\r
-                p.text = lch.tail.lstrip()\r
-                lch.tail = ''\r
-\r
-            # parse first block differently as it gets wrapped in a p.\r
-            li = util.etree.SubElement(lst, 'li')\r
-            self.parser.state.set('looselist')\r
-            firstitem = items.pop(0)\r
-            self.parser.parseBlocks(li, [firstitem])\r
-            self.parser.state.reset()\r
-        elif parent.tag in ['ol', 'ul']:\r
-            # this catches the edge case of a multi-item indented list whose \r
-            # first item is in a blank parent-list item:\r
-            # * * subitem1\r
-            #     * subitem2\r
-            # see also ListIndentProcessor\r
-            lst = parent\r
-        else:\r
-            # This is a new list so create parent with appropriate tag.\r
-            lst = util.etree.SubElement(parent, self.TAG)\r
-            # Check if a custom start integer is set\r
-            if not self.parser.markdown.lazy_ol and self.STARTSWITH !='1':\r
-                lst.attrib['start'] = self.STARTSWITH\r
-\r
-        self.parser.state.set('list')\r
-        # Loop through items in block, recursively parsing each with the\r
-        # appropriate parent.\r
-        for item in items:\r
-            if item.startswith(' '*self.tab_length):\r
-                # Item is indented. Parse with last item as parent\r
-                self.parser.parseBlocks(lst[-1], [item])\r
-            else:\r
-                # New item. Create li and parse with it as parent\r
-                li = util.etree.SubElement(lst, 'li')\r
-                self.parser.parseBlocks(li, [item])\r
-        self.parser.state.reset()\r
-\r
-    def get_items(self, block):\r
-        """ Break a block into list items. """\r
-        items = []\r
-        for line in block.split('\n'):\r
-            m = self.CHILD_RE.match(line)\r
-            if m:\r
-                # This is a new list item\r
-                # Check first item for the start index\r
-                if not items and self.TAG=='ol':\r
-                    # Detect the integer value of first list item\r
-                    INTEGER_RE = re.compile('(\d+)')\r
-                    self.STARTSWITH = INTEGER_RE.match(m.group(1)).group()\r
-                # Append to the list\r
-                items.append(m.group(3))\r
-            elif self.INDENT_RE.match(line):\r
-                # This is an indented (possibly nested) item.\r
-                if items[-1].startswith(' '*self.tab_length):\r
-                    # Previous item was indented. Append to that item.\r
-                    items[-1] = '%s\n%s' % (items[-1], line)\r
-                else:\r
-                    items.append(line)\r
-            else:\r
-                # This is another line of previous item. Append to that item.\r
-                items[-1] = '%s\n%s' % (items[-1], line)\r
-        return items\r
-\r
-\r
-class UListProcessor(OListProcessor):\r
-    """ Process unordered list blocks. """\r
-\r
-    TAG = 'ul'\r
-    RE = re.compile(r'^[ ]{0,3}[*+-][ ]+(.*)')\r
-\r
-\r
-class HashHeaderProcessor(BlockProcessor):\r
-    """ Process Hash Headers. """\r
-\r
-    # Detect a header at start of any line in block\r
-    RE = re.compile(r'(^|\n)(?P<level>#{1,6})(?P<header>.*?)#*(\n|$)')\r
-\r
-    def test(self, parent, block):\r
-        return bool(self.RE.search(block))\r
-\r
-    def run(self, parent, blocks):\r
-        block = blocks.pop(0)\r
-        m = self.RE.search(block)\r
-        if m:\r
-            before = block[:m.start()] # All lines before header\r
-            after = block[m.end():]    # All lines after header\r
-            if before:\r
-                # As the header was not the first line of the block and the\r
-                # lines before the header must be parsed first,\r
-                # recursively parse this lines as a block.\r
-                self.parser.parseBlocks(parent, [before])\r
-            # Create header using named groups from RE\r
-            h = util.etree.SubElement(parent, 'h%d' % len(m.group('level')))\r
-            h.text = m.group('header').strip()\r
-            if after:\r
-                # Insert remaining lines as first block for future parsing.\r
-                blocks.insert(0, after)\r
-        else:\r
-            # This should never happen, but just in case...\r
-            logger.warn("We've got a problem header: %r" % block)\r
-\r
-\r
-class SetextHeaderProcessor(BlockProcessor):\r
-    """ Process Setext-style Headers. """\r
-\r
-    # Detect Setext-style header. Must be first 2 lines of block.\r
-    RE = re.compile(r'^.*?\n[=-]+[ ]*(\n|$)', re.MULTILINE)\r
-\r
-    def test(self, parent, block):\r
-        return bool(self.RE.match(block))\r
-\r
-    def run(self, parent, blocks):\r
-        lines = blocks.pop(0).split('\n')\r
-        # Determine level. ``=`` is 1 and ``-`` is 2.\r
-        if lines[1].startswith('='):\r
-            level = 1\r
-        else:\r
-            level = 2\r
-        h = util.etree.SubElement(parent, 'h%d' % level)\r
-        h.text = lines[0].strip()\r
-        if len(lines) > 2:\r
-            # Block contains additional lines. Add to  master blocks for later.\r
-            blocks.insert(0, '\n'.join(lines[2:]))\r
-\r
-\r
-class HRProcessor(BlockProcessor):\r
-    """ Process Horizontal Rules. """\r
-\r
-    RE = r'^[ ]{0,3}((-+[ ]{0,2}){3,}|(_+[ ]{0,2}){3,}|(\*+[ ]{0,2}){3,})[ ]*'\r
-    # Detect hr on any line of a block.\r
-    SEARCH_RE = re.compile(RE, re.MULTILINE)\r
-\r
-    def test(self, parent, block):\r
-        m = self.SEARCH_RE.search(block)\r
-        # No atomic grouping in python so we simulate it here for performance.\r
-        # The regex only matches what would be in the atomic group - the HR.\r
-        # Then check if we are at end of block or if next char is a newline.\r
-        if m and (m.end() == len(block) or block[m.end()] == '\n'):\r
-            # Save match object on class instance so we can use it later.\r
-            self.match = m\r
-            return True\r
-        return False\r
-\r
-    def run(self, parent, blocks):\r
-        block = blocks.pop(0)\r
-        # Check for lines in block before hr.\r
-        prelines = block[:self.match.start()].rstrip('\n')\r
-        if prelines:\r
-            # Recursively parse lines before hr so they get parsed first.\r
-            self.parser.parseBlocks(parent, [prelines])\r
-        # create hr\r
-        util.etree.SubElement(parent, 'hr')\r
-        # check for lines in block after hr.\r
-        postlines = block[self.match.end():].lstrip('\n')\r
-        if postlines:\r
-            # Add lines after hr to master blocks for later parsing.\r
-            blocks.insert(0, postlines)\r
-\r
-\r
-\r
-class EmptyBlockProcessor(BlockProcessor):\r
-    """ Process blocks that are empty or start with an empty line. """\r
-\r
-    def test(self, parent, block):\r
-        return not block or block.startswith('\n')\r
-\r
-    def run(self, parent, blocks):\r
-        block = blocks.pop(0)\r
-        filler = '\n\n'\r
-        if block:\r
-            # Starts with empty line\r
-            # Only replace a single line.\r
-            filler = '\n'\r
-            # Save the rest for later.\r
-            theRest = block[1:]\r
-            if theRest:\r
-                # Add remaining lines to master blocks for later.\r
-                blocks.insert(0, theRest)\r
-        sibling = self.lastChild(parent)\r
-        if sibling is not None and sibling.tag == 'pre' and len(sibling) and sibling[0].tag == 'code':\r
-            # Last block is a codeblock. Append to preserve whitespace.\r
-            sibling[0].text = util.AtomicString('%s%s' % (sibling[0].text, filler))\r
-\r
-\r
-class ParagraphProcessor(BlockProcessor):\r
-    """ Process Paragraph blocks. """\r
-\r
-    def test(self, parent, block):\r
-        return True\r
-\r
-    def run(self, parent, blocks):\r
-        block = blocks.pop(0)\r
-        if block.strip():\r
-            # Not a blank block. Add to parent, otherwise throw it away.\r
-            if self.parser.state.isstate('list'):\r
-                # The parent is a tight-list.\r
-                #\r
-                # Check for any children. This will likely only happen in a \r
-                # tight-list when a header isn't followed by a blank line.\r
-                # For example:\r
-                #\r
-                #     * # Header\r
-                #     Line 2 of list item - not part of header.\r
-                sibling = self.lastChild(parent)\r
-                if sibling is not None:\r
-                    # Insetrt after sibling.\r
-                    if sibling.tail:\r
-                        sibling.tail = '%s\n%s' % (sibling.tail, block)\r
-                    else:\r
-                        sibling.tail = '\n%s' % block\r
-                else:\r
-                    # Append to parent.text\r
-                    if parent.text:\r
-                        parent.text = '%s\n%s' % (parent.text, block)\r
-                    else:\r
-                        parent.text = block.lstrip()\r
-            else:\r
-                # Create a regular paragraph\r
-                p = util.etree.SubElement(parent, 'p')\r
-                p.text = block.lstrip()\r
+"""
+CORE MARKDOWN BLOCKPARSER
+===========================================================================
+
+This parser handles basic parsing of Markdown blocks.  It doesn't concern itself
+with inline elements such as **bold** or *italics*, but rather just catches
+blocks, lists, quotes, etc.
+
+The BlockParser is made up of a bunch of BlockProssors, each handling a
+different type of block. Extensions may add/replace/remove BlockProcessors
+as they need to alter how markdown blocks are parsed.
+"""
+
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import unicode_literals
+import logging
+import re
+from . import util
+from .blockparser import BlockParser
+
+logger =  logging.getLogger('MARKDOWN')
+
+
+def build_block_parser(md_instance, **kwargs):
+    """ Build the default block parser used by Markdown. """
+    parser = BlockParser(md_instance)
+    parser.blockprocessors['empty'] = EmptyBlockProcessor(parser)
+    parser.blockprocessors['indent'] = ListIndentProcessor(parser)
+    parser.blockprocessors['code'] = CodeBlockProcessor(parser)
+    parser.blockprocessors['hashheader'] = HashHeaderProcessor(parser)
+    parser.blockprocessors['setextheader'] = SetextHeaderProcessor(parser)
+    parser.blockprocessors['hr'] = HRProcessor(parser)
+    parser.blockprocessors['olist'] = OListProcessor(parser)
+    parser.blockprocessors['ulist'] = UListProcessor(parser)
+    parser.blockprocessors['quote'] = BlockQuoteProcessor(parser)
+    parser.blockprocessors['paragraph'] = ParagraphProcessor(parser)
+    return parser
+
+
+class BlockProcessor:
+    """ Base class for block processors. 
+    
+    Each subclass will provide the methods below to work with the source and
+    tree. Each processor will need to define it's own ``test`` and ``run``
+    methods. The ``test`` method should return True or False, to indicate
+    whether the current block should be processed by this processor. If the
+    test passes, the parser will call the processors ``run`` method.
+
+    """
+
+    def __init__(self, parser):
+        self.parser = parser
+        self.tab_length = parser.markdown.tab_length
+
+    def lastChild(self, parent):
+        """ Return the last child of an etree element. """
+        if len(parent):
+            return parent[-1]
+        else:
+            return None
+
+    def detab(self, text):
+        """ Remove a tab from the front of each line of the given text. """
+        newtext = []
+        lines = text.split('\n')
+        for line in lines:
+            if line.startswith(' '*self.tab_length):
+                newtext.append(line[self.tab_length:])
+            elif not line.strip():
+                newtext.append('')
+            else:
+                break
+        return '\n'.join(newtext), '\n'.join(lines[len(newtext):])
+
+    def looseDetab(self, text, level=1):
+        """ Remove a tab from front of lines but allowing dedented lines. """
+        lines = text.split('\n')
+        for i in range(len(lines)):
+            if lines[i].startswith(' '*self.tab_length*level):
+                lines[i] = lines[i][self.tab_length*level:]
+        return '\n'.join(lines)
+
+    def test(self, parent, block):
+        """ Test for block type. Must be overridden by subclasses. 
+        
+        As the parser loops through processors, it will call the ``test`` method
+        on each to determine if the given block of text is of that type. This
+        method must return a boolean ``True`` or ``False``. The actual method of
+        testing is left to the needs of that particular block type. It could 
+        be as simple as ``block.startswith(some_string)`` or a complex regular
+        expression. As the block type may be different depending on the parent
+        of the block (i.e. inside a list), the parent etree element is also 
+        provided and may be used as part of the test.
+
+        Keywords:
+        
+        * ``parent``: A etree element which will be the parent of the block.
+        * ``block``: A block of text from the source which has been split at 
+            blank lines.
+        """
+        pass #pragma: no cover
+
+    def run(self, parent, blocks):
+        """ Run processor. Must be overridden by subclasses. 
+        
+        When the parser determines the appropriate type of a block, the parser
+        will call the corresponding processor's ``run`` method. This method
+        should parse the individual lines of the block and append them to
+        the etree. 
+
+        Note that both the ``parent`` and ``etree`` keywords are pointers
+        to instances of the objects which should be edited in place. Each
+        processor must make changes to the existing objects as there is no
+        mechanism to return new/different objects to replace them.
+
+        This means that this method should be adding SubElements or adding text
+        to the parent, and should remove (``pop``) or add (``insert``) items to
+        the list of blocks.
+
+        Keywords:
+
+        * ``parent``: A etree element which is the parent of the current block.
+        * ``blocks``: A list of all remaining blocks of the document.
+        """
+        pass #pragma: no cover
+
+
+class ListIndentProcessor(BlockProcessor):
+    """ Process children of list items. 
+    
+    Example:
+        * a list item
+            process this part
+
+            or this part
+
+    """
+
+    ITEM_TYPES = ['li']
+    LIST_TYPES = ['ul', 'ol']
+
+    def __init__(self, *args):
+        BlockProcessor.__init__(self, *args)
+        self.INDENT_RE = re.compile(r'^(([ ]{%s})+)'% self.tab_length)
+
+    def test(self, parent, block):
+        return block.startswith(' '*self.tab_length) and \
+                not self.parser.state.isstate('detabbed') and  \
+                (parent.tag in self.ITEM_TYPES or \
+                    (len(parent) and parent[-1] and \
+                        (parent[-1].tag in self.LIST_TYPES)
+                    )
+                )
+
+    def run(self, parent, blocks):
+        block = blocks.pop(0)
+        level, sibling = self.get_level(parent, block)
+        block = self.looseDetab(block, level)
+
+        self.parser.state.set('detabbed')
+        if parent.tag in self.ITEM_TYPES:
+            # It's possible that this parent has a 'ul' or 'ol' child list
+            # with a member.  If that is the case, then that should be the
+            # parent.  This is intended to catch the edge case of an indented 
+            # list whose first member was parsed previous to this point
+            # see OListProcessor
+            if len(parent) and parent[-1].tag in self.LIST_TYPES:
+                self.parser.parseBlocks(parent[-1], [block])
+            else:
+                # The parent is already a li. Just parse the child block.
+                self.parser.parseBlocks(parent, [block])
+        elif sibling.tag in self.ITEM_TYPES:
+            # The sibling is a li. Use it as parent.
+            self.parser.parseBlocks(sibling, [block])
+        elif len(sibling) and sibling[-1].tag in self.ITEM_TYPES:
+            # The parent is a list (``ol`` or ``ul``) which has children.
+            # Assume the last child li is the parent of this block.
+            if sibling[-1].text:
+                # If the parent li has text, that text needs to be moved to a p
+                # The p must be 'inserted' at beginning of list in the event
+                # that other children already exist i.e.; a nested sublist.
+                p = util.etree.Element('p')
+                p.text = sibling[-1].text
+                sibling[-1].text = ''
+                sibling[-1].insert(0, p)
+            self.parser.parseChunk(sibling[-1], block)
+        else:
+            self.create_item(sibling, block)
+        self.parser.state.reset()
+
+    def create_item(self, parent, block):
+        """ Create a new li and parse the block with it as the parent. """
+        li = util.etree.SubElement(parent, 'li')
+        self.parser.parseBlocks(li, [block])
+    def get_level(self, parent, block):
+        """ Get level of indent based on list level. """
+        # Get indent level
+        m = self.INDENT_RE.match(block)
+        if m:
+            indent_level = len(m.group(1))/self.tab_length
+        else:
+            indent_level = 0
+        if self.parser.state.isstate('list'):
+            # We're in a tightlist - so we already are at correct parent.
+            level = 1
+        else:
+            # We're in a looselist - so we need to find parent.
+            level = 0
+        # Step through children of tree to find matching indent level.
+        while indent_level > level:
+            child = self.lastChild(parent)
+            if child is not None and (child.tag in self.LIST_TYPES or child.tag in self.ITEM_TYPES):
+                if child.tag in self.LIST_TYPES:
+                    level += 1
+                parent = child
+            else:
+                # No more child levels. If we're short of indent_level,
+                # we have a code block. So we stop here.
+                break
+        return level, parent
+
+
+class CodeBlockProcessor(BlockProcessor):
+    """ Process code blocks. """
+
+    def test(self, parent, block):
+        return block.startswith(' '*self.tab_length)
+    
+    def run(self, parent, blocks):
+        sibling = self.lastChild(parent)
+        block = blocks.pop(0)
+        theRest = ''
+        if sibling is not None and sibling.tag == "pre" and len(sibling) \
+                    and sibling[0].tag == "code":
+            # The previous block was a code block. As blank lines do not start
+            # new code blocks, append this block to the previous, adding back
+            # linebreaks removed from the split into a list.
+            code = sibling[0]
+            block, theRest = self.detab(block)
+            code.text = util.AtomicString('%s\n%s\n' % (code.text, block.rstrip()))
+        else:
+            # This is a new codeblock. Create the elements and insert text.
+            pre = util.etree.SubElement(parent, 'pre')
+            code = util.etree.SubElement(pre, 'code')
+            block, theRest = self.detab(block)
+            code.text = util.AtomicString('%s\n' % block.rstrip())
+        if theRest:
+            # This block contained unindented line(s) after the first indented 
+            # line. Insert these lines as the first block of the master blocks
+            # list for future processing.
+            blocks.insert(0, theRest)
+
+
+class BlockQuoteProcessor(BlockProcessor):
+
+    RE = re.compile(r'(^|\n)[ ]{0,3}>[ ]?(.*)')
+
+    def test(self, parent, block):
+        return bool(self.RE.search(block))
+
+    def run(self, parent, blocks):
+        block = blocks.pop(0)
+        m = self.RE.search(block)
+        if m:
+            before = block[:m.start()] # Lines before blockquote
+            # Pass lines before blockquote in recursively for parsing forst.
+            self.parser.parseBlocks(parent, [before])
+            # Remove ``> `` from begining of each line.
+            block = '\n'.join([self.clean(line) for line in 
+                            block[m.start():].split('\n')])
+        sibling = self.lastChild(parent)
+        if sibling is not None and sibling.tag == "blockquote":
+            # Previous block was a blockquote so set that as this blocks parent
+            quote = sibling
+        else:
+            # This is a new blockquote. Create a new parent element.
+            quote = util.etree.SubElement(parent, 'blockquote')
+        # Recursively parse block with blockquote as parent.
+        # change parser state so blockquotes embedded in lists use p tags
+        self.parser.state.set('blockquote')
+        self.parser.parseChunk(quote, block)
+        self.parser.state.reset()
+
+    def clean(self, line):
+        """ Remove ``>`` from beginning of a line. """
+        m = self.RE.match(line)
+        if line.strip() == ">":
+            return ""
+        elif m:
+            return m.group(2)
+        else:
+            return line
+
+class OListProcessor(BlockProcessor):
+    """ Process ordered list blocks. """
+
+    TAG = 'ol'
+    # Detect an item (``1. item``). ``group(1)`` contains contents of item.
+    RE = re.compile(r'^[ ]{0,3}\d+\.[ ]+(.*)')
+    # Detect items on secondary lines. they can be of either list type.
+    CHILD_RE = re.compile(r'^[ ]{0,3}((\d+\.)|[*+-])[ ]+(.*)')
+    # Detect indented (nested) items of either type
+    INDENT_RE = re.compile(r'^[ ]{4,7}((\d+\.)|[*+-])[ ]+.*')
+    # The integer (python string) with which the lists starts (default=1)
+    # Eg: If list is intialized as)
+    #   3. Item
+    # The ol tag will get starts="3" attribute
+    STARTSWITH = '1'
+    # List of allowed sibling tags. 
+    SIBLING_TAGS = ['ol', 'ul']
+
+    def test(self, parent, block):
+        return bool(self.RE.match(block))
+
+    def run(self, parent, blocks):
+        # Check fr multiple items in one block.
+        items = self.get_items(blocks.pop(0))
+        sibling = self.lastChild(parent)
+
+        if sibling is not None and sibling.tag in self.SIBLING_TAGS:
+            # Previous block was a list item, so set that as parent
+            lst = sibling
+            # make sure previous item is in a p- if the item has text, then it
+            # it isn't in a p
+            if lst[-1].text: 
+                # since it's possible there are other children for this sibling,
+                # we can't just SubElement the p, we need to insert it as the 
+                # first item
+                p = util.etree.Element('p')
+                p.text = lst[-1].text
+                lst[-1].text = ''
+                lst[-1].insert(0, p)
+            # if the last item has a tail, then the tail needs to be put in a p
+            # likely only when a header is not followed by a blank line
+            lch = self.lastChild(lst[-1])
+            if lch is not None and lch.tail:
+                p = util.etree.SubElement(lst[-1], 'p')
+                p.text = lch.tail.lstrip()
+                lch.tail = ''
+
+            # parse first block differently as it gets wrapped in a p.
+            li = util.etree.SubElement(lst, 'li')
+            self.parser.state.set('looselist')
+            firstitem = items.pop(0)
+            self.parser.parseBlocks(li, [firstitem])
+            self.parser.state.reset()
+        elif parent.tag in ['ol', 'ul']:
+            # this catches the edge case of a multi-item indented list whose 
+            # first item is in a blank parent-list item:
+            # * * subitem1
+            #     * subitem2
+            # see also ListIndentProcessor
+            lst = parent
+        else:
+            # This is a new list so create parent with appropriate tag.
+            lst = util.etree.SubElement(parent, self.TAG)
+            # Check if a custom start integer is set
+            if not self.parser.markdown.lazy_ol and self.STARTSWITH !='1':
+                lst.attrib['start'] = self.STARTSWITH
+
+        self.parser.state.set('list')
+        # Loop through items in block, recursively parsing each with the
+        # appropriate parent.
+        for item in items:
+            if item.startswith(' '*self.tab_length):
+                # Item is indented. Parse with last item as parent
+                self.parser.parseBlocks(lst[-1], [item])
+            else:
+                # New item. Create li and parse with it as parent
+                li = util.etree.SubElement(lst, 'li')
+                self.parser.parseBlocks(li, [item])
+        self.parser.state.reset()
+
+    def get_items(self, block):
+        """ Break a block into list items. """
+        items = []
+        for line in block.split('\n'):
+            m = self.CHILD_RE.match(line)
+            if m:
+                # This is a new list item
+                # Check first item for the start index
+                if not items and self.TAG=='ol':
+                    # Detect the integer value of first list item
+                    INTEGER_RE = re.compile('(\d+)')
+                    self.STARTSWITH = INTEGER_RE.match(m.group(1)).group()
+                # Append to the list
+                items.append(m.group(3))
+            elif self.INDENT_RE.match(line):
+                # This is an indented (possibly nested) item.
+                if items[-1].startswith(' '*self.tab_length):
+                    # Previous item was indented. Append to that item.
+                    items[-1] = '%s\n%s' % (items[-1], line)
+                else:
+                    items.append(line)
+            else:
+                # This is another line of previous item. Append to that item.
+                items[-1] = '%s\n%s' % (items[-1], line)
+        return items
+
+
+class UListProcessor(OListProcessor):
+    """ Process unordered list blocks. """
+
+    TAG = 'ul'
+    RE = re.compile(r'^[ ]{0,3}[*+-][ ]+(.*)')
+
+
+class HashHeaderProcessor(BlockProcessor):
+    """ Process Hash Headers. """
+
+    # Detect a header at start of any line in block
+    RE = re.compile(r'(^|\n)(?P<level>#{1,6})(?P<header>.*?)#*(\n|$)')
+
+    def test(self, parent, block):
+        return bool(self.RE.search(block))
+
+    def run(self, parent, blocks):
+        block = blocks.pop(0)
+        m = self.RE.search(block)
+        if m:
+            before = block[:m.start()] # All lines before header
+            after = block[m.end():]    # All lines after header
+            if before:
+                # As the header was not the first line of the block and the
+                # lines before the header must be parsed first,
+                # recursively parse this lines as a block.
+                self.parser.parseBlocks(parent, [before])
+            # Create header using named groups from RE
+            h = util.etree.SubElement(parent, 'h%d' % len(m.group('level')))
+            h.text = m.group('header').strip()
+            if after:
+                # Insert remaining lines as first block for future parsing.
+                blocks.insert(0, after)
+        else: #pragma: no cover
+            # This should never happen, but just in case...
+            logger.warn("We've got a problem header: %r" % block)
+
+
+class SetextHeaderProcessor(BlockProcessor):
+    """ Process Setext-style Headers. """
+
+    # Detect Setext-style header. Must be first 2 lines of block.
+    RE = re.compile(r'^.*?\n[=-]+[ ]*(\n|$)', re.MULTILINE)
+
+    def test(self, parent, block):
+        return bool(self.RE.match(block))
+
+    def run(self, parent, blocks):
+        lines = blocks.pop(0).split('\n')
+        # Determine level. ``=`` is 1 and ``-`` is 2.
+        if lines[1].startswith('='):
+            level = 1
+        else:
+            level = 2
+        h = util.etree.SubElement(parent, 'h%d' % level)
+        h.text = lines[0].strip()
+        if len(lines) > 2:
+            # Block contains additional lines. Add to  master blocks for later.
+            blocks.insert(0, '\n'.join(lines[2:]))
+
+
+class HRProcessor(BlockProcessor):
+    """ Process Horizontal Rules. """
+
+    RE = r'^[ ]{0,3}((-+[ ]{0,2}){3,}|(_+[ ]{0,2}){3,}|(\*+[ ]{0,2}){3,})[ ]*'
+    # Detect hr on any line of a block.
+    SEARCH_RE = re.compile(RE, re.MULTILINE)
+
+    def test(self, parent, block):
+        m = self.SEARCH_RE.search(block)
+        # No atomic grouping in python so we simulate it here for performance.
+        # The regex only matches what would be in the atomic group - the HR.
+        # Then check if we are at end of block or if next char is a newline.
+        if m and (m.end() == len(block) or block[m.end()] == '\n'):
+            # Save match object on class instance so we can use it later.
+            self.match = m
+            return True
+        return False
+
+    def run(self, parent, blocks):
+        block = blocks.pop(0)
+        # Check for lines in block before hr.
+        prelines = block[:self.match.start()].rstrip('\n')
+        if prelines:
+            # Recursively parse lines before hr so they get parsed first.
+            self.parser.parseBlocks(parent, [prelines])
+        # create hr
+        util.etree.SubElement(parent, 'hr')
+        # check for lines in block after hr.
+        postlines = block[self.match.end():].lstrip('\n')
+        if postlines:
+            # Add lines after hr to master blocks for later parsing.
+            blocks.insert(0, postlines)
+
+
+
+class EmptyBlockProcessor(BlockProcessor):
+    """ Process blocks that are empty or start with an empty line. """
+
+    def test(self, parent, block):
+        return not block or block.startswith('\n')
+
+    def run(self, parent, blocks):
+        block = blocks.pop(0)
+        filler = '\n\n'
+        if block:
+            # Starts with empty line
+            # Only replace a single line.
+            filler = '\n'
+            # Save the rest for later.
+            theRest = block[1:]
+            if theRest:
+                # Add remaining lines to master blocks for later.
+                blocks.insert(0, theRest)
+        sibling = self.lastChild(parent)
+        if sibling is not None and sibling.tag == 'pre' and len(sibling) and sibling[0].tag == 'code':
+            # Last block is a codeblock. Append to preserve whitespace.
+            sibling[0].text = util.AtomicString('%s%s' % (sibling[0].text, filler))
+
+
+class ParagraphProcessor(BlockProcessor):
+    """ Process Paragraph blocks. """
+
+    def test(self, parent, block):
+        return True
+
+    def run(self, parent, blocks):
+        block = blocks.pop(0)
+        if block.strip():
+            # Not a blank block. Add to parent, otherwise throw it away.
+            if self.parser.state.isstate('list'):
+                # The parent is a tight-list.
+                #
+                # Check for any children. This will likely only happen in a 
+                # tight-list when a header isn't followed by a blank line.
+                # For example:
+                #
+                #     * # Header
+                #     Line 2 of list item - not part of header.
+                sibling = self.lastChild(parent)
+                if sibling is not None:
+                    # Insetrt after sibling.
+                    if sibling.tail:
+                        sibling.tail = '%s\n%s' % (sibling.tail, block)
+                    else:
+                        sibling.tail = '\n%s' % block
+                else:
+                    # Append to parent.text
+                    if parent.text:
+                        parent.text = '%s\n%s' % (parent.text, block)
+                    else:
+                        parent.text = block.lstrip()
+            else:
+                # Create a regular paragraph
+                p = util.etree.SubElement(parent, 'p')
+                p.text = block.lstrip()
index 65b6c4da6873e2709d21fbfeee5bcf5c41e6baa1..03b2a4cf3247b6b064143be37034ed520f46fec2 100644 (file)
@@ -1,53 +1,93 @@
-"""\r
-Extensions\r
------------------------------------------------------------------------------\r
-"""\r
-\r
-from __future__ import unicode_literals\r
-\r
-class Extension(object):\r
-    """ Base class for extensions to subclass. """\r
-    def __init__(self, configs = {}):\r
-        """Create an instance of an Extention.\r
-\r
-        Keyword arguments:\r
-\r
-        * configs: A dict of configuration setting used by an Extension.\r
-        """\r
-        self.config = configs\r
-\r
-    def getConfig(self, key, default=''):\r
-        """ Return a setting for the given key or an empty string. """\r
-        if key in self.config:\r
-            return self.config[key][0]\r
-        else:\r
-            return default\r
-\r
-    def getConfigs(self):\r
-        """ Return all configs settings as a dict. """\r
-        return dict([(key, self.getConfig(key)) for key in self.config.keys()])\r
-\r
-    def getConfigInfo(self):\r
-        """ Return all config descriptions as a list of tuples. """\r
-        return [(key, self.config[key][1]) for key in self.config.keys()]\r
-\r
-    def setConfig(self, key, value):\r
-        """ Set a config setting for `key` with the given `value`. """\r
-        self.config[key][0] = value\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """\r
-        Add the various proccesors and patterns to the Markdown Instance.\r
-\r
-        This method must be overriden by every extension.\r
-\r
-        Keyword arguments:\r
-\r
-        * md: The Markdown instance.\r
-\r
-        * md_globals: Global variables in the markdown module namespace.\r
-\r
-        """\r
-        raise NotImplementedError('Extension "%s.%s" must define an "extendMarkdown"' \\r
-            'method.' % (self.__class__.__module__, self.__class__.__name__))\r
-\r
+"""
+Extensions
+-----------------------------------------------------------------------------
+"""
+
+from __future__ import unicode_literals
+from ..util import parseBoolValue
+import warnings
+
+class Extension(object):
+    """ Base class for extensions to subclass. """
+    
+    # Default config -- to be overriden by a subclass
+    # Must be of the following format:
+    #     {
+    #       'key': ['value', 'description']
+    #     }
+    # Note that Extension.setConfig will raise a KeyError
+    # if a default is not set here.
+    config = {}
+    
+    def __init__(self, *args, **kwargs):
+        """ Initiate Extension and set up configs. """
+
+        # check for configs arg for backward compat.
+        # (there only ever used to be one so we use arg[0])
+        if len(args):
+            self.setConfigs(args[0])
+            warnings.warn('Extension classes accepting positional args is pending Deprecation. '
+                          'Each setting should be passed into the Class as a keyword. Positional '
+                          'args will be deprecated in version 2.6 and raise an error in version '
+                          '2.7. See the Release Notes for Python-Markdown version 2.5 for more info.',
+                          PendingDeprecationWarning)
+        # check for configs kwarg for backward compat.
+        if 'configs' in kwargs.keys():
+            self.setConfigs(kwargs.pop('configs', {}))
+            warnings.warn('Extension classes accepting a dict on the single keyword "config" is '
+                          'pending Deprecation. Each setting should be passed into the Class as '
+                          'a keyword directly. The "config" keyword will be deprecated in version '
+                          '2.6 and raise an error in version 2.7. See the Release Notes for '
+                          'Python-Markdown version 2.5 for more info.',
+                          PendingDeprecationWarning)
+        # finally, use kwargs
+        self.setConfigs(kwargs)
+            
+
+    def getConfig(self, key, default=''):
+        """ Return a setting for the given key or an empty string. """
+        if key in self.config:
+            return self.config[key][0]
+        else:
+            return default
+
+    def getConfigs(self):
+        """ Return all configs settings as a dict. """
+        return dict([(key, self.getConfig(key)) for key in self.config.keys()])
+
+    def getConfigInfo(self):
+        """ Return all config descriptions as a list of tuples. """
+        return [(key, self.config[key][1]) for key in self.config.keys()]
+
+    def setConfig(self, key, value):
+        """ Set a config setting for `key` with the given `value`. """
+        if isinstance(self.config[key][0], bool):
+            value = parseBoolValue(value)
+        if self.config[key][0] is None:
+            value = parseBoolValue(value, preserve_none=True)
+        self.config[key][0] = value
+
+    def setConfigs(self, items):
+        """ Set multiple config settings given a dict or list of tuples. """
+        if hasattr(items, 'items'):
+            # it's a dict
+            items = items.items()
+        for key, value in items:
+            self.setConfig(key, value)
+
+    def extendMarkdown(self, md, md_globals):
+        """
+        Add the various proccesors and patterns to the Markdown Instance.
+
+        This method must be overriden by every extension.
+
+        Keyword arguments:
+
+        * md: The Markdown instance.
+
+        * md_globals: Global variables in the markdown module namespace.
+
+        """
+        raise NotImplementedError('Extension "%s.%s" must define an "extendMarkdown"' \
+            'method.' % (self.__class__.__module__, self.__class__.__name__))
+
index 62836e221217549087244bf19b1a8aefd93b22b4..58dd0aaad19018c7139106bc21fcd3b78883029f 100644 (file)
@@ -1,96 +1,89 @@
-'''\r
-Abbreviation Extension for Python-Markdown\r
-==========================================\r
-\r
-This extension adds abbreviation handling to Python-Markdown.\r
-\r
-Simple Usage:\r
-\r
-    >>> import markdown\r
-    >>> text = """\r
-    ... Some text with an ABBR and a REF. Ignore REFERENCE and ref.\r
-    ...\r
-    ... *[ABBR]: Abbreviation\r
-    ... *[REF]: Abbreviation Reference\r
-    ... """\r
-    >>> print markdown.markdown(text, ['abbr'])\r
-    <p>Some text with an <abbr title="Abbreviation">ABBR</abbr> and a <abbr title="Abbreviation Reference">REF</abbr>. Ignore REFERENCE and ref.</p>\r
-\r
-Copyright 2007-2008\r
-* [Waylan Limberg](http://achinghead.com/)\r
-* [Seemant Kulleen](http://www.kulleen.org/)\r
-       \r
-\r
-'''\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..preprocessors import Preprocessor\r
-from ..inlinepatterns import Pattern\r
-from ..util import etree, AtomicString\r
-import re\r
-\r
-# Global Vars\r
-ABBR_REF_RE = re.compile(r'[*]\[(?P<abbr>[^\]]*)\][ ]?:\s*(?P<title>.*)')\r
-\r
-class AbbrExtension(Extension):\r
-    """ Abbreviation Extension for Python-Markdown. """\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Insert AbbrPreprocessor before ReferencePreprocessor. """\r
-        md.preprocessors.add('abbr', AbbrPreprocessor(md), '<reference')\r
-        \r
-           \r
-class AbbrPreprocessor(Preprocessor):\r
-    """ Abbreviation Preprocessor - parse text for abbr references. """\r
-\r
-    def run(self, lines):\r
-        '''\r
-        Find and remove all Abbreviation references from the text.\r
-        Each reference is set as a new AbbrPattern in the markdown instance.\r
-        \r
-        '''\r
-        new_text = []\r
-        for line in lines:\r
-            m = ABBR_REF_RE.match(line)\r
-            if m:\r
-                abbr = m.group('abbr').strip()\r
-                title = m.group('title').strip()\r
-                self.markdown.inlinePatterns['abbr-%s'%abbr] = \\r
-                    AbbrPattern(self._generate_pattern(abbr), title)\r
-            else:\r
-                new_text.append(line)\r
-        return new_text\r
-    \r
-    def _generate_pattern(self, text):\r
-        '''\r
-        Given a string, returns an regex pattern to match that string. \r
-        \r
-        'HTML' -> r'(?P<abbr>[H][T][M][L])' \r
-        \r
-        Note: we force each char as a literal match (in brackets) as we don't \r
-        know what they will be beforehand.\r
-\r
-        '''\r
-        chars = list(text)\r
-        for i in range(len(chars)):\r
-            chars[i] = r'[%s]' % chars[i]\r
-        return r'(?P<abbr>\b%s\b)' % (r''.join(chars))\r
-\r
-\r
-class AbbrPattern(Pattern):\r
-    """ Abbreviation inline pattern. """\r
-\r
-    def __init__(self, pattern, title):\r
-        super(AbbrPattern, self).__init__(pattern)\r
-        self.title = title\r
-\r
-    def handleMatch(self, m):\r
-        abbr = etree.Element('abbr')\r
-        abbr.text = AtomicString(m.group('abbr'))\r
-        abbr.set('title', self.title)\r
-        return abbr\r
-\r
-def makeExtension(configs=None):\r
-    return AbbrExtension(configs=configs)\r
+'''
+Abbreviation Extension for Python-Markdown
+==========================================
+
+This extension adds abbreviation handling to Python-Markdown.
+
+See <https://pythonhosted.org/Markdown/extensions/abbreviations.html> 
+for documentation.
+
+Oringinal code Copyright 2007-2008 [Waylan Limberg](http://achinghead.com/) and
+ [Seemant Kulleen](http://www.kulleen.org/)
+
+All changes Copyright 2008-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+'''
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..preprocessors import Preprocessor
+from ..inlinepatterns import Pattern
+from ..util import etree, AtomicString
+import re
+
+# Global Vars
+ABBR_REF_RE = re.compile(r'[*]\[(?P<abbr>[^\]]*)\][ ]?:\s*(?P<title>.*)')
+
+class AbbrExtension(Extension):
+    """ Abbreviation Extension for Python-Markdown. """
+
+    def extendMarkdown(self, md, md_globals):
+        """ Insert AbbrPreprocessor before ReferencePreprocessor. """
+        md.preprocessors.add('abbr', AbbrPreprocessor(md), '<reference')
+        
+           
+class AbbrPreprocessor(Preprocessor):
+    """ Abbreviation Preprocessor - parse text for abbr references. """
+
+    def run(self, lines):
+        '''
+        Find and remove all Abbreviation references from the text.
+        Each reference is set as a new AbbrPattern in the markdown instance.
+        
+        '''
+        new_text = []
+        for line in lines:
+            m = ABBR_REF_RE.match(line)
+            if m:
+                abbr = m.group('abbr').strip()
+                title = m.group('title').strip()
+                self.markdown.inlinePatterns['abbr-%s'%abbr] = \
+                    AbbrPattern(self._generate_pattern(abbr), title)
+            else:
+                new_text.append(line)
+        return new_text
+    
+    def _generate_pattern(self, text):
+        '''
+        Given a string, returns an regex pattern to match that string. 
+        
+        'HTML' -> r'(?P<abbr>[H][T][M][L])' 
+        
+        Note: we force each char as a literal match (in brackets) as we don't 
+        know what they will be beforehand.
+
+        '''
+        chars = list(text)
+        for i in range(len(chars)):
+            chars[i] = r'[%s]' % chars[i]
+        return r'(?P<abbr>\b%s\b)' % (r''.join(chars))
+
+
+class AbbrPattern(Pattern):
+    """ Abbreviation inline pattern. """
+
+    def __init__(self, pattern, title):
+        super(AbbrPattern, self).__init__(pattern)
+        self.title = title
+
+    def handleMatch(self, m):
+        abbr = etree.Element('abbr')
+        abbr.text = AtomicString(m.group('abbr'))
+        abbr.set('title', self.title)
+        return abbr
+
+def makeExtension(*args, **kwargs):
+    return AbbrExtension(*args, **kwargs)
index 03eff6036a8e442c20afaf4f8232d3106520751a..189f2c2dd996a1ab718f6345db911a4d62b90946 100644 (file)
-"""\r
-Admonition extension for Python-Markdown\r
-========================================\r
-\r
-Adds rST-style admonitions. Inspired by [rST][] feature with the same name.\r
-\r
-The syntax is (followed by an indented block with the contents):\r
-    !!! [type] [optional explicit title]\r
-\r
-Where `type` is used as a CSS class name of the div. If not present, `title`\r
-defaults to the capitalized `type`, so "note" -> "Note".\r
-\r
-rST suggests the following `types`, but you're free to use whatever you want:\r
-    attention, caution, danger, error, hint, important, note, tip, warning\r
-\r
-\r
-A simple example:\r
-    !!! note\r
-        This is the first line inside the box.\r
-\r
-Outputs:\r
-    <div class="admonition note">\r
-    <p class="admonition-title">Note</p>\r
-    <p>This is the first line inside the box</p>\r
-    </div>\r
-\r
-You can also specify the title and CSS class of the admonition:\r
-    !!! custom "Did you know?"\r
-        Another line here.\r
-\r
-Outputs:\r
-    <div class="admonition custom">\r
-    <p class="admonition-title">Did you know?</p>\r
-    <p>Another line here.</p>\r
-    </div>\r
-\r
-[rST]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions\r
-\r
-By [Tiago Serafim](http://www.tiagoserafim.com/).\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..blockprocessors import BlockProcessor\r
-from ..util import etree\r
-import re\r
-\r
-\r
-class AdmonitionExtension(Extension):\r
-    """ Admonition extension for Python-Markdown. """\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Add Admonition to Markdown instance. """\r
-        md.registerExtension(self)\r
-\r
-        md.parser.blockprocessors.add('admonition',\r
-                                      AdmonitionProcessor(md.parser),\r
-                                      '_begin')\r
-\r
-\r
-class AdmonitionProcessor(BlockProcessor):\r
-\r
-    CLASSNAME = 'admonition'\r
-    CLASSNAME_TITLE = 'admonition-title'\r
-    RE = re.compile(r'(?:^|\n)!!!\ ?([\w\-]+)(?:\ "(.*?)")?')\r
-\r
-    def test(self, parent, block):\r
-        sibling = self.lastChild(parent)\r
-        return self.RE.search(block) or \\r
-            (block.startswith(' ' * self.tab_length) and sibling and \\r
-                sibling.get('class', '').find(self.CLASSNAME) != -1)\r
-\r
-    def run(self, parent, blocks):\r
-        sibling = self.lastChild(parent)\r
-        block = blocks.pop(0)\r
-        m = self.RE.search(block)\r
-\r
-        if m:\r
-            block = block[m.end() + 1:]  # removes the first line\r
-\r
-        block, theRest = self.detab(block)\r
-\r
-        if m:\r
-            klass, title = self.get_class_and_title(m)\r
-            div = etree.SubElement(parent, 'div')\r
-            div.set('class', '%s %s' % (self.CLASSNAME, klass))\r
-            if title:\r
-                p = etree.SubElement(div, 'p')\r
-                p.text = title\r
-                p.set('class', self.CLASSNAME_TITLE)\r
-        else:\r
-            div = sibling\r
-\r
-        self.parser.parseChunk(div, block)\r
-\r
-        if theRest:\r
-            # This block contained unindented line(s) after the first indented\r
-            # line. Insert these lines as the first block of the master blocks\r
-            # list for future processing.\r
-            blocks.insert(0, theRest)\r
-\r
-    def get_class_and_title(self, match):\r
-        klass, title = match.group(1).lower(), match.group(2)\r
-        if title is None:\r
-            # no title was provided, use the capitalized classname as title\r
-            # e.g.: `!!! note` will render `<p class="admonition-title">Note</p>`\r
-            title = klass.capitalize()\r
-        elif title == '':\r
-            # an explicit blank title should not be rendered\r
-            # e.g.: `!!! warning ""` will *not* render `p` with a title\r
-            title = None\r
-        return klass, title\r
-\r
-\r
-def makeExtension(configs={}):\r
-    return AdmonitionExtension(configs=configs)\r
+"""
+Admonition extension for Python-Markdown
+========================================
+
+Adds rST-style admonitions. Inspired by [rST][] feature with the same name.
+
+[rST]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions
+
+See <https://pythonhosted.org/Markdown/extensions/admonition.html> 
+for documentation.
+
+Original code Copyright [Tiago Serafim](http://www.tiagoserafim.com/).
+
+All changes Copyright The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..blockprocessors import BlockProcessor
+from ..util import etree
+import re
+
+
+class AdmonitionExtension(Extension):
+    """ Admonition extension for Python-Markdown. """
+
+    def extendMarkdown(self, md, md_globals):
+        """ Add Admonition to Markdown instance. """
+        md.registerExtension(self)
+
+        md.parser.blockprocessors.add('admonition',
+                                      AdmonitionProcessor(md.parser),
+                                      '_begin')
+
+
+class AdmonitionProcessor(BlockProcessor):
+
+    CLASSNAME = 'admonition'
+    CLASSNAME_TITLE = 'admonition-title'
+    RE = re.compile(r'(?:^|\n)!!!\ ?([\w\-]+)(?:\ "(.*?)")?')
+
+    def test(self, parent, block):
+        sibling = self.lastChild(parent)
+        return self.RE.search(block) or \
+            (block.startswith(' ' * self.tab_length) and sibling and \
+                sibling.get('class', '').find(self.CLASSNAME) != -1)
+
+    def run(self, parent, blocks):
+        sibling = self.lastChild(parent)
+        block = blocks.pop(0)
+        m = self.RE.search(block)
+
+        if m:
+            block = block[m.end() + 1:]  # removes the first line
+
+        block, theRest = self.detab(block)
+
+        if m:
+            klass, title = self.get_class_and_title(m)
+            div = etree.SubElement(parent, 'div')
+            div.set('class', '%s %s' % (self.CLASSNAME, klass))
+            if title:
+                p = etree.SubElement(div, 'p')
+                p.text = title
+                p.set('class', self.CLASSNAME_TITLE)
+        else:
+            div = sibling
+
+        self.parser.parseChunk(div, block)
+
+        if theRest:
+            # This block contained unindented line(s) after the first indented
+            # line. Insert these lines as the first block of the master blocks
+            # list for future processing.
+            blocks.insert(0, theRest)
+
+    def get_class_and_title(self, match):
+        klass, title = match.group(1).lower(), match.group(2)
+        if title is None:
+            # no title was provided, use the capitalized classname as title
+            # e.g.: `!!! note` will render `<p class="admonition-title">Note</p>`
+            title = klass.capitalize()
+        elif title == '':
+            # an explicit blank title should not be rendered
+            # e.g.: `!!! warning ""` will *not* render `p` with a title
+            title = None
+        return klass, title
+
+
+def makeExtension(*args, **kwargs):
+    return AdmonitionExtension(*args, **kwargs)
+
index 209dbaf783024557c5d3581a715d5e767bd890cf..59da3b42de3740b3a682750f5a4cf76bed6bab77 100644 (file)
-"""\r
-Attribute List Extension for Python-Markdown\r
-============================================\r
-\r
-Adds attribute list syntax. Inspired by \r
-[maruku](http://maruku.rubyforge.org/proposal.html#attribute_lists)'s\r
-feature of the same name.\r
-\r
-Copyright 2011 [Waylan Limberg](http://achinghead.com/).\r
-\r
-Contact: markdown@freewisdom.org\r
-\r
-License: BSD (see ../LICENSE.md for details) \r
-\r
-Dependencies:\r
-* [Python 2.4+](http://python.org)\r
-* [Markdown 2.1+](http://packages.python.org/Markdown/)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..treeprocessors import Treeprocessor\r
-from ..util import isBlockLevel\r
-import re\r
-\r
-try:\r
-    Scanner = re.Scanner\r
-except AttributeError:\r
-    # must be on Python 2.4\r
-    from sre import Scanner\r
-\r
-def _handle_double_quote(s, t):\r
-    k, v = t.split('=')\r
-    return k, v.strip('"')\r
-\r
-def _handle_single_quote(s, t):\r
-    k, v = t.split('=')\r
-    return k, v.strip("'")\r
-\r
-def _handle_key_value(s, t): \r
-    return t.split('=')\r
-\r
-def _handle_word(s, t):\r
-    if t.startswith('.'):\r
-        return '.', t[1:]\r
-    if t.startswith('#'):\r
-        return 'id', t[1:]\r
-    return t, t\r
-\r
-_scanner = Scanner([\r
-    (r'[^ ]+=".*?"', _handle_double_quote),\r
-    (r"[^ ]+='.*?'", _handle_single_quote),\r
-    (r'[^ ]+=[^ ]*', _handle_key_value),\r
-    (r'[^ ]+', _handle_word),\r
-    (r' ', None)\r
-])\r
-\r
-def get_attrs(str):\r
-    """ Parse attribute list and return a list of attribute tuples. """\r
-    return _scanner.scan(str)[0]\r
-\r
-def isheader(elem):\r
-    return elem.tag in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']\r
-\r
-class AttrListTreeprocessor(Treeprocessor):\r
-    \r
-    BASE_RE = r'\{\:?([^\}]*)\}'\r
-    HEADER_RE = re.compile(r'[ ]+%s[ ]*$' % BASE_RE)\r
-    BLOCK_RE = re.compile(r'\n[ ]*%s[ ]*$' % BASE_RE)\r
-    INLINE_RE = re.compile(r'^%s' % BASE_RE)\r
-    NAME_RE = re.compile(r'[^A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d'\r
-                         r'\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef'\r
-                         r'\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd'\r
-                         r'\:\-\.0-9\u00b7\u0300-\u036f\u203f-\u2040]+')\r
-\r
-    def run(self, doc):\r
-        for elem in doc.getiterator():\r
-            if isBlockLevel(elem.tag):\r
-                # Block level: check for attrs on last line of text\r
-                RE = self.BLOCK_RE\r
-                if isheader(elem) or elem.tag == 'dt':\r
-                    # header or def-term: check for attrs at end of line\r
-                    RE = self.HEADER_RE\r
-                if len(elem) and elem.tag == 'li':\r
-                    # special case list items. children may include a ul or ol.\r
-                    pos = None\r
-                    # find the ul or ol position\r
-                    for i, child in enumerate(elem):\r
-                        if child.tag in ['ul', 'ol']:\r
-                            pos = i\r
-                            break\r
-                    if pos is None and elem[-1].tail:\r
-                        # use tail of last child. no ul or ol.\r
-                        m = RE.search(elem[-1].tail)\r
-                        if m:\r
-                            self.assign_attrs(elem, m.group(1))\r
-                            elem[-1].tail = elem[-1].tail[:m.start()]\r
-                    elif pos is not None and pos > 0 and elem[pos-1].tail:\r
-                        # use tail of last child before ul or ol\r
-                        m = RE.search(elem[pos-1].tail)\r
-                        if m:\r
-                            self.assign_attrs(elem, m.group(1))\r
-                            elem[pos-1].tail = elem[pos-1].tail[:m.start()]\r
-                    elif elem.text:\r
-                        # use text. ul is first child.\r
-                        m = RE.search(elem.text)\r
-                        if m:\r
-                            self.assign_attrs(elem, m.group(1))\r
-                            elem.text = elem.text[:m.start()]\r
-                elif len(elem) and elem[-1].tail:\r
-                    # has children. Get from tail of last child\r
-                    m = RE.search(elem[-1].tail)\r
-                    if m:\r
-                        self.assign_attrs(elem, m.group(1))\r
-                        elem[-1].tail = elem[-1].tail[:m.start()]\r
-                        if isheader(elem):\r
-                            # clean up trailing #s\r
-                            elem[-1].tail = elem[-1].tail.rstrip('#').rstrip()\r
-                elif elem.text:\r
-                    # no children. Get from text.\r
-                    m = RE.search(elem.text)\r
-                    if not m and elem.tag == 'td':\r
-                        m = re.search(self.BASE_RE, elem.text)\r
-                    if m:\r
-                        self.assign_attrs(elem, m.group(1))\r
-                        elem.text = elem.text[:m.start()]\r
-                        if isheader(elem):\r
-                            # clean up trailing #s\r
-                            elem.text = elem.text.rstrip('#').rstrip()\r
-            else:\r
-                # inline: check for attrs at start of tail\r
-                if elem.tail:\r
-                    m = self.INLINE_RE.match(elem.tail)\r
-                    if m:\r
-                        self.assign_attrs(elem, m.group(1))\r
-                        elem.tail = elem.tail[m.end():]\r
-\r
-    def assign_attrs(self, elem, attrs):\r
-        """ Assign attrs to element. """\r
-        for k, v in get_attrs(attrs):\r
-            if k == '.':\r
-                # add to class\r
-                cls = elem.get('class')\r
-                if cls:\r
-                    elem.set('class', '%s %s' % (cls, v))\r
-                else:\r
-                    elem.set('class', v)\r
-            else:\r
-                # assign attr k with v\r
-                elem.set(self.sanitize_name(k), v)\r
-\r
-    def sanitize_name(self, name):\r
-        """\r
-        Sanitize name as 'an XML Name, minus the ":"'.\r
-        See http://www.w3.org/TR/REC-xml-names/#NT-NCName\r
-        """\r
-        return self.NAME_RE.sub('_', name)\r
-\r
-\r
-class AttrListExtension(Extension):\r
-    def extendMarkdown(self, md, md_globals):\r
-        md.treeprocessors.add('attr_list', AttrListTreeprocessor(md), '>prettify')\r
-\r
-\r
-def makeExtension(configs={}):\r
-    return AttrListExtension(configs=configs)\r
+"""
+Attribute List Extension for Python-Markdown
+============================================
+
+Adds attribute list syntax. Inspired by 
+[maruku](http://maruku.rubyforge.org/proposal.html#attribute_lists)'s
+feature of the same name.
+
+See <https://pythonhosted.org/Markdown/extensions/attr_list.html> 
+for documentation.
+
+Original code Copyright 2011 [Waylan Limberg](http://achinghead.com/).
+
+All changes Copyright 2011-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..treeprocessors import Treeprocessor
+from ..util import isBlockLevel
+import re
+
+try:
+    Scanner = re.Scanner
+except AttributeError: #pragma: no cover
+    # must be on Python 2.4
+    from sre import Scanner
+
+def _handle_double_quote(s, t):
+    k, v = t.split('=')
+    return k, v.strip('"')
+
+def _handle_single_quote(s, t):
+    k, v = t.split('=')
+    return k, v.strip("'")
+
+def _handle_key_value(s, t): 
+    return t.split('=')
+
+def _handle_word(s, t):
+    if t.startswith('.'):
+        return '.', t[1:]
+    if t.startswith('#'):
+        return 'id', t[1:]
+    return t, t
+
+_scanner = Scanner([
+    (r'[^ ]+=".*?"', _handle_double_quote),
+    (r"[^ ]+='.*?'", _handle_single_quote),
+    (r'[^ ]+=[^ ]*', _handle_key_value),
+    (r'[^ ]+', _handle_word),
+    (r' ', None)
+])
+
+def get_attrs(str):
+    """ Parse attribute list and return a list of attribute tuples. """
+    return _scanner.scan(str)[0]
+
+def isheader(elem):
+    return elem.tag in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
+
+class AttrListTreeprocessor(Treeprocessor):
+    
+    BASE_RE = r'\{\:?([^\}]*)\}'
+    HEADER_RE = re.compile(r'[ ]+%s[ ]*$' % BASE_RE)
+    BLOCK_RE = re.compile(r'\n[ ]*%s[ ]*$' % BASE_RE)
+    INLINE_RE = re.compile(r'^%s' % BASE_RE)
+    NAME_RE = re.compile(r'[^A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d'
+                         r'\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef'
+                         r'\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd'
+                         r'\:\-\.0-9\u00b7\u0300-\u036f\u203f-\u2040]+')
+
+    def run(self, doc):
+        for elem in doc.getiterator():
+            if isBlockLevel(elem.tag):
+                # Block level: check for attrs on last line of text
+                RE = self.BLOCK_RE
+                if isheader(elem) or elem.tag == 'dt':
+                    # header or def-term: check for attrs at end of line
+                    RE = self.HEADER_RE
+                if len(elem) and elem.tag == 'li':
+                    # special case list items. children may include a ul or ol.
+                    pos = None
+                    # find the ul or ol position
+                    for i, child in enumerate(elem):
+                        if child.tag in ['ul', 'ol']:
+                            pos = i
+                            break
+                    if pos is None and elem[-1].tail:
+                        # use tail of last child. no ul or ol.
+                        m = RE.search(elem[-1].tail)
+                        if m:
+                            self.assign_attrs(elem, m.group(1))
+                            elem[-1].tail = elem[-1].tail[:m.start()]
+                    elif pos is not None and pos > 0 and elem[pos-1].tail:
+                        # use tail of last child before ul or ol
+                        m = RE.search(elem[pos-1].tail)
+                        if m:
+                            self.assign_attrs(elem, m.group(1))
+                            elem[pos-1].tail = elem[pos-1].tail[:m.start()]
+                    elif elem.text:
+                        # use text. ul is first child.
+                        m = RE.search(elem.text)
+                        if m:
+                            self.assign_attrs(elem, m.group(1))
+                            elem.text = elem.text[:m.start()]
+                elif len(elem) and elem[-1].tail:
+                    # has children. Get from tail of last child
+                    m = RE.search(elem[-1].tail)
+                    if m:
+                        self.assign_attrs(elem, m.group(1))
+                        elem[-1].tail = elem[-1].tail[:m.start()]
+                        if isheader(elem):
+                            # clean up trailing #s
+                            elem[-1].tail = elem[-1].tail.rstrip('#').rstrip()
+                elif elem.text:
+                    # no children. Get from text.
+                    m = RE.search(elem.text)
+                    if not m and elem.tag == 'td':
+                        m = re.search(self.BASE_RE, elem.text)
+                    if m:
+                        self.assign_attrs(elem, m.group(1))
+                        elem.text = elem.text[:m.start()]
+                        if isheader(elem):
+                            # clean up trailing #s
+                            elem.text = elem.text.rstrip('#').rstrip()
+            else:
+                # inline: check for attrs at start of tail
+                if elem.tail:
+                    m = self.INLINE_RE.match(elem.tail)
+                    if m:
+                        self.assign_attrs(elem, m.group(1))
+                        elem.tail = elem.tail[m.end():]
+
+    def assign_attrs(self, elem, attrs):
+        """ Assign attrs to element. """
+        for k, v in get_attrs(attrs):
+            if k == '.':
+                # add to class
+                cls = elem.get('class')
+                if cls:
+                    elem.set('class', '%s %s' % (cls, v))
+                else:
+                    elem.set('class', v)
+            else:
+                # assign attr k with v
+                elem.set(self.sanitize_name(k), v)
+
+    def sanitize_name(self, name):
+        """
+        Sanitize name as 'an XML Name, minus the ":"'.
+        See http://www.w3.org/TR/REC-xml-names/#NT-NCName
+        """
+        return self.NAME_RE.sub('_', name)
+
+
+class AttrListExtension(Extension):
+    def extendMarkdown(self, md, md_globals):
+        md.treeprocessors.add('attr_list', AttrListTreeprocessor(md), '>prettify')
+
+
+def makeExtension(*args, **kwargs):
+    return AttrListExtension(*args, **kwargs)
index 589a7e7639aca6483923539c8045016094acf05a..7fbf83fb46cdc724f48516ea1172e059c4b1c46f 100644 (file)
-"""\r
-CodeHilite Extension for Python-Markdown\r
-========================================\r
-\r
-Adds code/syntax highlighting to standard Python-Markdown code blocks.\r
-\r
-Copyright 2006-2008 [Waylan Limberg](http://achinghead.com/).\r
-\r
-Project website: <http://packages.python.org/Markdown/extensions/code_hilite.html>\r
-Contact: markdown@freewisdom.org\r
-\r
-License: BSD (see ../LICENSE.md for details)\r
-\r
-Dependencies:\r
-* [Python 2.3+](http://python.org/)\r
-* [Markdown 2.0+](http://packages.python.org/Markdown/)\r
-* [Pygments](http://pygments.org/)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..treeprocessors import Treeprocessor\r
-import warnings\r
-try:\r
-    from pygments import highlight\r
-    from pygments.lexers import get_lexer_by_name, guess_lexer, TextLexer\r
-    from pygments.formatters import HtmlFormatter\r
-    pygments = True\r
-except ImportError:\r
-    pygments = False\r
-\r
-\r
-def parse_hl_lines(expr):\r
-    """Support our syntax for emphasizing certain lines of code.\r
-\r
-    expr should be like '1 2' to emphasize lines 1 and 2 of a code block.\r
-    Returns a list of ints, the line numbers to emphasize.\r
-    """\r
-    if not expr:\r
-        return []\r
-\r
-    try:\r
-        return list(map(int, expr.split()))\r
-    except ValueError:\r
-        return []\r
-\r
-\r
-# ------------------ The Main CodeHilite Class ----------------------\r
-class CodeHilite(object):\r
-    """\r
-    Determine language of source code, and pass it into the pygments hilighter.\r
-\r
-    Basic Usage:\r
-        >>> code = CodeHilite(src = 'some text')\r
-        >>> html = code.hilite()\r
-\r
-    * src: Source string or any object with a .readline attribute.\r
-\r
-    * linenums: (Boolean) Set line numbering to 'on' (True), 'off' (False) or 'auto'(None). \r
-    Set to 'auto' by default.\r
-\r
-    * guess_lang: (Boolean) Turn language auto-detection 'on' or 'off' (on by default).\r
-\r
-    * css_class: Set class name of wrapper div ('codehilite' by default).\r
-\r
-    * hl_lines: (List of integers) Lines to emphasize, 1-indexed.\r
-\r
-    Low Level Usage:\r
-        >>> code = CodeHilite()\r
-        >>> code.src = 'some text' # String or anything with a .readline attr.\r
-        >>> code.linenos = True  # True or False; Turns line numbering on or of.\r
-        >>> html = code.hilite()\r
-\r
-    """\r
-\r
-    def __init__(self, src=None, linenums=None, guess_lang=True,\r
-                css_class="codehilite", lang=None, style='default',\r
-                noclasses=False, tab_length=4, hl_lines=None):\r
-        self.src = src\r
-        self.lang = lang\r
-        self.linenums = linenums\r
-        self.guess_lang = guess_lang\r
-        self.css_class = css_class\r
-        self.style = style\r
-        self.noclasses = noclasses\r
-        self.tab_length = tab_length\r
-        self.hl_lines = hl_lines or []\r
-\r
-    def hilite(self):\r
-        """\r
-        Pass code to the [Pygments](http://pygments.pocoo.org/) highliter with\r
-        optional line numbers. The output should then be styled with css to\r
-        your liking. No styles are applied by default - only styling hooks\r
-        (i.e.: <span class="k">).\r
-\r
-        returns : A string of html.\r
-\r
-        """\r
-\r
-        self.src = self.src.strip('\n')\r
-\r
-        if self.lang is None:\r
-            self._parseHeader()\r
-\r
-        if pygments:\r
-            try:\r
-                lexer = get_lexer_by_name(self.lang)\r
-            except ValueError:\r
-                try:\r
-                    if self.guess_lang:\r
-                        lexer = guess_lexer(self.src)\r
-                    else:\r
-                        lexer = TextLexer()\r
-                except ValueError:\r
-                    lexer = TextLexer()\r
-            formatter = HtmlFormatter(linenos=self.linenums,\r
-                                      cssclass=self.css_class,\r
-                                      style=self.style,\r
-                                      noclasses=self.noclasses,\r
-                                      hl_lines=self.hl_lines)\r
-            return highlight(self.src, lexer, formatter)\r
-        else:\r
-            # just escape and build markup usable by JS highlighting libs\r
-            txt = self.src.replace('&', '&amp;')\r
-            txt = txt.replace('<', '&lt;')\r
-            txt = txt.replace('>', '&gt;')\r
-            txt = txt.replace('"', '&quot;')\r
-            classes = []\r
-            if self.lang:\r
-                classes.append('language-%s' % self.lang)\r
-            if self.linenums:\r
-                classes.append('linenums')\r
-            class_str = ''\r
-            if classes:\r
-                class_str = ' class="%s"' % ' '.join(classes) \r
-            return '<pre class="%s"><code%s>%s</code></pre>\n'% \\r
-                        (self.css_class, class_str, txt)\r
-\r
-    def _parseHeader(self):\r
-        """\r
-        Determines language of a code block from shebang line and whether said\r
-        line should be removed or left in place. If the sheband line contains a\r
-        path (even a single /) then it is assumed to be a real shebang line and\r
-        left alone. However, if no path is given (e.i.: #!python or :::python)\r
-        then it is assumed to be a mock shebang for language identifitation of a\r
-        code fragment and removed from the code block prior to processing for\r
-        code highlighting. When a mock shebang (e.i: #!python) is found, line\r
-        numbering is turned on. When colons are found in place of a shebang\r
-        (e.i.: :::python), line numbering is left in the current state - off\r
-        by default.\r
-\r
-        Also parses optional list of highlight lines, like:\r
-\r
-            :::python hl_lines="1 3"\r
-        """\r
-\r
-        import re\r
-\r
-        #split text into lines\r
-        lines = self.src.split("\n")\r
-        #pull first line to examine\r
-        fl = lines.pop(0)\r
-\r
-        c = re.compile(r'''\r
-            (?:(?:^::+)|(?P<shebang>^[#]!)) # Shebang or 2 or more colons\r
-            (?P<path>(?:/\w+)*[/ ])?        # Zero or 1 path\r
-            (?P<lang>[\w+-]*)               # The language\r
-            \s*                             # Arbitrary whitespace\r
-            # Optional highlight lines, single- or double-quote-delimited\r
-            (hl_lines=(?P<quot>"|')(?P<hl_lines>.*?)(?P=quot))?\r
-            ''',  re.VERBOSE)\r
-        # search first line for shebang\r
-        m = c.search(fl)\r
-        if m:\r
-            # we have a match\r
-            try:\r
-                self.lang = m.group('lang').lower()\r
-            except IndexError:\r
-                self.lang = None\r
-            if m.group('path'):\r
-                # path exists - restore first line\r
-                lines.insert(0, fl)\r
-            if self.linenums is None and m.group('shebang'):\r
-                # Overridable and Shebang exists - use line numbers\r
-                self.linenums = True\r
-\r
-            self.hl_lines = parse_hl_lines(m.group('hl_lines'))\r
-        else:\r
-            # No match\r
-            lines.insert(0, fl)\r
-\r
-        self.src = "\n".join(lines).strip("\n")\r
-\r
-\r
-\r
-# ------------------ The Markdown Extension -------------------------------\r
-class HiliteTreeprocessor(Treeprocessor):\r
-    """ Hilight source code in code blocks. """\r
-\r
-    def run(self, root):\r
-        """ Find code blocks and store in htmlStash. """\r
-        blocks = root.getiterator('pre')\r
-        for block in blocks:\r
-            children = block.getchildren()\r
-            if len(children) == 1 and children[0].tag == 'code':\r
-                code = CodeHilite(children[0].text,\r
-                            linenums=self.config['linenums'],\r
-                            guess_lang=self.config['guess_lang'],\r
-                            css_class=self.config['css_class'],\r
-                            style=self.config['pygments_style'],\r
-                            noclasses=self.config['noclasses'],\r
-                            tab_length=self.markdown.tab_length)\r
-                placeholder = self.markdown.htmlStash.store(code.hilite(),\r
-                                                            safe=True)\r
-                # Clear codeblock in etree instance\r
-                block.clear()\r
-                # Change to p element which will later\r
-                # be removed when inserting raw html\r
-                block.tag = 'p'\r
-                block.text = placeholder\r
-\r
-\r
-class CodeHiliteExtension(Extension):\r
-    """ Add source code hilighting to markdown codeblocks. """\r
-\r
-    def __init__(self, configs):\r
-        # define default configs\r
-        self.config = {\r
-            'linenums': [None, "Use lines numbers. True=yes, False=no, None=auto"],\r
-            'force_linenos' : [False, "Depreciated! Use 'linenums' instead. Force line numbers - Default: False"],\r
-            'guess_lang' : [True, "Automatic language detection - Default: True"],\r
-            'css_class' : ["codehilite",\r
-                           "Set class name for wrapper <div> - Default: codehilite"],\r
-            'pygments_style' : ['default', 'Pygments HTML Formatter Style (Colorscheme) - Default: default'],\r
-            'noclasses': [False, 'Use inline styles instead of CSS classes - Default false']\r
-            }\r
-\r
-        # Override defaults with user settings\r
-        for key, value in configs:\r
-            # convert strings to booleans\r
-            if value == 'True': value = True\r
-            if value == 'False': value = False\r
-            if value == 'None': value = None\r
-\r
-            if key == 'force_linenos':\r
-                warnings.warn('The "force_linenos" config setting'\r
-                    ' to the CodeHilite extension is deprecrecated.'\r
-                    ' Use "linenums" instead.', DeprecationWarning)\r
-                if value:\r
-                    # Carry 'force_linenos' over to new 'linenos'.\r
-                    self.setConfig('linenums', True)\r
-\r
-            self.setConfig(key, value)\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Add HilitePostprocessor to Markdown instance. """\r
-        hiliter = HiliteTreeprocessor(md)\r
-        hiliter.config = self.getConfigs()\r
-        md.treeprocessors.add("hilite", hiliter, "<inline")\r
-\r
-        md.registerExtension(self)\r
-\r
-\r
-def makeExtension(configs={}):\r
-  return CodeHiliteExtension(configs=configs)\r
-\r
+"""
+CodeHilite Extension for Python-Markdown
+========================================
+
+Adds code/syntax highlighting to standard Python-Markdown code blocks.
+
+See <https://pythonhosted.org/Markdown/extensions/code_hilite.html> 
+for documentation.
+
+Original code Copyright 2006-2008 [Waylan Limberg](http://achinghead.com/).
+
+All changes Copyright 2008-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php)
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..treeprocessors import Treeprocessor
+import warnings
+try:
+    from pygments import highlight
+    from pygments.lexers import get_lexer_by_name, guess_lexer, TextLexer
+    from pygments.formatters import HtmlFormatter
+    pygments = True
+except ImportError:
+    pygments = False
+
+
+def parse_hl_lines(expr):
+    """Support our syntax for emphasizing certain lines of code.
+
+    expr should be like '1 2' to emphasize lines 1 and 2 of a code block.
+    Returns a list of ints, the line numbers to emphasize.
+    """
+    if not expr:
+        return []
+
+    try:
+        return list(map(int, expr.split()))
+    except ValueError:
+        return []
+
+
+# ------------------ The Main CodeHilite Class ----------------------
+class CodeHilite(object):
+    """
+    Determine language of source code, and pass it into the pygments hilighter.
+
+    Basic Usage:
+        >>> code = CodeHilite(src = 'some text')
+        >>> html = code.hilite()
+
+    * src: Source string or any object with a .readline attribute.
+
+    * linenums: (Boolean) Set line numbering to 'on' (True), 'off' (False) or 'auto'(None). 
+    Set to 'auto' by default.
+
+    * guess_lang: (Boolean) Turn language auto-detection 'on' or 'off' (on by default).
+
+    * css_class: Set class name of wrapper div ('codehilite' by default).
+
+    * hl_lines: (List of integers) Lines to emphasize, 1-indexed.
+
+    Low Level Usage:
+        >>> code = CodeHilite()
+        >>> code.src = 'some text' # String or anything with a .readline attr.
+        >>> code.linenos = True  # True or False; Turns line numbering on or of.
+        >>> html = code.hilite()
+
+    """
+
+    def __init__(self, src=None, linenums=None, guess_lang=True,
+                css_class="codehilite", lang=None, style='default',
+                noclasses=False, tab_length=4, hl_lines=None):
+        self.src = src
+        self.lang = lang
+        self.linenums = linenums
+        self.guess_lang = guess_lang
+        self.css_class = css_class
+        self.style = style
+        self.noclasses = noclasses
+        self.tab_length = tab_length
+        self.hl_lines = hl_lines or []
+
+    def hilite(self):
+        """
+        Pass code to the [Pygments](http://pygments.pocoo.org/) highliter with
+        optional line numbers. The output should then be styled with css to
+        your liking. No styles are applied by default - only styling hooks
+        (i.e.: <span class="k">).
+
+        returns : A string of html.
+
+        """
+
+        self.src = self.src.strip('\n')
+
+        if self.lang is None:
+            self._parseHeader()
+
+        if pygments:
+            try:
+                lexer = get_lexer_by_name(self.lang)
+            except ValueError:
+                try:
+                    if self.guess_lang:
+                        lexer = guess_lexer(self.src)
+                    else:
+                        lexer = TextLexer()
+                except ValueError:
+                    lexer = TextLexer()
+            formatter = HtmlFormatter(linenos=self.linenums,
+                                      cssclass=self.css_class,
+                                      style=self.style,
+                                      noclasses=self.noclasses,
+                                      hl_lines=self.hl_lines)
+            return highlight(self.src, lexer, formatter)
+        else:
+            # just escape and build markup usable by JS highlighting libs
+            txt = self.src.replace('&', '&amp;')
+            txt = txt.replace('<', '&lt;')
+            txt = txt.replace('>', '&gt;')
+            txt = txt.replace('"', '&quot;')
+            classes = []
+            if self.lang:
+                classes.append('language-%s' % self.lang)
+            if self.linenums:
+                classes.append('linenums')
+            class_str = ''
+            if classes:
+                class_str = ' class="%s"' % ' '.join(classes) 
+            return '<pre class="%s"><code%s>%s</code></pre>\n'% \
+                        (self.css_class, class_str, txt)
+
+    def _parseHeader(self):
+        """
+        Determines language of a code block from shebang line and whether said
+        line should be removed or left in place. If the sheband line contains a
+        path (even a single /) then it is assumed to be a real shebang line and
+        left alone. However, if no path is given (e.i.: #!python or :::python)
+        then it is assumed to be a mock shebang for language identifitation of a
+        code fragment and removed from the code block prior to processing for
+        code highlighting. When a mock shebang (e.i: #!python) is found, line
+        numbering is turned on. When colons are found in place of a shebang
+        (e.i.: :::python), line numbering is left in the current state - off
+        by default.
+
+        Also parses optional list of highlight lines, like:
+
+            :::python hl_lines="1 3"
+        """
+
+        import re
+
+        #split text into lines
+        lines = self.src.split("\n")
+        #pull first line to examine
+        fl = lines.pop(0)
+
+        c = re.compile(r'''
+            (?:(?:^::+)|(?P<shebang>^[#]!)) # Shebang or 2 or more colons
+            (?P<path>(?:/\w+)*[/ ])?        # Zero or 1 path
+            (?P<lang>[\w+-]*)               # The language
+            \s*                             # Arbitrary whitespace
+            # Optional highlight lines, single- or double-quote-delimited
+            (hl_lines=(?P<quot>"|')(?P<hl_lines>.*?)(?P=quot))?
+            ''',  re.VERBOSE)
+        # search first line for shebang
+        m = c.search(fl)
+        if m:
+            # we have a match
+            try:
+                self.lang = m.group('lang').lower()
+            except IndexError:
+                self.lang = None
+            if m.group('path'):
+                # path exists - restore first line
+                lines.insert(0, fl)
+            if self.linenums is None and m.group('shebang'):
+                # Overridable and Shebang exists - use line numbers
+                self.linenums = True
+
+            self.hl_lines = parse_hl_lines(m.group('hl_lines'))
+        else:
+            # No match
+            lines.insert(0, fl)
+
+        self.src = "\n".join(lines).strip("\n")
+
+
+
+# ------------------ The Markdown Extension -------------------------------
+class HiliteTreeprocessor(Treeprocessor):
+    """ Hilight source code in code blocks. """
+
+    def run(self, root):
+        """ Find code blocks and store in htmlStash. """
+        blocks = root.getiterator('pre')
+        for block in blocks:
+            children = block.getchildren()
+            if len(children) == 1 and children[0].tag == 'code':
+                code = CodeHilite(children[0].text,
+                            linenums=self.config['linenums'],
+                            guess_lang=self.config['guess_lang'],
+                            css_class=self.config['css_class'],
+                            style=self.config['pygments_style'],
+                            noclasses=self.config['noclasses'],
+                            tab_length=self.markdown.tab_length)
+                placeholder = self.markdown.htmlStash.store(code.hilite(),
+                                                            safe=True)
+                # Clear codeblock in etree instance
+                block.clear()
+                # Change to p element which will later
+                # be removed when inserting raw html
+                block.tag = 'p'
+                block.text = placeholder
+
+
+class CodeHiliteExtension(Extension):
+    """ Add source code hilighting to markdown codeblocks. """
+
+    def __init__(self, *args, **kwargs):
+        # define default configs
+        self.config = {
+            'linenums': [None, "Use lines numbers. True=yes, False=no, None=auto"],
+            'force_linenos' : [False, "Depreciated! Use 'linenums' instead. Force line numbers - Default: False"],
+            'guess_lang' : [True, "Automatic language detection - Default: True"],
+            'css_class' : ["codehilite",
+                           "Set class name for wrapper <div> - Default: codehilite"],
+            'pygments_style' : ['default', 'Pygments HTML Formatter Style (Colorscheme) - Default: default'],
+            'noclasses': [False, 'Use inline styles instead of CSS classes - Default false']
+            }
+
+        super(CodeHiliteExtension, self).__init__(*args, **kwargs)
+
+    def extendMarkdown(self, md, md_globals):
+        """ Add HilitePostprocessor to Markdown instance. """
+        hiliter = HiliteTreeprocessor(md)
+        hiliter.config = self.getConfigs()
+        md.treeprocessors.add("hilite", hiliter, "<inline")
+
+        md.registerExtension(self)
+
+
+def makeExtension(*args, **kwargs):
+  return CodeHiliteExtension(*args, **kwargs)
+
index f5d618c64a997460dc00a34e27d41b078e01f140..22e2491a66a1904fa99fce4784933e8b2d5e3843 100644 (file)
-"""\r
-Definition List Extension for Python-Markdown\r
-=============================================\r
-\r
-Added parsing of Definition Lists to Python-Markdown.\r
-\r
-A simple example:\r
-\r
-    Apple\r
-    :   Pomaceous fruit of plants of the genus Malus in \r
-        the family Rosaceae.\r
-    :   An american computer company.\r
-\r
-    Orange\r
-    :   The fruit of an evergreen tree of the genus Citrus.\r
-\r
-Copyright 2008 - [Waylan Limberg](http://achinghead.com)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..blockprocessors import BlockProcessor, ListIndentProcessor\r
-from ..util import etree\r
-import re\r
-\r
-\r
-class DefListProcessor(BlockProcessor):\r
-    """ Process Definition Lists. """\r
-\r
-    RE = re.compile(r'(^|\n)[ ]{0,3}:[ ]{1,3}(.*?)(\n|$)')\r
-    NO_INDENT_RE = re.compile(r'^[ ]{0,3}[^ :]')\r
-\r
-    def test(self, parent, block):\r
-        return bool(self.RE.search(block))\r
-\r
-    def run(self, parent, blocks):\r
-\r
-        raw_block = blocks.pop(0)\r
-        m = self.RE.search(raw_block)\r
-        terms = [l.strip() for l in raw_block[:m.start()].split('\n') if l.strip()]\r
-        block = raw_block[m.end():]\r
-        no_indent = self.NO_INDENT_RE.match(block)\r
-        if no_indent:\r
-            d, theRest = (block, None)\r
-        else:\r
-            d, theRest = self.detab(block)\r
-        if d:\r
-            d = '%s\n%s' % (m.group(2), d)\r
-        else:\r
-            d = m.group(2)\r
-        sibling = self.lastChild(parent)\r
-        if not terms and sibling is None:\r
-            # This is not a definition item. Most likely a paragraph that \r
-            # starts with a colon at the begining of a document or list.\r
-            blocks.insert(0, raw_block)\r
-            return False\r
-        if not terms and sibling.tag == 'p':\r
-            # The previous paragraph contains the terms\r
-            state = 'looselist'\r
-            terms = sibling.text.split('\n')\r
-            parent.remove(sibling)\r
-            # Aquire new sibling\r
-            sibling = self.lastChild(parent)\r
-        else:\r
-            state = 'list'\r
-\r
-        if sibling and sibling.tag == 'dl':\r
-            # This is another item on an existing list\r
-            dl = sibling\r
-            if not terms and len(dl) and dl[-1].tag == 'dd' and len(dl[-1]):\r
-                state = 'looselist'\r
-        else:\r
-            # This is a new list\r
-            dl = etree.SubElement(parent, 'dl')\r
-        # Add terms\r
-        for term in terms:\r
-            dt = etree.SubElement(dl, 'dt')\r
-            dt.text = term\r
-        # Add definition\r
-        self.parser.state.set(state)\r
-        dd = etree.SubElement(dl, 'dd')\r
-        self.parser.parseBlocks(dd, [d])\r
-        self.parser.state.reset()\r
-\r
-        if theRest:\r
-            blocks.insert(0, theRest)\r
-\r
-class DefListIndentProcessor(ListIndentProcessor):\r
-    """ Process indented children of definition list items. """\r
-\r
-    ITEM_TYPES = ['dd']\r
-    LIST_TYPES = ['dl']\r
-\r
-    def create_item(self, parent, block):\r
-        """ Create a new dd and parse the block with it as the parent. """\r
-        dd = etree.SubElement(parent, 'dd')\r
-        self.parser.parseBlocks(dd, [block])\r
\r
-\r
-\r
-class DefListExtension(Extension):\r
-    """ Add definition lists to Markdown. """\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Add an instance of DefListProcessor to BlockParser. """\r
-        md.parser.blockprocessors.add('defindent',\r
-                                      DefListIndentProcessor(md.parser),\r
-                                      '>indent')\r
-        md.parser.blockprocessors.add('deflist', \r
-                                      DefListProcessor(md.parser),\r
-                                      '>ulist')\r
-\r
-\r
-def makeExtension(configs={}):\r
-    return DefListExtension(configs=configs)\r
-\r
+"""
+Definition List Extension for Python-Markdown
+=============================================
+
+Adds parsing of Definition Lists to Python-Markdown.
+
+See <https://pythonhosted.org/Markdown/extensions/definition_lists.html> 
+for documentation.
+
+Original code Copyright 2008 [Waylan Limberg](http://achinghead.com)
+
+All changes Copyright 2008-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..blockprocessors import BlockProcessor, ListIndentProcessor
+from ..util import etree
+import re
+
+
+class DefListProcessor(BlockProcessor):
+    """ Process Definition Lists. """
+
+    RE = re.compile(r'(^|\n)[ ]{0,3}:[ ]{1,3}(.*?)(\n|$)')
+    NO_INDENT_RE = re.compile(r'^[ ]{0,3}[^ :]')
+
+    def test(self, parent, block):
+        return bool(self.RE.search(block))
+
+    def run(self, parent, blocks):
+
+        raw_block = blocks.pop(0)
+        m = self.RE.search(raw_block)
+        terms = [l.strip() for l in raw_block[:m.start()].split('\n') if l.strip()]
+        block = raw_block[m.end():]
+        no_indent = self.NO_INDENT_RE.match(block)
+        if no_indent:
+            d, theRest = (block, None)
+        else:
+            d, theRest = self.detab(block)
+        if d:
+            d = '%s\n%s' % (m.group(2), d)
+        else:
+            d = m.group(2)
+        sibling = self.lastChild(parent)
+        if not terms and sibling is None:
+            # This is not a definition item. Most likely a paragraph that 
+            # starts with a colon at the begining of a document or list.
+            blocks.insert(0, raw_block)
+            return False
+        if not terms and sibling.tag == 'p':
+            # The previous paragraph contains the terms
+            state = 'looselist'
+            terms = sibling.text.split('\n')
+            parent.remove(sibling)
+            # Aquire new sibling
+            sibling = self.lastChild(parent)
+        else:
+            state = 'list'
+
+        if sibling and sibling.tag == 'dl':
+            # This is another item on an existing list
+            dl = sibling
+            if not terms and len(dl) and dl[-1].tag == 'dd' and len(dl[-1]):
+                state = 'looselist'
+        else:
+            # This is a new list
+            dl = etree.SubElement(parent, 'dl')
+        # Add terms
+        for term in terms:
+            dt = etree.SubElement(dl, 'dt')
+            dt.text = term
+        # Add definition
+        self.parser.state.set(state)
+        dd = etree.SubElement(dl, 'dd')
+        self.parser.parseBlocks(dd, [d])
+        self.parser.state.reset()
+
+        if theRest:
+            blocks.insert(0, theRest)
+
+class DefListIndentProcessor(ListIndentProcessor):
+    """ Process indented children of definition list items. """
+
+    ITEM_TYPES = ['dd']
+    LIST_TYPES = ['dl']
+
+    def create_item(self, parent, block):
+        """ Create a new dd and parse the block with it as the parent. """
+        dd = etree.SubElement(parent, 'dd')
+        self.parser.parseBlocks(dd, [block])
+
+
+class DefListExtension(Extension):
+    """ Add definition lists to Markdown. """
+
+    def extendMarkdown(self, md, md_globals):
+        """ Add an instance of DefListProcessor to BlockParser. """
+        md.parser.blockprocessors.add('defindent',
+                                      DefListIndentProcessor(md.parser),
+                                      '>indent')
+        md.parser.blockprocessors.add('deflist', 
+                                      DefListProcessor(md.parser),
+                                      '>ulist')
+
+
+def makeExtension(*args, **kwargs):
+    return DefListExtension(*args, **kwargs)
+
index 3cfae040e2dbe0b231055d69b924512064ec1461..4044a874e450e4b14d9b9b61bfa8308ac249fc7a 100644 (file)
-"""\r
-Python-Markdown Extra Extension\r
-===============================\r
-\r
-A compilation of various Python-Markdown extensions that imitates\r
-[PHP Markdown Extra](http://michelf.com/projects/php-markdown/extra/).\r
-\r
-Note that each of the individual extensions still need to be available\r
-on your PYTHONPATH. This extension simply wraps them all up as a\r
-convenience so that only one extension needs to be listed when\r
-initiating Markdown. See the documentation for each individual\r
-extension for specifics about that extension.\r
-\r
-In the event that one or more of the supported extensions are not\r
-available for import, Markdown will issue a warning and simply continue\r
-without that extension.\r
-\r
-There may be additional extensions that are distributed with\r
-Python-Markdown that are not included here in Extra. Those extensions\r
-are not part of PHP Markdown Extra, and therefore, not part of\r
-Python-Markdown Extra. If you really would like Extra to include\r
-additional extensions, we suggest creating your own clone of Extra\r
-under a differant name. You could also edit the `extensions` global\r
-variable defined below, but be aware that such changes may be lost\r
-when you upgrade to any future version of Python-Markdown.\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..blockprocessors import BlockProcessor\r
-from .. import util\r
-import re\r
-\r
-extensions = ['smart_strong',\r
-              'fenced_code',\r
-              'footnotes',\r
-              'attr_list',\r
-              'def_list',\r
-              'tables',\r
-              'abbr',\r
-              ]\r
-\r
-\r
-class ExtraExtension(Extension):\r
-    """ Add various extensions to Markdown class."""\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Register extension instances. """\r
-        md.registerExtensions(extensions, self.config)\r
-        if not md.safeMode:\r
-            # Turn on processing of markdown text within raw html\r
-            md.preprocessors['html_block'].markdown_in_raw = True\r
-            md.parser.blockprocessors.add('markdown_block',\r
-                                          MarkdownInHtmlProcessor(md.parser),\r
-                                          '_begin')\r
-            md.parser.blockprocessors.tag_counter = -1\r
-            md.parser.blockprocessors.contain_span_tags = re.compile(\r
-                r'^(p|h[1-6]|li|dd|dt|td|th|legend|address)$', re.IGNORECASE)\r
-\r
-\r
-def makeExtension(configs={}):\r
-    return ExtraExtension(configs=dict(configs))\r
-\r
-\r
-class MarkdownInHtmlProcessor(BlockProcessor):\r
-    """Process Markdown Inside HTML Blocks."""\r
-    def test(self, parent, block):\r
-        return block == util.TAG_PLACEHOLDER % \\r
-            str(self.parser.blockprocessors.tag_counter + 1)\r
-\r
-    def _process_nests(self, element, block):\r
-        """Process the element's child elements in self.run."""\r
-        # Build list of indexes of each nest within the parent element.\r
-        nest_index = []  # a list of tuples: (left index, right index)\r
-        i = self.parser.blockprocessors.tag_counter + 1\r
-        is_nest = self.parser.markdown.htmlStash.tag_data[i]['left_index']\r
-        while len(self.parser.markdown.htmlStash.tag_data) > i and is_nest:\r
-            left_child_index = \\r
-                self.parser.markdown.htmlStash.tag_data[i]['left_index']\r
-            right_child_index = \\r
-                self.parser.markdown.htmlStash.tag_data[i]['right_index']\r
-            nest_index.append((left_child_index - 1, right_child_index))\r
-            i += 1\r
-\r
-        # Create each nest subelement.\r
-        for i, (left_index, right_index) in enumerate(nest_index[:-1]):\r
-            self.run(element, block[left_index:right_index],\r
-                     block[right_index:nest_index[i + 1][0]], True)\r
-        self.run(element, block[nest_index[-1][0]:nest_index[-1][1]],  # last\r
-                 block[nest_index[-1][1]:], True)                      # nest\r
-\r
-    def run(self, parent, blocks, tail=None, nest=False):\r
-        self.parser.blockprocessors.tag_counter += 1\r
-        tag_data = self.parser.markdown.htmlStash.tag_data[\r
-            self.parser.blockprocessors.tag_counter]\r
-\r
-        # Create Element\r
-        markdown_value = tag_data['attrs'].pop('markdown')\r
-        element = util.etree.SubElement(parent, tag_data['tag'],\r
-                                        tag_data['attrs'])\r
-\r
-        # Slice Off Block\r
-        if nest:\r
-            self.parser.parseBlocks(parent, tail)  # Process Tail\r
-            block = blocks[1:]\r
-        else:  # includes nests since a third level of nesting isn't supported\r
-            block = blocks[tag_data['left_index'] + 1:\r
-                           tag_data['right_index']]\r
-            del blocks[:tag_data['right_index']]\r
-\r
-        # Process Text\r
-        if (self.parser.blockprocessors.contain_span_tags.match(  # Span Mode\r
-                tag_data['tag']) and markdown_value != 'block') or \\r
-                markdown_value == 'span':\r
-            element.text = '\n'.join(block)\r
-        else:                                                     # Block Mode\r
-            i = self.parser.blockprocessors.tag_counter + 1\r
-            if len(self.parser.markdown.htmlStash.tag_data) > i and self.\\r
-                    parser.markdown.htmlStash.tag_data[i]['left_index']:\r
-                first_subelement_index = self.parser.markdown.htmlStash.\\r
-                    tag_data[i]['left_index'] - 1\r
-                self.parser.parseBlocks(\r
-                    element, block[:first_subelement_index])\r
-                if not nest:\r
-                    block = self._process_nests(element, block)\r
-            else:\r
-                self.parser.parseBlocks(element, block)\r
+"""
+Python-Markdown Extra Extension
+===============================
+
+A compilation of various Python-Markdown extensions that imitates
+[PHP Markdown Extra](http://michelf.com/projects/php-markdown/extra/).
+
+Note that each of the individual extensions still need to be available
+on your PYTHONPATH. This extension simply wraps them all up as a
+convenience so that only one extension needs to be listed when
+initiating Markdown. See the documentation for each individual
+extension for specifics about that extension.
+
+There may be additional extensions that are distributed with
+Python-Markdown that are not included here in Extra. Those extensions
+are not part of PHP Markdown Extra, and therefore, not part of
+Python-Markdown Extra. If you really would like Extra to include
+additional extensions, we suggest creating your own clone of Extra
+under a differant name. You could also edit the `extensions` global
+variable defined below, but be aware that such changes may be lost
+when you upgrade to any future version of Python-Markdown.
+
+See <https://pythonhosted.org/Markdown/extensions/extra.html> 
+for documentation.
+
+Copyright The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..blockprocessors import BlockProcessor
+from .. import util
+import re
+
+extensions = [
+    'markdown.extensions.smart_strong',
+    'markdown.extensions.fenced_code',
+    'markdown.extensions.footnotes',
+    'markdown.extensions.attr_list',
+    'markdown.extensions.def_list',
+    'markdown.extensions.tables',
+    'markdown.extensions.abbr'
+]
+
+
+class ExtraExtension(Extension):
+    """ Add various extensions to Markdown class."""
+
+    def __init__(self, *args, **kwargs):
+        """ config is just a dumb holder which gets passed to actual ext later. """
+        self.config = kwargs.pop('configs', {})
+        self.config.update(kwargs)
+
+    def extendMarkdown(self, md, md_globals):
+        """ Register extension instances. """
+        md.registerExtensions(extensions, self.config)
+        if not md.safeMode:
+            # Turn on processing of markdown text within raw html
+            md.preprocessors['html_block'].markdown_in_raw = True
+            md.parser.blockprocessors.add('markdown_block',
+                                          MarkdownInHtmlProcessor(md.parser),
+                                          '_begin')
+            md.parser.blockprocessors.tag_counter = -1
+            md.parser.blockprocessors.contain_span_tags = re.compile(
+                r'^(p|h[1-6]|li|dd|dt|td|th|legend|address)$', re.IGNORECASE)
+
+
+def makeExtension(*args, **kwargs):
+    return ExtraExtension(*args, **kwargs)
+
+
+class MarkdownInHtmlProcessor(BlockProcessor):
+    """Process Markdown Inside HTML Blocks."""
+    def test(self, parent, block):
+        return block == util.TAG_PLACEHOLDER % \
+            str(self.parser.blockprocessors.tag_counter + 1)
+
+    def _process_nests(self, element, block):
+        """Process the element's child elements in self.run."""
+        # Build list of indexes of each nest within the parent element.
+        nest_index = []  # a list of tuples: (left index, right index)
+        i = self.parser.blockprocessors.tag_counter + 1
+        while len(self._tag_data) > i and self._tag_data[i]['left_index']:
+            left_child_index = self._tag_data[i]['left_index']
+            right_child_index = self._tag_data[i]['right_index']
+            nest_index.append((left_child_index - 1, right_child_index))
+            i += 1
+
+        # Create each nest subelement.
+        for i, (left_index, right_index) in enumerate(nest_index[:-1]):
+            self.run(element, block[left_index:right_index],
+                     block[right_index:nest_index[i + 1][0]], True)
+        self.run(element, block[nest_index[-1][0]:nest_index[-1][1]],  # last
+                 block[nest_index[-1][1]:], True)                      # nest
+
+    def run(self, parent, blocks, tail=None, nest=False):
+        self._tag_data = self.parser.markdown.htmlStash.tag_data
+
+        self.parser.blockprocessors.tag_counter += 1
+        tag = self._tag_data[self.parser.blockprocessors.tag_counter]
+
+        # Create Element
+        markdown_value = tag['attrs'].pop('markdown')
+        element = util.etree.SubElement(parent, tag['tag'], tag['attrs'])
+
+        # Slice Off Block
+        if nest:
+            self.parser.parseBlocks(parent, tail)  # Process Tail
+            block = blocks[1:]
+        else:  # includes nests since a third level of nesting isn't supported
+            block = blocks[tag['left_index'] + 1: tag['right_index']]
+            del blocks[:tag['right_index']]
+
+        # Process Text
+        if (self.parser.blockprocessors.contain_span_tags.match(  # Span Mode
+                tag['tag']) and markdown_value != 'block') or \
+                markdown_value == 'span':
+            element.text = '\n'.join(block)
+        else:                                                     # Block Mode
+            i = self.parser.blockprocessors.tag_counter + 1
+            if len(self._tag_data) > i and self._tag_data[i]['left_index']:
+                first_subelement_index = self._tag_data[i]['left_index'] - 1
+                self.parser.parseBlocks(
+                    element, block[:first_subelement_index])
+                if not nest:
+                    block = self._process_nests(element, block)
+            else:
+                self.parser.parseBlocks(element, block)
index a8932944c250730422db64c68b9e28589b5dac05..2aacca639b85ca801a3c100352e64c1e6bc8e7f0 100644 (file)
-"""\r
-Fenced Code Extension for Python Markdown\r
-=========================================\r
-\r
-This extension adds Fenced Code Blocks to Python-Markdown.\r
-\r
-    >>> import markdown\r
-    >>> text = '''\r
-    ... A paragraph before a fenced code block:\r
-    ...\r
-    ... ~~~\r
-    ... Fenced code block\r
-    ... ~~~\r
-    ... '''\r
-    >>> html = markdown.markdown(text, extensions=['fenced_code'])\r
-    >>> print html\r
-    <p>A paragraph before a fenced code block:</p>\r
-    <pre><code>Fenced code block\r
-    </code></pre>\r
-\r
-Works with safe_mode also (we check this because we are using the HtmlStash):\r
-\r
-    >>> print markdown.markdown(text, extensions=['fenced_code'], safe_mode='replace')\r
-    <p>A paragraph before a fenced code block:</p>\r
-    <pre><code>Fenced code block\r
-    </code></pre>\r
-\r
-Include tilde's in a code block and wrap with blank lines:\r
-\r
-    >>> text = '''\r
-    ... ~~~~~~~~\r
-    ...\r
-    ... ~~~~\r
-    ... ~~~~~~~~'''\r
-    >>> print markdown.markdown(text, extensions=['fenced_code'])\r
-    <pre><code>\r
-    ~~~~\r
-    </code></pre>\r
-\r
-Language tags:\r
-\r
-    >>> text = '''\r
-    ... ~~~~{.python}\r
-    ... # Some python code\r
-    ... ~~~~'''\r
-    >>> print markdown.markdown(text, extensions=['fenced_code'])\r
-    <pre><code class="python"># Some python code\r
-    </code></pre>\r
-\r
-Optionally backticks instead of tildes as per how github's code block markdown is identified:\r
-\r
-    >>> text = '''\r
-    ... `````\r
-    ... # Arbitrary code\r
-    ... ~~~~~ # these tildes will not close the block\r
-    ... `````'''\r
-    >>> print markdown.markdown(text, extensions=['fenced_code'])\r
-    <pre><code># Arbitrary code\r
-    ~~~~~ # these tildes will not close the block\r
-    </code></pre>\r
-\r
-If the codehighlite extension and Pygments are installed, lines can be highlighted:\r
-\r
-    >>> text = '''\r
-    ... ```hl_lines="1 3"\r
-    ... line 1\r
-    ... line 2\r
-    ... line 3\r
-    ... ```'''\r
-    >>> print markdown.markdown(text, extensions=['codehilite', 'fenced_code'])\r
-    <pre><code><span class="hilight">line 1</span>\r
-    line 2\r
-    <span class="hilight">line 3</span>\r
-    </code></pre>\r
-\r
-Copyright 2007-2008 [Waylan Limberg](http://achinghead.com/).\r
-\r
-Project website: <http://packages.python.org/Markdown/extensions/fenced_code_blocks.html>\r
-Contact: markdown@freewisdom.org\r
-\r
-License: BSD (see ../docs/LICENSE for details)\r
-\r
-Dependencies:\r
-* [Python 2.4+](http://python.org)\r
-* [Markdown 2.0+](http://packages.python.org/Markdown/)\r
-* [Pygments (optional)](http://pygments.org)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..preprocessors import Preprocessor\r
-from .codehilite import CodeHilite, CodeHiliteExtension, parse_hl_lines\r
-import re\r
-\r
-\r
-class FencedCodeExtension(Extension):\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Add FencedBlockPreprocessor to the Markdown instance. """\r
-        md.registerExtension(self)\r
-\r
-        md.preprocessors.add('fenced_code_block',\r
-                                 FencedBlockPreprocessor(md),\r
-                                 ">normalize_whitespace")\r
-\r
-\r
-class FencedBlockPreprocessor(Preprocessor):\r
-    FENCED_BLOCK_RE = re.compile(r'''\r
-(?P<fence>^(?:~{3,}|`{3,}))[ ]*         # Opening ``` or ~~~\r
-(\{?\.?(?P<lang>[a-zA-Z0-9_+-]*))?[ ]*  # Optional {, and lang\r
-# Optional highlight lines, single- or double-quote-delimited\r
-(hl_lines=(?P<quot>"|')(?P<hl_lines>.*?)(?P=quot))?[ ]*\r
-}?[ ]*\n                                # Optional closing }\r
-(?P<code>.*?)(?<=\n)\r
-(?P=fence)[ ]*$''', re.MULTILINE | re.DOTALL | re.VERBOSE)\r
-    CODE_WRAP = '<pre><code%s>%s</code></pre>'\r
-    LANG_TAG = ' class="%s"'\r
-\r
-    def __init__(self, md):\r
-        super(FencedBlockPreprocessor, self).__init__(md)\r
-\r
-        self.checked_for_codehilite = False\r
-        self.codehilite_conf = {}\r
-\r
-    def run(self, lines):\r
-        """ Match and store Fenced Code Blocks in the HtmlStash. """\r
-\r
-        # Check for code hilite extension\r
-        if not self.checked_for_codehilite:\r
-            for ext in self.markdown.registeredExtensions:\r
-                if isinstance(ext, CodeHiliteExtension):\r
-                    self.codehilite_conf = ext.config\r
-                    break\r
-\r
-            self.checked_for_codehilite = True\r
-\r
-        text = "\n".join(lines)\r
-        while 1:\r
-            m = self.FENCED_BLOCK_RE.search(text)\r
-            if m:\r
-                lang = ''\r
-                if m.group('lang'):\r
-                    lang = self.LANG_TAG % m.group('lang')\r
-\r
-                # If config is not empty, then the codehighlite extension\r
-                # is enabled, so we call it to highlight the code\r
-                if self.codehilite_conf:\r
-                    highliter = CodeHilite(m.group('code'),\r
-                            linenums=self.codehilite_conf['linenums'][0],\r
-                            guess_lang=self.codehilite_conf['guess_lang'][0],\r
-                            css_class=self.codehilite_conf['css_class'][0],\r
-                            style=self.codehilite_conf['pygments_style'][0],\r
-                            lang=(m.group('lang') or None),\r
-                            noclasses=self.codehilite_conf['noclasses'][0],\r
-                            hl_lines=parse_hl_lines(m.group('hl_lines')))\r
-\r
-                    code = highliter.hilite()\r
-                else:\r
-                    code = self.CODE_WRAP % (lang, self._escape(m.group('code')))\r
-\r
-                placeholder = self.markdown.htmlStash.store(code, safe=True)\r
-                text = '%s\n%s\n%s'% (text[:m.start()], placeholder, text[m.end():])\r
-            else:\r
-                break\r
-        return text.split("\n")\r
-\r
-    def _escape(self, txt):\r
-        """ basic html escaping """\r
-        txt = txt.replace('&', '&amp;')\r
-        txt = txt.replace('<', '&lt;')\r
-        txt = txt.replace('>', '&gt;')\r
-        txt = txt.replace('"', '&quot;')\r
-        return txt\r
-\r
-\r
-def makeExtension(configs=None):\r
-    return FencedCodeExtension(configs=configs)\r
+"""
+Fenced Code Extension for Python Markdown
+=========================================
+
+This extension adds Fenced Code Blocks to Python-Markdown.
+
+See <https://pythonhosted.org/Markdown/extensions/fenced_code_blocks.html> 
+for documentation.
+
+Original code Copyright 2007-2008 [Waylan Limberg](http://achinghead.com/).
+
+
+All changes Copyright 2008-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..preprocessors import Preprocessor
+from .codehilite import CodeHilite, CodeHiliteExtension, parse_hl_lines
+import re
+
+
+class FencedCodeExtension(Extension):
+
+    def extendMarkdown(self, md, md_globals):
+        """ Add FencedBlockPreprocessor to the Markdown instance. """
+        md.registerExtension(self)
+
+        md.preprocessors.add('fenced_code_block',
+                                 FencedBlockPreprocessor(md),
+                                 ">normalize_whitespace")
+
+
+class FencedBlockPreprocessor(Preprocessor):
+    FENCED_BLOCK_RE = re.compile(r'''
+(?P<fence>^(?:~{3,}|`{3,}))[ ]*         # Opening ``` or ~~~
+(\{?\.?(?P<lang>[a-zA-Z0-9_+-]*))?[ ]*  # Optional {, and lang
+# Optional highlight lines, single- or double-quote-delimited
+(hl_lines=(?P<quot>"|')(?P<hl_lines>.*?)(?P=quot))?[ ]*
+}?[ ]*\n                                # Optional closing }
+(?P<code>.*?)(?<=\n)
+(?P=fence)[ ]*$''', re.MULTILINE | re.DOTALL | re.VERBOSE)
+    CODE_WRAP = '<pre><code%s>%s</code></pre>'
+    LANG_TAG = ' class="%s"'
+
+    def __init__(self, md):
+        super(FencedBlockPreprocessor, self).__init__(md)
+
+        self.checked_for_codehilite = False
+        self.codehilite_conf = {}
+
+    def run(self, lines):
+        """ Match and store Fenced Code Blocks in the HtmlStash. """
+
+        # Check for code hilite extension
+        if not self.checked_for_codehilite:
+            for ext in self.markdown.registeredExtensions:
+                if isinstance(ext, CodeHiliteExtension):
+                    self.codehilite_conf = ext.config
+                    break
+
+            self.checked_for_codehilite = True
+
+        text = "\n".join(lines)
+        while 1:
+            m = self.FENCED_BLOCK_RE.search(text)
+            if m:
+                lang = ''
+                if m.group('lang'):
+                    lang = self.LANG_TAG % m.group('lang')
+
+                # If config is not empty, then the codehighlite extension
+                # is enabled, so we call it to highlight the code
+                if self.codehilite_conf:
+                    highliter = CodeHilite(m.group('code'),
+                            linenums=self.codehilite_conf['linenums'][0],
+                            guess_lang=self.codehilite_conf['guess_lang'][0],
+                            css_class=self.codehilite_conf['css_class'][0],
+                            style=self.codehilite_conf['pygments_style'][0],
+                            lang=(m.group('lang') or None),
+                            noclasses=self.codehilite_conf['noclasses'][0],
+                            hl_lines=parse_hl_lines(m.group('hl_lines')))
+
+                    code = highliter.hilite()
+                else:
+                    code = self.CODE_WRAP % (lang, self._escape(m.group('code')))
+
+                placeholder = self.markdown.htmlStash.store(code, safe=True)
+                text = '%s\n%s\n%s'% (text[:m.start()], placeholder, text[m.end():])
+            else:
+                break
+        return text.split("\n")
+
+    def _escape(self, txt):
+        """ basic html escaping """
+        txt = txt.replace('&', '&amp;')
+        txt = txt.replace('<', '&lt;')
+        txt = txt.replace('>', '&gt;')
+        txt = txt.replace('"', '&quot;')
+        return txt
+
+
+def makeExtension(*args, **kwargs):
+    return FencedCodeExtension(*args, **kwargs)
+
index 6d1b412a87d91de8af2e8dcbc2404ad4b486e24a..a59de970b41b2256bf40df4c1a52cde4a449ea1e 100644 (file)
-"""\r
-========================= FOOTNOTES =================================\r
-\r
-This section adds footnote handling to markdown.  It can be used as\r
-an example for extending python-markdown with relatively complex\r
-functionality.  While in this case the extension is included inside\r
-the module itself, it could just as easily be added from outside the\r
-module.  Not that all markdown classes above are ignorant about\r
-footnotes.  All footnote functionality is provided separately and\r
-then added to the markdown instance at the run time.\r
-\r
-Footnote functionality is attached by calling extendMarkdown()\r
-method of FootnoteExtension.  The method also registers the\r
-extension to allow it's state to be reset by a call to reset()\r
-method.\r
-\r
-Example:\r
-    Footnotes[^1] have a label[^label] and a definition[^!DEF].\r
-\r
-    [^1]: This is a footnote\r
-    [^label]: A footnote on "label"\r
-    [^!DEF]: The footnote for definition\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..preprocessors import Preprocessor\r
-from ..inlinepatterns import Pattern\r
-from ..treeprocessors import Treeprocessor\r
-from ..postprocessors import Postprocessor\r
-from ..util import etree, text_type\r
-from ..odict import OrderedDict\r
-import re\r
-\r
-FN_BACKLINK_TEXT = "zz1337820767766393qq"\r
-NBSP_PLACEHOLDER =  "qq3936677670287331zz"\r
-DEF_RE = re.compile(r'[ ]{0,3}\[\^([^\]]*)\]:\s*(.*)')\r
-TABBED_RE = re.compile(r'((\t)|(    ))(.*)')\r
-\r
-class FootnoteExtension(Extension):\r
-    """ Footnote Extension. """\r
-\r
-    def __init__ (self, configs):\r
-        """ Setup configs. """\r
-        self.config = {'PLACE_MARKER':\r
-                       ["///Footnotes Go Here///",\r
-                        "The text string that marks where the footnotes go"],\r
-                       'UNIQUE_IDS':\r
-                       [False,\r
-                        "Avoid name collisions across "\r
-                        "multiple calls to reset()."],\r
-                       "BACKLINK_TEXT":\r
-                       ["&#8617;",\r
-                        "The text string that links from the footnote to the reader's place."]\r
-                       }\r
-\r
-        for key, value in configs:\r
-            self.config[key][0] = value\r
-\r
-        # In multiple invocations, emit links that don't get tangled.\r
-        self.unique_prefix = 0\r
-\r
-        self.reset()\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Add pieces to Markdown. """\r
-        md.registerExtension(self)\r
-        self.parser = md.parser\r
-        self.md = md\r
-        # Insert a preprocessor before ReferencePreprocessor\r
-        md.preprocessors.add("footnote", FootnotePreprocessor(self),\r
-                             "<reference")\r
-        # Insert an inline pattern before ImageReferencePattern\r
-        FOOTNOTE_RE = r'\[\^([^\]]*)\]' # blah blah [^1] blah\r
-        md.inlinePatterns.add("footnote", FootnotePattern(FOOTNOTE_RE, self),\r
-                              "<reference")\r
-        # Insert a tree-processor that would actually add the footnote div\r
-        # This must be before all other treeprocessors (i.e., inline and \r
-        # codehilite) so they can run on the the contents of the div.\r
-        md.treeprocessors.add("footnote", FootnoteTreeprocessor(self),\r
-                                 "_begin")\r
-        # Insert a postprocessor after amp_substitute oricessor\r
-        md.postprocessors.add("footnote", FootnotePostprocessor(self),\r
-                                  ">amp_substitute")\r
-\r
-    def reset(self):\r
-        """ Clear the footnotes on reset, and prepare for a distinct document. """\r
-        self.footnotes = OrderedDict()\r
-        self.unique_prefix += 1\r
-\r
-    def findFootnotesPlaceholder(self, root):\r
-        """ Return ElementTree Element that contains Footnote placeholder. """\r
-        def finder(element):\r
-            for child in element:\r
-                if child.text:\r
-                    if child.text.find(self.getConfig("PLACE_MARKER")) > -1:\r
-                        return child, element, True\r
-                if child.tail:\r
-                    if child.tail.find(self.getConfig("PLACE_MARKER")) > -1:\r
-                        return child, element, False\r
-                finder(child)\r
-            return None\r
-                \r
-        res = finder(root)\r
-        return res\r
-\r
-    def setFootnote(self, id, text):\r
-        """ Store a footnote for later retrieval. """\r
-        self.footnotes[id] = text\r
-\r
-    def get_separator(self):\r
-        if self.md.output_format in ['html5', 'xhtml5']:\r
-            return '-'\r
-        return ':'\r
-\r
-    def makeFootnoteId(self, id):\r
-        """ Return footnote link id. """\r
-        if self.getConfig("UNIQUE_IDS"):\r
-            return 'fn%s%d-%s' % (self.get_separator(), self.unique_prefix, id)\r
-        else:\r
-            return 'fn%s%s' % (self.get_separator(), id)\r
-\r
-    def makeFootnoteRefId(self, id):\r
-        """ Return footnote back-link id. """\r
-        if self.getConfig("UNIQUE_IDS"):\r
-            return 'fnref%s%d-%s' % (self.get_separator(), self.unique_prefix, id)\r
-        else:\r
-            return 'fnref%s%s' % (self.get_separator(), id)\r
-\r
-    def makeFootnotesDiv(self, root):\r
-        """ Return div of footnotes as et Element. """\r
-\r
-        if not list(self.footnotes.keys()):\r
-            return None\r
-\r
-        div = etree.Element("div")\r
-        div.set('class', 'footnote')\r
-        etree.SubElement(div, "hr")\r
-        ol = etree.SubElement(div, "ol")\r
-\r
-        for id in self.footnotes.keys():\r
-            li = etree.SubElement(ol, "li")\r
-            li.set("id", self.makeFootnoteId(id))\r
-            self.parser.parseChunk(li, self.footnotes[id])\r
-            backlink = etree.Element("a")\r
-            backlink.set("href", "#" + self.makeFootnoteRefId(id))\r
-            if self.md.output_format not in ['html5', 'xhtml5']:\r
-                backlink.set("rev", "footnote") # Invalid in HTML5\r
-            backlink.set("class", "footnote-backref")\r
-            backlink.set("title", "Jump back to footnote %d in the text" % \\r
-                            (self.footnotes.index(id)+1))\r
-            backlink.text = FN_BACKLINK_TEXT\r
-\r
-            if li.getchildren():\r
-                node = li[-1]\r
-                if node.tag == "p":\r
-                    node.text = node.text + NBSP_PLACEHOLDER\r
-                    node.append(backlink)\r
-                else:\r
-                    p = etree.SubElement(li, "p")\r
-                    p.append(backlink)\r
-        return div\r
-\r
-\r
-class FootnotePreprocessor(Preprocessor):\r
-    """ Find all footnote references and store for later use. """\r
-\r
-    def __init__ (self, footnotes):\r
-        self.footnotes = footnotes\r
-\r
-    def run(self, lines):\r
-        """\r
-        Loop through lines and find, set, and remove footnote definitions.\r
-\r
-        Keywords:\r
-\r
-        * lines: A list of lines of text\r
-\r
-        Return: A list of lines of text with footnote definitions removed.\r
-\r
-        """\r
-        newlines = []\r
-        i = 0\r
-        while True:\r
-            m = DEF_RE.match(lines[i])\r
-            if m:\r
-                fn, _i = self.detectTabbed(lines[i+1:])\r
-                fn.insert(0, m.group(2))\r
-                i += _i-1 # skip past footnote\r
-                self.footnotes.setFootnote(m.group(1), "\n".join(fn))\r
-            else:\r
-                newlines.append(lines[i])\r
-            if len(lines) > i+1:\r
-                i += 1\r
-            else:\r
-                break\r
-        return newlines\r
-\r
-    def detectTabbed(self, lines):\r
-        """ Find indented text and remove indent before further proccesing.\r
-\r
-        Keyword arguments:\r
-\r
-        * lines: an array of strings\r
-\r
-        Returns: a list of post processed items and the index of last line.\r
-\r
-        """\r
-        items = []\r
-        blank_line = False # have we encountered a blank line yet?\r
-        i = 0 # to keep track of where we are\r
-\r
-        def detab(line):\r
-            match = TABBED_RE.match(line)\r
-            if match:\r
-               return match.group(4)\r
-\r
-        for line in lines:\r
-            if line.strip(): # Non-blank line\r
-                detabbed_line = detab(line)\r
-                if detabbed_line:\r
-                    items.append(detabbed_line)\r
-                    i += 1\r
-                    continue\r
-                elif not blank_line and not DEF_RE.match(line):\r
-                    # not tabbed but still part of first par.\r
-                    items.append(line)\r
-                    i += 1\r
-                    continue\r
-                else:\r
-                    return items, i+1\r
-\r
-            else: # Blank line: _maybe_ we are done.\r
-                blank_line = True\r
-                i += 1 # advance\r
-\r
-                # Find the next non-blank line\r
-                for j in range(i, len(lines)):\r
-                    if lines[j].strip():\r
-                        next_line = lines[j]; break\r
-                else:\r
-                    break # There is no more text; we are done.\r
-\r
-                # Check if the next non-blank line is tabbed\r
-                if detab(next_line): # Yes, more work to do.\r
-                    items.append("")\r
-                    continue\r
-                else:\r
-                    break # No, we are done.\r
-        else:\r
-            i += 1\r
-\r
-        return items, i\r
-\r
-\r
-class FootnotePattern(Pattern):\r
-    """ InlinePattern for footnote markers in a document's body text. """\r
-\r
-    def __init__(self, pattern, footnotes):\r
-        super(FootnotePattern, self).__init__(pattern)\r
-        self.footnotes = footnotes\r
-\r
-    def handleMatch(self, m):\r
-        id = m.group(2)\r
-        if id in self.footnotes.footnotes.keys():\r
-            sup = etree.Element("sup")\r
-            a = etree.SubElement(sup, "a")\r
-            sup.set('id', self.footnotes.makeFootnoteRefId(id))\r
-            a.set('href', '#' + self.footnotes.makeFootnoteId(id))\r
-            if self.footnotes.md.output_format not in ['html5', 'xhtml5']:\r
-                a.set('rel', 'footnote') # invalid in HTML5\r
-            a.set('class', 'footnote-ref')\r
-            a.text = text_type(self.footnotes.footnotes.index(id) + 1)\r
-            return sup\r
-        else:\r
-            return None\r
-\r
-\r
-class FootnoteTreeprocessor(Treeprocessor):\r
-    """ Build and append footnote div to end of document. """\r
-\r
-    def __init__ (self, footnotes):\r
-        self.footnotes = footnotes\r
-\r
-    def run(self, root):\r
-        footnotesDiv = self.footnotes.makeFootnotesDiv(root)\r
-        if footnotesDiv:\r
-            result = self.footnotes.findFootnotesPlaceholder(root)\r
-            if result:\r
-                child, parent, isText = result\r
-                ind = parent.getchildren().index(child)\r
-                if isText:\r
-                    parent.remove(child)\r
-                    parent.insert(ind, footnotesDiv)\r
-                else:\r
-                    parent.insert(ind + 1, footnotesDiv)\r
-                    child.tail = None\r
-            else:\r
-                root.append(footnotesDiv)\r
-\r
-class FootnotePostprocessor(Postprocessor):\r
-    """ Replace placeholders with html entities. """\r
-    def __init__(self, footnotes):\r
-        self.footnotes = footnotes\r
-\r
-    def run(self, text):\r
-        text = text.replace(FN_BACKLINK_TEXT, self.footnotes.getConfig("BACKLINK_TEXT"))\r
-        return text.replace(NBSP_PLACEHOLDER, "&#160;")\r
-\r
-def makeExtension(configs=[]):\r
-    """ Return an instance of the FootnoteExtension """\r
-    return FootnoteExtension(configs=configs)\r
-\r
+"""
+Footnotes Extension for Python-Markdown
+=======================================
+
+Adds footnote handling to Python-Markdown.
+
+See <https://pythonhosted.org/Markdown/extensions/footnotes.html> 
+for documentation.
+
+Copyright The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..preprocessors import Preprocessor
+from ..inlinepatterns import Pattern
+from ..treeprocessors import Treeprocessor
+from ..postprocessors import Postprocessor
+from ..util import etree, text_type
+from ..odict import OrderedDict
+import re
+
+FN_BACKLINK_TEXT = "zz1337820767766393qq"
+NBSP_PLACEHOLDER =  "qq3936677670287331zz"
+DEF_RE = re.compile(r'[ ]{0,3}\[\^([^\]]*)\]:\s*(.*)')
+TABBED_RE = re.compile(r'((\t)|(    ))(.*)')
+
+class FootnoteExtension(Extension):
+    """ Footnote Extension. """
+
+    def __init__ (self, *args, **kwargs):
+        """ Setup configs. """
+
+        self.config = {
+            'PLACE_MARKER':
+                 ["///Footnotes Go Here///",
+                  "The text string that marks where the footnotes go"],
+            'UNIQUE_IDS':
+                 [False,
+                  "Avoid name collisions across "
+                  "multiple calls to reset()."],
+            "BACKLINK_TEXT":
+                 ["&#8617;",
+                  "The text string that links from the footnote to the reader's place."]
+        }
+        super(FootnoteExtension, self).__init__(*args, **kwargs)
+        
+        # In multiple invocations, emit links that don't get tangled.
+        self.unique_prefix = 0
+
+        self.reset()
+
+    def extendMarkdown(self, md, md_globals):
+        """ Add pieces to Markdown. """
+        md.registerExtension(self)
+        self.parser = md.parser
+        self.md = md
+        # Insert a preprocessor before ReferencePreprocessor
+        md.preprocessors.add("footnote", FootnotePreprocessor(self),
+                             "<reference")
+        # Insert an inline pattern before ImageReferencePattern
+        FOOTNOTE_RE = r'\[\^([^\]]*)\]' # blah blah [^1] blah
+        md.inlinePatterns.add("footnote", FootnotePattern(FOOTNOTE_RE, self),
+                              "<reference")
+        # Insert a tree-processor that would actually add the footnote div
+        # This must be before all other treeprocessors (i.e., inline and 
+        # codehilite) so they can run on the the contents of the div.
+        md.treeprocessors.add("footnote", FootnoteTreeprocessor(self),
+                                 "_begin")
+        # Insert a postprocessor after amp_substitute oricessor
+        md.postprocessors.add("footnote", FootnotePostprocessor(self),
+                                  ">amp_substitute")
+
+    def reset(self):
+        """ Clear the footnotes on reset, and prepare for a distinct document. """
+        self.footnotes = OrderedDict()
+        self.unique_prefix += 1
+
+    def findFootnotesPlaceholder(self, root):
+        """ Return ElementTree Element that contains Footnote placeholder. """
+        def finder(element):
+            for child in element:
+                if child.text:
+                    if child.text.find(self.getConfig("PLACE_MARKER")) > -1:
+                        return child, element, True
+                if child.tail:
+                    if child.tail.find(self.getConfig("PLACE_MARKER")) > -1:
+                        return child, element, False
+                finder(child)
+            return None
+                
+        res = finder(root)
+        return res
+
+    def setFootnote(self, id, text):
+        """ Store a footnote for later retrieval. """
+        self.footnotes[id] = text
+
+    def get_separator(self):
+        if self.md.output_format in ['html5', 'xhtml5']:
+            return '-'
+        return ':'
+
+    def makeFootnoteId(self, id):
+        """ Return footnote link id. """
+        if self.getConfig("UNIQUE_IDS"):
+            return 'fn%s%d-%s' % (self.get_separator(), self.unique_prefix, id)
+        else:
+            return 'fn%s%s' % (self.get_separator(), id)
+
+    def makeFootnoteRefId(self, id):
+        """ Return footnote back-link id. """
+        if self.getConfig("UNIQUE_IDS"):
+            return 'fnref%s%d-%s' % (self.get_separator(), self.unique_prefix, id)
+        else:
+            return 'fnref%s%s' % (self.get_separator(), id)
+
+    def makeFootnotesDiv(self, root):
+        """ Return div of footnotes as et Element. """
+
+        if not list(self.footnotes.keys()):
+            return None
+
+        div = etree.Element("div")
+        div.set('class', 'footnote')
+        etree.SubElement(div, "hr")
+        ol = etree.SubElement(div, "ol")
+
+        for id in self.footnotes.keys():
+            li = etree.SubElement(ol, "li")
+            li.set("id", self.makeFootnoteId(id))
+            self.parser.parseChunk(li, self.footnotes[id])
+            backlink = etree.Element("a")
+            backlink.set("href", "#" + self.makeFootnoteRefId(id))
+            if self.md.output_format not in ['html5', 'xhtml5']:
+                backlink.set("rev", "footnote") # Invalid in HTML5
+            backlink.set("class", "footnote-backref")
+            backlink.set("title", "Jump back to footnote %d in the text" % \
+                            (self.footnotes.index(id)+1))
+            backlink.text = FN_BACKLINK_TEXT
+
+            if li.getchildren():
+                node = li[-1]
+                if node.tag == "p":
+                    node.text = node.text + NBSP_PLACEHOLDER
+                    node.append(backlink)
+                else:
+                    p = etree.SubElement(li, "p")
+                    p.append(backlink)
+        return div
+
+
+class FootnotePreprocessor(Preprocessor):
+    """ Find all footnote references and store for later use. """
+
+    def __init__ (self, footnotes):
+        self.footnotes = footnotes
+
+    def run(self, lines):
+        """
+        Loop through lines and find, set, and remove footnote definitions.
+
+        Keywords:
+
+        * lines: A list of lines of text
+
+        Return: A list of lines of text with footnote definitions removed.
+
+        """
+        newlines = []
+        i = 0
+        while True:
+            m = DEF_RE.match(lines[i])
+            if m:
+                fn, _i = self.detectTabbed(lines[i+1:])
+                fn.insert(0, m.group(2))
+                i += _i-1 # skip past footnote
+                self.footnotes.setFootnote(m.group(1), "\n".join(fn))
+            else:
+                newlines.append(lines[i])
+            if len(lines) > i+1:
+                i += 1
+            else:
+                break
+        return newlines
+
+    def detectTabbed(self, lines):
+        """ Find indented text and remove indent before further proccesing.
+
+        Keyword arguments:
+
+        * lines: an array of strings
+
+        Returns: a list of post processed items and the index of last line.
+
+        """
+        items = []
+        blank_line = False # have we encountered a blank line yet?
+        i = 0 # to keep track of where we are
+
+        def detab(line):
+            match = TABBED_RE.match(line)
+            if match:
+               return match.group(4)
+
+        for line in lines:
+            if line.strip(): # Non-blank line
+                detabbed_line = detab(line)
+                if detabbed_line:
+                    items.append(detabbed_line)
+                    i += 1
+                    continue
+                elif not blank_line and not DEF_RE.match(line):
+                    # not tabbed but still part of first par.
+                    items.append(line)
+                    i += 1
+                    continue
+                else:
+                    return items, i+1
+
+            else: # Blank line: _maybe_ we are done.
+                blank_line = True
+                i += 1 # advance
+
+                # Find the next non-blank line
+                for j in range(i, len(lines)):
+                    if lines[j].strip():
+                        next_line = lines[j]; break
+                else:
+                    break # There is no more text; we are done.
+
+                # Check if the next non-blank line is tabbed
+                if detab(next_line): # Yes, more work to do.
+                    items.append("")
+                    continue
+                else:
+                    break # No, we are done.
+        else:
+            i += 1
+
+        return items, i
+
+
+class FootnotePattern(Pattern):
+    """ InlinePattern for footnote markers in a document's body text. """
+
+    def __init__(self, pattern, footnotes):
+        super(FootnotePattern, self).__init__(pattern)
+        self.footnotes = footnotes
+
+    def handleMatch(self, m):
+        id = m.group(2)
+        if id in self.footnotes.footnotes.keys():
+            sup = etree.Element("sup")
+            a = etree.SubElement(sup, "a")
+            sup.set('id', self.footnotes.makeFootnoteRefId(id))
+            a.set('href', '#' + self.footnotes.makeFootnoteId(id))
+            if self.footnotes.md.output_format not in ['html5', 'xhtml5']:
+                a.set('rel', 'footnote') # invalid in HTML5
+            a.set('class', 'footnote-ref')
+            a.text = text_type(self.footnotes.footnotes.index(id) + 1)
+            return sup
+        else:
+            return None
+
+
+class FootnoteTreeprocessor(Treeprocessor):
+    """ Build and append footnote div to end of document. """
+
+    def __init__ (self, footnotes):
+        self.footnotes = footnotes
+
+    def run(self, root):
+        footnotesDiv = self.footnotes.makeFootnotesDiv(root)
+        if footnotesDiv:
+            result = self.footnotes.findFootnotesPlaceholder(root)
+            if result:
+                child, parent, isText = result
+                ind = parent.getchildren().index(child)
+                if isText:
+                    parent.remove(child)
+                    parent.insert(ind, footnotesDiv)
+                else:
+                    parent.insert(ind + 1, footnotesDiv)
+                    child.tail = None
+            else:
+                root.append(footnotesDiv)
+
+class FootnotePostprocessor(Postprocessor):
+    """ Replace placeholders with html entities. """
+    def __init__(self, footnotes):
+        self.footnotes = footnotes
+
+    def run(self, text):
+        text = text.replace(FN_BACKLINK_TEXT, self.footnotes.getConfig("BACKLINK_TEXT"))
+        return text.replace(NBSP_PLACEHOLDER, "&#160;")
+
+def makeExtension(*args, **kwargs):
+    """ Return an instance of the FootnoteExtension """
+    return FootnoteExtension(*args, **kwargs)
+
index ac55bc64269fa770a58f27d2edc8cae0205f5dac..f7b7805bf8ccc18ff628c3a1453fcb36788e73e2 100644 (file)
-"""\r
-HeaderID Extension for Python-Markdown\r
-======================================\r
-\r
-Auto-generate id attributes for HTML headers.\r
-\r
-Basic usage:\r
-\r
-    >>> import markdown\r
-    >>> text = "# Some Header #"\r
-    >>> md = markdown.markdown(text, ['headerid'])\r
-    >>> print md\r
-    <h1 id="some-header">Some Header</h1>\r
-\r
-All header IDs are unique:\r
-\r
-    >>> text = '''\r
-    ... #Header\r
-    ... #Header\r
-    ... #Header'''\r
-    >>> md = markdown.markdown(text, ['headerid'])\r
-    >>> print md\r
-    <h1 id="header">Header</h1>\r
-    <h1 id="header_1">Header</h1>\r
-    <h1 id="header_2">Header</h1>\r
-\r
-To fit within a html template's hierarchy, set the header base level:\r
-\r
-    >>> text = '''\r
-    ... #Some Header\r
-    ... ## Next Level'''\r
-    >>> md = markdown.markdown(text, ['headerid(level=3)'])\r
-    >>> print md\r
-    <h3 id="some-header">Some Header</h3>\r
-    <h4 id="next-level">Next Level</h4>\r
-\r
-Works with inline markup.\r
-\r
-    >>> text = '#Some *Header* with [markup](http://example.com).'\r
-    >>> md = markdown.markdown(text, ['headerid'])\r
-    >>> print md\r
-    <h1 id="some-header-with-markup">Some <em>Header</em> with <a href="http://example.com">markup</a>.</h1>\r
-\r
-Turn off auto generated IDs:\r
-\r
-    >>> text = '''\r
-    ... # Some Header\r
-    ... # Another Header'''\r
-    >>> md = markdown.markdown(text, ['headerid(forceid=False)'])\r
-    >>> print md\r
-    <h1>Some Header</h1>\r
-    <h1>Another Header</h1>\r
-\r
-Use with MetaData extension:\r
-\r
-    >>> text = '''header_level: 2\r
-    ... header_forceid: Off\r
-    ...\r
-    ... # A Header'''\r
-    >>> md = markdown.markdown(text, ['headerid', 'meta'])\r
-    >>> print md\r
-    <h2>A Header</h2>\r
-\r
-Copyright 2007-2011 [Waylan Limberg](http://achinghead.com/).\r
-\r
-Project website: <http://packages.python.org/Markdown/extensions/header_id.html>\r
-Contact: markdown@freewisdom.org\r
-\r
-License: BSD (see ../docs/LICENSE for details) \r
-\r
-Dependencies:\r
-* [Python 2.3+](http://python.org)\r
-* [Markdown 2.0+](http://packages.python.org/Markdown/)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..treeprocessors import Treeprocessor\r
-from ..util import HTML_PLACEHOLDER_RE, parseBoolValue\r
-import re\r
-import logging\r
-import unicodedata\r
-\r
-logger = logging.getLogger('MARKDOWN')\r
-\r
-IDCOUNT_RE = re.compile(r'^(.*)_([0-9]+)$')\r
-\r
-\r
-def slugify(value, separator):\r
-    """ Slugify a string, to make it URL friendly. """\r
-    value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')\r
-    value = re.sub('[^\w\s-]', '', value.decode('ascii')).strip().lower()\r
-    return re.sub('[%s\s]+' % separator, separator, value)\r
-\r
-\r
-def unique(id, ids):\r
-    """ Ensure id is unique in set of ids. Append '_1', '_2'... if not """\r
-    while id in ids or not id:\r
-        m = IDCOUNT_RE.match(id)\r
-        if m:\r
-            id = '%s_%d'% (m.group(1), int(m.group(2))+1)\r
-        else:\r
-            id = '%s_%d'% (id, 1)\r
-    ids.add(id)\r
-    return id\r
-\r
-\r
-def itertext(elem):\r
-    """ Loop through all children and return text only. \r
-    \r
-    Reimplements method of same name added to ElementTree in Python 2.7\r
-    \r
-    """\r
-    if elem.text:\r
-        yield elem.text\r
-    for e in elem:\r
-        for s in itertext(e):\r
-            yield s\r
-        if e.tail:\r
-            yield e.tail\r
-\r
-\r
-def stashedHTML2text(text, md):\r
-    """ Extract raw HTML, reduce to plain text and swap with placeholder. """\r
-    def _html_sub(m):\r
-        """ Substitute raw html with plain text. """\r
-        try:\r
-           raw, safe = md.htmlStash.rawHtmlBlocks[int(m.group(1))]\r
-        except (IndexError, TypeError):\r
-            return m.group(0)\r
-        if md.safeMode and not safe:\r
-            return ''\r
-        # Strip out tags and entities - leaveing text\r
-        return re.sub(r'(<[^>]+>)|(&[\#a-zA-Z0-9]+;)', '', raw)\r
-\r
-    return HTML_PLACEHOLDER_RE.sub(_html_sub, text)\r
-\r
-\r
-class HeaderIdTreeprocessor(Treeprocessor):\r
-    """ Assign IDs to headers. """\r
-\r
-    IDs = set()\r
-\r
-    def run(self, doc):\r
-        start_level, force_id = self._get_meta()\r
-        slugify = self.config['slugify']\r
-        sep = self.config['separator']\r
-        for elem in doc.getiterator():\r
-            if elem.tag in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']:\r
-                if force_id:\r
-                    if "id" in elem.attrib:\r
-                        id = elem.get('id')\r
-                    else:\r
-                        id = stashedHTML2text(''.join(itertext(elem)), self.md)\r
-                        id = slugify(id, sep)\r
-                    elem.set('id', unique(id, self.IDs))\r
-                if start_level:\r
-                    level = int(elem.tag[-1]) + start_level\r
-                    if level > 6:\r
-                        level = 6\r
-                    elem.tag = 'h%d' % level\r
-\r
-\r
-    def _get_meta(self):\r
-        """ Return meta data suported by this ext as a tuple """\r
-        level = int(self.config['level']) - 1\r
-        force = parseBoolValue(self.config['forceid'])\r
-        if hasattr(self.md, 'Meta'):\r
-            if 'header_level' in self.md.Meta:\r
-                level = int(self.md.Meta['header_level'][0]) - 1\r
-            if 'header_forceid' in self.md.Meta: \r
-                force = parseBoolValue(self.md.Meta['header_forceid'][0])\r
-        return level, force\r
-\r
-\r
-class HeaderIdExtension(Extension):\r
-    def __init__(self, configs):\r
-        # set defaults\r
-        self.config = {\r
-                'level' : ['1', 'Base level for headers.'],\r
-                'forceid' : ['True', 'Force all headers to have an id.'],\r
-                'separator' : ['-', 'Word separator.'],\r
-                'slugify' : [slugify, 'Callable to generate anchors'], \r
-            }\r
-\r
-        for key, value in configs:\r
-            self.setConfig(key, value)\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        md.registerExtension(self)\r
-        self.processor = HeaderIdTreeprocessor()\r
-        self.processor.md = md\r
-        self.processor.config = self.getConfigs()\r
-        if 'attr_list' in md.treeprocessors.keys():\r
-            # insert after attr_list treeprocessor\r
-            md.treeprocessors.add('headerid', self.processor, '>attr_list')\r
-        else:\r
-            # insert after 'prettify' treeprocessor.\r
-            md.treeprocessors.add('headerid', self.processor, '>prettify')\r
-\r
-    def reset(self):\r
-        self.processor.IDs = set()\r
-\r
-\r
-def makeExtension(configs=None):\r
-    return HeaderIdExtension(configs=configs)\r
+"""
+HeaderID Extension for Python-Markdown
+======================================
+
+Auto-generate id attributes for HTML headers.
+
+See <https://pythonhosted.org/Markdown/extensions/header_id.html> 
+for documentation.
+
+Original code Copyright 2007-2011 [Waylan Limberg](http://achinghead.com/).
+
+All changes Copyright 2011-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..treeprocessors import Treeprocessor
+from ..util import HTML_PLACEHOLDER_RE, parseBoolValue
+import re
+import logging
+import unicodedata
+
+logger = logging.getLogger('MARKDOWN')
+
+IDCOUNT_RE = re.compile(r'^(.*)_([0-9]+)$')
+
+
+def slugify(value, separator):
+    """ Slugify a string, to make it URL friendly. """
+    value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
+    value = re.sub('[^\w\s-]', '', value.decode('ascii')).strip().lower()
+    return re.sub('[%s\s]+' % separator, separator, value)
+
+
+def unique(id, ids):
+    """ Ensure id is unique in set of ids. Append '_1', '_2'... if not """
+    while id in ids or not id:
+        m = IDCOUNT_RE.match(id)
+        if m:
+            id = '%s_%d'% (m.group(1), int(m.group(2))+1)
+        else:
+            id = '%s_%d'% (id, 1)
+    ids.add(id)
+    return id
+
+
+def itertext(elem):
+    """ Loop through all children and return text only. 
+    
+    Reimplements method of same name added to ElementTree in Python 2.7
+    
+    """
+    if elem.text:
+        yield elem.text
+    for e in elem:
+        for s in itertext(e):
+            yield s
+        if e.tail:
+            yield e.tail
+
+
+def stashedHTML2text(text, md):
+    """ Extract raw HTML, reduce to plain text and swap with placeholder. """
+    def _html_sub(m):
+        """ Substitute raw html with plain text. """
+        try:
+            raw, safe = md.htmlStash.rawHtmlBlocks[int(m.group(1))]
+        except (IndexError, TypeError):
+            return m.group(0)
+        if md.safeMode and not safe:
+            return ''
+        # Strip out tags and entities - leaveing text
+        return re.sub(r'(<[^>]+>)|(&[\#a-zA-Z0-9]+;)', '', raw)
+
+    return HTML_PLACEHOLDER_RE.sub(_html_sub, text)
+
+
+class HeaderIdTreeprocessor(Treeprocessor):
+    """ Assign IDs to headers. """
+
+    IDs = set()
+
+    def run(self, doc):
+        start_level, force_id = self._get_meta()
+        slugify = self.config['slugify']
+        sep = self.config['separator']
+        for elem in doc.getiterator():
+            if elem.tag in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']:
+                if force_id:
+                    if "id" in elem.attrib:
+                        id = elem.get('id')
+                    else:
+                        id = stashedHTML2text(''.join(itertext(elem)), self.md)
+                        id = slugify(id, sep)
+                    elem.set('id', unique(id, self.IDs))
+                if start_level:
+                    level = int(elem.tag[-1]) + start_level
+                    if level > 6:
+                        level = 6
+                    elem.tag = 'h%d' % level
+
+
+    def _get_meta(self):
+        """ Return meta data suported by this ext as a tuple """
+        level = int(self.config['level']) - 1
+        force = parseBoolValue(self.config['forceid'])
+        if hasattr(self.md, 'Meta'):
+            if 'header_level' in self.md.Meta:
+                level = int(self.md.Meta['header_level'][0]) - 1
+            if 'header_forceid' in self.md.Meta: 
+                force = parseBoolValue(self.md.Meta['header_forceid'][0])
+        return level, force
+
+
+class HeaderIdExtension(Extension):
+    def __init__(self, *args, **kwargs):
+        # set defaults
+        self.config = {
+                'level' : ['1', 'Base level for headers.'],
+                'forceid' : ['True', 'Force all headers to have an id.'],
+                'separator' : ['-', 'Word separator.'],
+                'slugify' : [slugify, 'Callable to generate anchors'], 
+            }
+
+        super(HeaderIdExtension, self).__init__(*args, **kwargs)
+
+    def extendMarkdown(self, md, md_globals):
+        md.registerExtension(self)
+        self.processor = HeaderIdTreeprocessor()
+        self.processor.md = md
+        self.processor.config = self.getConfigs()
+        if 'attr_list' in md.treeprocessors.keys():
+            # insert after attr_list treeprocessor
+            md.treeprocessors.add('headerid', self.processor, '>attr_list')
+        else:
+            # insert after 'prettify' treeprocessor.
+            md.treeprocessors.add('headerid', self.processor, '>prettify')
+
+    def reset(self):
+        self.processor.IDs = set()
+
+
+def makeExtension(*args, **kwargs):
+    return HeaderIdExtension(*args, **kwargs)
+
index 093eff191882775b21b3d91a0704b8371035fc73..bb81a867c0a56cd21723c57f35934a1291abd794 100644 (file)
@@ -1,93 +1,70 @@
-"""\r
-Meta Data Extension for Python-Markdown\r
-=======================================\r
-\r
-This extension adds Meta Data handling to markdown.\r
-\r
-Basic Usage:\r
-\r
-    >>> import markdown\r
-    >>> text = '''Title: A Test Doc.\r
-    ... Author: Waylan Limberg\r
-    ...         John Doe\r
-    ... Blank_Data:\r
-    ...\r
-    ... The body. This is paragraph one.\r
-    ... '''\r
-    >>> md = markdown.Markdown(['meta'])\r
-    >>> print md.convert(text)\r
-    <p>The body. This is paragraph one.</p>\r
-    >>> print md.Meta\r
-    {u'blank_data': [u''], u'author': [u'Waylan Limberg', u'John Doe'], u'title': [u'A Test Doc.']}\r
-\r
-Make sure text without Meta Data still works (markdown < 1.6b returns a <p>).\r
-\r
-    >>> text = '    Some Code - not extra lines of meta data.'\r
-    >>> md = markdown.Markdown(['meta'])\r
-    >>> print md.convert(text)\r
-    <pre><code>Some Code - not extra lines of meta data.\r
-    </code></pre>\r
-    >>> md.Meta\r
-    {}\r
-\r
-Copyright 2007-2008 [Waylan Limberg](http://achinghead.com).\r
-\r
-Project website: <http://packages.python.org/Markdown/meta_data.html>\r
-Contact: markdown@freewisdom.org\r
-\r
-License: BSD (see ../LICENSE.md for details)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..preprocessors import Preprocessor\r
-import re\r
-\r
-# Global Vars\r
-META_RE = re.compile(r'^[ ]{0,3}(?P<key>[A-Za-z0-9_-]+):\s*(?P<value>.*)')\r
-META_MORE_RE = re.compile(r'^[ ]{4,}(?P<value>.*)')\r
-\r
-class MetaExtension (Extension):\r
-    """ Meta-Data extension for Python-Markdown. """\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Add MetaPreprocessor to Markdown instance. """\r
-\r
-        md.preprocessors.add("meta", MetaPreprocessor(md), "_begin")\r
-\r
-\r
-class MetaPreprocessor(Preprocessor):\r
-    """ Get Meta-Data. """\r
-\r
-    def run(self, lines):\r
-        """ Parse Meta-Data and store in Markdown.Meta. """\r
-        meta = {}\r
-        key = None\r
-        while lines:\r
-            line = lines.pop(0)\r
-            if line.strip() == '':\r
-                break # blank line - done\r
-            m1 = META_RE.match(line)\r
-            if m1:\r
-                key = m1.group('key').lower().strip()\r
-                value = m1.group('value').strip()\r
-                try:\r
-                    meta[key].append(value)\r
-                except KeyError:\r
-                    meta[key] = [value]\r
-            else:\r
-                m2 = META_MORE_RE.match(line)\r
-                if m2 and key:\r
-                    # Add another line to existing key\r
-                    meta[key].append(m2.group('value').strip())\r
-                else:\r
-                    lines.insert(0, line)\r
-                    break # no meta data - done\r
-        self.markdown.Meta = meta\r
-        return lines\r
-        \r
-\r
-def makeExtension(configs={}):\r
-    return MetaExtension(configs=configs)\r
+"""
+Meta Data Extension for Python-Markdown
+=======================================
+
+This extension adds Meta Data handling to markdown.
+
+See <https://pythonhosted.org/Markdown/extensions/meta_data.html> 
+for documentation.
+
+Original code Copyright 2007-2008 [Waylan Limberg](http://achinghead.com).
+
+All changes Copyright 2008-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..preprocessors import Preprocessor
+import re
+
+# Global Vars
+META_RE = re.compile(r'^[ ]{0,3}(?P<key>[A-Za-z0-9_-]+):\s*(?P<value>.*)')
+META_MORE_RE = re.compile(r'^[ ]{4,}(?P<value>.*)')
+
+class MetaExtension (Extension):
+    """ Meta-Data extension for Python-Markdown. """
+
+    def extendMarkdown(self, md, md_globals):
+        """ Add MetaPreprocessor to Markdown instance. """
+
+        md.preprocessors.add("meta", MetaPreprocessor(md), "_begin")
+
+
+class MetaPreprocessor(Preprocessor):
+    """ Get Meta-Data. """
+
+    def run(self, lines):
+        """ Parse Meta-Data and store in Markdown.Meta. """
+        meta = {}
+        key = None
+        while lines:
+            line = lines.pop(0)
+            if line.strip() == '':
+                break # blank line - done
+            m1 = META_RE.match(line)
+            if m1:
+                key = m1.group('key').lower().strip()
+                value = m1.group('value').strip()
+                try:
+                    meta[key].append(value)
+                except KeyError:
+                    meta[key] = [value]
+            else:
+                m2 = META_MORE_RE.match(line)
+                if m2 and key:
+                    # Add another line to existing key
+                    meta[key].append(m2.group('value').strip())
+                else:
+                    lines.insert(0, line)
+                    break # no meta data - done
+        self.markdown.Meta = meta
+        return lines
+        
+
+def makeExtension(*args, **kwargs):
+    return MetaExtension(*args, **kwargs)
+
index 02945c72be61701e17e9e2b3d562524072d92b6f..062a7e6e2ec7d152a3029f16074b4c5269609143 100644 (file)
@@ -1,38 +1,35 @@
-"""\r
-NL2BR Extension\r
-===============\r
-\r
-A Python-Markdown extension to treat newlines as hard breaks; like\r
-GitHub-flavored Markdown does.\r
-\r
-Usage:\r
-\r
-    >>> import markdown\r
-    >>> print markdown.markdown('line 1\\nline 2', extensions=['nl2br'])\r
-    <p>line 1<br />\r
-    line 2</p>\r
-\r
-Copyright 2011 [Brian Neal](http://deathofagremmie.com/)\r
-\r
-Dependencies:\r
-* [Python 2.4+](http://python.org)\r
-* [Markdown 2.1+](http://packages.python.org/Markdown/)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..inlinepatterns import SubstituteTagPattern\r
-\r
-BR_RE = r'\n'\r
-\r
-class Nl2BrExtension(Extension):\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        br_tag = SubstituteTagPattern(BR_RE, 'br')\r
-        md.inlinePatterns.add('nl', br_tag, '_end')\r
-\r
-\r
-def makeExtension(configs=None):\r
-    return Nl2BrExtension(configs)\r
+"""
+NL2BR Extension
+===============
+
+A Python-Markdown extension to treat newlines as hard breaks; like
+GitHub-flavored Markdown does.
+
+See <https://pythonhosted.org/Markdown/extensions/nl2br.html> 
+for documentation.
+
+Oringinal code Copyright 2011 [Brian Neal](http://deathofagremmie.com/)
+
+All changes Copyright 2011-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..inlinepatterns import SubstituteTagPattern
+
+BR_RE = r'\n'
+
+class Nl2BrExtension(Extension):
+
+    def extendMarkdown(self, md, md_globals):
+        br_tag = SubstituteTagPattern(BR_RE, 'br')
+        md.inlinePatterns.add('nl', br_tag, '_end')
+
+
+def makeExtension(*args, **kwargs):
+    return Nl2BrExtension(*args, **kwargs)
+
index 05b3ed0231c3ae538b1758c3603e66589fc01984..9eb3a11f8809dcf73692b6c984d4f9b42a40dcd2 100644 (file)
@@ -1,51 +1,48 @@
-"""\r
-Sane List Extension for Python-Markdown\r
-=======================================\r
-\r
-Modify the behavior of Lists in Python-Markdown t act in a sane manor.\r
-\r
-In standard Markdown syntax, the following would constitute a single \r
-ordered list. However, with this extension, the output would include \r
-two lists, the first an ordered list and the second and unordered list.\r
-\r
-    1. ordered\r
-    2. list\r
-\r
-    * unordered\r
-    * list\r
-\r
-Copyright 2011 - [Waylan Limberg](http://achinghead.com)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..blockprocessors import OListProcessor, UListProcessor\r
-import re\r
-\r
-\r
-class SaneOListProcessor(OListProcessor):\r
-    \r
-    CHILD_RE = re.compile(r'^[ ]{0,3}((\d+\.))[ ]+(.*)')\r
-    SIBLING_TAGS = ['ol']\r
-\r
-\r
-class SaneUListProcessor(UListProcessor):\r
-    \r
-    CHILD_RE = re.compile(r'^[ ]{0,3}(([*+-]))[ ]+(.*)')\r
-    SIBLING_TAGS = ['ul']\r
-\r
-\r
-class SaneListExtension(Extension):\r
-    """ Add sane lists to Markdown. """\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Override existing Processors. """\r
-        md.parser.blockprocessors['olist'] = SaneOListProcessor(md.parser)\r
-        md.parser.blockprocessors['ulist'] = SaneUListProcessor(md.parser)\r
-\r
-\r
-def makeExtension(configs={}):\r
-    return SaneListExtension(configs=configs)\r
-\r
+"""
+Sane List Extension for Python-Markdown
+=======================================
+
+Modify the behavior of Lists in Python-Markdown to act in a sane manor.
+
+See <https://pythonhosted.org/Markdown/extensions/sane_lists.html> 
+for documentation.
+
+Original code Copyright 2011 [Waylan Limberg](http://achinghead.com)
+
+All changes Copyright 2011-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..blockprocessors import OListProcessor, UListProcessor
+import re
+
+
+class SaneOListProcessor(OListProcessor):
+    
+    CHILD_RE = re.compile(r'^[ ]{0,3}((\d+\.))[ ]+(.*)')
+    SIBLING_TAGS = ['ol']
+
+
+class SaneUListProcessor(UListProcessor):
+    
+    CHILD_RE = re.compile(r'^[ ]{0,3}(([*+-]))[ ]+(.*)')
+    SIBLING_TAGS = ['ul']
+
+
+class SaneListExtension(Extension):
+    """ Add sane lists to Markdown. """
+
+    def extendMarkdown(self, md, md_globals):
+        """ Override existing Processors. """
+        md.parser.blockprocessors['olist'] = SaneOListProcessor(md.parser)
+        md.parser.blockprocessors['ulist'] = SaneUListProcessor(md.parser)
+
+
+def makeExtension(*args, **kwargs):
+    return SaneListExtension(*args, **kwargs)
+
index a5c59c2da7b0dea37a0a6478a0b43363037112f1..331dae8aeb7c72e76bf8bf0f6c509c4eded43336 100644 (file)
@@ -1,42 +1,35 @@
-'''\r
-Smart_Strong Extension for Python-Markdown\r
-==========================================\r
-\r
-This extention adds smarter handling of double underscores within words.\r
-\r
-Simple Usage:\r
-\r
-    >>> import markdown\r
-    >>> print markdown.markdown('Text with double__underscore__words.',\r
-    ...                   extensions=['smart_strong'])\r
-    <p>Text with double__underscore__words.</p>\r
-    >>> print markdown.markdown('__Strong__ still works.',\r
-    ...                   extensions=['smart_strong'])\r
-    <p><strong>Strong</strong> still works.</p>\r
-    >>> print markdown.markdown('__this__works__too__.',\r
-    ...                   extensions=['smart_strong'])\r
-    <p><strong>this__works__too</strong>.</p>\r
-\r
-Copyright 2011\r
-[Waylan Limberg](http://achinghead.com)\r
-\r
-'''\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..inlinepatterns import SimpleTagPattern\r
-\r
-SMART_STRONG_RE = r'(?<!\w)(_{2})(?!_)(.+?)(?<!_)\2(?!\w)'\r
-STRONG_RE = r'(\*{2})(.+?)\2'\r
-\r
-class SmartEmphasisExtension(Extension):\r
-    """ Add smart_emphasis extension to Markdown class."""\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Modify inline patterns. """\r
-        md.inlinePatterns['strong'] = SimpleTagPattern(STRONG_RE, 'strong')\r
-        md.inlinePatterns.add('strong2', SimpleTagPattern(SMART_STRONG_RE, 'strong'), '>emphasis2')\r
-\r
-def makeExtension(configs={}):\r
-    return SmartEmphasisExtension(configs=dict(configs))\r
+'''
+Smart_Strong Extension for Python-Markdown
+==========================================
+
+This extention adds smarter handling of double underscores within words.
+
+See <https://pythonhosted.org/Markdown/extensions/smart_strong.html> 
+for documentation.
+
+Original code Copyright 2011 [Waylan Limberg](http://achinghead.com)
+
+All changes Copyright 2011-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+'''
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..inlinepatterns import SimpleTagPattern
+
+SMART_STRONG_RE = r'(?<!\w)(_{2})(?!_)(.+?)(?<!_)\2(?!\w)'
+STRONG_RE = r'(\*{2})(.+?)\2'
+
+class SmartEmphasisExtension(Extension):
+    """ Add smart_emphasis extension to Markdown class."""
+
+    def extendMarkdown(self, md, md_globals):
+        """ Modify inline patterns. """
+        md.inlinePatterns['strong'] = SimpleTagPattern(STRONG_RE, 'strong')
+        md.inlinePatterns.add('strong2', SimpleTagPattern(SMART_STRONG_RE, 'strong'), '>emphasis2')
+
+def makeExtension(*args, **kwargs):
+    return SmartEmphasisExtension(*args, **kwargs)
index 9007cc1a2877dcfdece33354e7d73f2098556bcf..00c330f1f05f0a8cc155fb716d6ea59027820da3 100644 (file)
-# -*- coding: utf-8 -*-\r
-# Smarty extension for Python-Markdown\r
-# Author: 2013, Dmitry Shachnev <mitya57@gmail.com>\r
-\r
-# SmartyPants license:\r
-#\r
-#   Copyright (c) 2003 John Gruber <http://daringfireball.net/>\r
-#   All rights reserved.\r
-#\r
-#   Redistribution and use in source and binary forms, with or without\r
-#   modification, are permitted provided that the following conditions are\r
-#   met:\r
-#\r
-#   *  Redistributions of source code must retain the above copyright\r
-#      notice, this list of conditions and the following disclaimer.\r
-#\r
-#   *  Redistributions in binary form must reproduce the above copyright\r
-#      notice, this list of conditions and the following disclaimer in\r
-#      the documentation and/or other materials provided with the\r
-#      distribution.\r
-#\r
-#   *  Neither the name "SmartyPants" nor the names of its contributors \r
-#      may be used to endorse or promote products derived from this\r
-#      software without specific prior written permission.\r
-#\r
-#   This software is provided by the copyright holders and contributors "as\r
-#   is" and any express or implied warranties, including, but not limited\r
-#   to, the implied warranties of merchantability and fitness for a\r
-#   particular purpose are disclaimed. In no event shall the copyright\r
-#   owner or contributors be liable for any direct, indirect, incidental,\r
-#   special, exemplary, or consequential damages (including, but not\r
-#   limited to, procurement of substitute goods or services; loss of use,\r
-#   data, or profits; or business interruption) however caused and on any\r
-#   theory of liability, whether in contract, strict liability, or tort\r
-#   (including negligence or otherwise) arising in any way out of the use\r
-#   of this software, even if advised of the possibility of such damage.\r
-#\r
-#\r
-# smartypants.py license:\r
-#\r
-#   smartypants.py is a derivative work of SmartyPants.\r
-#   Copyright (c) 2004, 2007 Chad Miller <http://web.chad.org/>\r
-#\r
-#   Redistribution and use in source and binary forms, with or without\r
-#   modification, are permitted provided that the following conditions are\r
-#   met:\r
-#\r
-#   *  Redistributions of source code must retain the above copyright\r
-#      notice, this list of conditions and the following disclaimer.\r
-#\r
-#   *  Redistributions in binary form must reproduce the above copyright\r
-#      notice, this list of conditions and the following disclaimer in\r
-#      the documentation and/or other materials provided with the\r
-#      distribution.\r
-#\r
-#   This software is provided by the copyright holders and contributors "as\r
-#   is" and any express or implied warranties, including, but not limited\r
-#   to, the implied warranties of merchantability and fitness for a\r
-#   particular purpose are disclaimed. In no event shall the copyright\r
-#   owner or contributors be liable for any direct, indirect, incidental,\r
-#   special, exemplary, or consequential damages (including, but not\r
-#   limited to, procurement of substitute goods or services; loss of use,\r
-#   data, or profits; or business interruption) however caused and on any\r
-#   theory of liability, whether in contract, strict liability, or tort\r
-#   (including negligence or otherwise) arising in any way out of the use\r
-#   of this software, even if advised of the possibility of such damage.\r
-\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..inlinepatterns import HtmlPattern\r
-from ..util import parseBoolValue\r
-\r
-# Constants for quote education.\r
-punctClass = r"""[!"#\$\%'()*+,-.\/:;<=>?\@\[\\\]\^_`{|}~]"""\r
-endOfWordClass = r"[\s.,;:!?)]"\r
-closeClass = r"[^\ \t\r\n\[\{\(\-\u0002\u0003]"\r
-\r
-openingQuotesBase = (\r
-   '(\s'              # a  whitespace char\r
-   '|&nbsp;'          # or a non-breaking space entity\r
-   '|--'              # or dashes\r
-   '|–|—'             # or unicode\r
-   '|&[mn]dash;'      # or named dash entities\r
-   '|&#8211;|&#8212;' # or decimal entities\r
-   ')'\r
-)\r
-\r
-# Special case if the very first character is a quote\r
-# followed by punctuation at a non-word-break. Close the quotes by brute force:\r
-singleQuoteStartRe = r"^'(?=%s\\B)" % punctClass\r
-doubleQuoteStartRe = r'^"(?=%s\\B)' % punctClass\r
-\r
-# Special case for double sets of quotes, e.g.:\r
-#   <p>He said, "'Quoted' words in a larger quote."</p>\r
-doubleQuoteSetsRe = r""""'(?=\w)"""\r
-singleQuoteSetsRe = r"""'"(?=\w)"""\r
-\r
-# Get most opening double quotes:\r
-openingDoubleQuotesRegex = r'%s"(?=\w)' % openingQuotesBase\r
-\r
-# Double closing quotes:\r
-closingDoubleQuotesRegex = r'"(?=\s)'\r
-closingDoubleQuotesRegex2 = '(?<=%s)"' % closeClass\r
-\r
-# Get most opening single quotes:\r
-openingSingleQuotesRegex = r"%s'(?=\w)" % openingQuotesBase\r
-\r
-# Single closing quotes:\r
-closingSingleQuotesRegex  = r"(?<=%s)'(?!\s|s\b|\d)" % closeClass\r
-closingSingleQuotesRegex2 = r"(?<=%s)'(\s|s\b)" % closeClass\r
-\r
-# All remaining quotes should be opening ones\r
-remainingSingleQuotesRegex = "'"\r
-remainingDoubleQuotesRegex = '"'\r
-\r
-lsquo, rsquo, ldquo, rdquo = '&lsquo;', '&rsquo;', '&ldquo;', '&rdquo;'\r
-\r
-class SubstituteTextPattern(HtmlPattern):\r
-    def __init__(self, pattern, replace, markdown_instance):\r
-        """ Replaces matches with some text. """\r
-        HtmlPattern.__init__(self, pattern)\r
-        self.replace = replace\r
-        self.markdown = markdown_instance\r
-\r
-    def handleMatch(self, m):\r
-        result = ''\r
-        for part in self.replace:\r
-            if isinstance(part, int):\r
-                result += m.group(part)\r
-            else:\r
-                result += self.markdown.htmlStash.store(part, safe=True)\r
-        return result\r
-\r
-class SmartyExtension(Extension):\r
-    def __init__(self, configs):\r
-        self.config = {\r
-            'smart_quotes': [True, 'Educate quotes'],\r
-            'smart_dashes': [True, 'Educate dashes'],\r
-            'smart_ellipses': [True, 'Educate ellipses']\r
-        }\r
-        for key, value in configs:\r
-            self.setConfig(key, parseBoolValue(value))\r
-\r
-    def _addPatterns(self, md, patterns, serie):\r
-        for ind, pattern in enumerate(patterns):\r
-            pattern += (md,)\r
-            pattern = SubstituteTextPattern(*pattern)\r
-            after = ('>smarty-%s-%d' % (serie, ind - 1) if ind else '>entity')\r
-            name = 'smarty-%s-%d' % (serie, ind)\r
-            md.inlinePatterns.add(name, pattern, after)\r
-\r
-    def educateDashes(self, md):\r
-        emDashesPattern = SubstituteTextPattern(r'(?<!-)---(?!-)', '&mdash;', md)\r
-        enDashesPattern = SubstituteTextPattern(r'(?<!-)--(?!-)', '&ndash;', md)\r
-        md.inlinePatterns.add('smarty-em-dashes', emDashesPattern, '>entity')\r
-        md.inlinePatterns.add('smarty-en-dashes', enDashesPattern,\r
-            '>smarty-em-dashes')\r
-\r
-    def educateEllipses(self, md):\r
-        ellipsesPattern = SubstituteTextPattern(r'(?<!\.)\.{3}(?!\.)', '&hellip;', md)\r
-        md.inlinePatterns.add('smarty-ellipses', ellipsesPattern, '>entity')\r
-\r
-    def educateQuotes(self, md):\r
-        patterns = (\r
-            (singleQuoteStartRe, (rsquo,)),\r
-            (doubleQuoteStartRe, (rdquo,)),\r
-            (doubleQuoteSetsRe, (ldquo + lsquo,)),\r
-            (singleQuoteSetsRe, (lsquo + ldquo,)),\r
-            (openingSingleQuotesRegex, (2, lsquo)),\r
-            (closingSingleQuotesRegex, (rsquo,)),\r
-            (closingSingleQuotesRegex2, (rsquo, 2)),\r
-            (remainingSingleQuotesRegex, (lsquo,)),\r
-            (openingDoubleQuotesRegex, (2, ldquo)),\r
-            (closingDoubleQuotesRegex, (rdquo,)),\r
-            (closingDoubleQuotesRegex2, (rdquo,)),\r
-            (remainingDoubleQuotesRegex, (ldquo,))\r
-        )\r
-        self._addPatterns(md, patterns, 'quotes')\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        configs = self.getConfigs()\r
-        if configs['smart_quotes']:\r
-            self.educateQuotes(md)\r
-        if configs['smart_dashes']:\r
-            self.educateDashes(md)\r
-        if configs['smart_ellipses']:\r
-            self.educateEllipses(md)\r
-        md.ESCAPED_CHARS.extend(['"', "'"])\r
-\r
-def makeExtension(configs=None):\r
-    return SmartyExtension(configs)\r
+# -*- coding: utf-8 -*-
+'''
+Smarty extension for Python-Markdown
+====================================
+
+Adds conversion of ASCII dashes, quotes and ellipses to their HTML 
+entity equivalents.
+
+See <https://pythonhosted.org/Markdown/extensions/smarty.html> 
+for documentation.
+
+Author: 2013, Dmitry Shachnev <mitya57@gmail.com>
+
+All changes Copyright 2013-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+SmartyPants license:
+
+   Copyright (c) 2003 John Gruber <http://daringfireball.net/>
+   All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are
+   met:
+
+   *  Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   *  Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+   *  Neither the name "SmartyPants" nor the names of its contributors 
+      may be used to endorse or promote products derived from this
+      software without specific prior written permission.
+
+   This software is provided by the copyright holders and contributors "as
+   is" and any express or implied warranties, including, but not limited
+   to, the implied warranties of merchantability and fitness for a
+   particular purpose are disclaimed. In no event shall the copyright
+   owner or contributors be liable for any direct, indirect, incidental,
+   special, exemplary, or consequential damages (including, but not
+   limited to, procurement of substitute goods or services; loss of use,
+   data, or profits; or business interruption) however caused and on any
+   theory of liability, whether in contract, strict liability, or tort
+   (including negligence or otherwise) arising in any way out of the use
+   of this software, even if advised of the possibility of such damage.
+
+
+smartypants.py license:
+
+   smartypants.py is a derivative work of SmartyPants.
+   Copyright (c) 2004, 2007 Chad Miller <http://web.chad.org/>
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are
+   met:
+
+   *  Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+   *  Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in
+      the documentation and/or other materials provided with the
+      distribution.
+
+   This software is provided by the copyright holders and contributors "as
+   is" and any express or implied warranties, including, but not limited
+   to, the implied warranties of merchantability and fitness for a
+   particular purpose are disclaimed. In no event shall the copyright
+   owner or contributors be liable for any direct, indirect, incidental,
+   special, exemplary, or consequential damages (including, but not
+   limited to, procurement of substitute goods or services; loss of use,
+   data, or profits; or business interruption) however caused and on any
+   theory of liability, whether in contract, strict liability, or tort
+   (including negligence or otherwise) arising in any way out of the use
+   of this software, even if advised of the possibility of such damage.
+
+'''
+
+
+from __future__ import unicode_literals
+from . import Extension
+from ..inlinepatterns import HtmlPattern
+from ..odict import OrderedDict
+from ..treeprocessors import InlineProcessor
+from ..util import parseBoolValue
+
+# Constants for quote education.
+punctClass = r"""[!"#\$\%'()*+,-.\/:;<=>?\@\[\\\]\^_`{|}~]"""
+endOfWordClass = r"[\s.,;:!?)]"
+closeClass = "[^\ \t\r\n\[\{\(\-\u0002\u0003]"
+
+openingQuotesBase = (
+   '(\s'              # a  whitespace char
+   '|&nbsp;'          # or a non-breaking space entity
+   '|--'              # or dashes
+   '|–|—'             # or unicode
+   '|&[mn]dash;'      # or named dash entities
+   '|&#8211;|&#8212;' # or decimal entities
+   ')'
+) 
+
+substitutions = {
+    'mdash': '&mdash;',
+    'ndash': '&ndash;',
+    'ellipsis': '&hellip;',
+    'left-angle-quote': '&laquo;',
+    'right-angle-quote': '&raquo;',
+    'left-single-quote': '&lsquo;',
+    'right-single-quote': '&rsquo;',
+    'left-double-quote': '&ldquo;',
+    'right-double-quote': '&rdquo;',
+}
+
+
+# Special case if the very first character is a quote
+# followed by punctuation at a non-word-break. Close the quotes by brute force:
+singleQuoteStartRe = r"^'(?=%s\B)" % punctClass
+doubleQuoteStartRe = r'^"(?=%s\B)' % punctClass
+
+# Special case for double sets of quotes, e.g.:
+#   <p>He said, "'Quoted' words in a larger quote."</p>
+doubleQuoteSetsRe = r""""'(?=\w)"""
+singleQuoteSetsRe = r"""'"(?=\w)"""
+
+# Get most opening double quotes:
+openingDoubleQuotesRegex = r'%s"(?=\w)' % openingQuotesBase
+
+# Double closing quotes:
+closingDoubleQuotesRegex = r'"(?=\s)'
+closingDoubleQuotesRegex2 = '(?<=%s)"' % closeClass
+
+# Get most opening single quotes:
+openingSingleQuotesRegex = r"%s'(?=\w)" % openingQuotesBase
+
+# Single closing quotes:
+closingSingleQuotesRegex  = r"(?<=%s)'(?!\s|s\b|\d)" % closeClass
+closingSingleQuotesRegex2 = r"(?<=%s)'(\s|s\b)" % closeClass
+
+# All remaining quotes should be opening ones
+remainingSingleQuotesRegex = "'"
+remainingDoubleQuotesRegex = '"'
+
+class SubstituteTextPattern(HtmlPattern):
+    def __init__(self, pattern, replace, markdown_instance):
+        """ Replaces matches with some text. """
+        HtmlPattern.__init__(self, pattern)
+        self.replace = replace
+        self.markdown = markdown_instance
+
+    def handleMatch(self, m):
+        result = ''
+        for part in self.replace:
+            if isinstance(part, int):
+                result += m.group(part)
+            else:
+                result += self.markdown.htmlStash.store(part, safe=True)
+        return result
+
+class SmartyExtension(Extension):
+    def __init__(self, *args, **kwargs):
+        self.config = {
+            'smart_quotes': [True, 'Educate quotes'],
+            'smart_angled_quotes': [False, 'Educate angled quotes'],
+            'smart_dashes': [True, 'Educate dashes'],
+            'smart_ellipses': [True, 'Educate ellipses'],
+            'substitutions' : [{}, 'Overwrite default substitutions'],
+        }
+        super(SmartyExtension, self).__init__(*args, **kwargs)
+        self.substitutions = dict(substitutions)
+        self.substitutions.update(self.getConfig('substitutions', default={}))
+
+    def _addPatterns(self, md, patterns, serie):
+        for ind, pattern in enumerate(patterns):
+            pattern += (md,)
+            pattern = SubstituteTextPattern(*pattern)
+            after = ('>smarty-%s-%d' % (serie, ind - 1) if ind else '_begin')
+            name = 'smarty-%s-%d' % (serie, ind)
+            self.inlinePatterns.add(name, pattern, after)
+
+    def educateDashes(self, md):
+        emDashesPattern = SubstituteTextPattern(r'(?<!-)---(?!-)',
+                                            (self.substitutions['mdash'],), md)
+        enDashesPattern = SubstituteTextPattern(r'(?<!-)--(?!-)',
+                                            (self.substitutions['ndash'],), md)
+        self.inlinePatterns.add('smarty-em-dashes', emDashesPattern, '_begin')
+        self.inlinePatterns.add('smarty-en-dashes', enDashesPattern,
+            '>smarty-em-dashes')
+
+    def educateEllipses(self, md):
+        ellipsesPattern = SubstituteTextPattern(r'(?<!\.)\.{3}(?!\.)',
+                                         (self.substitutions['ellipsis'],), md)
+        self.inlinePatterns.add('smarty-ellipses', ellipsesPattern, '_begin')
+
+    def educateAngledQuotes(self, md):
+        leftAngledQuotePattern = SubstituteTextPattern(r'\<\<',
+                                 (self.substitutions['left-angle-quote'],), md)
+        rightAngledQuotePattern = SubstituteTextPattern(r'\>\>',
+                                (self.substitutions['right-angle-quote'],), md)
+        self.inlinePatterns.add('smarty-left-angle-quotes',
+                                leftAngledQuotePattern, '_begin')
+        self.inlinePatterns.add('smarty-right-angle-quotes',
+                                rightAngledQuotePattern, '>smarty-left-angle-quotes')
+
+    def educateQuotes(self, md):
+        configs = self.getConfigs()
+        lsquo = self.substitutions['left-single-quote']
+        rsquo = self.substitutions['right-single-quote']
+        ldquo = self.substitutions['left-double-quote']
+        rdquo = self.substitutions['right-double-quote']
+        patterns = (
+            (singleQuoteStartRe, (rsquo,)),
+            (doubleQuoteStartRe, (rdquo,)),
+            (doubleQuoteSetsRe, (ldquo + lsquo,)),
+            (singleQuoteSetsRe, (lsquo + ldquo,)),
+            (openingSingleQuotesRegex, (2, lsquo)),
+            (closingSingleQuotesRegex, (rsquo,)),
+            (closingSingleQuotesRegex2, (rsquo, 2)),
+            (remainingSingleQuotesRegex, (lsquo,)),
+            (openingDoubleQuotesRegex, (2, ldquo)),
+            (closingDoubleQuotesRegex, (rdquo,)),
+            (closingDoubleQuotesRegex2, (rdquo,)),
+            (remainingDoubleQuotesRegex, (ldquo,))
+        )
+        self._addPatterns(md, patterns, 'quotes')
+
+    def extendMarkdown(self, md, md_globals):
+        configs = self.getConfigs()
+        self.inlinePatterns = OrderedDict()
+        if configs['smart_ellipses']:
+            self.educateEllipses(md)
+        if configs['smart_quotes']:
+            self.educateQuotes(md)
+        if configs['smart_angled_quotes']:
+            self.educateAngledQuotes(md)
+        if configs['smart_dashes']:
+            self.educateDashes(md)
+        inlineProcessor = InlineProcessor(md)
+        inlineProcessor.inlinePatterns = self.inlinePatterns
+        md.treeprocessors.add('smarty', inlineProcessor, '_end')
+        md.ESCAPED_CHARS.extend(['"', "'"])
+
+def makeExtension(*args, **kwargs):
+    return SmartyExtension(*args, **kwargs)
index c9283653584fe917a0a5185005f5ec8c472975ba..57507e96d8c32e79446931f62490ea10f0553295 100644 (file)
-"""\r
-Tables Extension for Python-Markdown\r
-====================================\r
-\r
-Added parsing of tables to Python-Markdown.\r
-\r
-A simple example:\r
-\r
-    First Header  | Second Header\r
-    ------------- | -------------\r
-    Content Cell  | Content Cell\r
-    Content Cell  | Content Cell\r
-\r
-Copyright 2009 - [Waylan Limberg](http://achinghead.com)\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..blockprocessors import BlockProcessor\r
-from ..util import etree\r
-\r
-class TableProcessor(BlockProcessor):\r
-    """ Process Tables. """\r
-\r
-    def test(self, parent, block):\r
-        rows = block.split('\n')\r
-        return (len(rows) > 2 and '|' in rows[0] and \r
-                '|' in rows[1] and '-' in rows[1] and \r
-                rows[1].strip()[0] in ['|', ':', '-'])\r
-\r
-    def run(self, parent, blocks):\r
-        """ Parse a table block and build table. """\r
-        block = blocks.pop(0).split('\n')\r
-        header = block[0].strip()\r
-        seperator = block[1].strip()\r
-        rows = block[2:]\r
-        # Get format type (bordered by pipes or not)\r
-        border = False\r
-        if header.startswith('|'):\r
-            border = True\r
-        # Get alignment of columns\r
-        align = []\r
-        for c in self._split_row(seperator, border):\r
-            if c.startswith(':') and c.endswith(':'):\r
-                align.append('center')\r
-            elif c.startswith(':'):\r
-                align.append('left')\r
-            elif c.endswith(':'):\r
-                align.append('right')\r
-            else:\r
-                align.append(None)\r
-        # Build table\r
-        table = etree.SubElement(parent, 'table')\r
-        thead = etree.SubElement(table, 'thead')\r
-        self._build_row(header, thead, align, border)\r
-        tbody = etree.SubElement(table, 'tbody')\r
-        for row in rows:\r
-            self._build_row(row.strip(), tbody, align, border)\r
-\r
-    def _build_row(self, row, parent, align, border):\r
-        """ Given a row of text, build table cells. """\r
-        tr = etree.SubElement(parent, 'tr')\r
-        tag = 'td'\r
-        if parent.tag == 'thead':\r
-            tag = 'th'\r
-        cells = self._split_row(row, border)\r
-        # We use align here rather than cells to ensure every row \r
-        # contains the same number of columns.\r
-        for i, a in enumerate(align):\r
-            c = etree.SubElement(tr, tag)\r
-            try:\r
-                c.text = cells[i].strip()\r
-            except IndexError:\r
-                c.text = ""\r
-            if a:\r
-                c.set('align', a)\r
-\r
-    def _split_row(self, row, border):\r
-        """ split a row of text into list of cells. """\r
-        if border:\r
-            if row.startswith('|'):\r
-                row = row[1:]\r
-            if row.endswith('|'):\r
-                row = row[:-1]\r
-        return row.split('|')\r
-\r
-\r
-class TableExtension(Extension):\r
-    """ Add tables to Markdown. """\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        """ Add an instance of TableProcessor to BlockParser. """\r
-        md.parser.blockprocessors.add('table', \r
-                                      TableProcessor(md.parser),\r
-                                      '<hashheader')\r
-\r
-\r
-def makeExtension(configs={}):\r
-    return TableExtension(configs=configs)\r
+"""
+Tables Extension for Python-Markdown
+====================================
+
+Added parsing of tables to Python-Markdown.
+
+See <https://pythonhosted.org/Markdown/extensions/tables.html> 
+for documentation.
+
+Original code Copyright 2009 [Waylan Limberg](http://achinghead.com)
+
+All changes Copyright 2008-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php)
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..blockprocessors import BlockProcessor
+from ..util import etree
+
+class TableProcessor(BlockProcessor):
+    """ Process Tables. """
+
+    def test(self, parent, block):
+        rows = block.split('\n')
+        return (len(rows) > 2 and '|' in rows[0] and 
+                '|' in rows[1] and '-' in rows[1] and 
+                rows[1].strip()[0] in ['|', ':', '-'])
+
+    def run(self, parent, blocks):
+        """ Parse a table block and build table. """
+        block = blocks.pop(0).split('\n')
+        header = block[0].strip()
+        seperator = block[1].strip()
+        rows = block[2:]
+        # Get format type (bordered by pipes or not)
+        border = False
+        if header.startswith('|'):
+            border = True
+        # Get alignment of columns
+        align = []
+        for c in self._split_row(seperator, border):
+            if c.startswith(':') and c.endswith(':'):
+                align.append('center')
+            elif c.startswith(':'):
+                align.append('left')
+            elif c.endswith(':'):
+                align.append('right')
+            else:
+                align.append(None)
+        # Build table
+        table = etree.SubElement(parent, 'table')
+        thead = etree.SubElement(table, 'thead')
+        self._build_row(header, thead, align, border)
+        tbody = etree.SubElement(table, 'tbody')
+        for row in rows:
+            self._build_row(row.strip(), tbody, align, border)
+
+    def _build_row(self, row, parent, align, border):
+        """ Given a row of text, build table cells. """
+        tr = etree.SubElement(parent, 'tr')
+        tag = 'td'
+        if parent.tag == 'thead':
+            tag = 'th'
+        cells = self._split_row(row, border)
+        # We use align here rather than cells to ensure every row 
+        # contains the same number of columns.
+        for i, a in enumerate(align):
+            c = etree.SubElement(tr, tag)
+            try:
+                c.text = cells[i].strip()
+            except IndexError: #pragma: no cover
+                c.text = ""
+            if a:
+                c.set('align', a)
+
+    def _split_row(self, row, border):
+        """ split a row of text into list of cells. """
+        if border:
+            if row.startswith('|'):
+                row = row[1:]
+            if row.endswith('|'):
+                row = row[:-1]
+        return row.split('|')
+
+
+class TableExtension(Extension):
+    """ Add tables to Markdown. """
+
+    def extendMarkdown(self, md, md_globals):
+        """ Add an instance of TableProcessor to BlockParser. """
+        md.parser.blockprocessors.add('table', 
+                                      TableProcessor(md.parser),
+                                      '<hashheader')
+
+
+def makeExtension(*args, **kwargs):
+    return TableExtension(*args, **kwargs)
+
index 7b3b0ed56fba54cf31aa623a8cfc09677e730857..22cf063b8ae58ff03e8cea4047ac6c287e6733ca 100644 (file)
-"""\r
-Table of Contents Extension for Python-Markdown\r
-* * *\r
-\r
-(c) 2008 [Jack Miller](http://codezen.org)\r
-\r
-Dependencies:\r
-* [Markdown 2.1+](http://packages.python.org/Markdown/)\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..treeprocessors import Treeprocessor\r
-from ..util import etree, parseBoolValue, AMP_SUBSTITUTE\r
-from .headerid import slugify, unique, itertext, stashedHTML2text\r
-import re\r
-\r
-\r
-def order_toc_list(toc_list):\r
-    """Given an unsorted list with errors and skips, return a nested one.\r
-    [{'level': 1}, {'level': 2}]\r
-    =>\r
-    [{'level': 1, 'children': [{'level': 2, 'children': []}]}]\r
-    \r
-    A wrong list is also converted:\r
-    [{'level': 2}, {'level': 1}]\r
-    =>\r
-    [{'level': 2, 'children': []}, {'level': 1, 'children': []}]\r
-    """\r
-    \r
-    def build_correct(remaining_list, prev_elements=[{'level': 1000}]):\r
-        \r
-        if not remaining_list:\r
-            return [], []\r
-        \r
-        current = remaining_list.pop(0)\r
-        if not 'children' in current.keys():\r
-            current['children'] = []\r
-        \r
-        if not prev_elements:\r
-            # This happens for instance with [8, 1, 1], ie. when some\r
-            # header level is outside a scope. We treat it as a\r
-            # top-level\r
-            next_elements, children = build_correct(remaining_list, [current])\r
-            current['children'].append(children)\r
-            return [current] + next_elements, []\r
-        \r
-        prev_element = prev_elements.pop()\r
-        children = []\r
-        next_elements = []\r
-        # Is current part of the child list or next list?\r
-        if current['level'] > prev_element['level']:\r
-            #print "%d is a child of %d" % (current['level'], prev_element['level'])\r
-            prev_elements.append(prev_element)\r
-            prev_elements.append(current)\r
-            prev_element['children'].append(current)\r
-            next_elements2, children2 = build_correct(remaining_list, prev_elements)\r
-            children += children2\r
-            next_elements += next_elements2\r
-        else:\r
-            #print "%d is ancestor of %d" % (current['level'], prev_element['level'])\r
-            if not prev_elements:\r
-                #print "No previous elements, so appending to the next set"\r
-                next_elements.append(current)\r
-                prev_elements = [current]\r
-                next_elements2, children2 = build_correct(remaining_list, prev_elements)\r
-                current['children'].extend(children2)\r
-            else:\r
-                #print "Previous elements, comparing to those first"\r
-                remaining_list.insert(0, current)\r
-                next_elements2, children2 = build_correct(remaining_list, prev_elements)\r
-                children.extend(children2)\r
-            next_elements += next_elements2\r
-        \r
-        return next_elements, children\r
-    \r
-    ordered_list, __ = build_correct(toc_list)\r
-    return ordered_list\r
-\r
-\r
-class TocTreeprocessor(Treeprocessor):\r
-    \r
-    # Iterator wrapper to get parent and child all at once\r
-    def iterparent(self, root):\r
-        for parent in root.getiterator():\r
-            for child in parent:\r
-                yield parent, child\r
-    \r
-    def add_anchor(self, c, elem_id): #@ReservedAssignment\r
-        anchor = etree.Element("a")\r
-        anchor.text = c.text\r
-        anchor.attrib["href"] = "#" + elem_id\r
-        anchor.attrib["class"] = "toclink"\r
-        c.text = ""\r
-        for elem in c.getchildren():\r
-            anchor.append(elem)\r
-            c.remove(elem)\r
-        c.append(anchor)\r
-\r
-    def add_permalink(self, c, elem_id):\r
-        permalink = etree.Element("a")\r
-        permalink.text = ("%spara;" % AMP_SUBSTITUTE\r
-            if self.use_permalinks is True else self.use_permalinks)\r
-        permalink.attrib["href"] = "#" + elem_id\r
-        permalink.attrib["class"] = "headerlink"\r
-        permalink.attrib["title"] = "Permanent link"\r
-        c.append(permalink)\r
-    \r
-    def build_toc_etree(self, div, toc_list):\r
-        # Add title to the div\r
-        if self.config["title"]:\r
-            header = etree.SubElement(div, "span")\r
-            header.attrib["class"] = "toctitle"\r
-            header.text = self.config["title"]\r
-\r
-        def build_etree_ul(toc_list, parent):\r
-            ul = etree.SubElement(parent, "ul")\r
-            for item in toc_list:\r
-                # List item link, to be inserted into the toc div\r
-                li = etree.SubElement(ul, "li")\r
-                link = etree.SubElement(li, "a")\r
-                link.text = item.get('name', '')\r
-                link.attrib["href"] = '#' + item.get('id', '')\r
-                if item['children']:\r
-                    build_etree_ul(item['children'], li)\r
-            return ul\r
-        \r
-        return build_etree_ul(toc_list, div)\r
-        \r
-    def run(self, doc):\r
-\r
-        div = etree.Element("div")\r
-        div.attrib["class"] = "toc"\r
-        header_rgx = re.compile("[Hh][123456]")\r
-        \r
-        self.use_anchors = parseBoolValue(self.config["anchorlink"])\r
-        self.use_permalinks = parseBoolValue(self.config["permalink"], False)\r
-        if self.use_permalinks is None:\r
-            self.use_permalinks = self.config["permalink"]\r
-        \r
-        # Get a list of id attributes\r
-        used_ids = set()\r
-        for c in doc.getiterator():\r
-            if "id" in c.attrib:\r
-                used_ids.add(c.attrib["id"])\r
-\r
-        toc_list = []\r
-        marker_found = False\r
-        for (p, c) in self.iterparent(doc):\r
-            text = ''.join(itertext(c)).strip()\r
-            if not text:\r
-                continue\r
-\r
-            # To keep the output from screwing up the\r
-            # validation by putting a <div> inside of a <p>\r
-            # we actually replace the <p> in its entirety.\r
-            # We do not allow the marker inside a header as that\r
-            # would causes an enless loop of placing a new TOC \r
-            # inside previously generated TOC.\r
-            if c.text and c.text.strip() == self.config["marker"] and \\r
-               not header_rgx.match(c.tag) and c.tag not in ['pre', 'code']:\r
-                for i in range(len(p)):\r
-                    if p[i] == c:\r
-                        p[i] = div\r
-                        break\r
-                marker_found = True\r
-                            \r
-            if header_rgx.match(c.tag):\r
-                \r
-                # Do not override pre-existing ids \r
-                if not "id" in c.attrib:\r
-                    elem_id = stashedHTML2text(text, self.markdown)\r
-                    elem_id = unique(self.config["slugify"](elem_id, '-'), used_ids)\r
-                    c.attrib["id"] = elem_id\r
-                else:\r
-                    elem_id = c.attrib["id"]\r
-\r
-                tag_level = int(c.tag[-1])\r
-                \r
-                toc_list.append({'level': tag_level,\r
-                    'id': elem_id,\r
-                    'name': text})\r
-\r
-                if self.use_anchors:\r
-                    self.add_anchor(c, elem_id)\r
-                if self.use_permalinks:\r
-                    self.add_permalink(c, elem_id)\r
-                \r
-        toc_list_nested = order_toc_list(toc_list)\r
-        self.build_toc_etree(div, toc_list_nested)\r
-        prettify = self.markdown.treeprocessors.get('prettify')\r
-        if prettify: prettify.run(div)\r
-        if not marker_found:\r
-            # serialize and attach to markdown instance.\r
-            toc = self.markdown.serializer(div)\r
-            for pp in self.markdown.postprocessors.values():\r
-                toc = pp.run(toc)\r
-            self.markdown.toc = toc\r
-\r
-\r
-class TocExtension(Extension):\r
-    \r
-    TreeProcessorClass = TocTreeprocessor\r
-    \r
-    def __init__(self, configs=[]):\r
-        self.config = { "marker" : ["[TOC]", \r
-                            "Text to find and replace with Table of Contents -"\r
-                            "Defaults to \"[TOC]\""],\r
-                        "slugify" : [slugify,\r
-                            "Function to generate anchors based on header text-"\r
-                            "Defaults to the headerid ext's slugify function."],\r
-                        "title" : [None,\r
-                            "Title to insert into TOC <div> - "\r
-                            "Defaults to None"],\r
-                        "anchorlink" : [0,\r
-                            "1 if header should be a self link"\r
-                            "Defaults to 0"],\r
-                        "permalink" : [0,\r
-                            "1 or link text if a Sphinx-style permalink should be added",\r
-                            "Defaults to 0"]\r
-                       }\r
-\r
-        for key, value in configs:\r
-            self.setConfig(key, value)\r
-\r
-    def extendMarkdown(self, md, md_globals):\r
-        tocext = self.TreeProcessorClass(md)\r
-        tocext.config = self.getConfigs()\r
-        # Headerid ext is set to '>prettify'. With this set to '_end',\r
-        # it should always come after headerid ext (and honor ids assinged \r
-        # by the header id extension) if both are used. Same goes for \r
-        # attr_list extension. This must come last because we don't want\r
-        # to redefine ids after toc is created. But we do want toc prettified.\r
-        md.treeprocessors.add("toc", tocext, "_end")\r
-\r
-\r
-def makeExtension(configs={}):\r
-    return TocExtension(configs=configs)\r
+"""
+Table of Contents Extension for Python-Markdown
+===============================================
+
+See <https://pythonhosted.org/Markdown/extensions/toc.html> 
+for documentation.
+
+Oringinal code Copyright 2008 [Jack Miller](http://codezen.org)
+
+All changes Copyright 2008-2014 The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..treeprocessors import Treeprocessor
+from ..util import etree, parseBoolValue, AMP_SUBSTITUTE
+from .headerid import slugify, unique, itertext, stashedHTML2text
+import re
+
+
+def order_toc_list(toc_list):
+    """Given an unsorted list with errors and skips, return a nested one.
+    [{'level': 1}, {'level': 2}]
+    =>
+    [{'level': 1, 'children': [{'level': 2, 'children': []}]}]
+    
+    A wrong list is also converted:
+    [{'level': 2}, {'level': 1}]
+    =>
+    [{'level': 2, 'children': []}, {'level': 1, 'children': []}]
+    """
+    
+    def build_correct(remaining_list, prev_elements=[{'level': 1000}]):
+        
+        if not remaining_list:
+            return [], []
+        
+        current = remaining_list.pop(0)
+        if not 'children' in current.keys():
+            current['children'] = []
+        
+        if not prev_elements:
+            # This happens for instance with [8, 1, 1], ie. when some
+            # header level is outside a scope. We treat it as a
+            # top-level
+            next_elements, children = build_correct(remaining_list, [current])
+            current['children'].append(children)
+            return [current] + next_elements, []
+        
+        prev_element = prev_elements.pop()
+        children = []
+        next_elements = []
+        # Is current part of the child list or next list?
+        if current['level'] > prev_element['level']:
+            #print "%d is a child of %d" % (current['level'], prev_element['level'])
+            prev_elements.append(prev_element)
+            prev_elements.append(current)
+            prev_element['children'].append(current)
+            next_elements2, children2 = build_correct(remaining_list, prev_elements)
+            children += children2
+            next_elements += next_elements2
+        else:
+            #print "%d is ancestor of %d" % (current['level'], prev_element['level'])
+            if not prev_elements:
+                #print "No previous elements, so appending to the next set"
+                next_elements.append(current)
+                prev_elements = [current]
+                next_elements2, children2 = build_correct(remaining_list, prev_elements)
+                current['children'].extend(children2)
+            else:
+                #print "Previous elements, comparing to those first"
+                remaining_list.insert(0, current)
+                next_elements2, children2 = build_correct(remaining_list, prev_elements)
+                children.extend(children2)
+            next_elements += next_elements2
+        
+        return next_elements, children
+    
+    ordered_list, __ = build_correct(toc_list)
+    return ordered_list
+
+
+class TocTreeprocessor(Treeprocessor):
+    
+    # Iterator wrapper to get parent and child all at once
+    def iterparent(self, root):
+        for parent in root.getiterator():
+            for child in parent:
+                yield parent, child
+    
+    def add_anchor(self, c, elem_id): #@ReservedAssignment
+        anchor = etree.Element("a")
+        anchor.text = c.text
+        anchor.attrib["href"] = "#" + elem_id
+        anchor.attrib["class"] = "toclink"
+        c.text = ""
+        for elem in c.getchildren():
+            anchor.append(elem)
+            c.remove(elem)
+        c.append(anchor)
+
+    def add_permalink(self, c, elem_id):
+        permalink = etree.Element("a")
+        permalink.text = ("%spara;" % AMP_SUBSTITUTE
+            if self.use_permalinks is True else self.use_permalinks)
+        permalink.attrib["href"] = "#" + elem_id
+        permalink.attrib["class"] = "headerlink"
+        permalink.attrib["title"] = "Permanent link"
+        c.append(permalink)
+    
+    def build_toc_etree(self, div, toc_list):
+        # Add title to the div
+        if self.config["title"]:
+            header = etree.SubElement(div, "span")
+            header.attrib["class"] = "toctitle"
+            header.text = self.config["title"]
+
+        def build_etree_ul(toc_list, parent):
+            ul = etree.SubElement(parent, "ul")
+            for item in toc_list:
+                # List item link, to be inserted into the toc div
+                li = etree.SubElement(ul, "li")
+                link = etree.SubElement(li, "a")
+                link.text = item.get('name', '')
+                link.attrib["href"] = '#' + item.get('id', '')
+                if item['children']:
+                    build_etree_ul(item['children'], li)
+            return ul
+        
+        return build_etree_ul(toc_list, div)
+        
+    def run(self, doc):
+
+        div = etree.Element("div")
+        div.attrib["class"] = "toc"
+        header_rgx = re.compile("[Hh][123456]")
+        
+        self.use_anchors = parseBoolValue(self.config["anchorlink"])
+        self.use_permalinks = parseBoolValue(self.config["permalink"], False)
+        if self.use_permalinks is None:
+            self.use_permalinks = self.config["permalink"]
+        
+        # Get a list of id attributes
+        used_ids = set()
+        for c in doc.getiterator():
+            if "id" in c.attrib:
+                used_ids.add(c.attrib["id"])
+
+        toc_list = []
+        marker_found = False
+        for (p, c) in self.iterparent(doc):
+            text = ''.join(itertext(c)).strip()
+            if not text:
+                continue
+
+            # To keep the output from screwing up the
+            # validation by putting a <div> inside of a <p>
+            # we actually replace the <p> in its entirety.
+            # We do not allow the marker inside a header as that
+            # would causes an enless loop of placing a new TOC 
+            # inside previously generated TOC.
+            if c.text and c.text.strip() == self.config["marker"] and \
+               not header_rgx.match(c.tag) and c.tag not in ['pre', 'code']:
+                for i in range(len(p)):
+                    if p[i] == c:
+                        p[i] = div
+                        break
+                marker_found = True
+                            
+            if header_rgx.match(c.tag):
+                
+                # Do not override pre-existing ids 
+                if not "id" in c.attrib:
+                    elem_id = stashedHTML2text(text, self.markdown)
+                    elem_id = unique(self.config["slugify"](elem_id, '-'), used_ids)
+                    c.attrib["id"] = elem_id
+                else:
+                    elem_id = c.attrib["id"]
+
+                tag_level = int(c.tag[-1])
+                
+                toc_list.append({'level': tag_level,
+                    'id': elem_id,
+                    'name': text})
+
+                if self.use_anchors:
+                    self.add_anchor(c, elem_id)
+                if self.use_permalinks:
+                    self.add_permalink(c, elem_id)
+                
+        toc_list_nested = order_toc_list(toc_list)
+        self.build_toc_etree(div, toc_list_nested)
+        prettify = self.markdown.treeprocessors.get('prettify')
+        if prettify: prettify.run(div)
+        if not marker_found:
+            # serialize and attach to markdown instance.
+            toc = self.markdown.serializer(div)
+            for pp in self.markdown.postprocessors.values():
+                toc = pp.run(toc)
+            self.markdown.toc = toc
+
+
+class TocExtension(Extension):
+    
+    TreeProcessorClass = TocTreeprocessor
+    
+    def __init__(self, *args, **kwargs):
+        self.config = { 
+            "marker" : ["[TOC]", 
+                "Text to find and replace with Table of Contents - "
+                "Defaults to \"[TOC]\""],
+            "slugify" : [slugify,
+                "Function to generate anchors based on header text - "
+                "Defaults to the headerid ext's slugify function."],
+            "title" : [None,
+                "Title to insert into TOC <div> - "
+                "Defaults to None"],
+            "anchorlink" : [0,
+                "1 if header should be a self link - "
+                "Defaults to 0"],
+            "permalink" : [0,
+                "1 or link text if a Sphinx-style permalink should be added - "
+                "Defaults to 0"]
+        }
+
+        super(TocExtension, self).__init__(*args, **kwargs)
+
+    def extendMarkdown(self, md, md_globals):
+        tocext = self.TreeProcessorClass(md)
+        tocext.config = self.getConfigs()
+        # Headerid ext is set to '>prettify'. With this set to '_end',
+        # it should always come after headerid ext (and honor ids assinged 
+        # by the header id extension) if both are used. Same goes for 
+        # attr_list extension. This must come last because we don't want
+        # to redefine ids after toc is created. But we do want toc prettified.
+        md.treeprocessors.add("toc", tocext, "_end")
+
+
+def makeExtension(*args, **kwargs):
+    return TocExtension(*args, **kwargs)
index 3afcc337ff9c4783e172e3866e928d6709480655..64377cf3e237e5c9aa226f8bae38af083a1d9fe6 100644 (file)
-'''\r
-WikiLinks Extension for Python-Markdown\r
-======================================\r
-\r
-Converts [[WikiLinks]] to relative links.  Requires Python-Markdown 2.0+\r
-\r
-Basic usage:\r
-\r
-    >>> import markdown\r
-    >>> text = "Some text with a [[WikiLink]]."\r
-    >>> html = markdown.markdown(text, ['wikilinks'])\r
-    >>> print html\r
-    <p>Some text with a <a class="wikilink" href="/WikiLink/">WikiLink</a>.</p>\r
-\r
-Whitespace behavior:\r
-\r
-    >>> print markdown.markdown('[[ foo bar_baz ]]', ['wikilinks'])\r
-    <p><a class="wikilink" href="/foo_bar_baz/">foo bar_baz</a></p>\r
-    >>> print markdown.markdown('foo [[ ]] bar', ['wikilinks'])\r
-    <p>foo  bar</p>\r
-\r
-To define custom settings the simple way:\r
-\r
-    >>> print markdown.markdown(text, \r
-    ...     ['wikilinks(base_url=/wiki/,end_url=.html,html_class=foo)']\r
-    ... )\r
-    <p>Some text with a <a class="foo" href="/wiki/WikiLink.html">WikiLink</a>.</p>\r
-    \r
-Custom settings the complex way:\r
-\r
-    >>> md = markdown.Markdown(\r
-    ...     extensions = ['wikilinks'], \r
-    ...     extension_configs = {'wikilinks': [\r
-    ...                                 ('base_url', 'http://example.com/'), \r
-    ...                                 ('end_url', '.html'),\r
-    ...                                 ('html_class', '') ]},\r
-    ...     safe_mode = True)\r
-    >>> print md.convert(text)\r
-    <p>Some text with a <a href="http://example.com/WikiLink.html">WikiLink</a>.</p>\r
-\r
-Use MetaData with mdx_meta.py (Note the blank html_class in MetaData):\r
-\r
-    >>> text = """wiki_base_url: http://example.com/\r
-    ... wiki_end_url:   .html\r
-    ... wiki_html_class:\r
-    ...\r
-    ... Some text with a [[WikiLink]]."""\r
-    >>> md = markdown.Markdown(extensions=['meta', 'wikilinks'])\r
-    >>> print md.convert(text)\r
-    <p>Some text with a <a href="http://example.com/WikiLink.html">WikiLink</a>.</p>\r
-\r
-MetaData should not carry over to next document:\r
-\r
-    >>> print md.convert("No [[MetaData]] here.")\r
-    <p>No <a class="wikilink" href="/MetaData/">MetaData</a> here.</p>\r
-\r
-Define a custom URL builder:\r
-\r
-    >>> def my_url_builder(label, base, end):\r
-    ...     return '/bar/'\r
-    >>> md = markdown.Markdown(extensions=['wikilinks'], \r
-    ...         extension_configs={'wikilinks' : [('build_url', my_url_builder)]})\r
-    >>> print md.convert('[[foo]]')\r
-    <p><a class="wikilink" href="/bar/">foo</a></p>\r
-\r
-From the command line:\r
-\r
-    python markdown.py -x wikilinks(base_url=http://example.com/,end_url=.html,html_class=foo) src.txt\r
-\r
-By [Waylan Limberg](http://achinghead.com/).\r
-\r
-License: [BSD](http://www.opensource.org/licenses/bsd-license.php) \r
-\r
-Dependencies:\r
-* [Python 2.3+](http://python.org)\r
-* [Markdown 2.0+](http://packages.python.org/Markdown/)\r
-'''\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import Extension\r
-from ..inlinepatterns import Pattern\r
-from ..util import etree\r
-import re\r
-\r
-def build_url(label, base, end):\r
-    """ Build a url from the label, a base, and an end. """\r
-    clean_label = re.sub(r'([ ]+_)|(_[ ]+)|([ ]+)', '_', label)\r
-    return '%s%s%s'% (base, clean_label, end)\r
-\r
-\r
-class WikiLinkExtension(Extension):\r
-    def __init__(self, configs):\r
-        # set extension defaults\r
-        self.config = {\r
-                        'base_url' : ['/', 'String to append to beginning or URL.'],\r
-                        'end_url' : ['/', 'String to append to end of URL.'],\r
-                        'html_class' : ['wikilink', 'CSS hook. Leave blank for none.'],\r
-                        'build_url' : [build_url, 'Callable formats URL from label.'],\r
-        }\r
-        configs = dict(configs) or {}\r
-        # Override defaults with user settings\r
-        for key, value in configs.items():\r
-            self.setConfig(key, value)\r
-        \r
-    def extendMarkdown(self, md, md_globals):\r
-        self.md = md\r
-    \r
-        # append to end of inline patterns\r
-        WIKILINK_RE = r'\[\[([\w0-9_ -]+)\]\]'\r
-        wikilinkPattern = WikiLinks(WIKILINK_RE, self.getConfigs())\r
-        wikilinkPattern.md = md\r
-        md.inlinePatterns.add('wikilink', wikilinkPattern, "<not_strong")\r
-\r
-\r
-class WikiLinks(Pattern):\r
-    def __init__(self, pattern, config):\r
-        super(WikiLinks, self).__init__(pattern)\r
-        self.config = config\r
-  \r
-    def handleMatch(self, m):\r
-        if m.group(2).strip():\r
-            base_url, end_url, html_class = self._getMeta()\r
-            label = m.group(2).strip()\r
-            url = self.config['build_url'](label, base_url, end_url)\r
-            a = etree.Element('a')\r
-            a.text = label \r
-            a.set('href', url)\r
-            if html_class:\r
-                a.set('class', html_class)\r
-        else:\r
-            a = ''\r
-        return a\r
-\r
-    def _getMeta(self):\r
-        """ Return meta data or config data. """\r
-        base_url = self.config['base_url']\r
-        end_url = self.config['end_url']\r
-        html_class = self.config['html_class']\r
-        if hasattr(self.md, 'Meta'):\r
-            if 'wiki_base_url' in self.md.Meta:\r
-                base_url = self.md.Meta['wiki_base_url'][0]\r
-            if 'wiki_end_url' in self.md.Meta:\r
-                end_url = self.md.Meta['wiki_end_url'][0]\r
-            if 'wiki_html_class' in self.md.Meta:\r
-                html_class = self.md.Meta['wiki_html_class'][0]\r
-        return base_url, end_url, html_class\r
-    \r
-\r
-def makeExtension(configs=None) :\r
-    return WikiLinkExtension(configs=configs)\r
+'''
+WikiLinks Extension for Python-Markdown
+======================================
+
+Converts [[WikiLinks]] to relative links.
+
+See <https://pythonhosted.org/Markdown/extensions/wikilinks.html> 
+for documentation.
+
+Original code Copyright [Waylan Limberg](http://achinghead.com/).
+
+All changes Copyright The Python Markdown Project
+
+License: [BSD](http://www.opensource.org/licenses/bsd-license.php) 
+
+'''
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+from ..inlinepatterns import Pattern
+from ..util import etree
+import re
+
+def build_url(label, base, end):
+    """ Build a url from the label, a base, and an end. """
+    clean_label = re.sub(r'([ ]+_)|(_[ ]+)|([ ]+)', '_', label)
+    return '%s%s%s'% (base, clean_label, end)
+
+
+class WikiLinkExtension(Extension):
+
+    def __init__ (self, *args, **kwargs):
+        self.config = {
+            'base_url' : ['/', 'String to append to beginning or URL.'],
+            'end_url' : ['/', 'String to append to end of URL.'],
+            'html_class' : ['wikilink', 'CSS hook. Leave blank for none.'],
+            'build_url' : [build_url, 'Callable formats URL from label.'],
+        }
+        
+        super(WikiLinkExtension, self).__init__(*args, **kwargs)
+    
+    def extendMarkdown(self, md, md_globals):
+        self.md = md
+    
+        # append to end of inline patterns
+        WIKILINK_RE = r'\[\[([\w0-9_ -]+)\]\]'
+        wikilinkPattern = WikiLinks(WIKILINK_RE, self.getConfigs())
+        wikilinkPattern.md = md
+        md.inlinePatterns.add('wikilink', wikilinkPattern, "<not_strong")
+
+
+class WikiLinks(Pattern):
+    def __init__(self, pattern, config):
+        super(WikiLinks, self).__init__(pattern)
+        self.config = config
+  
+    def handleMatch(self, m):
+        if m.group(2).strip():
+            base_url, end_url, html_class = self._getMeta()
+            label = m.group(2).strip()
+            url = self.config['build_url'](label, base_url, end_url)
+            a = etree.Element('a')
+            a.text = label 
+            a.set('href', url)
+            if html_class:
+                a.set('class', html_class)
+        else:
+            a = ''
+        return a
+
+    def _getMeta(self):
+        """ Return meta data or config data. """
+        base_url = self.config['base_url']
+        end_url = self.config['end_url']
+        html_class = self.config['html_class']
+        if hasattr(self.md, 'Meta'):
+            if 'wiki_base_url' in self.md.Meta:
+                base_url = self.md.Meta['wiki_base_url'][0]
+            if 'wiki_end_url' in self.md.Meta:
+                end_url = self.md.Meta['wiki_end_url'][0]
+            if 'wiki_html_class' in self.md.Meta:
+                html_class = self.md.Meta['wiki_html_class'][0]
+        return base_url, end_url, html_class
+    
+
+def makeExtension(*args, **kwargs) :
+    return WikiLinkExtension(*args, **kwargs)
index a4c87bd06f4d87ccc1fc13101002162e99b50bf2..eaf4040a8e0772462eb5e08f149efb384adb50c7 100644 (file)
-"""\r
-INLINE PATTERNS\r
-=============================================================================\r
-\r
-Inline patterns such as *emphasis* are handled by means of auxiliary\r
-objects, one per pattern.  Pattern objects must be instances of classes\r
-that extend markdown.Pattern.  Each pattern object uses a single regular\r
-expression and needs support the following methods:\r
-\r
-    pattern.getCompiledRegExp() # returns a regular expression\r
-\r
-    pattern.handleMatch(m) # takes a match object and returns\r
-                           # an ElementTree element or just plain text\r
-\r
-All of python markdown's built-in patterns subclass from Pattern,\r
-but you can add additional patterns that don't.\r
-\r
-Also note that all the regular expressions used by inline must\r
-capture the whole block.  For this reason, they all start with\r
-'^(.*)' and end with '(.*)!'.  In case with built-in expression\r
-Pattern takes care of adding the "^(.*)" and "(.*)!".\r
-\r
-Finally, the order in which regular expressions are applied is very\r
-important - e.g. if we first replace http://.../ links with <a> tags\r
-and _then_ try to replace inline html, we would end up with a mess.\r
-So, we apply the expressions in the following order:\r
-\r
-* escape and backticks have to go before everything else, so\r
-  that we can preempt any markdown patterns by escaping them.\r
-\r
-* then we handle auto-links (must be done before inline html)\r
-\r
-* then we handle inline HTML.  At this point we will simply\r
-  replace all inline HTML strings with a placeholder and add\r
-  the actual HTML to a hash.\r
-\r
-* then inline images (must be done before links)\r
-\r
-* then bracketed links, first regular then reference-style\r
-\r
-* finally we apply strong and emphasis\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import util\r
-from . import odict\r
-import re\r
-try:\r
-    from urllib.parse import urlparse, urlunparse\r
-except ImportError:\r
-    from urlparse import urlparse, urlunparse\r
-try:\r
-    from html import entities\r
-except ImportError:\r
-    import htmlentitydefs as entities\r
-\r
-\r
-def build_inlinepatterns(md_instance, **kwargs):\r
-    """ Build the default set of inline patterns for Markdown. """\r
-    inlinePatterns = odict.OrderedDict()\r
-    inlinePatterns["backtick"] = BacktickPattern(BACKTICK_RE)\r
-    inlinePatterns["escape"] = EscapePattern(ESCAPE_RE, md_instance)\r
-    inlinePatterns["reference"] = ReferencePattern(REFERENCE_RE, md_instance)\r
-    inlinePatterns["link"] = LinkPattern(LINK_RE, md_instance)\r
-    inlinePatterns["image_link"] = ImagePattern(IMAGE_LINK_RE, md_instance)\r
-    inlinePatterns["image_reference"] = \\r
-            ImageReferencePattern(IMAGE_REFERENCE_RE, md_instance)\r
-    inlinePatterns["short_reference"] = \\r
-            ReferencePattern(SHORT_REF_RE, md_instance)\r
-    inlinePatterns["autolink"] = AutolinkPattern(AUTOLINK_RE, md_instance)\r
-    inlinePatterns["automail"] = AutomailPattern(AUTOMAIL_RE, md_instance)\r
-    inlinePatterns["linebreak"] = SubstituteTagPattern(LINE_BREAK_RE, 'br')\r
-    if md_instance.safeMode != 'escape':\r
-        inlinePatterns["html"] = HtmlPattern(HTML_RE, md_instance)\r
-    inlinePatterns["entity"] = HtmlPattern(ENTITY_RE, md_instance)\r
-    inlinePatterns["not_strong"] = SimpleTextPattern(NOT_STRONG_RE)\r
-    inlinePatterns["strong_em"] = DoubleTagPattern(STRONG_EM_RE, 'strong,em')\r
-    inlinePatterns["strong"] = SimpleTagPattern(STRONG_RE, 'strong')\r
-    inlinePatterns["emphasis"] = SimpleTagPattern(EMPHASIS_RE, 'em')\r
-    if md_instance.smart_emphasis:\r
-        inlinePatterns["emphasis2"] = SimpleTagPattern(SMART_EMPHASIS_RE, 'em')\r
-    else:\r
-        inlinePatterns["emphasis2"] = SimpleTagPattern(EMPHASIS_2_RE, 'em')\r
-    return inlinePatterns\r
-\r
-"""\r
-The actual regular expressions for patterns\r
------------------------------------------------------------------------------\r
-"""\r
-\r
-NOBRACKET = r'[^\]\[]*'\r
-BRK = ( r'\[('\r
-        + (NOBRACKET + r'(\[')*6\r
-        + (NOBRACKET+ r'\])*')*6\r
-        + NOBRACKET + r')\]' )\r
-NOIMG = r'(?<!\!)'\r
-\r
-BACKTICK_RE = r'(?<!\\)(`+)(.+?)(?<!`)\2(?!`)' # `e=f()` or ``e=f("`")``\r
-ESCAPE_RE = r'\\(.)'                             # \<\r
-EMPHASIS_RE = r'(\*)([^\*]+)\2'                    # *emphasis*\r
-STRONG_RE = r'(\*{2}|_{2})(.+?)\2'                      # **strong**\r
-STRONG_EM_RE = r'(\*{3}|_{3})(.+?)\2'            # ***strong***\r
-SMART_EMPHASIS_RE = r'(?<!\w)(_)(?!_)(.+?)(?<!_)\2(?!\w)'  # _smart_emphasis_\r
-EMPHASIS_2_RE = r'(_)(.+?)\2'                 # _emphasis_\r
-LINK_RE = NOIMG + BRK + \\r
-r'''\(\s*(<.*?>|((?:(?:\(.*?\))|[^\(\)]))*?)\s*((['"])(.*?)\12\s*)?\)'''\r
-# [text](url) or [text](<url>) or [text](url "title")\r
-\r
-IMAGE_LINK_RE = r'\!' + BRK + r'\s*\((<.*?>|([^")]+"[^"]*"|[^\)]*))\)'\r
-# ![alttxt](http://x.com/) or ![alttxt](<http://x.com/>)\r
-REFERENCE_RE = NOIMG + BRK+ r'\s?\[([^\]]*)\]'           # [Google][3]\r
-SHORT_REF_RE = NOIMG + r'\[([^\]]+)\]'                   # [Google]\r
-IMAGE_REFERENCE_RE = r'\!' + BRK + '\s?\[([^\]]*)\]' # ![alt text][2]\r
-NOT_STRONG_RE = r'((^| )(\*|_)( |$))'                        # stand-alone * or _\r
-AUTOLINK_RE = r'<((?:[Ff]|[Hh][Tt])[Tt][Pp][Ss]?://[^>]*)>' # <http://www.123.com>\r
-AUTOMAIL_RE = r'<([^> \!]*@[^> ]*)>'               # <me@example.com>\r
-\r
-HTML_RE = r'(\<([a-zA-Z/][^\>]*?|\!--.*?--)\>)'               # <...>\r
-ENTITY_RE = r'(&[\#a-zA-Z0-9]*;)'               # &amp;\r
-LINE_BREAK_RE = r'  \n'                     # two spaces at end of line\r
-\r
-\r
-def dequote(string):\r
-    """Remove quotes from around a string."""\r
-    if ( ( string.startswith('"') and string.endswith('"'))\r
-         or (string.startswith("'") and string.endswith("'")) ):\r
-        return string[1:-1]\r
-    else:\r
-        return string\r
-\r
-ATTR_RE = re.compile("\{@([^\}]*)=([^\}]*)}") # {@id=123}\r
-\r
-def handleAttributes(text, parent):\r
-    """Set values of an element based on attribute definitions ({@id=123})."""\r
-    def attributeCallback(match):\r
-        parent.set(match.group(1), match.group(2).replace('\n', ' '))\r
-    return ATTR_RE.sub(attributeCallback, text)\r
-\r
-\r
-"""\r
-The pattern classes\r
------------------------------------------------------------------------------\r
-"""\r
-\r
-class Pattern(object):\r
-    """Base class that inline patterns subclass. """\r
-\r
-    def __init__(self, pattern, markdown_instance=None):\r
-        """\r
-        Create an instant of an inline pattern.\r
-\r
-        Keyword arguments:\r
-\r
-        * pattern: A regular expression that matches a pattern\r
-\r
-        """\r
-        self.pattern = pattern\r
-        self.compiled_re = re.compile("^(.*?)%s(.*?)$" % pattern, \r
-                                      re.DOTALL | re.UNICODE)\r
-\r
-        # Api for Markdown to pass safe_mode into instance\r
-        self.safe_mode = False\r
-        if markdown_instance:\r
-            self.markdown = markdown_instance\r
-\r
-    def getCompiledRegExp(self):\r
-        """ Return a compiled regular expression. """\r
-        return self.compiled_re\r
-\r
-    def handleMatch(self, m):\r
-        """Return a ElementTree element from the given match.\r
-\r
-        Subclasses should override this method.\r
-\r
-        Keyword arguments:\r
-\r
-        * m: A re match object containing a match of the pattern.\r
-\r
-        """\r
-        pass\r
-\r
-    def type(self):\r
-        """ Return class name, to define pattern type """\r
-        return self.__class__.__name__\r
-\r
-    def unescape(self, text):\r
-        """ Return unescaped text given text with an inline placeholder. """\r
-        try:\r
-            stash = self.markdown.treeprocessors['inline'].stashed_nodes\r
-        except KeyError:\r
-            return text\r
-        def itertext(el):\r
-            ' Reimplement Element.itertext for older python versions '\r
-            tag = el.tag\r
-            if not isinstance(tag, util.string_type) and tag is not None:\r
-                return\r
-            if el.text:\r
-                yield el.text\r
-            for e in el:\r
-                for s in itertext(e):\r
-                    yield s\r
-                if e.tail:\r
-                    yield e.tail\r
-        def get_stash(m):\r
-            id = m.group(1)\r
-            if id in stash:\r
-                value = stash.get(id)\r
-                if isinstance(value, util.string_type):\r
-                    return value\r
-                else:\r
-                    # An etree Element - return text content only\r
-                    return ''.join(itertext(value)) \r
-        return util.INLINE_PLACEHOLDER_RE.sub(get_stash, text)\r
-\r
-\r
-class SimpleTextPattern(Pattern):\r
-    """ Return a simple text of group(2) of a Pattern. """\r
-    def handleMatch(self, m):\r
-        text = m.group(2)\r
-        if text == util.INLINE_PLACEHOLDER_PREFIX:\r
-            return None\r
-        return text\r
-\r
-\r
-class EscapePattern(Pattern):\r
-    """ Return an escaped character. """\r
-\r
-    def handleMatch(self, m):\r
-        char = m.group(2)\r
-        if char in self.markdown.ESCAPED_CHARS:\r
-            return '%s%s%s' % (util.STX, ord(char), util.ETX)\r
-        else:\r
-            return None \r
-\r
-\r
-class SimpleTagPattern(Pattern):\r
-    """\r
-    Return element of type `tag` with a text attribute of group(3)\r
-    of a Pattern.\r
-\r
-    """\r
-    def __init__ (self, pattern, tag):\r
-        Pattern.__init__(self, pattern)\r
-        self.tag = tag\r
-\r
-    def handleMatch(self, m):\r
-        el = util.etree.Element(self.tag)\r
-        el.text = m.group(3)\r
-        return el\r
-\r
-\r
-class SubstituteTagPattern(SimpleTagPattern):\r
-    """ Return an element of type `tag` with no children. """\r
-    def handleMatch (self, m):\r
-        return util.etree.Element(self.tag)\r
-\r
-\r
-class BacktickPattern(Pattern):\r
-    """ Return a `<code>` element containing the matching text. """\r
-    def __init__ (self, pattern):\r
-        Pattern.__init__(self, pattern)\r
-        self.tag = "code"\r
-\r
-    def handleMatch(self, m):\r
-        el = util.etree.Element(self.tag)\r
-        el.text = util.AtomicString(m.group(3).strip())\r
-        return el\r
-\r
-\r
-class DoubleTagPattern(SimpleTagPattern):\r
-    """Return a ElementTree element nested in tag2 nested in tag1.\r
-\r
-    Useful for strong emphasis etc.\r
-\r
-    """\r
-    def handleMatch(self, m):\r
-        tag1, tag2 = self.tag.split(",")\r
-        el1 = util.etree.Element(tag1)\r
-        el2 = util.etree.SubElement(el1, tag2)\r
-        el2.text = m.group(3)\r
-        return el1\r
-\r
-\r
-class HtmlPattern(Pattern):\r
-    """ Store raw inline html and return a placeholder. """\r
-    def handleMatch (self, m):\r
-        rawhtml = self.unescape(m.group(2))\r
-        place_holder = self.markdown.htmlStash.store(rawhtml)\r
-        return place_holder\r
-\r
-    def unescape(self, text):\r
-        """ Return unescaped text given text with an inline placeholder. """\r
-        try:\r
-            stash = self.markdown.treeprocessors['inline'].stashed_nodes\r
-        except KeyError:\r
-            return text\r
-        def get_stash(m):\r
-            id = m.group(1)\r
-            value = stash.get(id)\r
-            if value is not None:\r
-                try:\r
-                    return self.markdown.serializer(value)\r
-                except:\r
-                    return '\%s' % value\r
-            \r
-        return util.INLINE_PLACEHOLDER_RE.sub(get_stash, text)\r
-\r
-\r
-class LinkPattern(Pattern):\r
-    """ Return a link element from the given match. """\r
-    def handleMatch(self, m):\r
-        el = util.etree.Element("a")\r
-        el.text = m.group(2)\r
-        title = m.group(13)\r
-        href = m.group(9)\r
-\r
-        if href:\r
-            if href[0] == "<":\r
-                href = href[1:-1]\r
-            el.set("href", self.sanitize_url(self.unescape(href.strip())))\r
-        else:\r
-            el.set("href", "")\r
-\r
-        if title:\r
-            title = dequote(self.unescape(title)) \r
-            el.set("title", title)\r
-        return el\r
-\r
-    def sanitize_url(self, url):\r
-        """\r
-        Sanitize a url against xss attacks in "safe_mode".\r
-\r
-        Rather than specifically blacklisting `javascript:alert("XSS")` and all\r
-        its aliases (see <http://ha.ckers.org/xss.html>), we whitelist known\r
-        safe url formats. Most urls contain a network location, however some\r
-        are known not to (i.e.: mailto links). Script urls do not contain a\r
-        location. Additionally, for `javascript:...`, the scheme would be\r
-        "javascript" but some aliases will appear to `urlparse()` to have no\r
-        scheme. On top of that relative links (i.e.: "foo/bar.html") have no\r
-        scheme. Therefore we must check "path", "parameters", "query" and\r
-        "fragment" for any literal colons. We don't check "scheme" for colons\r
-        because it *should* never have any and "netloc" must allow the form:\r
-        `username:password@host:port`.\r
-\r
-        """\r
-        if not self.markdown.safeMode:\r
-            # Return immediately bipassing parsing.\r
-            return url\r
-        \r
-        try:\r
-            scheme, netloc, path, params, query, fragment = url = urlparse(url)\r
-        except ValueError:\r
-            # Bad url - so bad it couldn't be parsed.\r
-            return ''\r
-        \r
-        locless_schemes = ['', 'mailto', 'news']\r
-        allowed_schemes = locless_schemes + ['http', 'https', 'ftp', 'ftps']\r
-        if scheme not in allowed_schemes:\r
-            # Not a known (allowed) scheme. Not safe.\r
-            return ''\r
-            \r
-        if netloc == '' and scheme not in locless_schemes:\r
-            # This should not happen. Treat as suspect.\r
-            return ''\r
-\r
-        for part in url[2:]:\r
-            if ":" in part:\r
-                # A colon in "path", "parameters", "query" or "fragment" is suspect.\r
-                return ''\r
-\r
-        # Url passes all tests. Return url as-is.\r
-        return urlunparse(url)\r
-\r
-class ImagePattern(LinkPattern):\r
-    """ Return a img element from the given match. """\r
-    def handleMatch(self, m):\r
-        el = util.etree.Element("img")\r
-        src_parts = m.group(9).split()\r
-        if src_parts:\r
-            src = src_parts[0]\r
-            if src[0] == "<" and src[-1] == ">":\r
-                src = src[1:-1]\r
-            el.set('src', self.sanitize_url(self.unescape(src)))\r
-        else:\r
-            el.set('src', "")\r
-        if len(src_parts) > 1:\r
-            el.set('title', dequote(self.unescape(" ".join(src_parts[1:]))))\r
-\r
-        if self.markdown.enable_attributes:\r
-            truealt = handleAttributes(m.group(2), el)\r
-        else:\r
-            truealt = m.group(2)\r
-\r
-        el.set('alt', self.unescape(truealt))\r
-        return el\r
-\r
-class ReferencePattern(LinkPattern):\r
-    """ Match to a stored reference and return link element. """\r
-\r
-    NEWLINE_CLEANUP_RE = re.compile(r'[ ]?\n', re.MULTILINE)\r
-\r
-    def handleMatch(self, m):\r
-        try:\r
-            id = m.group(9).lower()\r
-        except IndexError:\r
-            id = None\r
-        if not id:\r
-            # if we got something like "[Google][]" or "[Goggle]"\r
-            # we'll use "google" as the id\r
-            id = m.group(2).lower()\r
-\r
-        # Clean up linebreaks in id\r
-        id = self.NEWLINE_CLEANUP_RE.sub(' ', id)\r
-        if not id in self.markdown.references: # ignore undefined refs\r
-            return None\r
-        href, title = self.markdown.references[id]\r
-\r
-        text = m.group(2)\r
-        return self.makeTag(href, title, text)\r
-\r
-    def makeTag(self, href, title, text):\r
-        el = util.etree.Element('a')\r
-\r
-        el.set('href', self.sanitize_url(href))\r
-        if title:\r
-            el.set('title', title)\r
-\r
-        el.text = text\r
-        return el\r
-\r
-\r
-class ImageReferencePattern(ReferencePattern):\r
-    """ Match to a stored reference and return img element. """\r
-    def makeTag(self, href, title, text):\r
-        el = util.etree.Element("img")\r
-        el.set("src", self.sanitize_url(href))\r
-        if title:\r
-            el.set("title", title)\r
-\r
-        if self.markdown.enable_attributes:\r
-            text = handleAttributes(text, el)\r
-\r
-        el.set("alt", self.unescape(text))\r
-        return el\r
-\r
-\r
-class AutolinkPattern(Pattern):\r
-    """ Return a link Element given an autolink (`<http://example/com>`). """\r
-    def handleMatch(self, m):\r
-        el = util.etree.Element("a")\r
-        el.set('href', self.unescape(m.group(2)))\r
-        el.text = util.AtomicString(m.group(2))\r
-        return el\r
-\r
-class AutomailPattern(Pattern):\r
-    """\r
-    Return a mailto link Element given an automail link (`<foo@example.com>`).\r
-    """\r
-    def handleMatch(self, m):\r
-        el = util.etree.Element('a')\r
-        email = self.unescape(m.group(2))\r
-        if email.startswith("mailto:"):\r
-            email = email[len("mailto:"):]\r
-\r
-        def codepoint2name(code):\r
-            """Return entity definition by code, or the code if not defined."""\r
-            entity = entities.codepoint2name.get(code)\r
-            if entity:\r
-                return "%s%s;" % (util.AMP_SUBSTITUTE, entity)\r
-            else:\r
-                return "%s#%d;" % (util.AMP_SUBSTITUTE, code)\r
-\r
-        letters = [codepoint2name(ord(letter)) for letter in email]\r
-        el.text = util.AtomicString(''.join(letters))\r
-\r
-        mailto = "mailto:" + email\r
-        mailto = "".join([util.AMP_SUBSTITUTE + '#%d;' %\r
-                          ord(letter) for letter in mailto])\r
-        el.set('href', mailto)\r
-        return el\r
-\r
+"""
+INLINE PATTERNS
+=============================================================================
+
+Inline patterns such as *emphasis* are handled by means of auxiliary
+objects, one per pattern.  Pattern objects must be instances of classes
+that extend markdown.Pattern.  Each pattern object uses a single regular
+expression and needs support the following methods:
+
+    pattern.getCompiledRegExp() # returns a regular expression
+
+    pattern.handleMatch(m) # takes a match object and returns
+                           # an ElementTree element or just plain text
+
+All of python markdown's built-in patterns subclass from Pattern,
+but you can add additional patterns that don't.
+
+Also note that all the regular expressions used by inline must
+capture the whole block.  For this reason, they all start with
+'^(.*)' and end with '(.*)!'.  In case with built-in expression
+Pattern takes care of adding the "^(.*)" and "(.*)!".
+
+Finally, the order in which regular expressions are applied is very
+important - e.g. if we first replace http://.../ links with <a> tags
+and _then_ try to replace inline html, we would end up with a mess.
+So, we apply the expressions in the following order:
+
+* escape and backticks have to go before everything else, so
+  that we can preempt any markdown patterns by escaping them.
+
+* then we handle auto-links (must be done before inline html)
+
+* then we handle inline HTML.  At this point we will simply
+  replace all inline HTML strings with a placeholder and add
+  the actual HTML to a hash.
+
+* then inline images (must be done before links)
+
+* then bracketed links, first regular then reference-style
+
+* finally we apply strong and emphasis
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import util
+from . import odict
+import re
+try: #pragma: no cover
+    from urllib.parse import urlparse, urlunparse
+except ImportError: #pragma: no cover
+    from urlparse import urlparse, urlunparse
+try: #pragma: no cover
+    from html import entities
+except ImportError: #pragma: no cover
+    import htmlentitydefs as entities
+
+
+def build_inlinepatterns(md_instance, **kwargs):
+    """ Build the default set of inline patterns for Markdown. """
+    inlinePatterns = odict.OrderedDict()
+    inlinePatterns["backtick"] = BacktickPattern(BACKTICK_RE)
+    inlinePatterns["escape"] = EscapePattern(ESCAPE_RE, md_instance)
+    inlinePatterns["reference"] = ReferencePattern(REFERENCE_RE, md_instance)
+    inlinePatterns["link"] = LinkPattern(LINK_RE, md_instance)
+    inlinePatterns["image_link"] = ImagePattern(IMAGE_LINK_RE, md_instance)
+    inlinePatterns["image_reference"] = \
+            ImageReferencePattern(IMAGE_REFERENCE_RE, md_instance)
+    inlinePatterns["short_reference"] = \
+            ReferencePattern(SHORT_REF_RE, md_instance)
+    inlinePatterns["autolink"] = AutolinkPattern(AUTOLINK_RE, md_instance)
+    inlinePatterns["automail"] = AutomailPattern(AUTOMAIL_RE, md_instance)
+    inlinePatterns["linebreak"] = SubstituteTagPattern(LINE_BREAK_RE, 'br')
+    if md_instance.safeMode != 'escape':
+        inlinePatterns["html"] = HtmlPattern(HTML_RE, md_instance)
+    inlinePatterns["entity"] = HtmlPattern(ENTITY_RE, md_instance)
+    inlinePatterns["not_strong"] = SimpleTextPattern(NOT_STRONG_RE)
+    inlinePatterns["strong_em"] = DoubleTagPattern(STRONG_EM_RE, 'strong,em')
+    inlinePatterns["strong"] = SimpleTagPattern(STRONG_RE, 'strong')
+    inlinePatterns["emphasis"] = SimpleTagPattern(EMPHASIS_RE, 'em')
+    if md_instance.smart_emphasis:
+        inlinePatterns["emphasis2"] = SimpleTagPattern(SMART_EMPHASIS_RE, 'em')
+    else:
+        inlinePatterns["emphasis2"] = SimpleTagPattern(EMPHASIS_2_RE, 'em')
+    return inlinePatterns
+
+"""
+The actual regular expressions for patterns
+-----------------------------------------------------------------------------
+"""
+
+NOBRACKET = r'[^\]\[]*'
+BRK = ( r'\[('
+        + (NOBRACKET + r'(\[')*6
+        + (NOBRACKET+ r'\])*')*6
+        + NOBRACKET + r')\]' )
+NOIMG = r'(?<!\!)'
+
+BACKTICK_RE = r'(?<!\\)(`+)(.+?)(?<!`)\2(?!`)' # `e=f()` or ``e=f("`")``
+ESCAPE_RE = r'\\(.)'                             # \<
+EMPHASIS_RE = r'(\*)([^\*]+)\2'                    # *emphasis*
+STRONG_RE = r'(\*{2}|_{2})(.+?)\2'                      # **strong**
+STRONG_EM_RE = r'(\*{3}|_{3})(.+?)\2'            # ***strong***
+SMART_EMPHASIS_RE = r'(?<!\w)(_)(?!_)(.+?)(?<!_)\2(?!\w)'  # _smart_emphasis_
+EMPHASIS_2_RE = r'(_)(.+?)\2'                 # _emphasis_
+LINK_RE = NOIMG + BRK + \
+r'''\(\s*(<.*?>|((?:(?:\(.*?\))|[^\(\)]))*?)\s*((['"])(.*?)\12\s*)?\)'''
+# [text](url) or [text](<url>) or [text](url "title")
+
+IMAGE_LINK_RE = r'\!' + BRK + r'\s*\((<.*?>|([^")]+"[^"]*"|[^\)]*))\)'
+# ![alttxt](http://x.com/) or ![alttxt](<http://x.com/>)
+REFERENCE_RE = NOIMG + BRK+ r'\s?\[([^\]]*)\]'           # [Google][3]
+SHORT_REF_RE = NOIMG + r'\[([^\]]+)\]'                   # [Google]
+IMAGE_REFERENCE_RE = r'\!' + BRK + '\s?\[([^\]]*)\]' # ![alt text][2]
+NOT_STRONG_RE = r'((^| )(\*|_)( |$))'                        # stand-alone * or _
+AUTOLINK_RE = r'<((?:[Ff]|[Hh][Tt])[Tt][Pp][Ss]?://[^>]*)>' # <http://www.123.com>
+AUTOMAIL_RE = r'<([^> \!]*@[^> ]*)>'               # <me@example.com>
+
+HTML_RE = r'(\<([a-zA-Z/][^\>]*?|\!--.*?--)\>)'               # <...>
+ENTITY_RE = r'(&[\#a-zA-Z0-9]*;)'               # &amp;
+LINE_BREAK_RE = r'  \n'                     # two spaces at end of line
+
+
+def dequote(string):
+    """Remove quotes from around a string."""
+    if ( ( string.startswith('"') and string.endswith('"'))
+         or (string.startswith("'") and string.endswith("'")) ):
+        return string[1:-1]
+    else:
+        return string
+
+ATTR_RE = re.compile("\{@([^\}]*)=([^\}]*)}") # {@id=123}
+
+def handleAttributes(text, parent):
+    """Set values of an element based on attribute definitions ({@id=123})."""
+    def attributeCallback(match):
+        parent.set(match.group(1), match.group(2).replace('\n', ' '))
+    return ATTR_RE.sub(attributeCallback, text)
+
+
+"""
+The pattern classes
+-----------------------------------------------------------------------------
+"""
+
+class Pattern(object):
+    """Base class that inline patterns subclass. """
+
+    def __init__(self, pattern, markdown_instance=None):
+        """
+        Create an instant of an inline pattern.
+
+        Keyword arguments:
+
+        * pattern: A regular expression that matches a pattern
+
+        """
+        self.pattern = pattern
+        self.compiled_re = re.compile("^(.*?)%s(.*?)$" % pattern, 
+                                      re.DOTALL | re.UNICODE)
+
+        # Api for Markdown to pass safe_mode into instance
+        self.safe_mode = False
+        if markdown_instance:
+            self.markdown = markdown_instance
+
+    def getCompiledRegExp(self):
+        """ Return a compiled regular expression. """
+        return self.compiled_re
+
+    def handleMatch(self, m):
+        """Return a ElementTree element from the given match.
+
+        Subclasses should override this method.
+
+        Keyword arguments:
+
+        * m: A re match object containing a match of the pattern.
+
+        """
+        pass #pragma: no cover
+
+    def type(self):
+        """ Return class name, to define pattern type """
+        return self.__class__.__name__
+
+    def unescape(self, text):
+        """ Return unescaped text given text with an inline placeholder. """
+        try:
+            stash = self.markdown.treeprocessors['inline'].stashed_nodes
+        except KeyError: #pragma: no cover
+            return text
+        def itertext(el): #pragma: no cover
+            ' Reimplement Element.itertext for older python versions '
+            tag = el.tag
+            if not isinstance(tag, util.string_type) and tag is not None:
+                return
+            if el.text:
+                yield el.text
+            for e in el:
+                for s in itertext(e):
+                    yield s
+                if e.tail:
+                    yield e.tail
+        def get_stash(m):
+            id = m.group(1)
+            if id in stash:
+                value = stash.get(id)
+                if isinstance(value, util.string_type):
+                    return value
+                else:
+                    # An etree Element - return text content only
+                    return ''.join(itertext(value)) 
+        return util.INLINE_PLACEHOLDER_RE.sub(get_stash, text)
+
+
+class SimpleTextPattern(Pattern):
+    """ Return a simple text of group(2) of a Pattern. """
+    def handleMatch(self, m):
+        return m.group(2)
+
+
+class EscapePattern(Pattern):
+    """ Return an escaped character. """
+
+    def handleMatch(self, m):
+        char = m.group(2)
+        if char in self.markdown.ESCAPED_CHARS:
+            return '%s%s%s' % (util.STX, ord(char), util.ETX)
+        else:
+            return None 
+
+
+class SimpleTagPattern(Pattern):
+    """
+    Return element of type `tag` with a text attribute of group(3)
+    of a Pattern.
+
+    """
+    def __init__ (self, pattern, tag):
+        Pattern.__init__(self, pattern)
+        self.tag = tag
+
+    def handleMatch(self, m):
+        el = util.etree.Element(self.tag)
+        el.text = m.group(3)
+        return el
+
+
+class SubstituteTagPattern(SimpleTagPattern):
+    """ Return an element of type `tag` with no children. """
+    def handleMatch (self, m):
+        return util.etree.Element(self.tag)
+
+
+class BacktickPattern(Pattern):
+    """ Return a `<code>` element containing the matching text. """
+    def __init__ (self, pattern):
+        Pattern.__init__(self, pattern)
+        self.tag = "code"
+
+    def handleMatch(self, m):
+        el = util.etree.Element(self.tag)
+        el.text = util.AtomicString(m.group(3).strip())
+        return el
+
+
+class DoubleTagPattern(SimpleTagPattern):
+    """Return a ElementTree element nested in tag2 nested in tag1.
+
+    Useful for strong emphasis etc.
+
+    """
+    def handleMatch(self, m):
+        tag1, tag2 = self.tag.split(",")
+        el1 = util.etree.Element(tag1)
+        el2 = util.etree.SubElement(el1, tag2)
+        el2.text = m.group(3)
+        return el1
+
+
+class HtmlPattern(Pattern):
+    """ Store raw inline html and return a placeholder. """
+    def handleMatch (self, m):
+        rawhtml = self.unescape(m.group(2))
+        place_holder = self.markdown.htmlStash.store(rawhtml)
+        return place_holder
+
+    def unescape(self, text):
+        """ Return unescaped text given text with an inline placeholder. """
+        try:
+            stash = self.markdown.treeprocessors['inline'].stashed_nodes
+        except KeyError: #pragma: no cover
+            return text
+        def get_stash(m):
+            id = m.group(1)
+            value = stash.get(id)
+            if value is not None:
+                try:
+                    return self.markdown.serializer(value)
+                except:
+                    return '\%s' % value
+            
+        return util.INLINE_PLACEHOLDER_RE.sub(get_stash, text)
+
+
+class LinkPattern(Pattern):
+    """ Return a link element from the given match. """
+    def handleMatch(self, m):
+        el = util.etree.Element("a")
+        el.text = m.group(2)
+        title = m.group(13)
+        href = m.group(9)
+
+        if href:
+            if href[0] == "<":
+                href = href[1:-1]
+            el.set("href", self.sanitize_url(self.unescape(href.strip())))
+        else:
+            el.set("href", "")
+
+        if title:
+            title = dequote(self.unescape(title)) 
+            el.set("title", title)
+        return el
+
+    def sanitize_url(self, url):
+        """
+        Sanitize a url against xss attacks in "safe_mode".
+
+        Rather than specifically blacklisting `javascript:alert("XSS")` and all
+        its aliases (see <http://ha.ckers.org/xss.html>), we whitelist known
+        safe url formats. Most urls contain a network location, however some
+        are known not to (i.e.: mailto links). Script urls do not contain a
+        location. Additionally, for `javascript:...`, the scheme would be
+        "javascript" but some aliases will appear to `urlparse()` to have no
+        scheme. On top of that relative links (i.e.: "foo/bar.html") have no
+        scheme. Therefore we must check "path", "parameters", "query" and
+        "fragment" for any literal colons. We don't check "scheme" for colons
+        because it *should* never have any and "netloc" must allow the form:
+        `username:password@host:port`.
+
+        """
+        if not self.markdown.safeMode:
+            # Return immediately bipassing parsing.
+            return url
+        
+        try:
+            scheme, netloc, path, params, query, fragment = url = urlparse(url)
+        except ValueError: #pragma: no cover
+            # Bad url - so bad it couldn't be parsed.
+            return ''
+        
+        locless_schemes = ['', 'mailto', 'news']
+        allowed_schemes = locless_schemes + ['http', 'https', 'ftp', 'ftps']
+        if scheme not in allowed_schemes:
+            # Not a known (allowed) scheme. Not safe.
+            return ''
+            
+        if netloc == '' and scheme not in locless_schemes: #pragma: no cover
+            # This should not happen. Treat as suspect.
+            return ''
+
+        for part in url[2:]:
+            if ":" in part:
+                # A colon in "path", "parameters", "query" or "fragment" is suspect.
+                return ''
+
+        # Url passes all tests. Return url as-is.
+        return urlunparse(url)
+
+class ImagePattern(LinkPattern):
+    """ Return a img element from the given match. """
+    def handleMatch(self, m):
+        el = util.etree.Element("img")
+        src_parts = m.group(9).split()
+        if src_parts:
+            src = src_parts[0]
+            if src[0] == "<" and src[-1] == ">":
+                src = src[1:-1]
+            el.set('src', self.sanitize_url(self.unescape(src)))
+        else:
+            el.set('src', "")
+        if len(src_parts) > 1:
+            el.set('title', dequote(self.unescape(" ".join(src_parts[1:]))))
+
+        if self.markdown.enable_attributes:
+            truealt = handleAttributes(m.group(2), el)
+        else:
+            truealt = m.group(2)
+
+        el.set('alt', self.unescape(truealt))
+        return el
+
+class ReferencePattern(LinkPattern):
+    """ Match to a stored reference and return link element. """
+
+    NEWLINE_CLEANUP_RE = re.compile(r'[ ]?\n', re.MULTILINE)
+
+    def handleMatch(self, m):
+        try:
+            id = m.group(9).lower()
+        except IndexError:
+            id = None
+        if not id:
+            # if we got something like "[Google][]" or "[Goggle]"
+            # we'll use "google" as the id
+            id = m.group(2).lower()
+
+        # Clean up linebreaks in id
+        id = self.NEWLINE_CLEANUP_RE.sub(' ', id)
+        if not id in self.markdown.references: # ignore undefined refs
+            return None
+        href, title = self.markdown.references[id]
+
+        text = m.group(2)
+        return self.makeTag(href, title, text)
+
+    def makeTag(self, href, title, text):
+        el = util.etree.Element('a')
+
+        el.set('href', self.sanitize_url(href))
+        if title:
+            el.set('title', title)
+
+        el.text = text
+        return el
+
+
+class ImageReferencePattern(ReferencePattern):
+    """ Match to a stored reference and return img element. """
+    def makeTag(self, href, title, text):
+        el = util.etree.Element("img")
+        el.set("src", self.sanitize_url(href))
+        if title:
+            el.set("title", title)
+
+        if self.markdown.enable_attributes:
+            text = handleAttributes(text, el)
+
+        el.set("alt", self.unescape(text))
+        return el
+
+
+class AutolinkPattern(Pattern):
+    """ Return a link Element given an autolink (`<http://example/com>`). """
+    def handleMatch(self, m):
+        el = util.etree.Element("a")
+        el.set('href', self.unescape(m.group(2)))
+        el.text = util.AtomicString(m.group(2))
+        return el
+
+class AutomailPattern(Pattern):
+    """
+    Return a mailto link Element given an automail link (`<foo@example.com>`).
+    """
+    def handleMatch(self, m):
+        el = util.etree.Element('a')
+        email = self.unescape(m.group(2))
+        if email.startswith("mailto:"):
+            email = email[len("mailto:"):]
+
+        def codepoint2name(code):
+            """Return entity definition by code, or the code if not defined."""
+            entity = entities.codepoint2name.get(code)
+            if entity:
+                return "%s%s;" % (util.AMP_SUBSTITUTE, entity)
+            else:
+                return "%s#%d;" % (util.AMP_SUBSTITUTE, code)
+
+        letters = [codepoint2name(ord(letter)) for letter in email]
+        el.text = util.AtomicString(''.join(letters))
+
+        mailto = "mailto:" + email
+        mailto = "".join([util.AMP_SUBSTITUTE + '#%d;' %
+                          ord(letter) for letter in mailto])
+        el.set('href', mailto)
+        return el
+
index a0b0635b02f8499ee449cf8539998a61a27e1f5c..b158e06a24a6e619a89a3e9111baf70d1c7cfef4 100644 (file)
-from __future__ import unicode_literals\r
-from __future__ import absolute_import\r
-from . import util\r
-\r
-from copy import deepcopy\r
-\r
-class OrderedDict(dict):\r
-    """\r
-    A dictionary that keeps its keys in the order in which they're inserted.\r
-    \r
-    Copied from Django's SortedDict with some modifications.\r
-\r
-    """\r
-    def __new__(cls, *args, **kwargs):\r
-        instance = super(OrderedDict, cls).__new__(cls, *args, **kwargs)\r
-        instance.keyOrder = []\r
-        return instance\r
-\r
-    def __init__(self, data=None):\r
-        if data is None or isinstance(data, dict):\r
-            data = data or []\r
-            super(OrderedDict, self).__init__(data)\r
-            self.keyOrder = list(data) if data else []\r
-        else:\r
-            super(OrderedDict, self).__init__()\r
-            super_set = super(OrderedDict, self).__setitem__\r
-            for key, value in data:\r
-                # Take the ordering from first key\r
-                if key not in self:\r
-                    self.keyOrder.append(key)\r
-                # But override with last value in data (dict() does this)\r
-                super_set(key, value)\r
-\r
-    def __deepcopy__(self, memo):\r
-        return self.__class__([(key, deepcopy(value, memo))\r
-                               for key, value in self.items()])\r
-\r
-    def __copy__(self):\r
-        # The Python's default copy implementation will alter the state\r
-        # of self. The reason for this seems complex but is likely related to\r
-        # subclassing dict.\r
-        return self.copy()\r
-\r
-    def __setitem__(self, key, value):\r
-        if key not in self:\r
-            self.keyOrder.append(key)\r
-        super(OrderedDict, self).__setitem__(key, value)\r
-\r
-    def __delitem__(self, key):\r
-        super(OrderedDict, self).__delitem__(key)\r
-        self.keyOrder.remove(key)\r
-\r
-    def __iter__(self):\r
-        return iter(self.keyOrder)\r
-\r
-    def __reversed__(self):\r
-        return reversed(self.keyOrder)\r
-\r
-    def pop(self, k, *args):\r
-        result = super(OrderedDict, self).pop(k, *args)\r
-        try:\r
-            self.keyOrder.remove(k)\r
-        except ValueError:\r
-            # Key wasn't in the dictionary in the first place. No problem.\r
-            pass\r
-        return result\r
-\r
-    def popitem(self):\r
-        result = super(OrderedDict, self).popitem()\r
-        self.keyOrder.remove(result[0])\r
-        return result\r
-\r
-    def _iteritems(self):\r
-        for key in self.keyOrder:\r
-            yield key, self[key]\r
-\r
-    def _iterkeys(self):\r
-        for key in self.keyOrder:\r
-            yield key\r
-\r
-    def _itervalues(self):\r
-        for key in self.keyOrder:\r
-            yield self[key]\r
-\r
-    if util.PY3:\r
-        items = _iteritems\r
-        keys = _iterkeys\r
-        values = _itervalues\r
-    else:\r
-        iteritems = _iteritems\r
-        iterkeys = _iterkeys\r
-        itervalues = _itervalues\r
-\r
-        def items(self):\r
-            return [(k, self[k]) for k in self.keyOrder]\r
-\r
-        def keys(self):\r
-            return self.keyOrder[:]\r
-\r
-        def values(self):\r
-            return [self[k] for k in self.keyOrder]\r
-\r
-    def update(self, dict_):\r
-        for k in dict_:\r
-            self[k] = dict_[k]\r
-\r
-    def setdefault(self, key, default):\r
-        if key not in self:\r
-            self.keyOrder.append(key)\r
-        return super(OrderedDict, self).setdefault(key, default)\r
-\r
-    def value_for_index(self, index):\r
-        """Returns the value of the item at the given zero-based index."""\r
-        return self[self.keyOrder[index]]\r
-\r
-    def insert(self, index, key, value):\r
-        """Inserts the key, value pair before the item with the given index."""\r
-        if key in self.keyOrder:\r
-            n = self.keyOrder.index(key)\r
-            del self.keyOrder[n]\r
-            if n < index:\r
-                index -= 1\r
-        self.keyOrder.insert(index, key)\r
-        super(OrderedDict, self).__setitem__(key, value)\r
-\r
-    def copy(self):\r
-        """Returns a copy of this object."""\r
-        # This way of initializing the copy means it works for subclasses, too.\r
-        return self.__class__(self)\r
-\r
-    def __repr__(self):\r
-        """\r
-        Replaces the normal dict.__repr__ with a version that returns the keys\r
-        in their Ordered order.\r
-        """\r
-        return '{%s}' % ', '.join(['%r: %r' % (k, v) for k, v in self._iteritems()])\r
-\r
-    def clear(self):\r
-        super(OrderedDict, self).clear()\r
-        self.keyOrder = []\r
-\r
-    def index(self, key):\r
-        """ Return the index of a given key. """\r
-        try:\r
-            return self.keyOrder.index(key)\r
-        except ValueError:\r
-            raise ValueError("Element '%s' was not found in OrderedDict" % key)\r
-\r
-    def index_for_location(self, location):\r
-        """ Return index or None for a given location. """\r
-        if location == '_begin':\r
-            i = 0\r
-        elif location == '_end':\r
-            i = None\r
-        elif location.startswith('<') or location.startswith('>'):\r
-            i = self.index(location[1:])\r
-            if location.startswith('>'):\r
-                if i >= len(self):\r
-                    # last item\r
-                    i = None\r
-                else:\r
-                    i += 1\r
-        else:\r
-            raise ValueError('Not a valid location: "%s". Location key '\r
-                             'must start with a ">" or "<".' % location)\r
-        return i\r
-\r
-    def add(self, key, value, location):\r
-        """ Insert by key location. """\r
-        i = self.index_for_location(location)\r
-        if i is not None:\r
-            self.insert(i, key, value)\r
-        else:\r
-            self.__setitem__(key, value)\r
-\r
-    def link(self, key, location):\r
-        """ Change location of an existing item. """\r
-        n = self.keyOrder.index(key)\r
-        del self.keyOrder[n]\r
-        try:\r
-            i = self.index_for_location(location)\r
-            if i is not None:\r
-                self.keyOrder.insert(i, key)\r
-            else:\r
-                self.keyOrder.append(key)\r
-        except Exception as e:\r
-            # restore to prevent data loss and reraise\r
-            self.keyOrder.insert(n, key)\r
-            raise e\r
+from __future__ import unicode_literals
+from __future__ import absolute_import
+from . import util
+
+from copy import deepcopy
+
+class OrderedDict(dict):
+    """
+    A dictionary that keeps its keys in the order in which they're inserted.
+    
+    Copied from Django's SortedDict with some modifications.
+
+    """
+    def __new__(cls, *args, **kwargs):
+        instance = super(OrderedDict, cls).__new__(cls, *args, **kwargs)
+        instance.keyOrder = []
+        return instance
+
+    def __init__(self, data=None):
+        if data is None or isinstance(data, dict):
+            data = data or []
+            super(OrderedDict, self).__init__(data)
+            self.keyOrder = list(data) if data else []
+        else:
+            super(OrderedDict, self).__init__()
+            super_set = super(OrderedDict, self).__setitem__
+            for key, value in data:
+                # Take the ordering from first key
+                if key not in self:
+                    self.keyOrder.append(key)
+                # But override with last value in data (dict() does this)
+                super_set(key, value)
+
+    def __deepcopy__(self, memo):
+        return self.__class__([(key, deepcopy(value, memo))
+                               for key, value in self.items()])
+
+    def __copy__(self):
+        # The Python's default copy implementation will alter the state
+        # of self. The reason for this seems complex but is likely related to
+        # subclassing dict.
+        return self.copy()
+
+    def __setitem__(self, key, value):
+        if key not in self:
+            self.keyOrder.append(key)
+        super(OrderedDict, self).__setitem__(key, value)
+
+    def __delitem__(self, key):
+        super(OrderedDict, self).__delitem__(key)
+        self.keyOrder.remove(key)
+
+    def __iter__(self):
+        return iter(self.keyOrder)
+
+    def __reversed__(self):
+        return reversed(self.keyOrder)
+
+    def pop(self, k, *args):
+        result = super(OrderedDict, self).pop(k, *args)
+        try:
+            self.keyOrder.remove(k)
+        except ValueError:
+            # Key wasn't in the dictionary in the first place. No problem.
+            pass
+        return result
+
+    def popitem(self):
+        result = super(OrderedDict, self).popitem()
+        self.keyOrder.remove(result[0])
+        return result
+
+    def _iteritems(self):
+        for key in self.keyOrder:
+            yield key, self[key]
+
+    def _iterkeys(self):
+        for key in self.keyOrder:
+            yield key
+
+    def _itervalues(self):
+        for key in self.keyOrder:
+            yield self[key]
+
+    if util.PY3: #pragma: no cover
+        items = _iteritems
+        keys = _iterkeys
+        values = _itervalues
+    else: #pragma: no cover
+        iteritems = _iteritems
+        iterkeys = _iterkeys
+        itervalues = _itervalues
+
+        def items(self):
+            return [(k, self[k]) for k in self.keyOrder]
+
+        def keys(self):
+            return self.keyOrder[:]
+
+        def values(self):
+            return [self[k] for k in self.keyOrder]
+
+    def update(self, dict_):
+        for k in dict_:
+            self[k] = dict_[k]
+
+    def setdefault(self, key, default):
+        if key not in self:
+            self.keyOrder.append(key)
+        return super(OrderedDict, self).setdefault(key, default)
+
+    def value_for_index(self, index):
+        """Returns the value of the item at the given zero-based index."""
+        return self[self.keyOrder[index]]
+
+    def insert(self, index, key, value):
+        """Inserts the key, value pair before the item with the given index."""
+        if key in self.keyOrder:
+            n = self.keyOrder.index(key)
+            del self.keyOrder[n]
+            if n < index:
+                index -= 1
+        self.keyOrder.insert(index, key)
+        super(OrderedDict, self).__setitem__(key, value)
+
+    def copy(self):
+        """Returns a copy of this object."""
+        # This way of initializing the copy means it works for subclasses, too.
+        return self.__class__(self)
+
+    def __repr__(self):
+        """
+        Replaces the normal dict.__repr__ with a version that returns the keys
+        in their Ordered order.
+        """
+        return '{%s}' % ', '.join(['%r: %r' % (k, v) for k, v in self._iteritems()])
+
+    def clear(self):
+        super(OrderedDict, self).clear()
+        self.keyOrder = []
+
+    def index(self, key):
+        """ Return the index of a given key. """
+        try:
+            return self.keyOrder.index(key)
+        except ValueError:
+            raise ValueError("Element '%s' was not found in OrderedDict" % key)
+
+    def index_for_location(self, location):
+        """ Return index or None for a given location. """
+        if location == '_begin':
+            i = 0
+        elif location == '_end':
+            i = None
+        elif location.startswith('<') or location.startswith('>'):
+            i = self.index(location[1:])
+            if location.startswith('>'):
+                if i >= len(self):
+                    # last item
+                    i = None
+                else:
+                    i += 1
+        else:
+            raise ValueError('Not a valid location: "%s". Location key '
+                             'must start with a ">" or "<".' % location)
+        return i
+
+    def add(self, key, value, location):
+        """ Insert by key location. """
+        i = self.index_for_location(location)
+        if i is not None:
+            self.insert(i, key, value)
+        else:
+            self.__setitem__(key, value)
+
+    def link(self, key, location):
+        """ Change location of an existing item. """
+        n = self.keyOrder.index(key)
+        del self.keyOrder[n]
+        try:
+            i = self.index_for_location(location)
+            if i is not None:
+                self.keyOrder.insert(i, key)
+            else:
+                self.keyOrder.append(key)
+        except Exception as e:
+            # restore to prevent data loss and reraise
+            self.keyOrder.insert(n, key)
+            raise e
index 0d20723b14c7b9b2db207f8eb4015253a7fd9c00..7b568adac55432fd7699abb4870ec65fac4b1e94 100644 (file)
-"""\r
-POST-PROCESSORS\r
-=============================================================================\r
-\r
-Markdown also allows post-processors, which are similar to preprocessors in\r
-that they need to implement a "run" method. However, they are run after core\r
-processing.\r
-\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import util\r
-from . import odict\r
-import re\r
-\r
-\r
-def build_postprocessors(md_instance, **kwargs):\r
-    """ Build the default postprocessors for Markdown. """\r
-    postprocessors = odict.OrderedDict()\r
-    postprocessors["raw_html"] = RawHtmlPostprocessor(md_instance)\r
-    postprocessors["amp_substitute"] = AndSubstitutePostprocessor()\r
-    postprocessors["unescape"] = UnescapePostprocessor()\r
-    return postprocessors\r
-\r
-\r
-class Postprocessor(util.Processor):\r
-    """\r
-    Postprocessors are run after the ElementTree it converted back into text.\r
-\r
-    Each Postprocessor implements a "run" method that takes a pointer to a\r
-    text string, modifies it as necessary and returns a text string.\r
-\r
-    Postprocessors must extend markdown.Postprocessor.\r
-\r
-    """\r
-\r
-    def run(self, text):\r
-        """\r
-        Subclasses of Postprocessor should implement a `run` method, which\r
-        takes the html document as a single text string and returns a\r
-        (possibly modified) string.\r
-\r
-        """\r
-        pass\r
-\r
-\r
-class RawHtmlPostprocessor(Postprocessor):\r
-    """ Restore raw html to the document. """\r
-\r
-    def run(self, text):\r
-        """ Iterate over html stash and restore "safe" html. """\r
-        for i in range(self.markdown.htmlStash.html_counter):\r
-            html, safe  = self.markdown.htmlStash.rawHtmlBlocks[i]\r
-            if self.markdown.safeMode and not safe:\r
-                if str(self.markdown.safeMode).lower() == 'escape':\r
-                    html = self.escape(html)\r
-                elif str(self.markdown.safeMode).lower() == 'remove':\r
-                    html = ''\r
-                else:\r
-                    html = self.markdown.html_replacement_text\r
-            if self.isblocklevel(html) and (safe or not self.markdown.safeMode):\r
-                text = text.replace("<p>%s</p>" % \r
-                            (self.markdown.htmlStash.get_placeholder(i)),\r
-                            html + "\n")\r
-            text =  text.replace(self.markdown.htmlStash.get_placeholder(i), \r
-                                 html)\r
-        return text\r
-\r
-    def escape(self, html):\r
-        """ Basic html escaping """\r
-        html = html.replace('&', '&amp;')\r
-        html = html.replace('<', '&lt;')\r
-        html = html.replace('>', '&gt;')\r
-        return html.replace('"', '&quot;')\r
-\r
-    def isblocklevel(self, html):\r
-        m = re.match(r'^\<\/?([^ >]+)', html)\r
-        if m:\r
-            if m.group(1)[0] in ('!', '?', '@', '%'):\r
-                # Comment, php etc...\r
-                return True\r
-            return util.isBlockLevel(m.group(1))\r
-        return False\r
-\r
-\r
-class AndSubstitutePostprocessor(Postprocessor):\r
-    """ Restore valid entities """\r
-\r
-    def run(self, text):\r
-        text =  text.replace(util.AMP_SUBSTITUTE, "&")\r
-        return text\r
-\r
-\r
-class UnescapePostprocessor(Postprocessor):\r
-    """ Restore escaped chars """\r
-\r
-    RE = re.compile('%s(\d+)%s' % (util.STX, util.ETX))\r
-\r
-    def unescape(self, m):\r
-        return util.int2str(int(m.group(1)))\r
-\r
-    def run(self, text):\r
-        return self.RE.sub(self.unescape, text)\r
+"""
+POST-PROCESSORS
+=============================================================================
+
+Markdown also allows post-processors, which are similar to preprocessors in
+that they need to implement a "run" method. However, they are run after core
+processing.
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import util
+from . import odict
+import re
+
+
+def build_postprocessors(md_instance, **kwargs):
+    """ Build the default postprocessors for Markdown. """
+    postprocessors = odict.OrderedDict()
+    postprocessors["raw_html"] = RawHtmlPostprocessor(md_instance)
+    postprocessors["amp_substitute"] = AndSubstitutePostprocessor()
+    postprocessors["unescape"] = UnescapePostprocessor()
+    return postprocessors
+
+
+class Postprocessor(util.Processor):
+    """
+    Postprocessors are run after the ElementTree it converted back into text.
+
+    Each Postprocessor implements a "run" method that takes a pointer to a
+    text string, modifies it as necessary and returns a text string.
+
+    Postprocessors must extend markdown.Postprocessor.
+
+    """
+
+    def run(self, text):
+        """
+        Subclasses of Postprocessor should implement a `run` method, which
+        takes the html document as a single text string and returns a
+        (possibly modified) string.
+
+        """
+        pass #pragma: no cover
+
+
+class RawHtmlPostprocessor(Postprocessor):
+    """ Restore raw html to the document. """
+
+    def run(self, text):
+        """ Iterate over html stash and restore "safe" html. """
+        for i in range(self.markdown.htmlStash.html_counter):
+            html, safe  = self.markdown.htmlStash.rawHtmlBlocks[i]
+            if self.markdown.safeMode and not safe:
+                if str(self.markdown.safeMode).lower() == 'escape':
+                    html = self.escape(html)
+                elif str(self.markdown.safeMode).lower() == 'remove':
+                    html = ''
+                else:
+                    html = self.markdown.html_replacement_text
+            if self.isblocklevel(html) and (safe or not self.markdown.safeMode):
+                text = text.replace("<p>%s</p>" % 
+                            (self.markdown.htmlStash.get_placeholder(i)),
+                            html + "\n")
+            text =  text.replace(self.markdown.htmlStash.get_placeholder(i), 
+                                 html)
+        return text
+
+    def escape(self, html):
+        """ Basic html escaping """
+        html = html.replace('&', '&amp;')
+        html = html.replace('<', '&lt;')
+        html = html.replace('>', '&gt;')
+        return html.replace('"', '&quot;')
+
+    def isblocklevel(self, html):
+        m = re.match(r'^\<\/?([^ >]+)', html)
+        if m:
+            if m.group(1)[0] in ('!', '?', '@', '%'):
+                # Comment, php etc...
+                return True
+            return util.isBlockLevel(m.group(1))
+        return False
+
+
+class AndSubstitutePostprocessor(Postprocessor):
+    """ Restore valid entities """
+
+    def run(self, text):
+        text =  text.replace(util.AMP_SUBSTITUTE, "&")
+        return text
+
+
+class UnescapePostprocessor(Postprocessor):
+    """ Restore escaped chars """
+
+    RE = re.compile('%s(\d+)%s' % (util.STX, util.ETX))
+
+    def unescape(self, m):
+        return util.int2str(int(m.group(1)))
+
+    def run(self, text):
+        return self.RE.sub(self.unescape, text)
index 3972731cdda0da968097d33232eb1108f99a6d08..4a1fac5f696af66179a02751793cc524817901cd 100644 (file)
-"""\r
-PRE-PROCESSORS\r
-=============================================================================\r
-\r
-Preprocessors work on source text before we start doing anything too\r
-complicated.\r
-"""\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import util\r
-from . import odict\r
-import re\r
-\r
-\r
-def build_preprocessors(md_instance, **kwargs):\r
-    """ Build the default set of preprocessors used by Markdown. """\r
-    preprocessors = odict.OrderedDict()\r
-    preprocessors['normalize_whitespace'] = NormalizeWhitespace(md_instance)\r
-    if md_instance.safeMode != 'escape':\r
-        preprocessors["html_block"] = HtmlBlockPreprocessor(md_instance)\r
-    preprocessors["reference"] = ReferencePreprocessor(md_instance)\r
-    return preprocessors\r
-\r
-\r
-class Preprocessor(util.Processor):\r
-    """\r
-    Preprocessors are run after the text is broken into lines.\r
-\r
-    Each preprocessor implements a "run" method that takes a pointer to a\r
-    list of lines of the document, modifies it as necessary and returns\r
-    either the same pointer or a pointer to a new list.\r
-\r
-    Preprocessors must extend markdown.Preprocessor.\r
-\r
-    """\r
-    def run(self, lines):\r
-        """\r
-        Each subclass of Preprocessor should override the `run` method, which\r
-        takes the document as a list of strings split by newlines and returns\r
-        the (possibly modified) list of lines.\r
-\r
-        """\r
-        pass\r
-\r
-\r
-class NormalizeWhitespace(Preprocessor):\r
-    """ Normalize whitespace for consistant parsing. """\r
-\r
-    def run(self, lines):\r
-        source = '\n'.join(lines)\r
-        source = source.replace(util.STX, "").replace(util.ETX, "")\r
-        source = source.replace("\r\n", "\n").replace("\r", "\n") + "\n\n"\r
-        source = source.expandtabs(self.markdown.tab_length)\r
-        source = re.sub(r'(?<=\n) +\n', '\n', source)\r
-        return source.split('\n')\r
-\r
-\r
-class HtmlBlockPreprocessor(Preprocessor):\r
-    """Remove html blocks from the text and store them for later retrieval."""\r
-\r
-    right_tag_patterns = ["</%s>", "%s>"]\r
-    attrs_pattern = r"""\r
-        \s+(?P<attr>[^>"'/= ]+)=(?P<q>['"])(?P<value>.*?)(?P=q)   # attr="value"\r
-        |                                                         # OR\r
-        \s+(?P<attr1>[^>"'/= ]+)=(?P<value1>[^> ]+)               # attr=value\r
-        |                                                         # OR\r
-        \s+(?P<attr2>[^>"'/= ]+)                                  # attr\r
-        """\r
-    left_tag_pattern = r'^\<(?P<tag>[^> ]+)(?P<attrs>(%s)*)\s*\/?\>?' % attrs_pattern\r
-    attrs_re = re.compile(attrs_pattern, re.VERBOSE)\r
-    left_tag_re = re.compile(left_tag_pattern, re.VERBOSE)\r
-    markdown_in_raw = False\r
-\r
-    def _get_left_tag(self, block):\r
-        m = self.left_tag_re.match(block)\r
-        if m:\r
-            tag = m.group('tag')\r
-            raw_attrs = m.group('attrs')\r
-            attrs = {}\r
-            if raw_attrs:\r
-                for ma in self.attrs_re.finditer(raw_attrs):\r
-                    if ma.group('attr'):\r
-                        if ma.group('value'):\r
-                            attrs[ma.group('attr').strip()] = ma.group('value')\r
-                        else:\r
-                            attrs[ma.group('attr').strip()] = ""\r
-                    elif ma.group('attr1'):\r
-                        if ma.group('value1'):\r
-                            attrs[ma.group('attr1').strip()] = ma.group('value1')\r
-                        else:\r
-                            attrs[ma.group('attr1').strip()] = ""\r
-                    elif ma.group('attr2'):\r
-                        attrs[ma.group('attr2').strip()] = ""\r
-            return tag, len(m.group(0)), attrs\r
-        else:\r
-            tag = block[1:].split(">", 1)[0].lower()\r
-            return tag, len(tag)+2, {}\r
-\r
-    def _recursive_tagfind(self, ltag, rtag, start_index, block):\r
-        while 1:\r
-            i = block.find(rtag, start_index)\r
-            if i == -1:\r
-                return -1\r
-            j = block.find(ltag, start_index)\r
-            # if no ltag, or rtag found before another ltag, return index\r
-            if (j > i or j == -1):\r
-                return i + len(rtag)\r
-            # another ltag found before rtag, use end of ltag as starting\r
-            # point and search again\r
-            j = block.find('>', j)\r
-            start_index = self._recursive_tagfind(ltag, rtag, j + 1, block)\r
-            if start_index == -1:\r
-                # HTML potentially malformed- ltag has no corresponding\r
-                # rtag\r
-                return -1\r
-\r
-    def _get_right_tag(self, left_tag, left_index, block):\r
-        for p in self.right_tag_patterns:\r
-            tag = p % left_tag\r
-            i = self._recursive_tagfind("<%s" % left_tag, tag, left_index, block)\r
-            if i > 2:\r
-                return tag.lstrip("<").rstrip(">"), i\r
-        return block.rstrip()[-left_index:-1].lower(), len(block)\r
-\r
-    def _equal_tags(self, left_tag, right_tag):\r
-        if left_tag[0] in ['?', '@', '%']: # handle PHP, etc.\r
-            return True\r
-        if ("/" + left_tag) == right_tag:\r
-            return True\r
-        if (right_tag == "--" and left_tag == "--"):\r
-            return True\r
-        elif left_tag == right_tag[1:] \\r
-            and right_tag[0] == "/":\r
-            return True\r
-        else:\r
-            return False\r
-\r
-    def _is_oneliner(self, tag):\r
-        return (tag in ['hr', 'hr/'])\r
-\r
-    def _stringindex_to_listindex(self, stringindex, items):\r
-        """\r
-        Same effect as concatenating the strings in items,\r
-        finding the character to which stringindex refers in that string,\r
-        and returning the item in which that character resides.\r
-        """\r
-        items.append('dummy')\r
-        i, count = 0, 0\r
-        while count <= stringindex:\r
-            count += len(items[i])\r
-            i += 1\r
-        return i - 1\r
-\r
-    def _nested_markdown_in_html(self, items):\r
-        """Find and process html child elements of the given element block."""\r
-        for i, item in enumerate(items):\r
-            if self.left_tag_re.match(item):\r
-                left_tag, left_index, attrs = \\r
-                    self._get_left_tag(''.join(items[i:]))\r
-                right_tag, data_index = self._get_right_tag(\r
-                    left_tag, left_index, ''.join(items[i:]))\r
-                right_listindex = \\r
-                    self._stringindex_to_listindex(data_index, items[i:]) + i\r
-                if 'markdown' in attrs.keys():\r
-                    items[i] = items[i][left_index:]  # remove opening tag\r
-                    placeholder = self.markdown.htmlStash.store_tag(\r
-                        left_tag, attrs, i + 1, right_listindex + 1)\r
-                    items.insert(i, placeholder)\r
-                    if len(items) - right_listindex <= 1:  # last nest, no tail\r
-                        right_listindex -= 1\r
-                    items[right_listindex] = items[right_listindex][\r
-                        :-len(right_tag) - 2]  # remove closing tag\r
-                else:  # raw html\r
-                    if len(items) - right_listindex <= 1:  # last element\r
-                        right_listindex -= 1\r
-                    placeholder = self.markdown.htmlStash.store('\n\n'.join(\r
-                        items[i:right_listindex]))\r
-                    del items[i:right_listindex]\r
-                    items.insert(i, placeholder)\r
-        return items\r
-\r
-    def run(self, lines):\r
-        text = "\n".join(lines)\r
-        new_blocks = []\r
-        text = text.rsplit("\n\n")\r
-        items = []\r
-        left_tag = ''\r
-        right_tag = ''\r
-        in_tag = False # flag\r
-\r
-        while text:\r
-            block = text[0]\r
-            if block.startswith("\n"):\r
-                block = block[1:]\r
-            text = text[1:]\r
-\r
-            if block.startswith("\n"):\r
-                block = block[1:]\r
-\r
-            if not in_tag:\r
-                if block.startswith("<") and len(block.strip()) > 1:\r
-\r
-                    if block[1:4] == "!--":\r
-                        # is a comment block\r
-                        left_tag, left_index, attrs  = "--", 2, {}\r
-                    else:\r
-                        left_tag, left_index, attrs = self._get_left_tag(block)\r
-                    right_tag, data_index = self._get_right_tag(left_tag,\r
-                                                                left_index,\r
-                                                                block)\r
-                    # keep checking conditions below and maybe just append\r
-\r
-                    if data_index < len(block) \\r
-                        and (util.isBlockLevel(left_tag)\r
-                        or left_tag == '--'):\r
-                        text.insert(0, block[data_index:])\r
-                        block = block[:data_index]\r
-\r
-                    if not (util.isBlockLevel(left_tag) \\r
-                        or block[1] in ["!", "?", "@", "%"]):\r
-                        new_blocks.append(block)\r
-                        continue\r
-\r
-                    if self._is_oneliner(left_tag):\r
-                        new_blocks.append(block.strip())\r
-                        continue\r
-\r
-                    if block.rstrip().endswith(">") \\r
-                            and self._equal_tags(left_tag, right_tag):\r
-                        if self.markdown_in_raw and 'markdown' in attrs.keys():\r
-                            block = block[left_index:-len(right_tag) - 2]\r
-                            new_blocks.append(self.markdown.htmlStash.\r
-                                              store_tag(left_tag, attrs, 0, 2))\r
-                            new_blocks.extend([block])\r
-                        else:\r
-                            new_blocks.append(\r
-                                self.markdown.htmlStash.store(block.strip()))\r
-                        continue\r
-                    else:\r
-                        # if is block level tag and is not complete\r
-                        if  (not self._equal_tags(left_tag, right_tag)) and \\r
-                            (util.isBlockLevel(left_tag) or left_tag == "--"):\r
-                            items.append(block.strip())\r
-                            in_tag = True\r
-                        else:\r
-                            new_blocks.append(\r
-                            self.markdown.htmlStash.store(block.strip()))\r
-\r
-                        continue\r
-\r
-                else:\r
-                    new_blocks.append(block)\r
-\r
-            else:\r
-                items.append(block)\r
-\r
-                right_tag, data_index = self._get_right_tag(left_tag, 0, block)\r
-\r
-                if self._equal_tags(left_tag, right_tag):\r
-                    # if find closing tag\r
-\r
-                    if data_index < len(block):\r
-                        # we have more text after right_tag\r
-                        items[-1] = block[:data_index]\r
-                        text.insert(0, block[data_index:])\r
-\r
-                    in_tag = False\r
-                    if self.markdown_in_raw and 'markdown' in attrs.keys():\r
-                        items[0] = items[0][left_index:]\r
-                        items[-1] = items[-1][:-len(right_tag) - 2]\r
-                        if items[len(items) - 1]:  # not a newline/empty string\r
-                            right_index = len(items) + 3\r
-                        else:\r
-                            right_index = len(items) + 2\r
-                        new_blocks.append(self.markdown.htmlStash.store_tag(\r
-                            left_tag, attrs, 0, right_index))\r
-                        placeholderslen = len(self.markdown.htmlStash.tag_data)\r
-                        new_blocks.extend(\r
-                            self._nested_markdown_in_html(items))\r
-                        nests = len(self.markdown.htmlStash.tag_data) - \\r
-                            placeholderslen\r
-                        self.markdown.htmlStash.tag_data[-1 - nests][\r
-                            'right_index'] += nests - 2\r
-                    else:\r
-                        new_blocks.append(\r
-                            self.markdown.htmlStash.store('\n\n'.join(items)))\r
-                    items = []\r
-\r
-        if items:\r
-            if self.markdown_in_raw and 'markdown' in attrs.keys():\r
-                items[0] = items[0][left_index:]\r
-                items[-1] = items[-1][:-len(right_tag) - 2]\r
-                if items[len(items) - 1]:  # not a newline/empty string\r
-                    right_index = len(items) + 3\r
-                else:\r
-                    right_index = len(items) + 2\r
-                new_blocks.append(\r
-                    self.markdown.htmlStash.store_tag(\r
-                        left_tag, attrs, 0, right_index))\r
-                placeholderslen = len(self.markdown.htmlStash.tag_data)\r
-                new_blocks.extend(self._nested_markdown_in_html(items))\r
-                nests = len(self.markdown.htmlStash.tag_data) - placeholderslen\r
-                self.markdown.htmlStash.tag_data[-1 - nests][\r
-                    'right_index'] += nests - 2\r
-            else:\r
-                new_blocks.append(\r
-                    self.markdown.htmlStash.store('\n\n'.join(items)))\r
-            new_blocks.append('\n')\r
-\r
-        new_text = "\n\n".join(new_blocks)\r
-        return new_text.split("\n")\r
-\r
-\r
-class ReferencePreprocessor(Preprocessor):\r
-    """ Remove reference definitions from text and store for later use. """\r
-\r
-    TITLE = r'[ ]*(\"(.*)\"|\'(.*)\'|\((.*)\))[ ]*'\r
-    RE = re.compile(r'^[ ]{0,3}\[([^\]]*)\]:\s*([^ ]*)[ ]*(%s)?$' % TITLE, re.DOTALL)\r
-    TITLE_RE = re.compile(r'^%s$' % TITLE)\r
-\r
-    def run (self, lines):\r
-        new_text = [];\r
-        while lines:\r
-            line = lines.pop(0)\r
-            m = self.RE.match(line)\r
-            if m:\r
-                id = m.group(1).strip().lower()\r
-                link = m.group(2).lstrip('<').rstrip('>')\r
-                t = m.group(5) or m.group(6) or m.group(7)\r
-                if not t:\r
-                    # Check next line for title\r
-                    tm = self.TITLE_RE.match(lines[0])\r
-                    if tm:\r
-                        lines.pop(0)\r
-                        t = tm.group(2) or tm.group(3) or tm.group(4)\r
-                self.markdown.references[id] = (link, t)\r
-            else:\r
-                new_text.append(line)\r
-\r
-        return new_text #+ "\n"\r
+"""
+PRE-PROCESSORS
+=============================================================================
+
+Preprocessors work on source text before we start doing anything too
+complicated.
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import util
+from . import odict
+import re
+
+
+def build_preprocessors(md_instance, **kwargs):
+    """ Build the default set of preprocessors used by Markdown. """
+    preprocessors = odict.OrderedDict()
+    preprocessors['normalize_whitespace'] = NormalizeWhitespace(md_instance)
+    if md_instance.safeMode != 'escape':
+        preprocessors["html_block"] = HtmlBlockPreprocessor(md_instance)
+    preprocessors["reference"] = ReferencePreprocessor(md_instance)
+    return preprocessors
+
+
+class Preprocessor(util.Processor):
+    """
+    Preprocessors are run after the text is broken into lines.
+
+    Each preprocessor implements a "run" method that takes a pointer to a
+    list of lines of the document, modifies it as necessary and returns
+    either the same pointer or a pointer to a new list.
+
+    Preprocessors must extend markdown.Preprocessor.
+
+    """
+    def run(self, lines):
+        """
+        Each subclass of Preprocessor should override the `run` method, which
+        takes the document as a list of strings split by newlines and returns
+        the (possibly modified) list of lines.
+
+        """
+        pass #pragma: no cover
+
+
+class NormalizeWhitespace(Preprocessor):
+    """ Normalize whitespace for consistant parsing. """
+
+    def run(self, lines):
+        source = '\n'.join(lines)
+        source = source.replace(util.STX, "").replace(util.ETX, "")
+        source = source.replace("\r\n", "\n").replace("\r", "\n") + "\n\n"
+        source = source.expandtabs(self.markdown.tab_length)
+        source = re.sub(r'(?<=\n) +\n', '\n', source)
+        return source.split('\n')
+
+
+class HtmlBlockPreprocessor(Preprocessor):
+    """Remove html blocks from the text and store them for later retrieval."""
+
+    right_tag_patterns = ["</%s>", "%s>"]
+    attrs_pattern = r"""
+        \s+(?P<attr>[^>"'/= ]+)=(?P<q>['"])(?P<value>.*?)(?P=q)   # attr="value"
+        |                                                         # OR
+        \s+(?P<attr1>[^>"'/= ]+)=(?P<value1>[^> ]+)               # attr=value
+        |                                                         # OR
+        \s+(?P<attr2>[^>"'/= ]+)                                  # attr
+        """
+    left_tag_pattern = r'^\<(?P<tag>[^> ]+)(?P<attrs>(%s)*)\s*\/?\>?' % attrs_pattern
+    attrs_re = re.compile(attrs_pattern, re.VERBOSE)
+    left_tag_re = re.compile(left_tag_pattern, re.VERBOSE)
+    markdown_in_raw = False
+
+    def _get_left_tag(self, block):
+        m = self.left_tag_re.match(block)
+        if m:
+            tag = m.group('tag')
+            raw_attrs = m.group('attrs')
+            attrs = {}
+            if raw_attrs:
+                for ma in self.attrs_re.finditer(raw_attrs):
+                    if ma.group('attr'):
+                        if ma.group('value'):
+                            attrs[ma.group('attr').strip()] = ma.group('value')
+                        else:
+                            attrs[ma.group('attr').strip()] = ""
+                    elif ma.group('attr1'):
+                        if ma.group('value1'):
+                            attrs[ma.group('attr1').strip()] = ma.group('value1')
+                        else:
+                            attrs[ma.group('attr1').strip()] = ""
+                    elif ma.group('attr2'):
+                        attrs[ma.group('attr2').strip()] = ""
+            return tag, len(m.group(0)), attrs
+        else:
+            tag = block[1:].split(">", 1)[0].lower()
+            return tag, len(tag)+2, {}
+
+    def _recursive_tagfind(self, ltag, rtag, start_index, block):
+        while 1:
+            i = block.find(rtag, start_index)
+            if i == -1:
+                return -1
+            j = block.find(ltag, start_index)
+            # if no ltag, or rtag found before another ltag, return index
+            if (j > i or j == -1):
+                return i + len(rtag)
+            # another ltag found before rtag, use end of ltag as starting
+            # point and search again
+            j = block.find('>', j)
+            start_index = self._recursive_tagfind(ltag, rtag, j + 1, block)
+            if start_index == -1:
+                # HTML potentially malformed- ltag has no corresponding
+                # rtag
+                return -1
+
+    def _get_right_tag(self, left_tag, left_index, block):
+        for p in self.right_tag_patterns:
+            tag = p % left_tag
+            i = self._recursive_tagfind("<%s" % left_tag, tag, left_index, block)
+            if i > 2:
+                return tag.lstrip("<").rstrip(">"), i
+        return block.rstrip()[-left_index:-1].lower(), len(block)
+
+    def _equal_tags(self, left_tag, right_tag):
+        if left_tag[0] in ['?', '@', '%']: # handle PHP, etc.
+            return True
+        if ("/" + left_tag) == right_tag:
+            return True
+        if (right_tag == "--" and left_tag == "--"):
+            return True
+        elif left_tag == right_tag[1:] \
+            and right_tag[0] == "/":
+            return True
+        else:
+            return False
+
+    def _is_oneliner(self, tag):
+        return (tag in ['hr', 'hr/'])
+
+    def _stringindex_to_listindex(self, stringindex, items):
+        """
+        Same effect as concatenating the strings in items,
+        finding the character to which stringindex refers in that string,
+        and returning the index of the item in which that character resides.
+        """
+        items.append('dummy')
+        i, count = 0, 0
+        while count <= stringindex:
+            count += len(items[i])
+            i += 1
+        return i - 1
+
+    def _nested_markdown_in_html(self, items):
+        """Find and process html child elements of the given element block."""
+        for i, item in enumerate(items):
+            if self.left_tag_re.match(item):
+                left_tag, left_index, attrs = \
+                    self._get_left_tag(''.join(items[i:]))
+                right_tag, data_index = self._get_right_tag(
+                    left_tag, left_index, ''.join(items[i:]))
+                right_listindex = \
+                    self._stringindex_to_listindex(data_index, items[i:]) + i
+                if 'markdown' in attrs.keys():
+                    items[i] = items[i][left_index:]  # remove opening tag
+                    placeholder = self.markdown.htmlStash.store_tag(
+                        left_tag, attrs, i + 1, right_listindex + 1)
+                    items.insert(i, placeholder)
+                    if len(items) - right_listindex <= 1:  # last nest, no tail
+                        right_listindex -= 1
+                    items[right_listindex] = items[right_listindex][
+                        :-len(right_tag) - 2]  # remove closing tag
+                else:  # raw html
+                    if len(items) - right_listindex <= 1:  # last element
+                        right_listindex -= 1
+                    placeholder = self.markdown.htmlStash.store('\n\n'.join(
+                        items[i:right_listindex + 1]))
+                    del items[i:right_listindex + 1]
+                    items.insert(i, placeholder)
+        return items
+
+    def run(self, lines):
+        text = "\n".join(lines)
+        new_blocks = []
+        text = text.rsplit("\n\n")
+        items = []
+        left_tag = ''
+        right_tag = ''
+        in_tag = False # flag
+
+        while text:
+            block = text[0]
+            if block.startswith("\n"):
+                block = block[1:]
+            text = text[1:]
+
+            if block.startswith("\n"):
+                block = block[1:]
+
+            if not in_tag:
+                if block.startswith("<") and len(block.strip()) > 1:
+
+                    if block[1:4] == "!--":
+                        # is a comment block
+                        left_tag, left_index, attrs  = "--", 2, {}
+                    else:
+                        left_tag, left_index, attrs = self._get_left_tag(block)
+                    right_tag, data_index = self._get_right_tag(left_tag,
+                                                                left_index,
+                                                                block)
+                    # keep checking conditions below and maybe just append
+
+                    if data_index < len(block) \
+                        and (util.isBlockLevel(left_tag)
+                        or left_tag == '--'):
+                        text.insert(0, block[data_index:])
+                        block = block[:data_index]
+
+                    if not (util.isBlockLevel(left_tag) \
+                        or block[1] in ["!", "?", "@", "%"]):
+                        new_blocks.append(block)
+                        continue
+
+                    if self._is_oneliner(left_tag):
+                        new_blocks.append(block.strip())
+                        continue
+
+                    if block.rstrip().endswith(">") \
+                            and self._equal_tags(left_tag, right_tag):
+                        if self.markdown_in_raw and 'markdown' in attrs.keys():
+                            block = block[left_index:-len(right_tag) - 2]
+                            new_blocks.append(self.markdown.htmlStash.
+                                              store_tag(left_tag, attrs, 0, 2))
+                            new_blocks.extend([block])
+                        else:
+                            new_blocks.append(
+                                self.markdown.htmlStash.store(block.strip()))
+                        continue
+                    else:
+                        # if is block level tag and is not complete
+                        if  (not self._equal_tags(left_tag, right_tag)) and \
+                            (util.isBlockLevel(left_tag) or left_tag == "--"):
+                            items.append(block.strip())
+                            in_tag = True
+                        else:
+                            new_blocks.append(
+                            self.markdown.htmlStash.store(block.strip()))
+
+                        continue
+
+                else:
+                    new_blocks.append(block)
+
+            else:
+                items.append(block)
+
+                right_tag, data_index = self._get_right_tag(left_tag, 0, block)
+
+                if self._equal_tags(left_tag, right_tag):
+                    # if find closing tag
+
+                    if data_index < len(block):
+                        # we have more text after right_tag
+                        items[-1] = block[:data_index]
+                        text.insert(0, block[data_index:])
+
+                    in_tag = False
+                    if self.markdown_in_raw and 'markdown' in attrs.keys():
+                        items[0] = items[0][left_index:]
+                        items[-1] = items[-1][:-len(right_tag) - 2]
+                        if items[len(items) - 1]:  # not a newline/empty string
+                            right_index = len(items) + 3
+                        else:
+                            right_index = len(items) + 2
+                        new_blocks.append(self.markdown.htmlStash.store_tag(
+                            left_tag, attrs, 0, right_index))
+                        placeholderslen = len(self.markdown.htmlStash.tag_data)
+                        new_blocks.extend(
+                            self._nested_markdown_in_html(items))
+                        nests = len(self.markdown.htmlStash.tag_data) - \
+                            placeholderslen
+                        self.markdown.htmlStash.tag_data[-1 - nests][
+                            'right_index'] += nests - 2
+                    else:
+                        new_blocks.append(
+                            self.markdown.htmlStash.store('\n\n'.join(items)))
+                    items = []
+
+        if items:
+            if self.markdown_in_raw and 'markdown' in attrs.keys():
+                items[0] = items[0][left_index:]
+                items[-1] = items[-1][:-len(right_tag) - 2]
+                if items[len(items) - 1]:  # not a newline/empty string
+                    right_index = len(items) + 3
+                else:
+                    right_index = len(items) + 2
+                new_blocks.append(
+                    self.markdown.htmlStash.store_tag(
+                        left_tag, attrs, 0, right_index))
+                placeholderslen = len(self.markdown.htmlStash.tag_data)
+                new_blocks.extend(self._nested_markdown_in_html(items))
+                nests = len(self.markdown.htmlStash.tag_data) - placeholderslen
+                self.markdown.htmlStash.tag_data[-1 - nests][
+                    'right_index'] += nests - 2
+            else:
+                new_blocks.append(
+                    self.markdown.htmlStash.store('\n\n'.join(items)))
+            new_blocks.append('\n')
+
+        new_text = "\n\n".join(new_blocks)
+        return new_text.split("\n")
+
+
+class ReferencePreprocessor(Preprocessor):
+    """ Remove reference definitions from text and store for later use. """
+
+    TITLE = r'[ ]*(\"(.*)\"|\'(.*)\'|\((.*)\))[ ]*'
+    RE = re.compile(r'^[ ]{0,3}\[([^\]]*)\]:\s*([^ ]*)[ ]*(%s)?$' % TITLE, re.DOTALL)
+    TITLE_RE = re.compile(r'^%s$' % TITLE)
+
+    def run (self, lines):
+        new_text = [];
+        while lines:
+            line = lines.pop(0)
+            m = self.RE.match(line)
+            if m:
+                id = m.group(1).strip().lower()
+                link = m.group(2).lstrip('<').rstrip('>')
+                t = m.group(5) or m.group(6) or m.group(7)
+                if not t:
+                    # Check next line for title
+                    tm = self.TITLE_RE.match(lines[0])
+                    if tm:
+                        lines.pop(0)
+                        t = tm.group(2) or tm.group(3) or tm.group(4)
+                self.markdown.references[id] = (link, t)
+            else:
+                new_text.append(line)
+
+        return new_text #+ "\n"
index 581b632e1d7f16415962da758b7449c751f3823d..f53ae31db8457e518a0bcbb5e7496b891e4c02e1 100644 (file)
-# markdown/searializers.py\r
-#\r
-# Add x/html serialization to Elementree\r
-# Taken from ElementTree 1.3 preview with slight modifications\r
-#\r
-# Copyright (c) 1999-2007 by Fredrik Lundh.  All rights reserved.\r
-#\r
-# fredrik@pythonware.com\r
-# http://www.pythonware.com\r
-#\r
-# --------------------------------------------------------------------\r
-# The ElementTree toolkit is\r
-#\r
-# Copyright (c) 1999-2007 by Fredrik Lundh\r
-#\r
-# By obtaining, using, and/or copying this software and/or its\r
-# associated documentation, you agree that you have read, understood,\r
-# and will comply with the following terms and conditions:\r
-#\r
-# Permission to use, copy, modify, and distribute this software and\r
-# its associated documentation for any purpose and without fee is\r
-# hereby granted, provided that the above copyright notice appears in\r
-# all copies, and that both that copyright notice and this permission\r
-# notice appear in supporting documentation, and that the name of\r
-# Secret Labs AB or the author not be used in advertising or publicity\r
-# pertaining to distribution of the software without specific, written\r
-# prior permission.\r
-#\r
-# SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD\r
-# TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-\r
-# ABILITY AND FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR\r
-# BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY\r
-# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\r
-# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS\r
-# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE\r
-# OF THIS SOFTWARE.\r
-# --------------------------------------------------------------------\r
-\r
-\r
-from __future__ import absolute_import\r
-from __future__ import unicode_literals\r
-from . import util\r
-ElementTree = util.etree.ElementTree\r
-QName = util.etree.QName\r
-if hasattr(util.etree, 'test_comment'):\r
-    Comment = util.etree.test_comment\r
-else:\r
-    Comment = util.etree.Comment\r
-PI = util.etree.PI\r
-ProcessingInstruction = util.etree.ProcessingInstruction\r
-\r
-__all__ = ['to_html_string', 'to_xhtml_string']\r
-\r
-HTML_EMPTY = ("area", "base", "basefont", "br", "col", "frame", "hr",\r
-              "img", "input", "isindex", "link", "meta" "param")\r
-\r
-try:\r
-    HTML_EMPTY = set(HTML_EMPTY)\r
-except NameError:\r
-    pass\r
-\r
-_namespace_map = {\r
-    # "well-known" namespace prefixes\r
-    "http://www.w3.org/XML/1998/namespace": "xml",\r
-    "http://www.w3.org/1999/xhtml": "html",\r
-    "http://www.w3.org/1999/02/22-rdf-syntax-ns#": "rdf",\r
-    "http://schemas.xmlsoap.org/wsdl/": "wsdl",\r
-    # xml schema\r
-    "http://www.w3.org/2001/XMLSchema": "xs",\r
-    "http://www.w3.org/2001/XMLSchema-instance": "xsi",\r
-    # dublic core\r
-    "http://purl.org/dc/elements/1.1/": "dc",\r
-}\r
-\r
-\r
-def _raise_serialization_error(text):\r
-    raise TypeError(\r
-        "cannot serialize %r (type %s)" % (text, type(text).__name__)\r
-        )\r
-\r
-def _encode(text, encoding):\r
-    try:\r
-        return text.encode(encoding, "xmlcharrefreplace")\r
-    except (TypeError, AttributeError):\r
-        _raise_serialization_error(text)\r
-\r
-def _escape_cdata(text):\r
-    # escape character data\r
-    try:\r
-        # it's worth avoiding do-nothing calls for strings that are\r
-        # shorter than 500 character, or so.  assume that's, by far,\r
-        # the most common case in most applications.\r
-        if "&" in text:\r
-            text = text.replace("&", "&amp;")\r
-        if "<" in text:\r
-            text = text.replace("<", "&lt;")\r
-        if ">" in text:\r
-            text = text.replace(">", "&gt;")\r
-        return text\r
-    except (TypeError, AttributeError):\r
-        _raise_serialization_error(text)\r
-\r
-\r
-def _escape_attrib(text):\r
-    # escape attribute value\r
-    try:\r
-        if "&" in text:\r
-            text = text.replace("&", "&amp;")\r
-        if "<" in text:\r
-            text = text.replace("<", "&lt;")\r
-        if ">" in text:\r
-            text = text.replace(">", "&gt;")\r
-        if "\"" in text:\r
-            text = text.replace("\"", "&quot;")\r
-        if "\n" in text:\r
-            text = text.replace("\n", "&#10;")\r
-        return text\r
-    except (TypeError, AttributeError):\r
-        _raise_serialization_error(text)\r
-\r
-def _escape_attrib_html(text):\r
-    # escape attribute value\r
-    try:\r
-        if "&" in text:\r
-            text = text.replace("&", "&amp;")\r
-        if "<" in text:\r
-            text = text.replace("<", "&lt;")\r
-        if ">" in text:\r
-            text = text.replace(">", "&gt;")\r
-        if "\"" in text:\r
-            text = text.replace("\"", "&quot;")\r
-        return text\r
-    except (TypeError, AttributeError):\r
-        _raise_serialization_error(text)\r
-\r
-\r
-def _serialize_html(write, elem, qnames, namespaces, format):\r
-    tag = elem.tag\r
-    text = elem.text\r
-    if tag is Comment:\r
-        write("<!--%s-->" % _escape_cdata(text))\r
-    elif tag is ProcessingInstruction:\r
-        write("<?%s?>" % _escape_cdata(text))\r
-    else:\r
-        tag = qnames[tag]\r
-        if tag is None:\r
-            if text:\r
-                write(_escape_cdata(text))\r
-            for e in elem:\r
-                _serialize_html(write, e, qnames, None, format)\r
-        else:\r
-            write("<" + tag)\r
-            items = elem.items()\r
-            if items or namespaces:\r
-                items = sorted(items) # lexical order\r
-                for k, v in items:\r
-                    if isinstance(k, QName):\r
-                        k = k.text\r
-                    if isinstance(v, QName):\r
-                        v = qnames[v.text]\r
-                    else:\r
-                        v = _escape_attrib_html(v)\r
-                    if qnames[k] == v and format == 'html':\r
-                        # handle boolean attributes\r
-                        write(" %s" % v)\r
-                    else:\r
-                        write(" %s=\"%s\"" % (qnames[k], v))\r
-                if namespaces:\r
-                    items = namespaces.items()\r
-                    items.sort(key=lambda x: x[1]) # sort on prefix\r
-                    for v, k in items:\r
-                        if k:\r
-                            k = ":" + k\r
-                        write(" xmlns%s=\"%s\"" % (k, _escape_attrib(v)))\r
-            if format == "xhtml" and tag.lower() in HTML_EMPTY:\r
-                write(" />")\r
-            else:\r
-                write(">")\r
-                if text:\r
-                    if tag.lower() in ["script", "style"]:\r
-                        write(text)\r
-                    else:\r
-                        write(_escape_cdata(text))\r
-                for e in elem:\r
-                    _serialize_html(write, e, qnames, None, format)\r
-                if tag.lower() not in HTML_EMPTY:\r
-                    write("</" + tag + ">")\r
-    if elem.tail:\r
-        write(_escape_cdata(elem.tail))\r
-\r
-def _write_html(root,\r
-                encoding=None,\r
-                default_namespace=None,\r
-                format="html"):\r
-    assert root is not None\r
-    data = []\r
-    write = data.append\r
-    qnames, namespaces = _namespaces(root, default_namespace)\r
-    _serialize_html(write, root, qnames, namespaces, format)\r
-    if encoding is None:\r
-        return "".join(data)\r
-    else:\r
-        return _encode("".join(data))\r
-\r
-\r
-# --------------------------------------------------------------------\r
-# serialization support\r
-\r
-def _namespaces(elem, default_namespace=None):\r
-    # identify namespaces used in this tree\r
-\r
-    # maps qnames to *encoded* prefix:local names\r
-    qnames = {None: None}\r
-\r
-    # maps uri:s to prefixes\r
-    namespaces = {}\r
-    if default_namespace:\r
-        namespaces[default_namespace] = ""\r
-\r
-    def add_qname(qname):\r
-        # calculate serialized qname representation\r
-        try:\r
-            if qname[:1] == "{":\r
-                uri, tag = qname[1:].split("}", 1)\r
-                prefix = namespaces.get(uri)\r
-                if prefix is None:\r
-                    prefix = _namespace_map.get(uri)\r
-                    if prefix is None:\r
-                        prefix = "ns%d" % len(namespaces)\r
-                    if prefix != "xml":\r
-                        namespaces[uri] = prefix\r
-                if prefix:\r
-                    qnames[qname] = "%s:%s" % (prefix, tag)\r
-                else:\r
-                    qnames[qname] = tag # default element\r
-            else:\r
-                if default_namespace:\r
-                    raise ValueError(\r
-                        "cannot use non-qualified names with "\r
-                        "default_namespace option"\r
-                        )\r
-                qnames[qname] = qname\r
-        except TypeError:\r
-            _raise_serialization_error(qname)\r
-\r
-    # populate qname and namespaces table\r
-    try:\r
-        iterate = elem.iter\r
-    except AttributeError:\r
-        iterate = elem.getiterator # cET compatibility\r
-    for elem in iterate():\r
-        tag = elem.tag\r
-        if isinstance(tag, QName) and tag.text not in qnames:\r
-            add_qname(tag.text)\r
-        elif isinstance(tag, util.string_type):\r
-            if tag not in qnames:\r
-                add_qname(tag)\r
-        elif tag is not None and tag is not Comment and tag is not PI:\r
-            _raise_serialization_error(tag)\r
-        for key, value in elem.items():\r
-            if isinstance(key, QName):\r
-                key = key.text\r
-            if key not in qnames:\r
-                add_qname(key)\r
-            if isinstance(value, QName) and value.text not in qnames:\r
-                add_qname(value.text)\r
-        text = elem.text\r
-        if isinstance(text, QName) and text.text not in qnames:\r
-            add_qname(text.text)\r
-    return qnames, namespaces\r
-\r
-def to_html_string(element):\r
-    return _write_html(ElementTree(element).getroot(), format="html")\r
-\r
-def to_xhtml_string(element):\r
-    return _write_html(ElementTree(element).getroot(), format="xhtml")\r
+# markdown/searializers.py
+#
+# Add x/html serialization to Elementree
+# Taken from ElementTree 1.3 preview with slight modifications
+#
+# Copyright (c) 1999-2007 by Fredrik Lundh.  All rights reserved.
+#
+# fredrik@pythonware.com
+# http://www.pythonware.com
+#
+# --------------------------------------------------------------------
+# The ElementTree toolkit is
+#
+# Copyright (c) 1999-2007 by Fredrik Lundh
+#
+# By obtaining, using, and/or copying this software and/or its
+# associated documentation, you agree that you have read, understood,
+# and will comply with the following terms and conditions:
+#
+# Permission to use, copy, modify, and distribute this software and
+# its associated documentation for any purpose and without fee is
+# hereby granted, provided that the above copyright notice appears in
+# all copies, and that both that copyright notice and this permission
+# notice appear in supporting documentation, and that the name of
+# Secret Labs AB or the author not be used in advertising or publicity
+# pertaining to distribution of the software without specific, written
+# prior permission.
+#
+# SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
+# TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-
+# ABILITY AND FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR
+# BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+# OF THIS SOFTWARE.
+# --------------------------------------------------------------------
+
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import util
+ElementTree = util.etree.ElementTree
+QName = util.etree.QName
+if hasattr(util.etree, 'test_comment'): #pragma: no cover
+    Comment = util.etree.test_comment
+else: #pragma: no cover
+    Comment = util.etree.Comment
+PI = util.etree.PI
+ProcessingInstruction = util.etree.ProcessingInstruction
+
+__all__ = ['to_html_string', 'to_xhtml_string']
+
+HTML_EMPTY = ("area", "base", "basefont", "br", "col", "frame", "hr",
+              "img", "input", "isindex", "link", "meta" "param")
+
+try:
+    HTML_EMPTY = set(HTML_EMPTY)
+except NameError: #pragma: no cover
+    pass
+
+_namespace_map = {
+    # "well-known" namespace prefixes
+    "http://www.w3.org/XML/1998/namespace": "xml",
+    "http://www.w3.org/1999/xhtml": "html",
+    "http://www.w3.org/1999/02/22-rdf-syntax-ns#": "rdf",
+    "http://schemas.xmlsoap.org/wsdl/": "wsdl",
+    # xml schema
+    "http://www.w3.org/2001/XMLSchema": "xs",
+    "http://www.w3.org/2001/XMLSchema-instance": "xsi",
+    # dublic core
+    "http://purl.org/dc/elements/1.1/": "dc",
+}
+
+
+def _raise_serialization_error(text): #pragma: no cover
+    raise TypeError(
+        "cannot serialize %r (type %s)" % (text, type(text).__name__)
+        )
+
+def _encode(text, encoding):
+    try:
+        return text.encode(encoding, "xmlcharrefreplace")
+    except (TypeError, AttributeError): #pragma: no cover
+        _raise_serialization_error(text)
+
+def _escape_cdata(text):
+    # escape character data
+    try:
+        # it's worth avoiding do-nothing calls for strings that are
+        # shorter than 500 character, or so.  assume that's, by far,
+        # the most common case in most applications.
+        if "&" in text:
+            text = text.replace("&", "&amp;")
+        if "<" in text:
+            text = text.replace("<", "&lt;")
+        if ">" in text:
+            text = text.replace(">", "&gt;")
+        return text
+    except (TypeError, AttributeError): #pragma: no cover
+        _raise_serialization_error(text)
+
+
+def _escape_attrib(text):
+    # escape attribute value
+    try:
+        if "&" in text:
+            text = text.replace("&", "&amp;")
+        if "<" in text:
+            text = text.replace("<", "&lt;")
+        if ">" in text:
+            text = text.replace(">", "&gt;")
+        if "\"" in text:
+            text = text.replace("\"", "&quot;")
+        if "\n" in text:
+            text = text.replace("\n", "&#10;")
+        return text
+    except (TypeError, AttributeError): #pragma: no cover
+        _raise_serialization_error(text)
+
+def _escape_attrib_html(text):
+    # escape attribute value
+    try:
+        if "&" in text:
+            text = text.replace("&", "&amp;")
+        if "<" in text:
+            text = text.replace("<", "&lt;")
+        if ">" in text:
+            text = text.replace(">", "&gt;")
+        if "\"" in text:
+            text = text.replace("\"", "&quot;")
+        return text
+    except (TypeError, AttributeError): #pragma: no cover
+        _raise_serialization_error(text)
+
+
+def _serialize_html(write, elem, qnames, namespaces, format):
+    tag = elem.tag
+    text = elem.text
+    if tag is Comment:
+        write("<!--%s-->" % _escape_cdata(text))
+    elif tag is ProcessingInstruction:
+        write("<?%s?>" % _escape_cdata(text))
+    else:
+        tag = qnames[tag]
+        if tag is None:
+            if text:
+                write(_escape_cdata(text))
+            for e in elem:
+                _serialize_html(write, e, qnames, None, format)
+        else:
+            write("<" + tag)
+            items = elem.items()
+            if items or namespaces:
+                items = sorted(items) # lexical order
+                for k, v in items:
+                    if isinstance(k, QName):
+                        k = k.text
+                    if isinstance(v, QName):
+                        v = qnames[v.text]
+                    else:
+                        v = _escape_attrib_html(v)
+                    if qnames[k] == v and format == 'html':
+                        # handle boolean attributes
+                        write(" %s" % v)
+                    else:
+                        write(" %s=\"%s\"" % (qnames[k], v))
+                if namespaces:
+                    items = namespaces.items()
+                    items.sort(key=lambda x: x[1]) # sort on prefix
+                    for v, k in items:
+                        if k:
+                            k = ":" + k
+                        write(" xmlns%s=\"%s\"" % (k, _escape_attrib(v)))
+            if format == "xhtml" and tag.lower() in HTML_EMPTY:
+                write(" />")
+            else:
+                write(">")
+                if text:
+                    if tag.lower() in ["script", "style"]:
+                        write(text)
+                    else:
+                        write(_escape_cdata(text))
+                for e in elem:
+                    _serialize_html(write, e, qnames, None, format)
+                if tag.lower() not in HTML_EMPTY:
+                    write("</" + tag + ">")
+    if elem.tail:
+        write(_escape_cdata(elem.tail))
+
+def _write_html(root,
+                encoding=None,
+                default_namespace=None,
+                format="html"):
+    assert root is not None
+    data = []
+    write = data.append
+    qnames, namespaces = _namespaces(root, default_namespace)
+    _serialize_html(write, root, qnames, namespaces, format)
+    if encoding is None:
+        return "".join(data)
+    else:
+        return _encode("".join(data))
+
+
+# --------------------------------------------------------------------
+# serialization support
+
+def _namespaces(elem, default_namespace=None):
+    # identify namespaces used in this tree
+
+    # maps qnames to *encoded* prefix:local names
+    qnames = {None: None}
+
+    # maps uri:s to prefixes
+    namespaces = {}
+    if default_namespace:
+        namespaces[default_namespace] = ""
+
+    def add_qname(qname):
+        # calculate serialized qname representation
+        try:
+            if qname[:1] == "{":
+                uri, tag = qname[1:].split("}", 1)
+                prefix = namespaces.get(uri)
+                if prefix is None:
+                    prefix = _namespace_map.get(uri)
+                    if prefix is None:
+                        prefix = "ns%d" % len(namespaces)
+                    if prefix != "xml":
+                        namespaces[uri] = prefix
+                if prefix:
+                    qnames[qname] = "%s:%s" % (prefix, tag)
+                else:
+                    qnames[qname] = tag # default element
+            else:
+                if default_namespace:
+                    raise ValueError(
+                        "cannot use non-qualified names with "
+                        "default_namespace option"
+                        )
+                qnames[qname] = qname
+        except TypeError: #pragma: no cover
+            _raise_serialization_error(qname)
+
+    # populate qname and namespaces table
+    try:
+        iterate = elem.iter
+    except AttributeError:
+        iterate = elem.getiterator # cET compatibility
+    for elem in iterate():
+        tag = elem.tag
+        if isinstance(tag, QName) and tag.text not in qnames:
+            add_qname(tag.text)
+        elif isinstance(tag, util.string_type):
+            if tag not in qnames:
+                add_qname(tag)
+        elif tag is not None and tag is not Comment and tag is not PI:
+            _raise_serialization_error(tag)
+        for key, value in elem.items():
+            if isinstance(key, QName):
+                key = key.text
+            if key not in qnames:
+                add_qname(key)
+            if isinstance(value, QName) and value.text not in qnames:
+                add_qname(value.text)
+        text = elem.text
+        if isinstance(text, QName) and text.text not in qnames:
+            add_qname(text.text)
+    return qnames, namespaces
+
+def to_html_string(element):
+    return _write_html(ElementTree(element).getroot(), format="html")
+
+def to_xhtml_string(element):
+    return _write_html(ElementTree(element).getroot(), format="xhtml")
index ec9ff6956fcd9abdf7224e554d0f52b6bfaf870c..a82141ada2c76c040d3e612be8cb3eb3d02688e0 100644 (file)
-from __future__ import unicode_literals\r
-from __future__ import absolute_import\r
-from . import util\r
-from . import odict\r
-from . import inlinepatterns\r
-\r
-\r
-def build_treeprocessors(md_instance, **kwargs):\r
-    """ Build the default treeprocessors for Markdown. """\r
-    treeprocessors = odict.OrderedDict()\r
-    treeprocessors["inline"] = InlineProcessor(md_instance)\r
-    treeprocessors["prettify"] = PrettifyTreeprocessor(md_instance)\r
-    return treeprocessors\r
-\r
-\r
-def isString(s):\r
-    """ Check if it's string """\r
-    if not isinstance(s, util.AtomicString):\r
-        return isinstance(s, util.string_type)\r
-    return False\r
-\r
-\r
-class Treeprocessor(util.Processor):\r
-    """\r
-    Treeprocessors are run on the ElementTree object before serialization.\r
-\r
-    Each Treeprocessor implements a "run" method that takes a pointer to an\r
-    ElementTree, modifies it as necessary and returns an ElementTree\r
-    object.\r
-\r
-    Treeprocessors must extend markdown.Treeprocessor.\r
-\r
-    """\r
-    def run(self, root):\r
-        """\r
-        Subclasses of Treeprocessor should implement a `run` method, which\r
-        takes a root ElementTree. This method can return another ElementTree \r
-        object, and the existing root ElementTree will be replaced, or it can \r
-        modify the current tree and return None.\r
-        """\r
-        pass\r
-\r
-\r
-class InlineProcessor(Treeprocessor):\r
-    """\r
-    A Treeprocessor that traverses a tree, applying inline patterns.\r
-    """\r
-\r
-    def __init__(self, md):\r
-        self.__placeholder_prefix = util.INLINE_PLACEHOLDER_PREFIX\r
-        self.__placeholder_suffix = util.ETX\r
-        self.__placeholder_length = 4 + len(self.__placeholder_prefix) \\r
-                                      + len(self.__placeholder_suffix)\r
-        self.__placeholder_re = util.INLINE_PLACEHOLDER_RE\r
-        self.markdown = md\r
-\r
-    def __makePlaceholder(self, type):\r
-        """ Generate a placeholder """\r
-        id = "%04d" % len(self.stashed_nodes)\r
-        hash = util.INLINE_PLACEHOLDER % id\r
-        return hash, id\r
-\r
-    def __findPlaceholder(self, data, index):\r
-        """\r
-        Extract id from data string, start from index\r
-\r
-        Keyword arguments:\r
-\r
-        * data: string\r
-        * index: index, from which we start search\r
-\r
-        Returns: placeholder id and string index, after the found placeholder.\r
-        \r
-        """\r
-        m = self.__placeholder_re.search(data, index)\r
-        if m:\r
-            return m.group(1), m.end()\r
-        else:\r
-            return None, index + 1\r
-\r
-    def __stashNode(self, node, type):\r
-        """ Add node to stash """\r
-        placeholder, id = self.__makePlaceholder(type)\r
-        self.stashed_nodes[id] = node\r
-        return placeholder\r
-\r
-    def __handleInline(self, data, patternIndex=0):\r
-        """\r
-        Process string with inline patterns and replace it\r
-        with placeholders\r
-\r
-        Keyword arguments:\r
-\r
-        * data: A line of Markdown text\r
-        * patternIndex: The index of the inlinePattern to start with\r
-\r
-        Returns: String with placeholders.\r
-\r
-        """\r
-        if not isinstance(data, util.AtomicString):\r
-            startIndex = 0\r
-            while patternIndex < len(self.markdown.inlinePatterns):\r
-                data, matched, startIndex = self.__applyPattern(\r
-                    self.markdown.inlinePatterns.value_for_index(patternIndex),\r
-                    data, patternIndex, startIndex)\r
-                if not matched:\r
-                    patternIndex += 1\r
-        return data\r
-\r
-    def __processElementText(self, node, subnode, isText=True):\r
-        """\r
-        Process placeholders in Element.text or Element.tail\r
-        of Elements popped from self.stashed_nodes.\r
-\r
-        Keywords arguments:\r
-\r
-        * node: parent node\r
-        * subnode: processing node\r
-        * isText: bool variable, True - it's text, False - it's tail\r
-\r
-        Returns: None\r
-\r
-        """\r
-        if isText:\r
-            text = subnode.text\r
-            subnode.text = None\r
-        else:\r
-            text = subnode.tail\r
-            subnode.tail = None\r
-\r
-        childResult = self.__processPlaceholders(text, subnode)\r
-\r
-        if not isText and node is not subnode:\r
-            pos = list(node).index(subnode)\r
-            node.remove(subnode)\r
-        else:\r
-            pos = 0\r
-\r
-        childResult.reverse()\r
-        for newChild in childResult:\r
-            node.insert(pos, newChild)\r
-\r
-    def __processPlaceholders(self, data, parent):\r
-        """\r
-        Process string with placeholders and generate ElementTree tree.\r
-\r
-        Keyword arguments:\r
-\r
-        * data: string with placeholders instead of ElementTree elements.\r
-        * parent: Element, which contains processing inline data\r
-\r
-        Returns: list with ElementTree elements with applied inline patterns.\r
-        \r
-        """\r
-        def linkText(text):\r
-            if text:\r
-                if result:\r
-                    if result[-1].tail:\r
-                        result[-1].tail += text\r
-                    else:\r
-                        result[-1].tail = text\r
-                else:\r
-                    if parent.text:\r
-                        parent.text += text\r
-                    else:\r
-                        parent.text = text\r
-        result = []\r
-        strartIndex = 0\r
-        while data:\r
-            index = data.find(self.__placeholder_prefix, strartIndex)\r
-            if index != -1:\r
-                id, phEndIndex = self.__findPlaceholder(data, index)\r
-\r
-                if id in self.stashed_nodes:\r
-                    node = self.stashed_nodes.get(id)\r
-\r
-                    if index > 0:\r
-                        text = data[strartIndex:index]\r
-                        linkText(text)\r
-\r
-                    if not isString(node): # it's Element\r
-                        for child in [node] + list(node):\r
-                            if child.tail:\r
-                                if child.tail.strip():\r
-                                    self.__processElementText(node, child,False)\r
-                            if child.text:\r
-                                if child.text.strip():\r
-                                    self.__processElementText(child, child)\r
-                    else: # it's just a string\r
-                        linkText(node)\r
-                        strartIndex = phEndIndex\r
-                        continue\r
-\r
-                    strartIndex = phEndIndex\r
-                    result.append(node)\r
-\r
-                else: # wrong placeholder\r
-                    end = index + len(self.__placeholder_prefix)\r
-                    linkText(data[strartIndex:end])\r
-                    strartIndex = end\r
-            else:\r
-                text = data[strartIndex:]\r
-                if isinstance(data, util.AtomicString):\r
-                    # We don't want to loose the AtomicString\r
-                    text = util.AtomicString(text)\r
-                linkText(text)\r
-                data = ""\r
-\r
-        return result\r
-\r
-    def __applyPattern(self, pattern, data, patternIndex, startIndex=0):\r
-        """\r
-        Check if the line fits the pattern, create the necessary\r
-        elements, add it to stashed_nodes.\r
-\r
-        Keyword arguments:\r
-\r
-        * data: the text to be processed\r
-        * pattern: the pattern to be checked\r
-        * patternIndex: index of current pattern\r
-        * startIndex: string index, from which we start searching\r
-\r
-        Returns: String with placeholders instead of ElementTree elements.\r
-\r
-        """\r
-        match = pattern.getCompiledRegExp().match(data[startIndex:])\r
-        leftData = data[:startIndex]\r
-\r
-        if not match:\r
-            return data, False, 0\r
-\r
-        node = pattern.handleMatch(match)\r
-\r
-        if node is None:\r
-            return data, True, len(leftData)+match.span(len(match.groups()))[0]\r
-\r
-        if not isString(node):\r
-            if not isinstance(node.text, util.AtomicString):\r
-                # We need to process current node too\r
-                for child in [node] + list(node):\r
-                    if not isString(node):\r
-                        if child.text: \r
-                            child.text = self.__handleInline(child.text,\r
-                                                            patternIndex + 1)\r
-                        if child.tail:\r
-                            child.tail = self.__handleInline(child.tail,\r
-                                                            patternIndex)\r
-\r
-        placeholder = self.__stashNode(node, pattern.type())\r
-\r
-        return "%s%s%s%s" % (leftData,\r
-                             match.group(1),\r
-                             placeholder, match.groups()[-1]), True, 0\r
-\r
-    def run(self, tree):\r
-        """Apply inline patterns to a parsed Markdown tree.\r
-\r
-        Iterate over ElementTree, find elements with inline tag, apply inline\r
-        patterns and append newly created Elements to tree.  If you don't\r
-        want to process your data with inline paterns, instead of normal string,\r
-        use subclass AtomicString:\r
-\r
-            node.text = markdown.AtomicString("This will not be processed.")\r
-\r
-        Arguments:\r
-\r
-        * tree: ElementTree object, representing Markdown tree.\r
-\r
-        Returns: ElementTree object with applied inline patterns.\r
-\r
-        """\r
-        self.stashed_nodes = {}\r
-\r
-        stack = [tree]\r
-\r
-        while stack:\r
-            currElement = stack.pop()\r
-            insertQueue = []\r
-            for child in currElement:\r
-                if child.text and not isinstance(child.text, util.AtomicString):\r
-                    text = child.text\r
-                    child.text = None\r
-                    lst = self.__processPlaceholders(self.__handleInline(\r
-                                                    text), child)\r
-                    stack += lst\r
-                    insertQueue.append((child, lst))\r
-                if child.tail:\r
-                    tail = self.__handleInline(child.tail)\r
-                    dumby = util.etree.Element('d')\r
-                    tailResult = self.__processPlaceholders(tail, dumby)\r
-                    if dumby.text:\r
-                        child.tail = dumby.text\r
-                    else:\r
-                        child.tail = None\r
-                    pos = list(currElement).index(child) + 1\r
-                    tailResult.reverse()\r
-                    for newChild in tailResult:\r
-                        currElement.insert(pos, newChild)\r
-                if len(child):\r
-                    stack.append(child)\r
-\r
-            for element, lst in insertQueue:\r
-                if self.markdown.enable_attributes:\r
-                    if element.text and isString(element.text):\r
-                        element.text = \\r
-                            inlinepatterns.handleAttributes(element.text, \r
-                                                                    element)\r
-                i = 0\r
-                for newChild in lst:\r
-                    if self.markdown.enable_attributes:\r
-                        # Processing attributes\r
-                        if newChild.tail and isString(newChild.tail):\r
-                            newChild.tail = \\r
-                                inlinepatterns.handleAttributes(newChild.tail,\r
-                                                                    element)\r
-                        if newChild.text and isString(newChild.text):\r
-                            newChild.text = \\r
-                                inlinepatterns.handleAttributes(newChild.text,\r
-                                                                    newChild)\r
-                    element.insert(i, newChild)\r
-                    i += 1\r
-        return tree\r
-\r
-\r
-class PrettifyTreeprocessor(Treeprocessor):\r
-    """ Add linebreaks to the html document. """\r
-\r
-    def _prettifyETree(self, elem):\r
-        """ Recursively add linebreaks to ElementTree children. """\r
-\r
-        i = "\n"\r
-        if util.isBlockLevel(elem.tag) and elem.tag not in ['code', 'pre']:\r
-            if (not elem.text or not elem.text.strip()) \\r
-                    and len(elem) and util.isBlockLevel(elem[0].tag):\r
-                elem.text = i\r
-            for e in elem:\r
-                if util.isBlockLevel(e.tag):\r
-                    self._prettifyETree(e)\r
-            if not elem.tail or not elem.tail.strip():\r
-                elem.tail = i\r
-        if not elem.tail or not elem.tail.strip():\r
-            elem.tail = i\r
-\r
-    def run(self, root):\r
-        """ Add linebreaks to ElementTree root object. """\r
-\r
-        self._prettifyETree(root)\r
-        # Do <br />'s seperately as they are often in the middle of\r
-        # inline content and missed by _prettifyETree.\r
-        brs = root.getiterator('br')\r
-        for br in brs:\r
-            if not br.tail or not br.tail.strip():\r
-                br.tail = '\n'\r
-            else:\r
-                br.tail = '\n%s' % br.tail\r
-        # Clean up extra empty lines at end of code blocks.\r
-        pres = root.getiterator('pre')\r
-        for pre in pres:\r
-            if len(pre) and pre[0].tag == 'code':\r
-                pre[0].text = pre[0].text.rstrip() + '\n'\r
+from __future__ import unicode_literals
+from __future__ import absolute_import
+from . import util
+from . import odict
+from . import inlinepatterns
+
+
+def build_treeprocessors(md_instance, **kwargs):
+    """ Build the default treeprocessors for Markdown. """
+    treeprocessors = odict.OrderedDict()
+    treeprocessors["inline"] = InlineProcessor(md_instance)
+    treeprocessors["prettify"] = PrettifyTreeprocessor(md_instance)
+    return treeprocessors
+
+
+def isString(s):
+    """ Check if it's string """
+    if not isinstance(s, util.AtomicString):
+        return isinstance(s, util.string_type)
+    return False
+
+
+class Treeprocessor(util.Processor):
+    """
+    Treeprocessors are run on the ElementTree object before serialization.
+
+    Each Treeprocessor implements a "run" method that takes a pointer to an
+    ElementTree, modifies it as necessary and returns an ElementTree
+    object.
+
+    Treeprocessors must extend markdown.Treeprocessor.
+
+    """
+    def run(self, root):
+        """
+        Subclasses of Treeprocessor should implement a `run` method, which
+        takes a root ElementTree. This method can return another ElementTree 
+        object, and the existing root ElementTree will be replaced, or it can 
+        modify the current tree and return None.
+        """
+        pass #pragma: no cover
+
+
+class InlineProcessor(Treeprocessor):
+    """
+    A Treeprocessor that traverses a tree, applying inline patterns.
+    """
+
+    def __init__(self, md):
+        self.__placeholder_prefix = util.INLINE_PLACEHOLDER_PREFIX
+        self.__placeholder_suffix = util.ETX
+        self.__placeholder_length = 4 + len(self.__placeholder_prefix) \
+                                      + len(self.__placeholder_suffix)
+        self.__placeholder_re = util.INLINE_PLACEHOLDER_RE
+        self.markdown = md
+        self.inlinePatterns = md.inlinePatterns
+
+    def __makePlaceholder(self, type):
+        """ Generate a placeholder """
+        id = "%04d" % len(self.stashed_nodes)
+        hash = util.INLINE_PLACEHOLDER % id
+        return hash, id
+
+    def __findPlaceholder(self, data, index):
+        """
+        Extract id from data string, start from index
+
+        Keyword arguments:
+
+        * data: string
+        * index: index, from which we start search
+
+        Returns: placeholder id and string index, after the found placeholder.
+        
+        """
+        m = self.__placeholder_re.search(data, index)
+        if m:
+            return m.group(1), m.end()
+        else:
+            return None, index + 1
+
+    def __stashNode(self, node, type):
+        """ Add node to stash """
+        placeholder, id = self.__makePlaceholder(type)
+        self.stashed_nodes[id] = node
+        return placeholder
+
+    def __handleInline(self, data, patternIndex=0):
+        """
+        Process string with inline patterns and replace it
+        with placeholders
+
+        Keyword arguments:
+
+        * data: A line of Markdown text
+        * patternIndex: The index of the inlinePattern to start with
+
+        Returns: String with placeholders.
+
+        """
+        if not isinstance(data, util.AtomicString):
+            startIndex = 0
+            while patternIndex < len(self.inlinePatterns):
+                data, matched, startIndex = self.__applyPattern(
+                    self.inlinePatterns.value_for_index(patternIndex),
+                    data, patternIndex, startIndex)
+                if not matched:
+                    patternIndex += 1
+        return data
+
+    def __processElementText(self, node, subnode, isText=True):
+        """
+        Process placeholders in Element.text or Element.tail
+        of Elements popped from self.stashed_nodes.
+
+        Keywords arguments:
+
+        * node: parent node
+        * subnode: processing node
+        * isText: bool variable, True - it's text, False - it's tail
+
+        Returns: None
+
+        """
+        if isText:
+            text = subnode.text
+            subnode.text = None
+        else:
+            text = subnode.tail
+            subnode.tail = None
+
+        childResult = self.__processPlaceholders(text, subnode)
+
+        if not isText and node is not subnode:
+            pos = list(node).index(subnode)
+            node.remove(subnode)
+        else:
+            pos = 0
+
+        childResult.reverse()
+        for newChild in childResult:
+            node.insert(pos, newChild)
+
+    def __processPlaceholders(self, data, parent):
+        """
+        Process string with placeholders and generate ElementTree tree.
+
+        Keyword arguments:
+
+        * data: string with placeholders instead of ElementTree elements.
+        * parent: Element, which contains processing inline data
+
+        Returns: list with ElementTree elements with applied inline patterns.
+        
+        """
+        def linkText(text):
+            if text:
+                if result:
+                    if result[-1].tail:
+                        result[-1].tail += text
+                    else:
+                        result[-1].tail = text
+                else:
+                    if parent.text:
+                        parent.text += text
+                    else:
+                        parent.text = text
+        result = []
+        strartIndex = 0
+        while data:
+            index = data.find(self.__placeholder_prefix, strartIndex)
+            if index != -1:
+                id, phEndIndex = self.__findPlaceholder(data, index)
+
+                if id in self.stashed_nodes:
+                    node = self.stashed_nodes.get(id)
+
+                    if index > 0:
+                        text = data[strartIndex:index]
+                        linkText(text)
+
+                    if not isString(node): # it's Element
+                        for child in [node] + list(node):
+                            if child.tail:
+                                if child.tail.strip():
+                                    self.__processElementText(node, child,False)
+                            if child.text:
+                                if child.text.strip():
+                                    self.__processElementText(child, child)
+                    else: # it's just a string
+                        linkText(node)
+                        strartIndex = phEndIndex
+                        continue
+
+                    strartIndex = phEndIndex
+                    result.append(node)
+
+                else: # wrong placeholder
+                    end = index + len(self.__placeholder_prefix)
+                    linkText(data[strartIndex:end])
+                    strartIndex = end
+            else:
+                text = data[strartIndex:]
+                if isinstance(data, util.AtomicString):
+                    # We don't want to loose the AtomicString
+                    text = util.AtomicString(text)
+                linkText(text)
+                data = ""
+
+        return result
+
+    def __applyPattern(self, pattern, data, patternIndex, startIndex=0):
+        """
+        Check if the line fits the pattern, create the necessary
+        elements, add it to stashed_nodes.
+
+        Keyword arguments:
+
+        * data: the text to be processed
+        * pattern: the pattern to be checked
+        * patternIndex: index of current pattern
+        * startIndex: string index, from which we start searching
+
+        Returns: String with placeholders instead of ElementTree elements.
+
+        """
+        match = pattern.getCompiledRegExp().match(data[startIndex:])
+        leftData = data[:startIndex]
+
+        if not match:
+            return data, False, 0
+
+        node = pattern.handleMatch(match)
+
+        if node is None:
+            return data, True, len(leftData)+match.span(len(match.groups()))[0]
+
+        if not isString(node):
+            if not isinstance(node.text, util.AtomicString):
+                # We need to process current node too
+                for child in [node] + list(node):
+                    if not isString(node):
+                        if child.text: 
+                            child.text = self.__handleInline(child.text,
+                                                            patternIndex + 1)
+                        if child.tail:
+                            child.tail = self.__handleInline(child.tail,
+                                                            patternIndex)
+
+        placeholder = self.__stashNode(node, pattern.type())
+
+        return "%s%s%s%s" % (leftData,
+                             match.group(1),
+                             placeholder, match.groups()[-1]), True, 0
+
+    def run(self, tree):
+        """Apply inline patterns to a parsed Markdown tree.
+
+        Iterate over ElementTree, find elements with inline tag, apply inline
+        patterns and append newly created Elements to tree.  If you don't
+        want to process your data with inline paterns, instead of normal string,
+        use subclass AtomicString:
+
+            node.text = markdown.AtomicString("This will not be processed.")
+
+        Arguments:
+
+        * tree: ElementTree object, representing Markdown tree.
+
+        Returns: ElementTree object with applied inline patterns.
+
+        """
+        self.stashed_nodes = {}
+
+        stack = [tree]
+
+        while stack:
+            currElement = stack.pop()
+            insertQueue = []
+            for child in currElement:
+                if child.text and not isinstance(child.text, util.AtomicString):
+                    text = child.text
+                    child.text = None
+                    lst = self.__processPlaceholders(self.__handleInline(
+                                                    text), child)
+                    stack += lst
+                    insertQueue.append((child, lst))
+                if child.tail:
+                    tail = self.__handleInline(child.tail)
+                    dumby = util.etree.Element('d')
+                    tailResult = self.__processPlaceholders(tail, dumby)
+                    if dumby.text:
+                        child.tail = dumby.text
+                    else:
+                        child.tail = None
+                    pos = list(currElement).index(child) + 1
+                    tailResult.reverse()
+                    for newChild in tailResult:
+                        currElement.insert(pos, newChild)
+                if len(child):
+                    stack.append(child)
+
+            for element, lst in insertQueue:
+                if self.markdown.enable_attributes:
+                    if element.text and isString(element.text):
+                        element.text = \
+                            inlinepatterns.handleAttributes(element.text, 
+                                                                    element)
+                i = 0
+                for newChild in lst:
+                    if self.markdown.enable_attributes:
+                        # Processing attributes
+                        if newChild.tail and isString(newChild.tail):
+                            newChild.tail = \
+                                inlinepatterns.handleAttributes(newChild.tail,
+                                                                    element)
+                        if newChild.text and isString(newChild.text):
+                            newChild.text = \
+                                inlinepatterns.handleAttributes(newChild.text,
+                                                                    newChild)
+                    element.insert(i, newChild)
+                    i += 1
+        return tree
+
+
+class PrettifyTreeprocessor(Treeprocessor):
+    """ Add linebreaks to the html document. """
+
+    def _prettifyETree(self, elem):
+        """ Recursively add linebreaks to ElementTree children. """
+
+        i = "\n"
+        if util.isBlockLevel(elem.tag) and elem.tag not in ['code', 'pre']:
+            if (not elem.text or not elem.text.strip()) \
+                    and len(elem) and util.isBlockLevel(elem[0].tag):
+                elem.text = i
+            for e in elem:
+                if util.isBlockLevel(e.tag):
+                    self._prettifyETree(e)
+            if not elem.tail or not elem.tail.strip():
+                elem.tail = i
+        if not elem.tail or not elem.tail.strip():
+            elem.tail = i
+
+    def run(self, root):
+        """ Add linebreaks to ElementTree root object. """
+
+        self._prettifyETree(root)
+        # Do <br />'s seperately as they are often in the middle of
+        # inline content and missed by _prettifyETree.
+        brs = root.getiterator('br')
+        for br in brs:
+            if not br.tail or not br.tail.strip():
+                br.tail = '\n'
+            else:
+                br.tail = '\n%s' % br.tail
+        # Clean up extra empty lines at end of code blocks.
+        pres = root.getiterator('pre')
+        for pre in pres:
+            if len(pre) and pre[0].tag == 'code':
+                pre[0].text = util.AtomicString(pre[0].text.rstrip() + '\n')
index 433a3251f3da21e996fc28b183055983df132639..0541e7b40917f9c95871c55b15b874b7ea7bbb54 100644 (file)
-# -*- coding: utf-8 -*-\r
-from __future__ import unicode_literals\r
-import re\r
-import sys\r
-\r
-\r
-"""\r
-Python 3 Stuff\r
-=============================================================================\r
-"""\r
-PY3 = sys.version_info[0] == 3\r
-\r
-if PY3:\r
-    string_type = str\r
-    text_type = str\r
-    int2str = chr\r
-else:\r
-    string_type = basestring\r
-    text_type = unicode\r
-    int2str = unichr\r
-\r
-\r
-"""\r
-Constants you might want to modify\r
------------------------------------------------------------------------------\r
-"""\r
-\r
-BLOCK_LEVEL_ELEMENTS = re.compile("^(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul"\r
-                                  "|script|noscript|form|fieldset|iframe|math"\r
-                                  "|hr|hr/|style|li|dt|dd|thead|tbody"\r
-                                  "|tr|th|td|section|footer|header|group|figure"\r
-                                  "|figcaption|aside|article|canvas|output"\r
-                                  "|progress|video)$", re.IGNORECASE)\r
-# Placeholders\r
-STX = '\u0002'  # Use STX ("Start of text") for start-of-placeholder\r
-ETX = '\u0003'  # Use ETX ("End of text") for end-of-placeholder\r
-INLINE_PLACEHOLDER_PREFIX = STX+"klzzwxh:"\r
-INLINE_PLACEHOLDER = INLINE_PLACEHOLDER_PREFIX + "%s" + ETX\r
-INLINE_PLACEHOLDER_RE = re.compile(INLINE_PLACEHOLDER % r'([0-9]+)')\r
-AMP_SUBSTITUTE = STX+"amp"+ETX\r
-HTML_PLACEHOLDER = STX + "wzxhzdk:%s" + ETX\r
-HTML_PLACEHOLDER_RE = re.compile(HTML_PLACEHOLDER % r'([0-9]+)')\r
-TAG_PLACEHOLDER = STX + "hzzhzkh:%s" + ETX\r
-\r
-\r
-"""\r
-Constants you probably do not need to change\r
------------------------------------------------------------------------------\r
-"""\r
-\r
-RTL_BIDI_RANGES = ( ('\u0590', '\u07FF'),\r
-                     # Hebrew (0590-05FF), Arabic (0600-06FF),\r
-                     # Syriac (0700-074F), Arabic supplement (0750-077F),\r
-                     # Thaana (0780-07BF), Nko (07C0-07FF).\r
-                    ('\u2D30', '\u2D7F'), # Tifinagh\r
-                    )\r
-\r
-# Extensions should use "markdown.util.etree" instead of "etree" (or do `from\r
-# markdown.util import etree`).  Do not import it by yourself.\r
-\r
-try: # Is the C implementation of ElementTree available?\r
-    import xml.etree.cElementTree as etree\r
-    from xml.etree.ElementTree import Comment\r
-    # Serializers (including ours) test with non-c Comment\r
-    etree.test_comment = Comment\r
-    if etree.VERSION < "1.0.5":\r
-        raise RuntimeError("cElementTree version 1.0.5 or higher is required.")\r
-except (ImportError, RuntimeError):\r
-    # Use the Python implementation of ElementTree?\r
-    import xml.etree.ElementTree as etree\r
-    if etree.VERSION < "1.1":\r
-        raise RuntimeError("ElementTree version 1.1 or higher is required")\r
-\r
-\r
-"""\r
-AUXILIARY GLOBAL FUNCTIONS\r
-=============================================================================\r
-"""\r
-\r
-\r
-def isBlockLevel(tag):\r
-    """Check if the tag is a block level HTML tag."""\r
-    if isinstance(tag, string_type):\r
-        return BLOCK_LEVEL_ELEMENTS.match(tag)\r
-    # Some ElementTree tags are not strings, so return False.\r
-    return False\r
-\r
-def parseBoolValue(value, fail_on_errors=True):\r
-    """Parses a string representing bool value. If parsing was successful,\r
-       returns True or False. If parsing was not successful, raises\r
-       ValueError, or, if fail_on_errors=False, returns None."""\r
-    if not isinstance(value, string_type):\r
-        return bool(value)\r
-    elif value.lower() in ('true', 'yes', 'y', 'on', '1'):\r
-        return True\r
-    elif value.lower() in ('false', 'no', 'n', 'off', '0'):\r
-        return False\r
-    elif fail_on_errors:\r
-        raise ValueError('Cannot parse bool value: %r' % value)\r
-\r
-"""\r
-MISC AUXILIARY CLASSES\r
-=============================================================================\r
-"""\r
-\r
-class AtomicString(text_type):\r
-    """A string which should not be further processed."""\r
-    pass\r
-\r
-\r
-class Processor(object):\r
-    def __init__(self, markdown_instance=None):\r
-        if markdown_instance:\r
-            self.markdown = markdown_instance\r
-\r
-\r
-class HtmlStash(object):\r
-    """\r
-    This class is used for stashing HTML objects that we extract\r
-    in the beginning and replace with place-holders.\r
-    """\r
-\r
-    def __init__(self):\r
-        """ Create a HtmlStash. """\r
-        self.html_counter = 0  # for counting inline html segments\r
-        self.rawHtmlBlocks = []\r
-        self.tag_counter = 0\r
-        self.tag_data = []  # list of dictionaries in the order tags appear\r
-\r
-    def store(self, html, safe=False):\r
-        """\r
-        Saves an HTML segment for later reinsertion.  Returns a\r
-        placeholder string that needs to be inserted into the\r
-        document.\r
-\r
-        Keyword arguments:\r
-\r
-        * html: an html segment\r
-        * safe: label an html segment as safe for safemode\r
-\r
-        Returns : a placeholder string\r
-\r
-        """\r
-        self.rawHtmlBlocks.append((html, safe))\r
-        placeholder = self.get_placeholder(self.html_counter)\r
-        self.html_counter += 1\r
-        return placeholder\r
-\r
-    def reset(self):\r
-        self.html_counter = 0\r
-        self.rawHtmlBlocks = []\r
-\r
-    def get_placeholder(self, key):\r
-        return HTML_PLACEHOLDER % key\r
-\r
-    def store_tag(self, tag, attrs, left_index, right_index):\r
-        """Store tag data and return a placeholder."""\r
-        self.tag_data.append({'tag': tag, 'attrs': attrs,\r
-                              'left_index': left_index,\r
-                              'right_index': right_index})\r
-        placeholder = TAG_PLACEHOLDER % str(self.tag_counter)\r
-        self.tag_counter += 1  # equal to the tag's index in self.tag_data\r
-        return placeholder\r
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+import re
+import sys
+
+
+"""
+Python 3 Stuff
+=============================================================================
+"""
+PY3 = sys.version_info[0] == 3
+
+if PY3: #pragma: no cover
+    string_type = str
+    text_type = str
+    int2str = chr
+else: #pragma: no cover
+    string_type = basestring
+    text_type = unicode
+    int2str = unichr
+
+
+"""
+Constants you might want to modify
+-----------------------------------------------------------------------------
+"""
+
+BLOCK_LEVEL_ELEMENTS = re.compile("^(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul"
+                                  "|script|noscript|form|fieldset|iframe|math"
+                                  "|hr|hr/|style|li|dt|dd|thead|tbody"
+                                  "|tr|th|td|section|footer|header|group|figure"
+                                  "|figcaption|aside|article|canvas|output"
+                                  "|progress|video|nav)$", re.IGNORECASE)
+# Placeholders
+STX = '\u0002'  # Use STX ("Start of text") for start-of-placeholder
+ETX = '\u0003'  # Use ETX ("End of text") for end-of-placeholder
+INLINE_PLACEHOLDER_PREFIX = STX+"klzzwxh:"
+INLINE_PLACEHOLDER = INLINE_PLACEHOLDER_PREFIX + "%s" + ETX
+INLINE_PLACEHOLDER_RE = re.compile(INLINE_PLACEHOLDER % r'([0-9]+)')
+AMP_SUBSTITUTE = STX+"amp"+ETX
+HTML_PLACEHOLDER = STX + "wzxhzdk:%s" + ETX
+HTML_PLACEHOLDER_RE = re.compile(HTML_PLACEHOLDER % r'([0-9]+)')
+TAG_PLACEHOLDER = STX + "hzzhzkh:%s" + ETX
+
+
+"""
+Constants you probably do not need to change
+-----------------------------------------------------------------------------
+"""
+
+RTL_BIDI_RANGES = ( ('\u0590', '\u07FF'),
+                     # Hebrew (0590-05FF), Arabic (0600-06FF),
+                     # Syriac (0700-074F), Arabic supplement (0750-077F),
+                     # Thaana (0780-07BF), Nko (07C0-07FF).
+                    ('\u2D30', '\u2D7F'), # Tifinagh
+                    )
+
+# Extensions should use "markdown.util.etree" instead of "etree" (or do `from
+# markdown.util import etree`).  Do not import it by yourself.
+
+try: #pragma: no cover
+    # Is the C implementation of ElementTree available?
+    import xml.etree.cElementTree as etree
+    from xml.etree.ElementTree import Comment
+    # Serializers (including ours) test with non-c Comment
+    etree.test_comment = Comment
+    if etree.VERSION < "1.0.5":
+        raise RuntimeError("cElementTree version 1.0.5 or higher is required.")
+except (ImportError, RuntimeError): #pragma: no cover
+    # Use the Python implementation of ElementTree?
+    import xml.etree.ElementTree as etree
+    if etree.VERSION < "1.1":
+        raise RuntimeError("ElementTree version 1.1 or higher is required")
+
+
+"""
+AUXILIARY GLOBAL FUNCTIONS
+=============================================================================
+"""
+
+
+def isBlockLevel(tag):
+    """Check if the tag is a block level HTML tag."""
+    if isinstance(tag, string_type):
+        return BLOCK_LEVEL_ELEMENTS.match(tag)
+    # Some ElementTree tags are not strings, so return False.
+    return False
+
+def parseBoolValue(value, fail_on_errors=True, preserve_none=False):
+    """Parses a string representing bool value. If parsing was successful,
+       returns True or False. If preserve_none=True, returns True, False, 
+       or None. If parsing was not successful, raises  ValueError, or, if 
+       fail_on_errors=False, returns None."""
+    if not isinstance(value, string_type):
+        if preserve_none and value is None:
+            return  value
+        return bool(value)
+    elif preserve_none and value.lower() == 'none':
+        return None
+    elif value.lower() in ('true', 'yes', 'y', 'on', '1'):
+        return True
+    elif value.lower() in ('false', 'no', 'n', 'off', '0', 'none'):
+        return False
+    elif fail_on_errors:
+        raise ValueError('Cannot parse bool value: %r' % value)
+
+"""
+MISC AUXILIARY CLASSES
+=============================================================================
+"""
+
+class AtomicString(text_type):
+    """A string which should not be further processed."""
+    pass
+
+
+class Processor(object):
+    def __init__(self, markdown_instance=None):
+        if markdown_instance:
+            self.markdown = markdown_instance
+
+
+class HtmlStash(object):
+    """
+    This class is used for stashing HTML objects that we extract
+    in the beginning and replace with place-holders.
+    """
+
+    def __init__(self):
+        """ Create a HtmlStash. """
+        self.html_counter = 0  # for counting inline html segments
+        self.rawHtmlBlocks = []
+        self.tag_counter = 0
+        self.tag_data = []  # list of dictionaries in the order tags appear
+
+    def store(self, html, safe=False):
+        """
+        Saves an HTML segment for later reinsertion.  Returns a
+        placeholder string that needs to be inserted into the
+        document.
+
+        Keyword arguments:
+
+        * html: an html segment
+        * safe: label an html segment as safe for safemode
+
+        Returns : a placeholder string
+
+        """
+        self.rawHtmlBlocks.append((html, safe))
+        placeholder = self.get_placeholder(self.html_counter)
+        self.html_counter += 1
+        return placeholder
+
+    def reset(self):
+        self.html_counter = 0
+        self.rawHtmlBlocks = []
+
+    def get_placeholder(self, key):
+        return HTML_PLACEHOLDER % key
+
+    def store_tag(self, tag, attrs, left_index, right_index):
+        """Store tag data and return a placeholder."""
+        self.tag_data.append({'tag': tag, 'attrs': attrs,
+                              'left_index': left_index,
+                              'right_index': right_index})
+        placeholder = TAG_PLACEHOLDER % str(self.tag_counter)
+        self.tag_counter += 1  # equal to the tag's index in self.tag_data
+        return placeholder
old mode 100644 (file)
new mode 100755 (executable)
index 37292b6..2727a20
@@ -1,17 +1,17 @@
-#!/usr/bin/env python\r
-\r
-import tests\r
-import os, sys\r
-\r
-if len(sys.argv) > 1 and sys.argv[1] == "update":\r
-    if len(sys.argv) > 2:\r
-        config = tests.get_config(os.path.dirname(sys.argv[2]))\r
-        root, ext = os.path.splitext(sys.argv[2])\r
-        if ext == config.get(tests.get_section(os.path.basename(root), config), 'input_ext'):\r
-            tests.generate(root, config)\r
-        else:\r
-            print(sys.argv[2], 'does not have a valid file extension. Check config.')\r
-    else:\r
-        tests.generate_all()\r
-else:\r
-    tests.run()\r
+#!/usr/bin/env python
+
+import tests
+import os, sys
+
+if len(sys.argv) > 1 and sys.argv[1] == "update":
+    if len(sys.argv) > 2:
+        config = tests.get_config(os.path.dirname(sys.argv[2]))
+        root, ext = os.path.splitext(sys.argv[2])
+        if ext == config.get(config.get_section(os.path.basename(root)), 'input_ext'):
+            tests.generate(root, config)
+        else:
+            print(sys.argv[2], 'does not have a valid file extension. Check config.')
+    else:
+        tests.generate_all()
+else:
+    tests.run()
index eb5a7fa6a7dac3f25135fbaaa8b2945289689f58..b0695bbf51c484cc48b0a6902ebd6198de306af7 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -1 +1 @@
-[nosetests]\r
+[nosetests]
old mode 100644 (file)
new mode 100755 (executable)
index 42594de..f635b48
--- a/setup.py
+++ b/setup.py
-#!/usr/bin/env python\r
-\r
-from __future__ import with_statement\r
-import sys, os\r
-from distutils.core import setup\r
-from distutils.command.install_scripts import install_scripts\r
-from distutils.command.build import build\r
-from distutils.core import Command\r
-from distutils.util import change_root, newer\r
-import codecs\r
-import imp\r
-\r
-def get_version():\r
-    " Get version & version_info without importing markdown.__init__ "\r
-    path = os.path.join(os.path.dirname(__file__), 'markdown')\r
-    fp, pathname, desc = imp.find_module('__version__', [path])\r
-    try:\r
-        v = imp.load_module('__version__', fp, pathname, desc)\r
-        return v.version, v.version_info\r
-    finally:\r
-        fp.close()\r
-\r
-version, version_info = get_version()\r
-\r
-# Get development Status for classifiers\r
-dev_status_map = {\r
-    'alpha': '3 - Alpha',\r
-    'beta' : '4 - Beta',\r
-    'rc'   : '4 - Beta',\r
-    'final': '5 - Production/Stable'\r
-}\r
-if version_info[3] == 'alpha' and version_info[4] == 0:\r
-    DEVSTATUS = '2 - Pre-Alpha'\r
-else:\r
-    DEVSTATUS = dev_status_map[version_info[3]]\r
-\r
-# The command line script name.  Currently set to "markdown_py" so as not to\r
-# conflict with the perl implimentation (which uses "markdown").  We can't use\r
-# "markdown.py" as the default config on some systems will cause the script to\r
-# try to import itself rather than the library which will raise an error.\r
-SCRIPT_NAME = 'markdown_py'\r
-\r
-class md_install_scripts(install_scripts):\r
-    """ Customized install_scripts. Create markdown_py.bat for win32. """\r
-    def run(self):\r
-        install_scripts.run(self)\r
-\r
-        if sys.platform == 'win32':\r
-            try:\r
-                script_dir = os.path.join(sys.prefix, 'Scripts')\r
-                script_path = os.path.join(script_dir, SCRIPT_NAME)\r
-                bat_str = '@"%s" "%s" %%*' % (sys.executable, script_path)\r
-                bat_path = os.path.join(self.install_dir, '%s.bat' %SCRIPT_NAME)\r
-                f = open(bat_path, 'w')\r
-                f.write(bat_str)\r
-                f.close()\r
-                print ('Created: %s' % bat_path)\r
-            except Exception:\r
-                _, err, _ = sys.exc_info() # for both 2.x & 3.x compatability\r
-                print ('ERROR: Unable to create %s: %s' % (bat_path, err))\r
-\r
-\r
-class build_docs(Command):\r
-    """ Build markdown documentation into html."""\r
-\r
-    description = '"build" documentation (convert markdown text to html)'\r
-\r
-    user_options = [\r
-        ('build-base=', 'd', 'directory to "build" to'),\r
-        ('force', 'f', 'forcibly build everything (ignore file timestamps)'),\r
-        ]\r
-\r
-    boolean_options = ['force']\r
-\r
-    def initialize_options(self):\r
-        self.build_base = None\r
-        self.force = None\r
-        self.docs = None\r
-        self.sitemap = ''\r
-\r
-    def finalize_options(self):\r
-        self.set_undefined_options('build',\r
-                                    ('build_base', 'build_base'),\r
-                                    ('force', 'force'))\r
-        self.docs = self._get_docs()\r
-\r
-    def _get_docs(self):\r
-        for root, dirs, files in os.walk('docs'):\r
-            for file in files:\r
-                if not file.startswith('_'):\r
-                    path = os.path.join(root, file)\r
-                    yield path\r
-\r
-    def _get_context(self, src, path):\r
-        """ Build and return context to pass to template. """\r
-        # set defaults\r
-        c = {\r
-            'title'      : '',\r
-            'prev_url'   : '',\r
-            'prev_title' : '',\r
-            'next_url'   : '',\r
-            'next_title' : '',\r
-            'crumb'      : '',\r
-            'version'    : version,\r
-        }\r
-        c['body'] = self.md.convert(src)\r
-        c['toc'] = self.md.toc\r
-        for k, v in self.md.Meta.items():\r
-            c[k] = ' '.join(v)\r
-        self.md.reset()\r
-        # Manipulate path\r
-        path = path[len(os.path.join(self.build_base, 'docs/')):]\r
-        dir, file = os.path.split(path)\r
-        name, ext = os.path.splitext(file)\r
-        parts = [x for x in dir.split(os.sep) if x]\r
-        c['source'] = '%s.txt' % name\r
-        c['base'] = '../'*len(parts)\r
-        # Build page title\r
-        if name.lower() != 'index' or parts:\r
-            c['page_title'] = '%s &#8212; Python Markdown' % c['title']\r
-        else:\r
-            c['page_title'] = 'Python Markdown'\r
-        # Build crumb trail\r
-        crumbs = []\r
-        ctemp = '<li><a href="%s">%s</a> &raquo;</li>'\r
-        for n, part in enumerate(parts):\r
-            href = ('../'*n) + 'index.html'\r
-            label = part.replace('_', ' ').capitalize()\r
-            crumbs.append(ctemp % (href, label))\r
-        if c['title'] and name.lower() != 'index':\r
-            crumbs.append(ctemp % (file, c['title']))\r
-        c['crumb'] = '\n'.join(crumbs)\r
-        return c\r
-\r
-    def run(self):\r
-        # Before importing markdown, tweak sys.path to import from the\r
-        # build directory (2to3 might have run on the library).\r
-        bld_cmd = self.get_finalized_command("build")\r
-        sys.path.insert(0, bld_cmd.build_lib)\r
-        try:\r
-            import markdown\r
-        except ImportError:\r
-            print ('skipping build_docs: Markdown "import" failed!')\r
-        else:\r
-            with codecs.open('docs/_template.html', encoding='utf-8') as f:\r
-                template = f.read()\r
-            self.md = markdown.Markdown(\r
-                extensions=['extra', 'toc(permalink=true)', 'meta', 'admonition', 'smarty'])\r
-            for infile in self.docs:\r
-                outfile, ext = os.path.splitext(infile)\r
-                if ext == '.txt':\r
-                    # Copy src to .txt file\r
-                    srcfile = outfile + '.txt'\r
-                    srcfile = change_root(self.build_base, srcfile)\r
-                    self.mkpath(os.path.split(srcfile)[0])\r
-                    self.copy_file(infile, srcfile)\r
-                    # Render html file\r
-                    outfile += '.html'\r
-                    outfile = change_root(self.build_base, outfile)\r
-                    self.mkpath(os.path.split(outfile)[0])\r
-                    if self.force or newer(infile, outfile):\r
-                        if self.verbose:\r
-                            print ('Converting %s -> %s' % (infile, outfile))\r
-                        if not self.dry_run:\r
-                            with codecs.open(infile, encoding='utf-8') as f:\r
-                                src = f.read()\r
-                            out = template % self._get_context(src, outfile)\r
-                            doc = open(outfile, 'wb')\r
-                            doc.write(out.encode('utf-8'))\r
-                            doc.close()\r
-                else:\r
-                    outfile = change_root(self.build_base, infile)\r
-                    self.mkpath(os.path.split(outfile)[0])\r
-                    self.copy_file(infile, outfile)\r
-\r
-\r
-class md_build(build):\r
-    """ Run "build_docs" command from "build" command. """\r
-\r
-    user_options = build.user_options + [\r
-        ('no-build-docs', None, 'do not build documentation'),\r
-        ]\r
-\r
-    boolean_options = build.boolean_options + ['build-docs']\r
-\r
-    def initialize_options(self):\r
-        build.initialize_options(self)\r
-        self.no_build_docs = False\r
-\r
-    def has_docs(self):\r
-        return not self.no_build_docs\r
-\r
-    sub_commands = build.sub_commands + [('build_docs', has_docs)]\r
-\r
-long_description = \\r
-'''This is a Python implementation of John Gruber's Markdown_. \r
-It is almost completely compliant with the reference implementation,\r
-though there are a few known issues. See Features_ for information \r
-on what exactly is supported and what is not. Additional features are \r
-supported by the `Available Extensions`_.\r
-\r
-.. _Markdown: http://daringfireball.net/projects/markdown/\r
-.. _Features: http://packages.python.org/Markdown/index.html#Features\r
-.. _`Available Extensions`: http://packages.python.org/Markdown/extensions/index.html\r
-\r
-Support\r
-=======\r
-\r
-You may ask for help and discuss various other issues on the\r
-`mailing list`_ and report bugs on the `bug tracker`_.\r
-\r
-.. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss\r
-.. _`bug tracker`: http://github.com/waylan/Python-Markdown/issues\r
-'''\r
-\r
-setup(\r
-    name =          'Markdown',\r
-    version =       version,\r
-    url =           'http://packages.python.org/Markdown/',\r
-    download_url =  'http://pypi.python.org/packages/source/M/Markdown/Markdown-%s.tar.gz' % version,\r
-    description =   'Python implementation of Markdown.',\r
-    long_description = long_description,\r
-    author =        'Manfred Stienstra, Yuri takhteyev and Waylan limberg',\r
-    author_email =  'markdown [at] freewisdom.org',\r
-    maintainer =    'Waylan Limberg',\r
-    maintainer_email = 'waylan [at] gmail.com',\r
-    license =       'BSD License',\r
-    packages =      ['markdown', 'markdown.extensions'],\r
-    scripts =       ['bin/%s' % SCRIPT_NAME],\r
-    cmdclass =      {'install_scripts': md_install_scripts,\r
-                     'build_docs': build_docs,\r
-                     'build': md_build},\r
-    classifiers =   ['Development Status :: %s' % DEVSTATUS,\r
-                     'License :: OSI Approved :: BSD License',\r
-                     'Operating System :: OS Independent',\r
-                     'Programming Language :: Python',\r
-                     'Programming Language :: Python :: 2',\r
-                     'Programming Language :: Python :: 2.6',\r
-                     'Programming Language :: Python :: 2.7',\r
-                     'Programming Language :: Python :: 3',\r
-                     'Programming Language :: Python :: 3.1',\r
-                     'Programming Language :: Python :: 3.2',\r
-                     'Programming Language :: Python :: 3.3',\r
-                     'Topic :: Communications :: Email :: Filters',\r
-                     'Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries',\r
-                     'Topic :: Internet :: WWW/HTTP :: Site Management',\r
-                     'Topic :: Software Development :: Documentation',\r
-                     'Topic :: Software Development :: Libraries :: Python Modules',\r
-                     'Topic :: Text Processing :: Filters',\r
-                     'Topic :: Text Processing :: Markup :: HTML',\r
-                    ],\r
-    )\r
+#!/usr/bin/env python
+
+from __future__ import with_statement
+import sys, os
+from distutils.core import setup
+from distutils.command.install_scripts import install_scripts
+from distutils.command.build import build
+from distutils.core import Command
+from distutils.util import change_root, newer
+import codecs
+import imp
+
+def get_version():
+    " Get version & version_info without importing markdown.__init__ "
+    path = os.path.join(os.path.dirname(__file__), 'markdown')
+    fp, pathname, desc = imp.find_module('__version__', [path])
+    try:
+        v = imp.load_module('__version__', fp, pathname, desc)
+        return v.version, v.version_info
+    finally:
+        fp.close()
+
+version, version_info = get_version()
+
+# Get development Status for classifiers
+dev_status_map = {
+    'alpha': '3 - Alpha',
+    'beta' : '4 - Beta',
+    'rc'   : '4 - Beta',
+    'final': '5 - Production/Stable'
+}
+if version_info[3] == 'alpha' and version_info[4] == 0:
+    DEVSTATUS = '2 - Pre-Alpha'
+else:
+    DEVSTATUS = dev_status_map[version_info[3]]
+
+# The command line script name.  Currently set to "markdown_py" so as not to
+# conflict with the perl implimentation (which uses "markdown").  We can't use
+# "markdown.py" as the default config on some systems will cause the script to
+# try to import itself rather than the library which will raise an error.
+SCRIPT_NAME = 'markdown_py'
+
+class md_install_scripts(install_scripts):
+    """ Customized install_scripts. Create markdown_py.bat for win32. """
+    def run(self):
+        install_scripts.run(self)
+
+        if sys.platform == 'win32':
+            try:
+                script_dir = os.path.join(sys.prefix, 'Scripts')
+                script_path = os.path.join(script_dir, SCRIPT_NAME)
+                bat_str = '@"%s" "%s" %%*' % (sys.executable, script_path)
+                bat_path = os.path.join(self.install_dir, '%s.bat' %SCRIPT_NAME)
+                f = open(bat_path, 'w')
+                f.write(bat_str)
+                f.close()
+                print ('Created: %s' % bat_path)
+            except Exception:
+                _, err, _ = sys.exc_info() # for both 2.x & 3.x compatability
+                print ('ERROR: Unable to create %s: %s' % (bat_path, err))
+
+
+class build_docs(Command):
+    """ Build markdown documentation into html."""
+
+    description = '"build" documentation (convert markdown text to html)'
+
+    user_options = [
+        ('build-base=', 'd', 'directory to "build" to'),
+        ('force', 'f', 'forcibly build everything (ignore file timestamps)'),
+        ]
+
+    boolean_options = ['force']
+
+    def initialize_options(self):
+        self.build_base = None
+        self.force = None
+        self.docs = None
+        self.sitemap = ''
+
+    def finalize_options(self):
+        self.set_undefined_options('build',
+                                    ('build_base', 'build_base'),
+                                    ('force', 'force'))
+        self.docs = self._get_docs()
+
+    def _get_docs(self):
+        for root, dirs, files in os.walk('docs'):
+            for file in files:
+                if not file.startswith('_'):
+                    path = os.path.join(root, file)
+                    yield path
+
+    def _get_context(self, src, path):
+        """ Build and return context to pass to template. """
+        # set defaults
+        c = {
+            'title'      : '',
+            'prev_url'   : '',
+            'prev_title' : '',
+            'next_url'   : '',
+            'next_title' : '',
+            'crumb'      : '',
+            'version'    : version,
+        }
+        c['body'] = self.md.convert(src)
+        c['toc'] = self.md.toc
+        for k, v in self.md.Meta.items():
+            c[k] = ' '.join(v)
+        self.md.reset()
+        # Manipulate path
+        path = path[len(os.path.join(self.build_base, 'docs/')):]
+        dir, file = os.path.split(path)
+        name, ext = os.path.splitext(file)
+        parts = [x for x in dir.split(os.sep) if x]
+        c['source'] = '%s.txt' % name
+        c['base'] = '../'*len(parts)
+        # Build page title
+        if name.lower() != 'index' or parts:
+            c['page_title'] = '%s &#8212; Python Markdown' % c['title']
+        else:
+            c['page_title'] = 'Python Markdown'
+        # Build crumb trail
+        crumbs = []
+        ctemp = '<li><a href="%s">%s</a> &raquo;</li>'
+        for n, part in enumerate(parts):
+            href = ('../'*n) + 'index.html'
+            label = part.replace('_', ' ').capitalize()
+            crumbs.append(ctemp % (href, label))
+        if c['title'] and name.lower() != 'index':
+            crumbs.append(ctemp % (file, c['title']))
+        c['crumb'] = '\n'.join(crumbs)
+        return c
+
+    def run(self):
+        # Before importing markdown, tweak sys.path to import from the
+        # build directory (2to3 might have run on the library).
+        bld_cmd = self.get_finalized_command("build")
+        sys.path.insert(0, bld_cmd.build_lib)
+        try:
+            import markdown
+        except ImportError:
+            print ('skipping build_docs: Markdown "import" failed!')
+        else:
+            with codecs.open('docs/_template.html', encoding='utf-8') as f:
+                template = f.read()
+            self.md = markdown.Markdown(
+                extensions=['extra', 'toc(permalink=true)', 'meta', 'admonition', 'smarty'])
+            for infile in self.docs:
+                outfile, ext = os.path.splitext(infile)
+                if ext == '.txt':
+                    # Copy src to .txt file
+                    srcfile = outfile + '.txt'
+                    srcfile = change_root(self.build_base, srcfile)
+                    self.mkpath(os.path.split(srcfile)[0])
+                    self.copy_file(infile, srcfile)
+                    # Render html file
+                    outfile += '.html'
+                    outfile = change_root(self.build_base, outfile)
+                    self.mkpath(os.path.split(outfile)[0])
+                    if self.force or newer(infile, outfile):
+                        if self.verbose:
+                            print ('Converting %s -> %s' % (infile, outfile))
+                        if not self.dry_run:
+                            with codecs.open(infile, encoding='utf-8') as f:
+                                src = f.read()
+                            out = template % self._get_context(src, outfile)
+                            doc = open(outfile, 'wb')
+                            doc.write(out.encode('utf-8'))
+                            doc.close()
+                else:
+                    outfile = change_root(self.build_base, infile)
+                    self.mkpath(os.path.split(outfile)[0])
+                    self.copy_file(infile, outfile)
+
+
+class md_build(build):
+    """ Run "build_docs" command from "build" command. """
+
+    user_options = build.user_options + [
+        ('no-build-docs', None, 'do not build documentation'),
+        ]
+
+    boolean_options = build.boolean_options + ['build-docs']
+
+    def initialize_options(self):
+        build.initialize_options(self)
+        self.no_build_docs = False
+
+    def has_docs(self):
+        return not self.no_build_docs
+
+    sub_commands = build.sub_commands + [('build_docs', has_docs)]
+
+long_description = \
+'''This is a Python implementation of John Gruber's Markdown_. 
+It is almost completely compliant with the reference implementation,
+though there are a few known issues. See Features_ for information 
+on what exactly is supported and what is not. Additional features are 
+supported by the `Available Extensions`_.
+
+.. _Markdown: http://daringfireball.net/projects/markdown/
+.. _Features: https://pythonhosted.org/Markdown/index.html#Features
+.. _`Available Extensions`: https://pythonhosted.org/Markdown/extensions/index.html
+
+Support
+=======
+
+You may ask for help and discuss various other issues on the
+`mailing list`_ and report bugs on the `bug tracker`_.
+
+.. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss
+.. _`bug tracker`: http://github.com/waylan/Python-Markdown/issues
+'''
+
+setup(
+    name =          'Markdown',
+    version =       version,
+    url =           'https://pythonhosted.org/Markdown/',
+    download_url =  'http://pypi.python.org/packages/source/M/Markdown/Markdown-%s.tar.gz' % version,
+    description =   'Python implementation of Markdown.',
+    long_description = long_description,
+    author =        'Manfred Stienstra, Yuri takhteyev and Waylan limberg',
+    author_email =  'markdown [at] freewisdom.org',
+    maintainer =    'Waylan Limberg',
+    maintainer_email = 'waylan [at] gmail.com',
+    license =       'BSD License',
+    packages =      ['markdown', 'markdown.extensions'],
+    scripts =       ['bin/%s' % SCRIPT_NAME],
+    cmdclass =      {'install_scripts': md_install_scripts,
+                     'build_docs': build_docs,
+                     'build': md_build},
+    classifiers =   ['Development Status :: %s' % DEVSTATUS,
+                     'License :: OSI Approved :: BSD License',
+                     'Operating System :: OS Independent',
+                     'Programming Language :: Python',
+                     'Programming Language :: Python :: 2',
+                     'Programming Language :: Python :: 2.7',
+                     'Programming Language :: Python :: 3',
+                     'Programming Language :: Python :: 3.2',
+                     'Programming Language :: Python :: 3.3',
+                     'Programming Language :: Python :: 3.4',
+                     'Topic :: Communications :: Email :: Filters',
+                     'Topic :: Internet :: WWW/HTTP :: Dynamic Content :: CGI Tools/Libraries',
+                     'Topic :: Internet :: WWW/HTTP :: Site Management',
+                     'Topic :: Software Development :: Documentation',
+                     'Topic :: Software Development :: Libraries :: Python Modules',
+                     'Topic :: Text Processing :: Filters',
+                     'Topic :: Text Processing :: Markup :: HTML',
+                    ],
+    )
index 4d937e1ffcdeb43ff040b46cecd6804f9a058bf2..15710ac2e495eb23ef1bfccce291d82b6f6892ab 100644 (file)
-\r
-import os\r
-import markdown\r
-import codecs\r
-import difflib\r
-try:\r
-    import nose\r
-except ImportError:\r
-    raise ImportError("The nose testing framework is required to run " \\r
-                       "Python-Markdown tests. Run `easy_install nose` " \\r
-                       "to install the latest version.")\r
-from . import util \r
-from .plugins import HtmlOutput, Markdown\r
-try:\r
-    import tidylib\r
-except ImportError:\r
-    tidylib = None\r
-\r
-\r
-test_dir = os.path.abspath(os.path.dirname(__file__))\r
-\r
-def relpath(path, start=test_dir):\r
-    """ reimplement relpath for python 2.3-2.5 from 2.6 """\r
-    if not path:\r
-        raise ValueError('no path secified')\r
-    start_list = os.path.abspath(start).split(os.path.sep)\r
-    path_list = os.path.abspath(path).split(os.path.sep)\r
-    # Work out how much of the filepath is shared by start and path.\r
-    i = len(os.path.commonprefix([start_list, path_list]))\r
-    rel_list = [os.path.pardir] * (len(start_list)-i) + path_list[i:]\r
-    if not rel_list:\r
-        return test_dir\r
-    return os.path.join(*rel_list)\r
-\r
-def get_config(dir_name):\r
-    """ Get config for given directory name. """\r
-    config = util.CustomConfigParser({'normalize': '0',\r
-                                      'skip': '0',\r
-                                      'input_ext': '.txt',\r
-                                      'output_ext': '.html'})\r
-    config.read(os.path.join(dir_name, 'test.cfg'))\r
-    return config\r
-\r
-def get_section(file, config):\r
-    """ Get name of config section for given file. """\r
-    filename = os.path.basename(file)\r
-    if config.has_section(filename):\r
-        return filename\r
-    else:\r
-        return 'DEFAULT'\r
-\r
-def get_args(file, config):\r
-    """ Get args to pass to markdown from config for a given file. """\r
-    args = {}\r
-    section = get_section(file, config)\r
-    for key, v in config.items(section):\r
-        # Filter out args unique to testing framework\r
-        if key not in ['normalize', 'skip', 'input_ext', 'output_ext']:\r
-            args[key] = config.get(section, key)\r
-    return args\r
-\r
-def normalize(text):\r
-    """ Normalize whitespace for a string of html using tidylib. """\r
-    output, errors = tidylib.tidy_fragment(text, options={\r
-                                    'drop_empty_paras':0,\r
-                                    'fix_backslash':0,\r
-                                    'fix_bad_comments':0,\r
-                                    'fix_uri':0,\r
-                                    'join_styles':0,\r
-                                    'lower_literals':0,\r
-                                    'merge_divs':0,\r
-                                    'output_xhtml':1,\r
-                                    'quote_ampersand':0,\r
-                                    'newline':'LF'})\r
-    return output\r
-\r
-class CheckSyntax(object):\r
-    def __init__(self, description=None):\r
-        if description:\r
-            self.description = 'TestSyntax: "%s"' % description\r
-\r
-    def __call__(self, file, config):\r
-        """ Compare expected output to actual output and report result. """\r
-        cfg_section = get_section(file, config)\r
-        if config.get(cfg_section, 'skip'):\r
-            raise nose.plugins.skip.SkipTest('Test skipped per config.')\r
-        input_file = file + config.get(cfg_section, 'input_ext')\r
-        with codecs.open(input_file, encoding="utf-8") as f:\r
-            input = f.read()\r
-        output_file = file + config.get(cfg_section, 'output_ext') \r
-        with codecs.open(output_file, encoding="utf-8") as f:\r
-            # Normalize line endings (on windows, git may have altered line endings).\r
-            expected_output = f.read().replace("\r\n", "\n")\r
-        output = markdown.markdown(input, **get_args(file, config))\r
-        if tidylib and config.get(cfg_section, 'normalize'):\r
-            # Normalize whitespace with tidylib before comparing.\r
-            expected_output = normalize(expected_output)\r
-            output = normalize(output)\r
-        elif config.get(cfg_section, 'normalize'):\r
-            # Tidylib is not available. Skip this test.\r
-            raise nose.plugins.skip.SkipTest('Test skipped. Tidylib not available on system.')\r
-        diff = [l for l in difflib.unified_diff(expected_output.splitlines(True),\r
-                                                output.splitlines(True), \r
-                                                output_file, \r
-                                                'actual_output.html', \r
-                                                n=3)]\r
-        if diff:\r
-            raise util.MarkdownSyntaxError('Output from "%s" failed to match expected '\r
-                                           'output.\n\n%s' % (input_file, ''.join(diff)))\r
-\r
-def TestSyntax():\r
-    for dir_name, sub_dirs, files in os.walk(test_dir):\r
-        # Get dir specific config settings.\r
-        config = get_config(dir_name)\r
-        # Loop through files and generate tests.\r
-        for file in files:\r
-            root, ext = os.path.splitext(file)\r
-            if ext == config.get(get_section(file, config), 'input_ext'):\r
-                path = os.path.join(dir_name, root)\r
-                check_syntax = CheckSyntax(description=relpath(path, test_dir))\r
-                yield check_syntax, path, config\r
-\r
-def generate(file, config):\r
-    """ Write expected output file for given input. """\r
-    cfg_section = get_section(file, config)\r
-    if config.get(cfg_section, 'skip') or config.get(cfg_section, 'normalize'):\r
-        print('Skipping:', file)\r
-        return None\r
-    input_file = file + config.get(cfg_section, 'input_ext')\r
-    output_file = file + config.get(cfg_section, 'output_ext') \r
-    if not os.path.isfile(output_file) or \\r
-            os.path.getmtime(output_file) < os.path.getmtime(input_file):\r
-        print('Generating:', file)\r
-        markdown.markdownFromFile(input=input_file, output=output_file, \r
-                                  encoding='utf-8', **get_args(file, config))\r
-    else:\r
-        print('Already up-to-date:', file)\r
-\r
-def generate_all():\r
-    """ Generate expected output for all outdated tests. """\r
-    for dir_name, sub_dirs, files in os.walk(test_dir):\r
-        # Get dir specific config settings.\r
-        config = get_config(dir_name)\r
-        # Loop through files and generate tests.\r
-        for file in files:\r
-            root, ext = os.path.splitext(file)\r
-            if ext == config.get(get_section(file, config), 'input_ext'):\r
-                generate(os.path.join(dir_name, root), config)\r
-\r
-\r
-def run():\r
-    nose.main(addplugins=[HtmlOutput(), Markdown()])\r
-\r
+import os
+import markdown
+import codecs
+import difflib
+try:
+    import nose
+except ImportError as e:
+    msg = e.args[0]
+    msg = msg + ". The nose testing framework is required to run the Python-" \
+          "Markdown tests. Run `pip install nose` to install the latest version."
+    e.args = (msg,) + e.args[1:]
+    raise
+from .plugins import HtmlOutput, Markdown, MarkdownSyntaxError
+try:
+    import tidylib
+except ImportError:
+    tidylib = None
+try:
+    import yaml
+except ImportError as e:
+    msg = e.args[0]
+    msg = msg + ". A YAML library is required to run the Python-Markdown " \
+          "tests. Run `pip install pyyaml` to install the latest version."
+    e.args = (msg,) + e.args[1:]
+    raise
+
+test_dir = os.path.abspath(os.path.dirname(__file__))
+
+class YamlConfig():
+    def __init__(self, defaults, filename):
+        """ Set defaults and load config file if it exists. """
+        self.DEFAULT_SECTION = 'DEFAULT'
+        self._defaults = defaults
+        self._config = {}
+        if os.path.exists(filename):
+            with codecs.open(filename, encoding="utf-8") as f:
+                self._config = yaml.load(f)
+
+    def get(self, section, option):
+        """ Get config value for given section and option key. """
+        if section in self._config and option in self._config[section]:
+            return self._config[section][option]
+        return self._defaults[option]
+
+    def get_section(self, file):
+        """ Get name of config section for given file. """
+        filename = os.path.basename(file)
+        if filename in self._config:
+            return filename
+        else:
+            return self.DEFAULT_SECTION
+
+    def get_args(self, file):
+        """ Get args to pass to markdown from config for a given file. """
+        args = {}
+        section = self.get_section(file)
+        if section in self._config:
+            for key in self._config[section].keys():
+                # Filter out args unique to testing framework
+                if key not in self._defaults.keys():
+                    args[key] = self.get(section, key)
+        return args
+
+
+def get_config(dir_name):
+    """ Get config for given directory name. """
+    defaults = {
+        'normalize': False,
+        'skip': False,
+        'input_ext': '.txt',
+        'output_ext': '.html'
+    }
+    config = YamlConfig(defaults, os.path.join(dir_name, 'test.cfg'))
+    return config
+
+def normalize(text):
+    """ Normalize whitespace for a string of html using tidylib. """
+    output, errors = tidylib.tidy_fragment(text, options={
+                                    'drop_empty_paras':0,
+                                    'fix_backslash':0,
+                                    'fix_bad_comments':0,
+                                    'fix_uri':0,
+                                    'join_styles':0,
+                                    'lower_literals':0,
+                                    'merge_divs':0,
+                                    'output_xhtml':1,
+                                    'quote_ampersand':0,
+                                    'newline':'LF'})
+    return output
+
+class CheckSyntax(object):
+    def __init__(self, description=None):
+        if description:
+            self.description = 'TestSyntax: "%s"' % description
+
+    def __call__(self, file, config):
+        """ Compare expected output to actual output and report result. """
+        cfg_section = config.get_section(file)
+        if config.get(cfg_section, 'skip'):
+            raise nose.plugins.skip.SkipTest('Test skipped per config.')
+        input_file = file + config.get(cfg_section, 'input_ext')
+        with codecs.open(input_file, encoding="utf-8") as f:
+            input = f.read()
+        output_file = file + config.get(cfg_section, 'output_ext') 
+        with codecs.open(output_file, encoding="utf-8") as f:
+            # Normalize line endings (on windows, git may have altered line endings).
+            expected_output = f.read().replace("\r\n", "\n")
+        output = markdown.markdown(input, **config.get_args(file))
+        if tidylib and config.get(cfg_section, 'normalize'):
+            # Normalize whitespace with tidylib before comparing.
+            expected_output = normalize(expected_output)
+            output = normalize(output)
+        elif config.get(cfg_section, 'normalize'):
+            # Tidylib is not available. Skip this test.
+            raise nose.plugins.skip.SkipTest('Test skipped. Tidylib not available on system.')
+        diff = [l for l in difflib.unified_diff(expected_output.splitlines(True),
+                                                output.splitlines(True), 
+                                                output_file, 
+                                                'actual_output.html', 
+                                                n=3)]
+        if diff:
+            raise MarkdownSyntaxError('Output from "%s" failed to match expected '
+                                           'output.\n\n%s' % (input_file, ''.join(diff)))
+
+def TestSyntax():
+    for dir_name, sub_dirs, files in os.walk(test_dir):
+        # Get dir specific config settings.
+        config = get_config(dir_name)
+        # Loop through files and generate tests.
+        for file in files:
+            root, ext = os.path.splitext(file)
+            if ext == config.get(config.get_section(file), 'input_ext'):
+                path = os.path.join(dir_name, root)
+                check_syntax = CheckSyntax(description=os.path.relpath(path, test_dir))
+                yield check_syntax, path, config
+
+def generate(file, config):
+    """ Write expected output file for given input. """
+    cfg_section = config.get_section(file)
+    if config.get(cfg_section, 'skip') or config.get(cfg_section, 'normalize'):
+        print('Skipping:', file)
+        return None
+    input_file = file + config.get(cfg_section, 'input_ext')
+    output_file = file + config.get(cfg_section, 'output_ext') 
+    if not os.path.isfile(output_file) or \
+            os.path.getmtime(output_file) < os.path.getmtime(input_file):
+        print('Generating:', file)
+        markdown.markdownFromFile(input=input_file, output=output_file, 
+                                  encoding='utf-8', **config.get_args(file))
+    else:
+        print('Already up-to-date:', file)
+
+def generate_all():
+    """ Generate expected output for all outdated tests. """
+    for dir_name, sub_dirs, files in os.walk(test_dir):
+        # Get dir specific config settings.
+        config = get_config(dir_name)
+        # Loop through files and generate tests.
+        for file in files:
+            root, ext = os.path.splitext(file)
+            if ext == config.get(config.get_section(file), 'input_ext'):
+                generate(os.path.join(dir_name, root), config)
+
+
+def run():
+    nose.main(addplugins=[HtmlOutput(), Markdown()])
+
index 0ec89449fc391248f3071b9b80fef46b3f335ef5..2c466c19c99d63de951c9653f82b8ab22bde2a96 100644 (file)
@@ -1,9 +1,9 @@
-<p>AT&amp;T has an ampersand in their name.</p>\r
-<p>AT&amp;T is another way to write it.</p>\r
-<p>This &amp; that.</p>\r
-<p>4 &lt; 5.</p>\r
-<p>6 &gt; 5.</p>\r
-<p>Here's a <a href="http://example.com/?foo=1&amp;bar=2">link</a> with an ampersand in the URL.</p>\r
-<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>\r
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>\r
+<p>AT&amp;T has an ampersand in their name.</p>
+<p>AT&amp;T is another way to write it.</p>
+<p>This &amp; that.</p>
+<p>4 &lt; 5.</p>
+<p>6 &gt; 5.</p>
+<p>Here's a <a href="http://example.com/?foo=1&amp;bar=2">link</a> with an ampersand in the URL.</p>
+<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>
+<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
 <p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
\ No newline at end of file
index d898199e8330ff3a4507a4e982e804d01ae53a1d..0e9527f9311d129ac9ae5bca7666f37c3dfcfb59 100644 (file)
@@ -1,21 +1,21 @@
-AT&T has an ampersand in their name.\r
-\r
-AT&amp;T is another way to write it.\r
-\r
-This & that.\r
-\r
-4 < 5.\r
-\r
-6 > 5.\r
-\r
-Here's a [link] [1] with an ampersand in the URL.\r
-\r
-Here's a link with an amersand in the link text: [AT&T] [2].\r
-\r
-Here's an inline [link](/script?foo=1&bar=2).\r
-\r
-Here's an inline [link](</script?foo=1&bar=2>).\r
-\r
-\r
-[1]: http://example.com/?foo=1&bar=2\r
+AT&T has an ampersand in their name.
+
+AT&amp;T is another way to write it.
+
+This & that.
+
+4 < 5.
+
+6 > 5.
+
+Here's a [link] [1] with an ampersand in the URL.
+
+Here's a link with an amersand in the link text: [AT&T] [2].
+
+Here's an inline [link](/script?foo=1&bar=2).
+
+Here's an inline [link](</script?foo=1&bar=2>).
+
+
+[1]: http://example.com/?foo=1&bar=2
 [2]: http://att.com/  "AT&T"
\ No newline at end of file
index 49ee4443e9ca23abb8d73e6e974bd5cbacc131ea..1ca3b0bb3aa793e5a706cc0307cf610e49fc91eb 100644 (file)
@@ -1,4 +1,4 @@
-<p><a href="simple link" title="title">link</a>\r
-<img alt="image" src="http://example.com/image.jpg" />\r
-<a href="http://example.com/(()((())923)(">link</a>\r
+<p><a href="simple link" title="title">link</a>
+<img alt="image" src="http://example.com/image.jpg" />
+<a href="http://example.com/(()((())923)(">link</a>
 <img alt="image" src="link(()))(" /></p>
\ No newline at end of file
index 8eddf291c55a63e169e85705659fdcba465bcb27..1dbf404a04dcc1d9d53bdf3353c5623ab406ac81 100644 (file)
@@ -1,4 +1,4 @@
-[link](<simple link> "title")\r
-![image](<http://example.com/image.jpg>)\r
-[link](<http://example.com/(()((())923)(>)\r
-![image](<link(()))(>)\r
+[link](<simple link> "title")
+![image](<http://example.com/image.jpg>)
+[link](<http://example.com/(()((())923)(>)
+![image](<link(()))(>)
index a722e292dcfb6e46b355ae9e9185136546fc91cd..7481fe26be1e37eadc8d6f78992ce0f18e2ede8d 100644 (file)
@@ -1,15 +1,15 @@
-<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>\r
-<p>Https link: <a href="https://example.com">https://example.com</a></p>\r
-<p>Ftp link: <a href="ftp://example.com">ftp://example.com</a></p>\r
-<p>With an ampersand: <a href="http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</a></p>\r
-<ul>\r
-<li>In a list?</li>\r
-<li><a href="http://example.com/">http://example.com/</a></li>\r
-<li>It should.</li>\r
-</ul>\r
-<blockquote>\r
-<p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>\r
-</blockquote>\r
-<p>Auto-links should not occur here: <code>&lt;http://example.com/&gt;</code></p>\r
-<pre><code>or here: &lt;http://example.com/&gt;\r
+<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
+<p>Https link: <a href="https://example.com">https://example.com</a></p>
+<p>Ftp link: <a href="ftp://example.com">ftp://example.com</a></p>
+<p>With an ampersand: <a href="http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</a></p>
+<ul>
+<li>In a list?</li>
+<li><a href="http://example.com/">http://example.com/</a></li>
+<li>It should.</li>
+</ul>
+<blockquote>
+<p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>
+</blockquote>
+<p>Auto-links should not occur here: <code>&lt;http://example.com/&gt;</code></p>
+<pre><code>or here: &lt;http://example.com/&gt;
 </code></pre>
\ No newline at end of file
index 770412d294dabf9622684bc142e11f28fd158428..a188b4002b582e9a68474c215da7d4b396d75835 100644 (file)
@@ -1,17 +1,17 @@
-Link: <http://example.com/>.\r
-\r
-Https link: <https://example.com>\r
-\r
-Ftp link: <ftp://example.com>\r
-\r
-With an ampersand: <http://example.com/?foo=1&bar=2>\r
-\r
-* In a list?\r
-* <http://example.com/>\r
-* It should.\r
-\r
-> Blockquoted: <http://example.com/>\r
-\r
-Auto-links should not occur here: `<http://example.com/>`\r
-\r
-       or here: <http://example.com/>\r
+Link: <http://example.com/>.
+
+Https link: <https://example.com>
+
+Ftp link: <ftp://example.com>
+
+With an ampersand: <http://example.com/?foo=1&bar=2>
+
+* In a list?
+* <http://example.com/>
+* It should.
+
+> Blockquoted: <http://example.com/>
+
+Auto-links should not occur here: `<http://example.com/>`
+
+       or here: <http://example.com/>
index a2efb5a7aa3c8cec187afb3bc1d260469f4399a8..ef7c4b5ea3cddccd47f21e32e5816723cef0ecad 100644 (file)
@@ -1,67 +1,67 @@
-<p>These should all get escaped:</p>\r
-<p>Backslash: \</p>\r
-<p>Backtick: `</p>\r
-<p>Asterisk: *</p>\r
-<p>Underscore: _</p>\r
-<p>Left brace: {</p>\r
-<p>Right brace: }</p>\r
-<p>Left bracket: [</p>\r
-<p>Right bracket: ]</p>\r
-<p>Left paren: (</p>\r
-<p>Right paren: )</p>\r
-<p>Greater-than: ></p>\r
-<p>Hash: #</p>\r
-<p>Period: .</p>\r
-<p>Bang: !</p>\r
-<p>Plus: +</p>\r
-<p>Minus: -</p>\r
-<p>These should not, because they occur within a code block:</p>\r
-<pre><code>Backslash: \\\r
-\r
-Backtick: \`\r
-\r
-Asterisk: \*\r
-\r
-Underscore: \_\r
-\r
-Left brace: \{\r
-\r
-Right brace: \}\r
-\r
-Left bracket: \[\r
-\r
-Right bracket: \]\r
-\r
-Left paren: \(\r
-\r
-Right paren: \)\r
-\r
-Greater-than: \&gt;\r
-\r
-Hash: \#\r
-\r
-Period: \.\r
-\r
-Bang: \!\r
-\r
-Plus: \+\r
-\r
-Minus: \-\r
-</code></pre>\r
-<p>Nor should these, which occur in code spans:</p>\r
-<p>Backslash: <code>\\</code></p>\r
-<p>Backtick: <code>\`</code></p>\r
-<p>Asterisk: <code>\*</code></p>\r
-<p>Underscore: <code>\_</code></p>\r
-<p>Left brace: <code>\{</code></p>\r
-<p>Right brace: <code>\}</code></p>\r
-<p>Left bracket: <code>\[</code></p>\r
-<p>Right bracket: <code>\]</code></p>\r
-<p>Left paren: <code>\(</code></p>\r
-<p>Right paren: <code>\)</code></p>\r
-<p>Greater-than: <code>\&gt;</code></p>\r
-<p>Hash: <code>\#</code></p>\r
-<p>Period: <code>\.</code></p>\r
-<p>Bang: <code>\!</code></p>\r
-<p>Plus: <code>\+</code></p>\r
+<p>These should all get escaped:</p>
+<p>Backslash: \</p>
+<p>Backtick: `</p>
+<p>Asterisk: *</p>
+<p>Underscore: _</p>
+<p>Left brace: {</p>
+<p>Right brace: }</p>
+<p>Left bracket: [</p>
+<p>Right bracket: ]</p>
+<p>Left paren: (</p>
+<p>Right paren: )</p>
+<p>Greater-than: ></p>
+<p>Hash: #</p>
+<p>Period: .</p>
+<p>Bang: !</p>
+<p>Plus: +</p>
+<p>Minus: -</p>
+<p>These should not, because they occur within a code block:</p>
+<pre><code>Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \&gt;
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+</code></pre>
+<p>Nor should these, which occur in code spans:</p>
+<p>Backslash: <code>\\</code></p>
+<p>Backtick: <code>\`</code></p>
+<p>Asterisk: <code>\*</code></p>
+<p>Underscore: <code>\_</code></p>
+<p>Left brace: <code>\{</code></p>
+<p>Right brace: <code>\}</code></p>
+<p>Left bracket: <code>\[</code></p>
+<p>Right bracket: <code>\]</code></p>
+<p>Left paren: <code>\(</code></p>
+<p>Right paren: <code>\)</code></p>
+<p>Greater-than: <code>\&gt;</code></p>
+<p>Hash: <code>\#</code></p>
+<p>Period: <code>\.</code></p>
+<p>Bang: <code>\!</code></p>
+<p>Plus: <code>\+</code></p>
 <p>Minus: <code>\-</code></p>
\ No newline at end of file
index 5450eb24bea3220fa8cee8216d8ce0d493c2d9a8..16447a010b1601e51952da95d39da8f56ea37f4b 100644 (file)
-These should all get escaped:\r
-\r
-Backslash: \\\r
-\r
-Backtick: \`\r
-\r
-Asterisk: \*\r
-\r
-Underscore: \_\r
-\r
-Left brace: \{\r
-\r
-Right brace: \}\r
-\r
-Left bracket: \[\r
-\r
-Right bracket: \]\r
-\r
-Left paren: \(\r
-\r
-Right paren: \)\r
-\r
-Greater-than: \>\r
-\r
-Hash: \#\r
-\r
-Period: \.\r
-\r
-Bang: \!\r
-\r
-Plus: \+\r
-\r
-Minus: \-\r
-\r
-\r
-\r
-These should not, because they occur within a code block:\r
-\r
-       Backslash: \\\r
-\r
-       Backtick: \`\r
-\r
-       Asterisk: \*\r
-\r
-       Underscore: \_\r
-\r
-       Left brace: \{\r
-\r
-       Right brace: \}\r
-\r
-       Left bracket: \[\r
-\r
-       Right bracket: \]\r
-\r
-       Left paren: \(\r
-\r
-       Right paren: \)\r
-\r
-       Greater-than: \>\r
-\r
-       Hash: \#\r
-\r
-       Period: \.\r
-\r
-       Bang: \!\r
-\r
-       Plus: \+\r
-\r
-       Minus: \-\r
-\r
-\r
-Nor should these, which occur in code spans:\r
-\r
-Backslash: `\\`\r
-\r
-Backtick: `` \` ``\r
-\r
-Asterisk: `\*`\r
-\r
-Underscore: `\_`\r
-\r
-Left brace: `\{`\r
-\r
-Right brace: `\}`\r
-\r
-Left bracket: `\[`\r
-\r
-Right bracket: `\]`\r
-\r
-Left paren: `\(`\r
-\r
-Right paren: `\)`\r
-\r
-Greater-than: `\>`\r
-\r
-Hash: `\#`\r
-\r
-Period: `\.`\r
-\r
-Bang: `\!`\r
-\r
-Plus: `\+`\r
-\r
-Minus: `\-`\r
+These should all get escaped:
+
+Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \>
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+
+
+
+These should not, because they occur within a code block:
+
+       Backslash: \\
+
+       Backtick: \`
+
+       Asterisk: \*
+
+       Underscore: \_
+
+       Left brace: \{
+
+       Right brace: \}
+
+       Left bracket: \[
+
+       Right bracket: \]
+
+       Left paren: \(
+
+       Right paren: \)
+
+       Greater-than: \>
+
+       Hash: \#
+
+       Period: \.
+
+       Bang: \!
+
+       Plus: \+
+
+       Minus: \-
+
+
+Nor should these, which occur in code spans:
+
+Backslash: `\\`
+
+Backtick: `` \` ``
+
+Asterisk: `\*`
+
+Underscore: `\_`
+
+Left brace: `\{`
+
+Right brace: `\}`
+
+Left bracket: `\[`
+
+Right bracket: `\]`
+
+Left paren: `\(`
+
+Right paren: `\)`
+
+Greater-than: `\>`
+
+Hash: `\#`
+
+Period: `\.`
+
+Bang: `\!`
+
+Plus: `\+`
+
+Minus: `\-`
index 7e87d595bab17d5dc6993bd5b8e399c3ee71c378..5fc98b183075f818fe4469b6204ca97e206cff57 100644 (file)
@@ -1,12 +1,12 @@
-<blockquote>\r
-<p>Example:</p>\r
-<pre><code>sub status {\r
-    print "working";\r
-}\r
-</code></pre>\r
-<p>Or:</p>\r
-<pre><code>sub status {\r
-    return "working";\r
-}\r
-</code></pre>\r
+<blockquote>
+<p>Example:</p>
+<pre><code>sub status {
+    print "working";
+}
+</code></pre>
+<p>Or:</p>
+<pre><code>sub status {
+    return "working";
+}
+</code></pre>
 </blockquote>
\ No newline at end of file
index 1132c953c6c46fb09c6219e0723ec32a9f10b8b6..c31d171049d2814fa36aa21bba1669d60accb2be 100644 (file)
@@ -1,11 +1,11 @@
-> Example:\r
-> \r
->     sub status {\r
->         print "working";\r
->     }\r
-> \r
-> Or:\r
-> \r
->     sub status {\r
->         return "working";\r
->     }\r
+> Example:
+> 
+>     sub status {
+>         print "working";
+>     }
+> 
+> Or:
+> 
+>     sub status {
+>         return "working";
+>     }
index ecb0fc80e58434c03ad89ba79285f107efd0a14c..49edd56220b5e2f71ce715b2ebb6e087a2bec232 100644 (file)
@@ -1,14 +1,14 @@
-<ul>\r
-<li>\r
-<p>A list item with a code block</p>\r
-<pre><code>Some *code*\r
-</code></pre>\r
-</li>\r
-<li>\r
-<p>Another list item</p>\r
-<pre><code>More code\r
-\r
-And more code\r
-</code></pre>\r
-</li>\r
+<ul>
+<li>
+<p>A list item with a code block</p>
+<pre><code>Some *code*
+</code></pre>
+</li>
+<li>
+<p>Another list item</p>
+<pre><code>More code
+
+And more code
+</code></pre>
+</li>
 </ul>
\ No newline at end of file
index 5ae9b7056ed83a9e04f941b6bf26027a86f03c73..87d4e3bcc3e63ca8eced20f142f7f8be88324de4 100644 (file)
@@ -1,10 +1,10 @@
-* A list item with a code block\r
-\r
-        Some *code*\r
-\r
-* Another list item\r
-\r
-        More code\r
-\r
-        And more code\r
-\r
+* A list item with a code block
+
+        Some *code*
+
+* Another list item
+
+        More code
+
+        And more code
+
index ee87c2e58124d8f1061bbc00eb686d63b7677aa8..e28e900d2e1dbb3c0d81c21448441a12785d254b 100644 (file)
@@ -1,7 +1,7 @@
-<p>In Markdown 1.0.0 and earlier. Version\r
-8. This line turns into a list item.\r
-Because a hard-wrapped line in the\r
-middle of a paragraph looked like a\r
-list item.</p>\r
-<p>Here's one with a bullet.\r
+<p>In Markdown 1.0.0 and earlier. Version
+8. This line turns into a list item.
+Because a hard-wrapped line in the
+middle of a paragraph looked like a
+list item.</p>
+<p>Here's one with a bullet.
 * criminey.</p>
\ No newline at end of file
index 94acad8c2eea0bee4b794bb8c5c3a3ab4c0566d4..f8a5b27bf418285eb7e9bda54ad8f04470b11ee7 100644 (file)
@@ -1,8 +1,8 @@
-In Markdown 1.0.0 and earlier. Version\r
-8. This line turns into a list item.\r
-Because a hard-wrapped line in the\r
-middle of a paragraph looked like a\r
-list item.\r
-\r
-Here's one with a bullet.\r
-* criminey.\r
+In Markdown 1.0.0 and earlier. Version
+8. This line turns into a list item.
+Because a hard-wrapped line in the
+middle of a paragraph looked like a
+list item.
+
+Here's one with a bullet.
+* criminey.
index 6702cdd5474d258d6854fe679f37ce4f0e5ad9ae..478e8c55598881e003fe4b0d95b94977ff495f4f 100644 (file)
@@ -1,39 +1,39 @@
-<p>Dashes:</p>\r
-<hr />\r
-<hr />\r
-<hr />\r
-<hr />\r
-<pre><code>---\r
-</code></pre>\r
-<hr />\r
-<hr />\r
-<hr />\r
-<hr />\r
-<pre><code>- - -\r
-</code></pre>\r
-<p>Asterisks:</p>\r
-<hr />\r
-<hr />\r
-<hr />\r
-<hr />\r
-<pre><code>***\r
-</code></pre>\r
-<hr />\r
-<hr />\r
-<hr />\r
-<hr />\r
-<pre><code>* * *\r
-</code></pre>\r
-<p>Underscores:</p>\r
-<hr />\r
-<hr />\r
-<hr />\r
-<hr />\r
-<pre><code>___\r
-</code></pre>\r
-<hr />\r
-<hr />\r
-<hr />\r
-<hr />\r
-<pre><code>_ _ _\r
+<p>Dashes:</p>
+<hr />
+<hr />
+<hr />
+<hr />
+<pre><code>---
+</code></pre>
+<hr />
+<hr />
+<hr />
+<hr />
+<pre><code>- - -
+</code></pre>
+<p>Asterisks:</p>
+<hr />
+<hr />
+<hr />
+<hr />
+<pre><code>***
+</code></pre>
+<hr />
+<hr />
+<hr />
+<hr />
+<pre><code>* * *
+</code></pre>
+<p>Underscores:</p>
+<hr />
+<hr />
+<hr />
+<hr />
+<pre><code>___
+</code></pre>
+<hr />
+<hr />
+<hr />
+<hr />
+<pre><code>_ _ _
 </code></pre>
\ No newline at end of file
index 6a51dacb914b0fad7cbc1d736c752d446894daf5..1594bda27b4130726fd43d0aa1f3ede6487d1905 100644 (file)
@@ -1,67 +1,67 @@
-Dashes:\r
-\r
----\r
-\r
- ---\r
\r
-  ---\r
-\r
-   ---\r
-\r
-       ---\r
-\r
-- - -\r
-\r
- - - -\r
\r
-  - - -\r
-\r
-   - - -\r
-\r
-       - - -\r
-\r
-\r
-Asterisks:\r
-\r
-***\r
-\r
- ***\r
\r
-  ***\r
-\r
-   ***\r
-\r
-       ***\r
-\r
-* * *\r
-\r
- * * *\r
\r
-  * * *\r
-\r
-   * * *\r
-\r
-       * * *\r
-\r
-\r
-Underscores:\r
-\r
-___\r
-\r
- ___\r
\r
-  ___\r
-\r
-   ___\r
-\r
-    ___\r
-\r
-_ _ _\r
-\r
- _ _ _\r
\r
-  _ _ _\r
-\r
-   _ _ _\r
-\r
-    _ _ _\r
+Dashes:
+
+---
+
+ ---
+  ---
+
+   ---
+
+       ---
+
+- - -
+
+ - - -
+  - - -
+
+   - - -
+
+       - - -
+
+
+Asterisks:
+
+***
+
+ ***
+  ***
+
+   ***
+
+       ***
+
+* * *
+
+ * * *
+  * * *
+
+   * * *
+
+       * * *
+
+
+Underscores:
+
+___
+
+ ___
+  ___
+
+   ___
+
+    ___
+
+_ _ _
+
+ _ _ _
+  _ _ _
+
+   _ _ _
+
+    _ _ _
index d76ceb7e63be1909c0ccdc010529b2d21c8a3245..af1dec1e8a27b4151a59569e0e2f5a632f5668a2 100644 (file)
@@ -1,12 +1,12 @@
-<p>Simple block on one line:</p>\r
-<div>foo</div>\r
-\r
-<p>And nested without indentation:</p>\r
-<div>\r
-<div>\r
-<div>\r
-foo\r
-</div>\r
-</div>\r
-<div>bar</div>\r
+<p>Simple block on one line:</p>
+<div>foo</div>
+
+<p>And nested without indentation:</p>
+<div>
+<div>
+<div>
+foo
+</div>
+</div>
+<div>bar</div>
 </div>
\ No newline at end of file
index 72c22c3a16caac4d402bbe83308b98c61a414aad..9d71ddcc174b33fc2a5a8d76008a8a6e3cc71014 100644 (file)
@@ -1,14 +1,14 @@
-Simple block on one line:\r
-\r
-<div>foo</div>\r
-\r
-And nested without indentation:\r
-\r
-<div>\r
-<div>\r
-<div>\r
-foo\r
-</div>\r
-</div>\r
-<div>bar</div>\r
-</div>\r
+Simple block on one line:
+
+<div>foo</div>
+
+And nested without indentation:
+
+<div>
+<div>
+<div>
+foo
+</div>
+</div>
+<div>bar</div>
+</div>
index 86938886c12b9e6b0ebd5305ab9465ba2556d5f7..0d4cad949f5a2ee0013c6c4b84ef8a923ae18eb4 100644 (file)
@@ -1,11 +1,11 @@
-<p>Paragraph one.</p>\r
-<!-- This is a simple comment -->\r
-\r
-<!--\r
-    This is another comment.\r
--->\r
-\r
-<p>Paragraph two.</p>\r
-<!-- one comment block -- -- with two comments -->\r
-\r
+<p>Paragraph one.</p>
+<!-- This is a simple comment -->
+
+<!--
+    This is another comment.
+-->
+
+<p>Paragraph two.</p>
+<!-- one comment block -- -- with two comments -->
+
 <p>The end.</p>
\ No newline at end of file
index 2faaca936b9f7047ae0b59e97c56fdba741f1711..41d830d0385feec59a07b3476dedd68ef52749c6 100644 (file)
@@ -1,13 +1,13 @@
-Paragraph one.\r
-\r
-<!-- This is a simple comment -->\r
-\r
-<!--\r
-       This is another comment.\r
--->\r
-\r
-Paragraph two.\r
-\r
-<!-- one comment block -- -- with two comments -->\r
-\r
-The end.\r
+Paragraph one.
+
+<!-- This is a simple comment -->
+
+<!--
+       This is another comment.
+-->
+
+Paragraph two.
+
+<!-- one comment block -- -- with two comments -->
+
+The end.
index 69ec8b39a9edf53553a949a4a0497f9efc6e4bd0..2159e1dcb5aeb0bd7ff951b95ed5ecbaabb2180d 100644 (file)
@@ -1,60 +1,60 @@
-<p>Here's a simple block:</p>\r
-<div>\r
-    foo\r
-</div>\r
-\r
-<p>This should be a code block, though:</p>\r
-<pre><code>&lt;div&gt;\r
-    foo\r
-&lt;/div&gt;\r
-</code></pre>\r
-<p>As should this:</p>\r
-<pre><code>&lt;div&gt;foo&lt;/div&gt;\r
-</code></pre>\r
-<p>Now, nested:</p>\r
-<div>\r
-    <div>\r
-        <div>\r
-            foo\r
-        </div>\r
-    </div>\r
-</div>\r
-\r
-<p>This should just be an HTML comment:</p>\r
-<!-- Comment -->\r
-\r
-<p>Multiline:</p>\r
-<!--\r
-Blah\r
-Blah\r
--->\r
-\r
-<p>Code block:</p>\r
-<pre><code>&lt;!-- Comment --&gt;\r
-</code></pre>\r
-<p>Just plain comment, with trailing spaces on the line:</p>\r
-<!-- foo -->\r
-\r
-<p>Code:</p>\r
-<pre><code>&lt;hr /&gt;\r
-</code></pre>\r
-<p>Hr's:</p>\r
-<hr>\r
-\r
-<hr/>\r
-\r
-<hr />\r
-\r
-<hr>\r
-\r
-<hr/>\r
-\r
-<hr />\r
-\r
-<hr class="foo" id="bar" />\r
-\r
-<hr class="foo" id="bar"/>\r
-\r
-<hr class="foo" id="bar" >\r
-\r
+<p>Here's a simple block:</p>
+<div>
+    foo
+</div>
+
+<p>This should be a code block, though:</p>
+<pre><code>&lt;div&gt;
+    foo
+&lt;/div&gt;
+</code></pre>
+<p>As should this:</p>
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+<p>Now, nested:</p>
+<div>
+    <div>
+        <div>
+            foo
+        </div>
+    </div>
+</div>
+
+<p>This should just be an HTML comment:</p>
+<!-- Comment -->
+
+<p>Multiline:</p>
+<!--
+Blah
+Blah
+-->
+
+<p>Code block:</p>
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+<p>Just plain comment, with trailing spaces on the line:</p>
+<!-- foo -->
+
+<p>Code:</p>
+<pre><code>&lt;hr /&gt;
+</code></pre>
+<p>Hr's:</p>
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
 <p><some <a href="http://example.com">weird</a> stuff></p>
\ No newline at end of file
index 503d25b5ae0cd02bef119fcbcc90086d3dad58cf..7210750d824b9f443cdcdb4ac2ac46b19b7e3c8a 100644 (file)
@@ -1,70 +1,70 @@
-Here's a simple block:\r
-\r
-<div>\r
-       foo\r
-</div>\r
-\r
-This should be a code block, though:\r
-\r
-       <div>\r
-               foo\r
-       </div>\r
-\r
-As should this:\r
-\r
-       <div>foo</div>\r
-\r
-Now, nested:\r
-\r
-<div>\r
-       <div>\r
-               <div>\r
-                       foo\r
-               </div>\r
-       </div>\r
-</div>\r
-\r
-This should just be an HTML comment:\r
-\r
-<!-- Comment -->\r
-\r
-Multiline:\r
-\r
-<!--\r
-Blah\r
-Blah\r
--->\r
-\r
-Code block:\r
-\r
-       <!-- Comment -->\r
-\r
-Just plain comment, with trailing spaces on the line:\r
-\r
-<!-- foo -->   \r
-\r
-Code:\r
-\r
-       <hr />\r
-       \r
-Hr's:\r
-\r
-<hr>\r
-\r
-<hr/>\r
-\r
-<hr />\r
-\r
-<hr>   \r
-\r
-<hr/>  \r
-\r
-<hr /> \r
-\r
-<hr class="foo" id="bar" />\r
-\r
-<hr class="foo" id="bar"/>\r
-\r
-<hr class="foo" id="bar" >\r
-\r
-<some [weird](http://example.com) stuff>\r
+Here's a simple block:
+
+<div>
+       foo
+</div>
+
+This should be a code block, though:
+
+       <div>
+               foo
+       </div>
+
+As should this:
+
+       <div>foo</div>
+
+Now, nested:
+
+<div>
+       <div>
+               <div>
+                       foo
+               </div>
+       </div>
+</div>
+
+This should just be an HTML comment:
+
+<!-- Comment -->
+
+Multiline:
+
+<!--
+Blah
+Blah
+-->
+
+Code block:
+
+       <!-- Comment -->
+
+Just plain comment, with trailing spaces on the line:
+
+<!-- foo -->   
+
+Code:
+
+       <hr />
+       
+Hr's:
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>   
+
+<hr/>  
+
+<hr /> 
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
+<some [weird](http://example.com) stuff>
index eeb469269f4b4045e7554081e43f3f0934001414..707937a761936e3da552507d45b8c890200d45ee 100644 (file)
@@ -1,5 +1,5 @@
-<p>Just a <a href="/url/">URL</a>.</p>\r
-<p><a href="/url/" title="title">URL and title</a>.</p>\r
-<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>\r
-<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>\r
+<p>Just a <a href="/url/">URL</a>.</p>
+<p><a href="/url/" title="title">URL and title</a>.</p>
+<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>
+<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>
 <p><a href="">Empty</a>.</p>
\ No newline at end of file
index bb191cf710d14296c110eb74ef4ccd10ddde65fb..4d0c1c2621047ffd674fcb9b879a8653fc813662 100644 (file)
@@ -1,9 +1,9 @@
-Just a [URL](/url/).\r
-\r
-[URL and title](/url/ "title").\r
-\r
-[URL and title](/url/  "title preceded by two spaces").\r
-\r
-[URL and title](/url/  "title preceded by a tab").\r
-\r
-[Empty]().\r
+Just a [URL](/url/).
+
+[URL and title](/url/ "title").
+
+[URL and title](/url/  "title preceded by two spaces").
+
+[URL and title](/url/  "title preceded by a tab").
+
+[Empty]().
index 16c272d41f99eca76585d337ca6279fc237fe6b3..63f242d177e88758d8a737dbeb666b5a2aff9dac 100644 (file)
@@ -1,22 +1,22 @@
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-<p>With <a href="/url/">embedded [brackets]</a>.</p>\r
-<p>Indented <a href="/url">once</a>.</p>\r
-<p>Indented <a href="/url">twice</a>.</p>\r
-<p>Indented <a href="/url">thrice</a>.</p>\r
-<p>Indented [four][] times.</p>\r
-<pre><code>[four]: /url\r
-</code></pre>\r
-<p>With <a href="http://example.com/" title="Angle Brackets">angle brackets</a>.</p>\r
-<p>And <a href="http://example.com/" title="Without angle brackets.">without</a>.</p>\r
-<p>With <a href="http://example.com" title="Yes this works">line\r
-breaks</a></p>\r
-<p>and <a href="http://example.com" title="Yes this works">line \r
-breaks</a> with one space.</p>\r
-<p>and [line<br />\r
-breaks[] with two spaces.</p>\r
-<p><a href="http://example.com" title="No more hanging empty bracket!">short ref</a></p>\r
-<p><a href="http://example.com" title="No more hanging empty bracket!">short \r
-ref</a></p>\r
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+<p>With <a href="/url/">embedded [brackets]</a>.</p>
+<p>Indented <a href="/url">once</a>.</p>
+<p>Indented <a href="/url">twice</a>.</p>
+<p>Indented <a href="/url">thrice</a>.</p>
+<p>Indented [four][] times.</p>
+<pre><code>[four]: /url
+</code></pre>
+<p>With <a href="http://example.com/" title="Angle Brackets">angle brackets</a>.</p>
+<p>And <a href="http://example.com/" title="Without angle brackets.">without</a>.</p>
+<p>With <a href="http://example.com" title="Yes this works">line
+breaks</a></p>
+<p>and <a href="http://example.com" title="Yes this works">line 
+breaks</a> with one space.</p>
+<p>and [line<br />
+breaks[] with two spaces.</p>
+<p><a href="http://example.com" title="No more hanging empty bracket!">short ref</a></p>
+<p><a href="http://example.com" title="No more hanging empty bracket!">short 
+ref</a></p>
 <p><a href="http://example.com" title="Title on next line.">a ref</a></p>
\ No newline at end of file
index ff9d7bb4b93f8e2b43df476f29b3b1b30f647710..3d636e5c7379e4d8d85a3521a4729c042fb92c26 100644 (file)
@@ -1,61 +1,61 @@
-Foo [bar] [1].\r
-\r
-Foo [bar][1].\r
-\r
-Foo [bar]\r
-[1].\r
-\r
-[1]: /url/  "Title"\r
-\r
-\r
-With [embedded [brackets]] [b].\r
-\r
-\r
-Indented [once][].\r
-\r
-Indented [twice][].\r
-\r
-Indented [thrice][].\r
-\r
-Indented [four][] times.\r
-\r
- [once]: /url\r
-\r
-  [twice]: /url\r
-\r
-   [thrice]: /url\r
-\r
-    [four]: /url\r
-\r
-\r
-[b]: /url/\r
-\r
-With [angle brackets][].\r
-\r
-And [without][].\r
-\r
-[angle brackets]: <http://example.com/> "Angle Brackets"\r
-[without]: http://example.com/ "Without angle brackets."\r
-\r
-With [line\r
-breaks][]\r
-\r
-and [line \r
-breaks][] with one space.\r
-\r
-and [line  \r
-breaks[] with two spaces.\r
-\r
-[line breaks]: http://example.com "Yes this works"\r
-\r
-[short ref]\r
-\r
-[short \r
-ref]\r
-\r
-[short ref]: http://example.com "No more hanging empty bracket!"\r
-\r
-[a ref]\r
-\r
-[a ref]: http://example.com\r
-    "Title on next line."\r
+Foo [bar] [1].
+
+Foo [bar][1].
+
+Foo [bar]
+[1].
+
+[1]: /url/  "Title"
+
+
+With [embedded [brackets]] [b].
+
+
+Indented [once][].
+
+Indented [twice][].
+
+Indented [thrice][].
+
+Indented [four][] times.
+
+ [once]: /url
+
+  [twice]: /url
+
+   [thrice]: /url
+
+    [four]: /url
+
+
+[b]: /url/
+
+With [angle brackets][].
+
+And [without][].
+
+[angle brackets]: <http://example.com/> "Angle Brackets"
+[without]: http://example.com/ "Without angle brackets."
+
+With [line
+breaks][]
+
+and [line 
+breaks][] with one space.
+
+and [line  
+breaks[] with two spaces.
+
+[line breaks]: http://example.com "Yes this works"
+
+[short ref]
+
+[short 
+ref]
+
+[short ref]: http://example.com "No more hanging empty bracket!"
+
+[a ref]
+
+[a ref]: http://example.com
+    "Title on next line."
index 7c66142d1c4d52e9e6fa906ba6608582b546abad..0342589c7835f4bd304b0af560bf5a703927c063 100644 (file)
@@ -1,2 +1,2 @@
-<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>\r
+<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>
 <p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>
\ No newline at end of file
index b62bd98ec81e4fcfb93e9dd8a420e60e39b0d8dc..29d0e4235b22ad19bbdf2b6a4094722d0545cf03 100644 (file)
@@ -1,7 +1,7 @@
-Foo [bar][].\r
-\r
-Foo [bar](/url/ "Title with "quotes" inside").\r
-\r
-\r
-  [bar]: /url/ "Title with "quotes" inside"\r
-\r
+Foo [bar][].
+
+Foo [bar](/url/ "Title with "quotes" inside").
+
+
+  [bar]: /url/ "Title with "quotes" inside"
+
index 49a8494efc02a2c43b56b36ff2adb22a6be21c56..3bcaea9f7ee41196e2c95f10044a1d6bda4e7d0c 100644 (file)
-<h1>Markdown: Basics</h1>\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a class="selected" title="Markdown Basics">Basics</a></li>\r
-    <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-<h2>Getting the Gist of Markdown's Formatting Syntax</h2>\r
-<p>This page offers a brief overview of what it's like to use Markdown.\r
-The <a href="/projects/markdown/syntax" title="Markdown Syntax">syntax page</a> provides complete, detailed documentation for\r
-every feature, but Markdown should be very easy to pick up simply by\r
-looking at a few examples of it in action. The examples on this page\r
-are written in a before/after style, showing example syntax and the\r
-HTML output produced by Markdown.</p>\r
-<p>It's also helpful to simply try Markdown out; the <a href="/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a\r
-web application that allows you type your own Markdown-formatted text\r
-and translate it to XHTML.</p>\r
-<p><strong>Note:</strong> This document is itself written using Markdown; you\r
-can <a href="/projects/markdown/basics.text">see the source for it by adding '.text' to the URL</a>.</p>\r
-<h2>Paragraphs, Headers, Blockquotes</h2>\r
-<p>A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
-<p>Markdown offers two styles of headers: <em>Setext</em> and <em>atx</em>.\r
-Setext-style headers for <code>&lt;h1&gt;</code> and <code>&lt;h2&gt;</code> are created by\r
-"underlining" with equal signs (<code>=</code>) and hyphens (<code>-</code>), respectively.\r
-To create an atx-style header, you put 1-6 hash marks (<code>#</code>) at the\r
-beginning of the line -- the number of hashes equals the resulting\r
-HTML header level.</p>\r
-<p>Blockquotes are indicated using email-style '<code>&gt;</code>' angle brackets.</p>\r
-<p>Markdown:</p>\r
-<pre><code>A First Level Header\r
-====================\r
-\r
-A Second Level Header\r
----------------------\r
-\r
-Now is the time for all good men to come to\r
-the aid of their country. This is just a\r
-regular paragraph.\r
-\r
-The quick brown fox jumped over the lazy\r
-dog's back.\r
-\r
-### Header 3\r
-\r
-&gt; This is a blockquote.\r
-&gt; \r
-&gt; This is the second paragraph in the blockquote.\r
-&gt;\r
-&gt; ## This is an H2 in a blockquote\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;h1&gt;A First Level Header&lt;/h1&gt;\r
-\r
-&lt;h2&gt;A Second Level Header&lt;/h2&gt;\r
-\r
-&lt;p&gt;Now is the time for all good men to come to\r
-the aid of their country. This is just a\r
-regular paragraph.&lt;/p&gt;\r
-\r
-&lt;p&gt;The quick brown fox jumped over the lazy\r
-dog's back.&lt;/p&gt;\r
-\r
-&lt;h3&gt;Header 3&lt;/h3&gt;\r
-\r
-&lt;blockquote&gt;\r
-    &lt;p&gt;This is a blockquote.&lt;/p&gt;\r
-\r
-    &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;\r
-\r
-    &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;\r
-&lt;/blockquote&gt;\r
-</code></pre>\r
-<h3>Phrase Emphasis</h3>\r
-<p>Markdown uses asterisks and underscores to indicate spans of emphasis.</p>\r
-<p>Markdown:</p>\r
-<pre><code>Some of these words *are emphasized*.\r
-Some of these words _are emphasized also_.\r
-\r
-Use two asterisks for **strong emphasis**.\r
-Or, if you prefer, __use two underscores instead__.\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.\r
-Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;\r
-\r
-&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.\r
-Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<h2>Lists</h2>\r
-<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,\r
-<code>+</code>, and <code>-</code>) as list markers. These three markers are\r
-interchangable; this:</p>\r
-<pre><code>*   Candy.\r
-*   Gum.\r
-*   Booze.\r
-</code></pre>\r
-<p>this:</p>\r
-<pre><code>+   Candy.\r
-+   Gum.\r
-+   Booze.\r
-</code></pre>\r
-<p>and this:</p>\r
-<pre><code>-   Candy.\r
--   Gum.\r
--   Booze.\r
-</code></pre>\r
-<p>all produce the same output:</p>\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;Candy.&lt;/li&gt;\r
-&lt;li&gt;Gum.&lt;/li&gt;\r
-&lt;li&gt;Booze.&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-<p>Ordered (numbered) lists use regular numbers, followed by periods, as\r
-list markers:</p>\r
-<pre><code>1.  Red\r
-2.  Green\r
-3.  Blue\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;ol&gt;\r
-&lt;li&gt;Red&lt;/li&gt;\r
-&lt;li&gt;Green&lt;/li&gt;\r
-&lt;li&gt;Blue&lt;/li&gt;\r
-&lt;/ol&gt;\r
-</code></pre>\r
-<p>If you put blank lines between items, you'll get <code>&lt;p&gt;</code> tags for the\r
-list item text. You can create multi-paragraph list items by indenting\r
-the paragraphs by 4 spaces or 1 tab:</p>\r
-<pre><code>*   A list item.\r
-\r
-    With multiple paragraphs.\r
-\r
-*   Another item in the list.\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;\r
-&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;\r
-&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-<h3>Links</h3>\r
-<p>Markdown supports two styles for creating links: <em>inline</em> and\r
-<em>reference</em>. With both styles, you use square brackets to delimit the\r
-text you want to turn into a link.</p>\r
-<p>Inline-style links use parentheses immediately after the link text.\r
-For example:</p>\r
-<pre><code>This is an [example link](http://example.com/).\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;\r
-example link&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<p>Optionally, you may include a title attribute in the parentheses:</p>\r
-<pre><code>This is an [example link](http://example.com/ "With a Title").\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;\r
-example link&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<p>Reference-style links allow you to refer to your links by names, which\r
-you define elsewhere in your document:</p>\r
-<pre><code>I get 10 times more traffic from [Google][1] than from\r
-[Yahoo][2] or [MSN][3].\r
-\r
-[1]: http://google.com/        "Google"\r
-[2]: http://search.yahoo.com/  "Yahoo Search"\r
-[3]: http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
-title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"\r
-title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"\r
-title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<p>The title attribute is optional. Link names may contain letters,\r
-numbers and spaces, but are <em>not</em> case sensitive:</p>\r
-<pre><code>I start my morning with a cup of coffee and\r
-[The New York Times][NY Times].\r
-\r
-[ny times]: http://www.nytimes.com/\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;p&gt;I start my morning with a cup of coffee and\r
-&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<h3>Images</h3>\r
-<p>Image syntax is very much like link syntax.</p>\r
-<p>Inline (titles are optional):</p>\r
-<pre><code>![alt text](/path/to/img.jpg "Title")\r
-</code></pre>\r
-<p>Reference-style:</p>\r
-<pre><code>![alt text][id]\r
-\r
-[id]: /path/to/img.jpg "Title"\r
-</code></pre>\r
-<p>Both of the above examples produce the same output:</p>\r
-<pre><code>&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;\r
-</code></pre>\r
-<h3>Code</h3>\r
-<p>In a regular paragraph, you can create code span by wrapping text in\r
-backtick quotes. Any ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> or\r
-<code>&gt;</code>) will automatically be translated into HTML entities. This makes\r
-it easy to use Markdown to write about HTML example code:</p>\r
-<pre><code>I strongly recommend against using any `&lt;blink&gt;` tags.\r
-\r
-I wish SmartyPants used named entities like `&amp;mdash;`\r
-instead of decimal-encoded entites like `&amp;#8212;`.\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;p&gt;I strongly recommend against using any\r
-&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
-\r
-&lt;p&gt;I wish SmartyPants used named entities like\r
-&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded\r
-entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<p>To specify an entire block of pre-formatted code, indent every line of\r
-the block by 4 spaces or 1 tab. Just like with code spans, <code>&amp;</code>, <code>&lt;</code>,\r
-and <code>&gt;</code> characters will be escaped automatically.</p>\r
-<p>Markdown:</p>\r
-<pre><code>If you want your page to validate under XHTML 1.0 Strict,\r
-you've got to put paragraph tags in your blockquotes:\r
-\r
-    &lt;blockquote&gt;\r
-        &lt;p&gt;For example.&lt;/p&gt;\r
-    &lt;/blockquote&gt;\r
-</code></pre>\r
-<p>Output:</p>\r
-<pre><code>&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,\r
-you've got to put paragraph tags in your blockquotes:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;\r
-    &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;\r
-&amp;lt;/blockquote&amp;gt;\r
-&lt;/code&gt;&lt;/pre&gt;\r
+<h1>Markdown: Basics</h1>
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a class="selected" title="Markdown Basics">Basics</a></li>
+    <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<h2>Getting the Gist of Markdown's Formatting Syntax</h2>
+<p>This page offers a brief overview of what it's like to use Markdown.
+The <a href="/projects/markdown/syntax" title="Markdown Syntax">syntax page</a> provides complete, detailed documentation for
+every feature, but Markdown should be very easy to pick up simply by
+looking at a few examples of it in action. The examples on this page
+are written in a before/after style, showing example syntax and the
+HTML output produced by Markdown.</p>
+<p>It's also helpful to simply try Markdown out; the <a href="/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a
+web application that allows you type your own Markdown-formatted text
+and translate it to XHTML.</p>
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/basics.text">see the source for it by adding '.text' to the URL</a>.</p>
+<h2>Paragraphs, Headers, Blockquotes</h2>
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+<p>Markdown offers two styles of headers: <em>Setext</em> and <em>atx</em>.
+Setext-style headers for <code>&lt;h1&gt;</code> and <code>&lt;h2&gt;</code> are created by
+"underlining" with equal signs (<code>=</code>) and hyphens (<code>-</code>), respectively.
+To create an atx-style header, you put 1-6 hash marks (<code>#</code>) at the
+beginning of the line -- the number of hashes equals the resulting
+HTML header level.</p>
+<p>Blockquotes are indicated using email-style '<code>&gt;</code>' angle brackets.</p>
+<p>Markdown:</p>
+<pre><code>A First Level Header
+====================
+
+A Second Level Header
+---------------------
+
+Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.
+
+The quick brown fox jumped over the lazy
+dog's back.
+
+### Header 3
+
+&gt; This is a blockquote.
+&gt; 
+&gt; This is the second paragraph in the blockquote.
+&gt;
+&gt; ## This is an H2 in a blockquote
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;h1&gt;A First Level Header&lt;/h1&gt;
+
+&lt;h2&gt;A Second Level Header&lt;/h2&gt;
+
+&lt;p&gt;Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.&lt;/p&gt;
+
+&lt;p&gt;The quick brown fox jumped over the lazy
+dog's back.&lt;/p&gt;
+
+&lt;h3&gt;Header 3&lt;/h3&gt;
+
+&lt;blockquote&gt;
+    &lt;p&gt;This is a blockquote.&lt;/p&gt;
+
+    &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;
+
+    &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;
+&lt;/blockquote&gt;
+</code></pre>
+<h3>Phrase Emphasis</h3>
+<p>Markdown uses asterisks and underscores to indicate spans of emphasis.</p>
+<p>Markdown:</p>
+<pre><code>Some of these words *are emphasized*.
+Some of these words _are emphasized also_.
+
+Use two asterisks for **strong emphasis**.
+Or, if you prefer, __use two underscores instead__.
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.
+Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;
+
+&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.
+Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;
+</code></pre>
+<h2>Lists</h2>
+<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,
+<code>+</code>, and <code>-</code>) as list markers. These three markers are
+interchangable; this:</p>
+<pre><code>*   Candy.
+*   Gum.
+*   Booze.
+</code></pre>
+<p>this:</p>
+<pre><code>+   Candy.
++   Gum.
++   Booze.
+</code></pre>
+<p>and this:</p>
+<pre><code>-   Candy.
+-   Gum.
+-   Booze.
+</code></pre>
+<p>all produce the same output:</p>
+<pre><code>&lt;ul&gt;
+&lt;li&gt;Candy.&lt;/li&gt;
+&lt;li&gt;Gum.&lt;/li&gt;
+&lt;li&gt;Booze.&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+<p>Ordered (numbered) lists use regular numbers, followed by periods, as
+list markers:</p>
+<pre><code>1.  Red
+2.  Green
+3.  Blue
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;ol&gt;
+&lt;li&gt;Red&lt;/li&gt;
+&lt;li&gt;Green&lt;/li&gt;
+&lt;li&gt;Blue&lt;/li&gt;
+&lt;/ol&gt;
+</code></pre>
+<p>If you put blank lines between items, you'll get <code>&lt;p&gt;</code> tags for the
+list item text. You can create multi-paragraph list items by indenting
+the paragraphs by 4 spaces or 1 tab:</p>
+<pre><code>*   A list item.
+
+    With multiple paragraphs.
+
+*   Another item in the list.
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;ul&gt;
+&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;
+&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;
+&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+<h3>Links</h3>
+<p>Markdown supports two styles for creating links: <em>inline</em> and
+<em>reference</em>. With both styles, you use square brackets to delimit the
+text you want to turn into a link.</p>
+<p>Inline-style links use parentheses immediately after the link text.
+For example:</p>
+<pre><code>This is an [example link](http://example.com/).
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;
+example link&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+<p>Optionally, you may include a title attribute in the parentheses:</p>
+<pre><code>This is an [example link](http://example.com/ "With a Title").
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;
+example link&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+<p>Reference-style links allow you to refer to your links by names, which
+you define elsewhere in your document:</p>
+<pre><code>I get 10 times more traffic from [Google][1] than from
+[Yahoo][2] or [MSN][3].
+
+[1]: http://google.com/        "Google"
+[2]: http://search.yahoo.com/  "Yahoo Search"
+[3]: http://search.msn.com/    "MSN Search"
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
+title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"
+title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"
+title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+<p>The title attribute is optional. Link names may contain letters,
+numbers and spaces, but are <em>not</em> case sensitive:</p>
+<pre><code>I start my morning with a cup of coffee and
+[The New York Times][NY Times].
+
+[ny times]: http://www.nytimes.com/
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;p&gt;I start my morning with a cup of coffee and
+&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+<h3>Images</h3>
+<p>Image syntax is very much like link syntax.</p>
+<p>Inline (titles are optional):</p>
+<pre><code>![alt text](/path/to/img.jpg "Title")
+</code></pre>
+<p>Reference-style:</p>
+<pre><code>![alt text][id]
+
+[id]: /path/to/img.jpg "Title"
+</code></pre>
+<p>Both of the above examples produce the same output:</p>
+<pre><code>&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;
+</code></pre>
+<h3>Code</h3>
+<p>In a regular paragraph, you can create code span by wrapping text in
+backtick quotes. Any ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> or
+<code>&gt;</code>) will automatically be translated into HTML entities. This makes
+it easy to use Markdown to write about HTML example code:</p>
+<pre><code>I strongly recommend against using any `&lt;blink&gt;` tags.
+
+I wish SmartyPants used named entities like `&amp;mdash;`
+instead of decimal-encoded entites like `&amp;#8212;`.
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;p&gt;I strongly recommend against using any
+&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
+
+&lt;p&gt;I wish SmartyPants used named entities like
+&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded
+entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;
+</code></pre>
+<p>To specify an entire block of pre-formatted code, indent every line of
+the block by 4 spaces or 1 tab. Just like with code spans, <code>&amp;</code>, <code>&lt;</code>,
+and <code>&gt;</code> characters will be escaped automatically.</p>
+<p>Markdown:</p>
+<pre><code>If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:
+
+    &lt;blockquote&gt;
+        &lt;p&gt;For example.&lt;/p&gt;
+    &lt;/blockquote&gt;
+</code></pre>
+<p>Output:</p>
+<pre><code>&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;
+    &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;
+&amp;lt;/blockquote&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
 </code></pre>
\ No newline at end of file
index 97b8f3321c9e7240606448a4c196400f70ba1121..486055ca7f8d48fa9498b43b12363c91acd01c91 100644 (file)
-Markdown: Basics\r
-================\r
-\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a class="selected" title="Markdown Basics">Basics</a></li>\r
-    <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-\r
-Getting the Gist of Markdown's Formatting Syntax\r
-------------------------------------------------\r
-\r
-This page offers a brief overview of what it's like to use Markdown.\r
-The [syntax page] [s] provides complete, detailed documentation for\r
-every feature, but Markdown should be very easy to pick up simply by\r
-looking at a few examples of it in action. The examples on this page\r
-are written in a before/after style, showing example syntax and the\r
-HTML output produced by Markdown.\r
-\r
-It's also helpful to simply try Markdown out; the [Dingus] [d] is a\r
-web application that allows you type your own Markdown-formatted text\r
-and translate it to XHTML.\r
-\r
-**Note:** This document is itself written using Markdown; you\r
-can [see the source for it by adding '.text' to the URL] [src].\r
-\r
-  [s]: /projects/markdown/syntax  "Markdown Syntax"\r
-  [d]: /projects/markdown/dingus  "Markdown Dingus"\r
-  [src]: /projects/markdown/basics.text\r
-\r
-\r
-## Paragraphs, Headers, Blockquotes ##\r
-\r
-A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.\r
-\r
-Markdown offers two styles of headers: *Setext* and *atx*.\r
-Setext-style headers for `<h1>` and `<h2>` are created by\r
-"underlining" with equal signs (`=`) and hyphens (`-`), respectively.\r
-To create an atx-style header, you put 1-6 hash marks (`#`) at the\r
-beginning of the line -- the number of hashes equals the resulting\r
-HTML header level.\r
-\r
-Blockquotes are indicated using email-style '`>`' angle brackets.\r
-\r
-Markdown:\r
-\r
-    A First Level Header\r
-    ====================\r
-    \r
-    A Second Level Header\r
-    ---------------------\r
-\r
-    Now is the time for all good men to come to\r
-    the aid of their country. This is just a\r
-    regular paragraph.\r
-\r
-    The quick brown fox jumped over the lazy\r
-    dog's back.\r
-    \r
-    ### Header 3\r
-\r
-    > This is a blockquote.\r
-    > \r
-    > This is the second paragraph in the blockquote.\r
-    >\r
-    > ## This is an H2 in a blockquote\r
-\r
-\r
-Output:\r
-\r
-    <h1>A First Level Header</h1>\r
-    \r
-    <h2>A Second Level Header</h2>\r
-    \r
-    <p>Now is the time for all good men to come to\r
-    the aid of their country. This is just a\r
-    regular paragraph.</p>\r
-    \r
-    <p>The quick brown fox jumped over the lazy\r
-    dog's back.</p>\r
-    \r
-    <h3>Header 3</h3>\r
-    \r
-    <blockquote>\r
-        <p>This is a blockquote.</p>\r
-        \r
-        <p>This is the second paragraph in the blockquote.</p>\r
-        \r
-        <h2>This is an H2 in a blockquote</h2>\r
-    </blockquote>\r
-\r
-\r
-\r
-### Phrase Emphasis ###\r
-\r
-Markdown uses asterisks and underscores to indicate spans of emphasis.\r
-\r
-Markdown:\r
-\r
-    Some of these words *are emphasized*.\r
-    Some of these words _are emphasized also_.\r
-    \r
-    Use two asterisks for **strong emphasis**.\r
-    Or, if you prefer, __use two underscores instead__.\r
-\r
-Output:\r
-\r
-    <p>Some of these words <em>are emphasized</em>.\r
-    Some of these words <em>are emphasized also</em>.</p>\r
-    \r
-    <p>Use two asterisks for <strong>strong emphasis</strong>.\r
-    Or, if you prefer, <strong>use two underscores instead</strong>.</p>\r
-   \r
-\r
-\r
-## Lists ##\r
-\r
-Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,\r
-`+`, and `-`) as list markers. These three markers are\r
-interchangable; this:\r
-\r
-    *   Candy.\r
-    *   Gum.\r
-    *   Booze.\r
-\r
-this:\r
-\r
-    +   Candy.\r
-    +   Gum.\r
-    +   Booze.\r
-\r
-and this:\r
-\r
-    -   Candy.\r
-    -   Gum.\r
-    -   Booze.\r
-\r
-all produce the same output:\r
-\r
-    <ul>\r
-    <li>Candy.</li>\r
-    <li>Gum.</li>\r
-    <li>Booze.</li>\r
-    </ul>\r
-\r
-Ordered (numbered) lists use regular numbers, followed by periods, as\r
-list markers:\r
-\r
-    1.  Red\r
-    2.  Green\r
-    3.  Blue\r
-\r
-Output:\r
-\r
-    <ol>\r
-    <li>Red</li>\r
-    <li>Green</li>\r
-    <li>Blue</li>\r
-    </ol>\r
-\r
-If you put blank lines between items, you'll get `<p>` tags for the\r
-list item text. You can create multi-paragraph list items by indenting\r
-the paragraphs by 4 spaces or 1 tab:\r
-\r
-    *   A list item.\r
-    \r
-        With multiple paragraphs.\r
-\r
-    *   Another item in the list.\r
-\r
-Output:\r
-\r
-    <ul>\r
-    <li><p>A list item.</p>\r
-    <p>With multiple paragraphs.</p></li>\r
-    <li><p>Another item in the list.</p></li>\r
-    </ul>\r
-    \r
-\r
-\r
-### Links ###\r
-\r
-Markdown supports two styles for creating links: *inline* and\r
-*reference*. With both styles, you use square brackets to delimit the\r
-text you want to turn into a link.\r
-\r
-Inline-style links use parentheses immediately after the link text.\r
-For example:\r
-\r
-    This is an [example link](http://example.com/).\r
-\r
-Output:\r
-\r
-    <p>This is an <a href="http://example.com/">\r
-    example link</a>.</p>\r
-\r
-Optionally, you may include a title attribute in the parentheses:\r
-\r
-    This is an [example link](http://example.com/ "With a Title").\r
-\r
-Output:\r
-\r
-    <p>This is an <a href="http://example.com/" title="With a Title">\r
-    example link</a>.</p>\r
-\r
-Reference-style links allow you to refer to your links by names, which\r
-you define elsewhere in your document:\r
-\r
-    I get 10 times more traffic from [Google][1] than from\r
-    [Yahoo][2] or [MSN][3].\r
-\r
-    [1]: http://google.com/        "Google"\r
-    [2]: http://search.yahoo.com/  "Yahoo Search"\r
-    [3]: http://search.msn.com/    "MSN Search"\r
-\r
-Output:\r
-\r
-    <p>I get 10 times more traffic from <a href="http://google.com/"\r
-    title="Google">Google</a> than from <a href="http://search.yahoo.com/"\r
-    title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"\r
-    title="MSN Search">MSN</a>.</p>\r
-\r
-The title attribute is optional. Link names may contain letters,\r
-numbers and spaces, but are *not* case sensitive:\r
-\r
-    I start my morning with a cup of coffee and\r
-    [The New York Times][NY Times].\r
-\r
-    [ny times]: http://www.nytimes.com/\r
-\r
-Output:\r
-\r
-    <p>I start my morning with a cup of coffee and\r
-    <a href="http://www.nytimes.com/">The New York Times</a>.</p>\r
-\r
-\r
-### Images ###\r
-\r
-Image syntax is very much like link syntax.\r
-\r
-Inline (titles are optional):\r
-\r
-    ![alt text](/path/to/img.jpg "Title")\r
-\r
-Reference-style:\r
-\r
-    ![alt text][id]\r
-\r
-    [id]: /path/to/img.jpg "Title"\r
-\r
-Both of the above examples produce the same output:\r
-\r
-    <img src="/path/to/img.jpg" alt="alt text" title="Title" />\r
-\r
-\r
-\r
-### Code ###\r
-\r
-In a regular paragraph, you can create code span by wrapping text in\r
-backtick quotes. Any ampersands (`&`) and angle brackets (`<` or\r
-`>`) will automatically be translated into HTML entities. This makes\r
-it easy to use Markdown to write about HTML example code:\r
-\r
-    I strongly recommend against using any `<blink>` tags.\r
-\r
-    I wish SmartyPants used named entities like `&mdash;`\r
-    instead of decimal-encoded entites like `&#8212;`.\r
-\r
-Output:\r
-\r
-    <p>I strongly recommend against using any\r
-    <code>&lt;blink&gt;</code> tags.</p>\r
-    \r
-    <p>I wish SmartyPants used named entities like\r
-    <code>&amp;mdash;</code> instead of decimal-encoded\r
-    entites like <code>&amp;#8212;</code>.</p>\r
-\r
-\r
-To specify an entire block of pre-formatted code, indent every line of\r
-the block by 4 spaces or 1 tab. Just like with code spans, `&`, `<`,\r
-and `>` characters will be escaped automatically.\r
-\r
-Markdown:\r
-\r
-    If you want your page to validate under XHTML 1.0 Strict,\r
-    you've got to put paragraph tags in your blockquotes:\r
-\r
-        <blockquote>\r
-            <p>For example.</p>\r
-        </blockquote>\r
-\r
-Output:\r
-\r
-    <p>If you want your page to validate under XHTML 1.0 Strict,\r
-    you've got to put paragraph tags in your blockquotes:</p>\r
-    \r
-    <pre><code>&lt;blockquote&gt;\r
-        &lt;p&gt;For example.&lt;/p&gt;\r
-    &lt;/blockquote&gt;\r
-    </code></pre>\r
+Markdown: Basics
+================
+
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a class="selected" title="Markdown Basics">Basics</a></li>
+    <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+
+Getting the Gist of Markdown's Formatting Syntax
+------------------------------------------------
+
+This page offers a brief overview of what it's like to use Markdown.
+The [syntax page] [s] provides complete, detailed documentation for
+every feature, but Markdown should be very easy to pick up simply by
+looking at a few examples of it in action. The examples on this page
+are written in a before/after style, showing example syntax and the
+HTML output produced by Markdown.
+
+It's also helpful to simply try Markdown out; the [Dingus] [d] is a
+web application that allows you type your own Markdown-formatted text
+and translate it to XHTML.
+
+**Note:** This document is itself written using Markdown; you
+can [see the source for it by adding '.text' to the URL] [src].
+
+  [s]: /projects/markdown/syntax  "Markdown Syntax"
+  [d]: /projects/markdown/dingus  "Markdown Dingus"
+  [src]: /projects/markdown/basics.text
+
+
+## Paragraphs, Headers, Blockquotes ##
+
+A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.
+
+Markdown offers two styles of headers: *Setext* and *atx*.
+Setext-style headers for `<h1>` and `<h2>` are created by
+"underlining" with equal signs (`=`) and hyphens (`-`), respectively.
+To create an atx-style header, you put 1-6 hash marks (`#`) at the
+beginning of the line -- the number of hashes equals the resulting
+HTML header level.
+
+Blockquotes are indicated using email-style '`>`' angle brackets.
+
+Markdown:
+
+    A First Level Header
+    ====================
+    
+    A Second Level Header
+    ---------------------
+
+    Now is the time for all good men to come to
+    the aid of their country. This is just a
+    regular paragraph.
+
+    The quick brown fox jumped over the lazy
+    dog's back.
+    
+    ### Header 3
+
+    > This is a blockquote.
+    > 
+    > This is the second paragraph in the blockquote.
+    >
+    > ## This is an H2 in a blockquote
+
+
+Output:
+
+    <h1>A First Level Header</h1>
+    
+    <h2>A Second Level Header</h2>
+    
+    <p>Now is the time for all good men to come to
+    the aid of their country. This is just a
+    regular paragraph.</p>
+    
+    <p>The quick brown fox jumped over the lazy
+    dog's back.</p>
+    
+    <h3>Header 3</h3>
+    
+    <blockquote>
+        <p>This is a blockquote.</p>
+        
+        <p>This is the second paragraph in the blockquote.</p>
+        
+        <h2>This is an H2 in a blockquote</h2>
+    </blockquote>
+
+
+
+### Phrase Emphasis ###
+
+Markdown uses asterisks and underscores to indicate spans of emphasis.
+
+Markdown:
+
+    Some of these words *are emphasized*.
+    Some of these words _are emphasized also_.
+    
+    Use two asterisks for **strong emphasis**.
+    Or, if you prefer, __use two underscores instead__.
+
+Output:
+
+    <p>Some of these words <em>are emphasized</em>.
+    Some of these words <em>are emphasized also</em>.</p>
+    
+    <p>Use two asterisks for <strong>strong emphasis</strong>.
+    Or, if you prefer, <strong>use two underscores instead</strong>.</p>
+   
+
+
+## Lists ##
+
+Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,
+`+`, and `-`) as list markers. These three markers are
+interchangable; this:
+
+    *   Candy.
+    *   Gum.
+    *   Booze.
+
+this:
+
+    +   Candy.
+    +   Gum.
+    +   Booze.
+
+and this:
+
+    -   Candy.
+    -   Gum.
+    -   Booze.
+
+all produce the same output:
+
+    <ul>
+    <li>Candy.</li>
+    <li>Gum.</li>
+    <li>Booze.</li>
+    </ul>
+
+Ordered (numbered) lists use regular numbers, followed by periods, as
+list markers:
+
+    1.  Red
+    2.  Green
+    3.  Blue
+
+Output:
+
+    <ol>
+    <li>Red</li>
+    <li>Green</li>
+    <li>Blue</li>
+    </ol>
+
+If you put blank lines between items, you'll get `<p>` tags for the
+list item text. You can create multi-paragraph list items by indenting
+the paragraphs by 4 spaces or 1 tab:
+
+    *   A list item.
+    
+        With multiple paragraphs.
+
+    *   Another item in the list.
+
+Output:
+
+    <ul>
+    <li><p>A list item.</p>
+    <p>With multiple paragraphs.</p></li>
+    <li><p>Another item in the list.</p></li>
+    </ul>
+    
+
+
+### Links ###
+
+Markdown supports two styles for creating links: *inline* and
+*reference*. With both styles, you use square brackets to delimit the
+text you want to turn into a link.
+
+Inline-style links use parentheses immediately after the link text.
+For example:
+
+    This is an [example link](http://example.com/).
+
+Output:
+
+    <p>This is an <a href="http://example.com/">
+    example link</a>.</p>
+
+Optionally, you may include a title attribute in the parentheses:
+
+    This is an [example link](http://example.com/ "With a Title").
+
+Output:
+
+    <p>This is an <a href="http://example.com/" title="With a Title">
+    example link</a>.</p>
+
+Reference-style links allow you to refer to your links by names, which
+you define elsewhere in your document:
+
+    I get 10 times more traffic from [Google][1] than from
+    [Yahoo][2] or [MSN][3].
+
+    [1]: http://google.com/        "Google"
+    [2]: http://search.yahoo.com/  "Yahoo Search"
+    [3]: http://search.msn.com/    "MSN Search"
+
+Output:
+
+    <p>I get 10 times more traffic from <a href="http://google.com/"
+    title="Google">Google</a> than from <a href="http://search.yahoo.com/"
+    title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
+    title="MSN Search">MSN</a>.</p>
+
+The title attribute is optional. Link names may contain letters,
+numbers and spaces, but are *not* case sensitive:
+
+    I start my morning with a cup of coffee and
+    [The New York Times][NY Times].
+
+    [ny times]: http://www.nytimes.com/
+
+Output:
+
+    <p>I start my morning with a cup of coffee and
+    <a href="http://www.nytimes.com/">The New York Times</a>.</p>
+
+
+### Images ###
+
+Image syntax is very much like link syntax.
+
+Inline (titles are optional):
+
+    ![alt text](/path/to/img.jpg "Title")
+
+Reference-style:
+
+    ![alt text][id]
+
+    [id]: /path/to/img.jpg "Title"
+
+Both of the above examples produce the same output:
+
+    <img src="/path/to/img.jpg" alt="alt text" title="Title" />
+
+
+
+### Code ###
+
+In a regular paragraph, you can create code span by wrapping text in
+backtick quotes. Any ampersands (`&`) and angle brackets (`<` or
+`>`) will automatically be translated into HTML entities. This makes
+it easy to use Markdown to write about HTML example code:
+
+    I strongly recommend against using any `<blink>` tags.
+
+    I wish SmartyPants used named entities like `&mdash;`
+    instead of decimal-encoded entites like `&#8212;`.
+
+Output:
+
+    <p>I strongly recommend against using any
+    <code>&lt;blink&gt;</code> tags.</p>
+    
+    <p>I wish SmartyPants used named entities like
+    <code>&amp;mdash;</code> instead of decimal-encoded
+    entites like <code>&amp;#8212;</code>.</p>
+
+
+To specify an entire block of pre-formatted code, indent every line of
+the block by 4 spaces or 1 tab. Just like with code spans, `&`, `<`,
+and `>` characters will be escaped automatically.
+
+Markdown:
+
+    If you want your page to validate under XHTML 1.0 Strict,
+    you've got to put paragraph tags in your blockquotes:
+
+        <blockquote>
+            <p>For example.</p>
+        </blockquote>
+
+Output:
+
+    <p>If you want your page to validate under XHTML 1.0 Strict,
+    you've got to put paragraph tags in your blockquotes:</p>
+    
+    <pre><code>&lt;blockquote&gt;
+        &lt;p&gt;For example.&lt;/p&gt;
+    &lt;/blockquote&gt;
+    </code></pre>
index 64fde7296dc55ef3a22f1e448361e434f01a5e7f..038c9d14fdf9f96abbbc016626d94f37fb9890bf 100644 (file)
-<h1>Markdown: Syntax</h1>\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>\r
-    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-<ul>\r
-<li><a href="#overview">Overview</a><ul>\r
-<li><a href="#philosophy">Philosophy</a></li>\r
-<li><a href="#html">Inline HTML</a></li>\r
-<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#block">Block Elements</a><ul>\r
-<li><a href="#p">Paragraphs and Line Breaks</a></li>\r
-<li><a href="#header">Headers</a></li>\r
-<li><a href="#blockquote">Blockquotes</a></li>\r
-<li><a href="#list">Lists</a></li>\r
-<li><a href="#precode">Code Blocks</a></li>\r
-<li><a href="#hr">Horizontal Rules</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#span">Span Elements</a><ul>\r
-<li><a href="#link">Links</a></li>\r
-<li><a href="#em">Emphasis</a></li>\r
-<li><a href="#code">Code</a></li>\r
-<li><a href="#img">Images</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#misc">Miscellaneous</a><ul>\r
-<li><a href="#backslash">Backslash Escapes</a></li>\r
-<li><a href="#autolink">Automatic Links</a></li>\r
-</ul>\r
-</li>\r
-</ul>\r
-<p><strong>Note:</strong> This document is itself written using Markdown; you\r
-can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>\r
-<hr />\r
-<h2 id="overview">Overview</h2>\r
-\r
-<h3 id="philosophy">Philosophy</h3>\r
-\r
-<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>\r
-<p>Readability, however, is emphasized above all else. A Markdown-formatted\r
-document should be publishable as-is, as plain text, without looking\r
-like it's been marked up with tags or formatting instructions. While\r
-Markdown's syntax has been influenced by several existing text-to-HTML\r
-filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,\r
-<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of\r
-inspiration for Markdown's syntax is the format of plain text email.</p>\r
-<p>To this end, Markdown's syntax is comprised entirely of punctuation\r
-characters, which punctuation characters have been carefully chosen so\r
-as to look like what they mean. E.g., asterisks around a word actually\r
-look like *emphasis*. Markdown lists look like, well, lists. Even\r
-blockquotes look like quoted passages of text, assuming you've ever\r
-used email.</p>\r
-<h3 id="html">Inline HTML</h3>\r
-\r
-<p>Markdown's syntax is intended for one purpose: to be used as a\r
-format for <em>writing</em> for the web.</p>\r
-<p>Markdown is not a replacement for HTML, or even close to it. Its\r
-syntax is very small, corresponding only to a very small subset of\r
-HTML tags. The idea is <em>not</em> to create a syntax that makes it easier\r
-to insert HTML tags. In my opinion, HTML tags are already easy to\r
-insert. The idea for Markdown is to make it easy to read, write, and\r
-edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>\r
-format. Thus, Markdown's formatting syntax only addresses issues that\r
-can be conveyed in plain text.</p>\r
-<p>For any markup that is not covered by Markdown's syntax, you simply\r
-use HTML itself. There's no need to preface it or delimit it to\r
-indicate that you're switching from Markdown to HTML; you just use\r
-the tags.</p>\r
-<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,\r
-<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding\r
-content by blank lines, and the start and end tags of the block should\r
-not be indented with tabs or spaces. Markdown is smart enough not\r
-to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>\r
-<p>For example, to add an HTML table to a Markdown article:</p>\r
-<pre><code>This is a regular paragraph.\r
-\r
-&lt;table&gt;\r
-    &lt;tr&gt;\r
-        &lt;td&gt;Foo&lt;/td&gt;\r
-    &lt;/tr&gt;\r
-&lt;/table&gt;\r
-\r
-This is another regular paragraph.\r
-</code></pre>\r
-<p>Note that Markdown formatting syntax is not processed within block-level\r
-HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an\r
-HTML block.</p>\r
-<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be\r
-used anywhere in a Markdown paragraph, list item, or header. If you\r
-want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
-you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's\r
-link or image syntax, go right ahead.</p>\r
-<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within\r
-span-level tags.</p>\r
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>\r
-\r
-<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>\r
-and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are\r
-used to denote HTML entities. If you want to use them as literal\r
-characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and\r
-<code>&amp;amp;</code>.</p>\r
-<p>Ampersands in particular are bedeviling for web writers. If you want to\r
-write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to\r
-escape ampersands within URLs. Thus, if you want to link to:</p>\r
-<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird\r
-</code></pre>\r
-<p>you need to encode the URL as:</p>\r
-<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird\r
-</code></pre>\r
-<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to\r
-forget, and is probably the single most common source of HTML validation\r
-errors in otherwise well-marked-up web sites.</p>\r
-<p>Markdown allows you to use these characters naturally, taking care of\r
-all the necessary escaping for you. If you use an ampersand as part of\r
-an HTML entity, it remains unchanged; otherwise it will be translated\r
-into <code>&amp;amp;</code>.</p>\r
-<p>So, if you want to include a copyright symbol in your article, you can write:</p>\r
-<pre><code>&amp;copy;\r
-</code></pre>\r
-<p>and Markdown will leave it alone. But if you write:</p>\r
-<pre><code>AT&amp;T\r
-</code></pre>\r
-<p>Markdown will translate it to:</p>\r
-<pre><code>AT&amp;amp;T\r
-</code></pre>\r
-<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use\r
-angle brackets as delimiters for HTML tags, Markdown will treat them as\r
-such. But if you write:</p>\r
-<pre><code>4 &lt; 5\r
-</code></pre>\r
-<p>Markdown will translate it to:</p>\r
-<pre><code>4 &amp;lt; 5\r
-</code></pre>\r
-<p>However, inside Markdown code spans and blocks, angle brackets and\r
-ampersands are <em>always</em> encoded automatically. This makes it easy to use\r
-Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
-terrible format for writing about HTML syntax, because every single <code>&lt;</code>\r
-and <code>&amp;</code> in your example code needs to be escaped.)</p>\r
-<hr />\r
-<h2 id="block">Block Elements</h2>\r
-\r
-<h3 id="p">Paragraphs and Line Breaks</h3>\r
-\r
-<p>A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing but spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
-<p>The implication of the "one or more consecutive lines of text" rule is\r
-that Markdown supports "hard-wrapped" text paragraphs. This differs\r
-significantly from most other text-to-HTML formatters (including Movable\r
-Type's "Convert Line Breaks" option) which translate every line break\r
-character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>\r
-<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you\r
-end a line with two or more spaces, then type return.</p>\r
-<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic\r
-"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.\r
-Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>\r
-work best -- and look better -- when you format them with hard breaks.</p>\r
-<h3 id="header">Headers</h3>\r
-\r
-<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>\r
-<p>Setext-style headers are "underlined" using equal signs (for first-level\r
-headers) and dashes (for second-level headers). For example:</p>\r
-<pre><code>This is an H1\r
-=============\r
-\r
-This is an H2\r
--------------\r
-</code></pre>\r
-<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>\r
-<p>Atx-style headers use 1-6 hash characters at the start of the line,\r
-corresponding to header levels 1-6. For example:</p>\r
-<pre><code># This is an H1\r
-\r
-## This is an H2\r
-\r
-###### This is an H6\r
-</code></pre>\r
-<p>Optionally, you may "close" atx-style headers. This is purely\r
-cosmetic -- you can use this if you think it looks better. The\r
-closing hashes don't even need to match the number of hashes\r
-used to open the header. (The number of opening hashes\r
-determines the header level.) :</p>\r
-<pre><code># This is an H1 #\r
-\r
-## This is an H2 ##\r
-\r
-### This is an H3 ######\r
-</code></pre>\r
-<h3 id="blockquote">Blockquotes</h3>\r
-\r
-<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're\r
-familiar with quoting passages of text in an email message, then you\r
-know how to create a blockquote in Markdown. It looks best if you hard\r
-wrap the text and put a <code>&gt;</code> before every line:</p>\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-&gt; \r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-&gt; id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first\r
-line of a hard-wrapped paragraph:</p>\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-\r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
-adding additional levels of <code>&gt;</code>:</p>\r
-<pre><code>&gt; This is the first level of quoting.\r
-&gt;\r
-&gt; &gt; This is nested blockquote.\r
-&gt;\r
-&gt; Back to the first level.\r
-</code></pre>\r
-<p>Blockquotes can contain other Markdown elements, including headers, lists,\r
-and code blocks:</p>\r
-<pre><code>&gt; ## This is a header.\r
-&gt; \r
-&gt; 1.   This is the first list item.\r
-&gt; 2.   This is the second list item.\r
-&gt; \r
-&gt; Here's some example code:\r
-&gt; \r
-&gt;     return shell_exec("echo $input | $markdown_script");\r
-</code></pre>\r
-<p>Any decent text editor should make email-style quoting easy. For\r
-example, with BBEdit, you can make a selection and choose Increase\r
-Quote Level from the Text menu.</p>\r
-<h3 id="list">Lists</h3>\r
-\r
-<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>\r
-<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably\r
--- as list markers:</p>\r
-<pre><code>*   Red\r
-*   Green\r
-*   Blue\r
-</code></pre>\r
-<p>is equivalent to:</p>\r
-<pre><code>+   Red\r
-+   Green\r
-+   Blue\r
-</code></pre>\r
-<p>and:</p>\r
-<pre><code>-   Red\r
--   Green\r
--   Blue\r
-</code></pre>\r
-<p>Ordered lists use numbers followed by periods:</p>\r
-<pre><code>1.  Bird\r
-2.  McHale\r
-3.  Parish\r
-</code></pre>\r
-<p>It's important to note that the actual numbers you use to mark the\r
-list have no effect on the HTML output Markdown produces. The HTML\r
-Markdown produces from the above list is:</p>\r
-<pre><code>&lt;ol&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;McHale&lt;/li&gt;\r
-&lt;li&gt;Parish&lt;/li&gt;\r
-&lt;/ol&gt;\r
-</code></pre>\r
-<p>If you instead wrote the list in Markdown like this:</p>\r
-<pre><code>1.  Bird\r
-1.  McHale\r
-1.  Parish\r
-</code></pre>\r
-<p>or even:</p>\r
-<pre><code>3. Bird\r
-1. McHale\r
-8. Parish\r
-</code></pre>\r
-<p>you'd get the exact same HTML output. The point is, if you want to,\r
-you can use ordinal numbers in your ordered Markdown lists, so that\r
-the numbers in your source match the numbers in your published HTML.\r
-But if you want to be lazy, you don't have to.</p>\r
-<p>If you do use lazy list numbering, however, you should still start the\r
-list with the number 1. At some point in the future, Markdown may support\r
-starting ordered lists at an arbitrary number.</p>\r
-<p>List markers typically start at the left margin, but may be indented by\r
-up to three spaces. List markers must be followed by one or more spaces\r
-or a tab.</p>\r
-<p>To make lists look nice, you can wrap items with hanging indents:</p>\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-    viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-    Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>But if you want to be lazy, you don't have to:</p>\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>If list items are separated by blank lines, Markdown will wrap the\r
-items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>\r
-<pre><code>*   Bird\r
-*   Magic\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;Magic&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-<p>But this:</p>\r
-<pre><code>*   Bird\r
-\r
-*   Magic\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;\r
-&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-<p>List items may consist of multiple paragraphs. Each subsequent\r
-paragraph in a list item must be intended by either 4 spaces\r
-or one tab:</p>\r
-<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
-    sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
-    mi posuere lectus.\r
-\r
-    Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
-    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
-    sit amet velit.\r
-\r
-2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>It looks nice if you indent every line of the subsequent\r
-paragraphs, but here again, Markdown will allow you to be\r
-lazy:</p>\r
-<pre><code>*   This is a list item with two paragraphs.\r
-\r
-    This is the second paragraph in the list item. You're\r
-only required to indent the first line. Lorem ipsum dolor\r
-sit amet, consectetuer adipiscing elit.\r
-\r
-*   Another item in the same list.\r
-</code></pre>\r
-<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>\r
-delimiters need to be indented:</p>\r
-<pre><code>*   A list item with a blockquote:\r
-\r
-    &gt; This is a blockquote\r
-    &gt; inside a list item.\r
-</code></pre>\r
-<p>To put a code block within a list item, the code block needs\r
-to be indented <em>twice</em> -- 8 spaces or two tabs:</p>\r
-<pre><code>*   A list item with a code block:\r
-\r
-        &lt;code goes here&gt;\r
-</code></pre>\r
-<p>It's worth noting that it's possible to trigger an ordered list by\r
-accident, by writing something like this:</p>\r
-<pre><code>1986. What a great season.\r
-</code></pre>\r
-<p>In other words, a <em>number-period-space</em> sequence at the beginning of a\r
-line. To avoid this, you can backslash-escape the period:</p>\r
-<pre><code>1986\. What a great season.\r
-</code></pre>\r
-<h3 id="precode">Code Blocks</h3>\r
-\r
-<p>Pre-formatted code blocks are used for writing about programming or\r
-markup source code. Rather than forming normal paragraphs, the lines\r
-of a code block are interpreted literally. Markdown wraps a code block\r
-in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>\r
-<p>To produce a code block in Markdown, simply indent every line of the\r
-block by at least 4 spaces or 1 tab. For example, given this input:</p>\r
-<pre><code>This is a normal paragraph:\r
-\r
-    This is a code block.\r
-</code></pre>\r
-<p>Markdown will generate:</p>\r
-<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;This is a code block.\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each\r
-line of the code block. For example, this:</p>\r
-<pre><code>Here is an example of AppleScript:\r
-\r
-    tell application "Foo"\r
-        beep\r
-    end tell\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;tell application "Foo"\r
-    beep\r
-end tell\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>A code block continues until it reaches a line that is not indented\r
-(or the end of the article).</p>\r
-<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)\r
-are automatically converted into HTML entities. This makes it very\r
-easy to include example HTML source code using Markdown -- just paste\r
-it and indent it, and Markdown will handle the hassle of encoding the\r
-ampersands and angle brackets. For example, this:</p>\r
-<pre><code>    &lt;div class="footer"&gt;\r
-        &amp;copy; 2004 Foo Corporation\r
-    &lt;/div&gt;\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;\r
-    &amp;amp;copy; 2004 Foo Corporation\r
-&amp;lt;/div&amp;gt;\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>Regular Markdown syntax is not processed within code blocks. E.g.,\r
-asterisks are just literal asterisks within a code block. This means\r
-it's also easy to use Markdown to write about Markdown's own syntax.</p>\r
-<h3 id="hr">Horizontal Rules</h3>\r
-\r
-<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or\r
-more hyphens, asterisks, or underscores on a line by themselves. If you\r
-wish, you may use spaces between the hyphens or asterisks. Each of the\r
-following lines will produce a horizontal rule:</p>\r
-<pre><code>* * *\r
-\r
-***\r
-\r
-*****\r
-\r
-- - -\r
-\r
----------------------------------------\r
-\r
-_ _ _\r
-</code></pre>\r
-<hr />\r
-<h2 id="span">Span Elements</h2>\r
-\r
-<h3 id="link">Links</h3>\r
-\r
-<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>\r
-<p>In both styles, the link text is delimited by [square brackets].</p>\r
-<p>To create an inline link, use a set of regular parentheses immediately\r
-after the link text's closing square bracket. Inside the parentheses,\r
-put the URL where you want the link to point, along with an <em>optional</em>\r
-title for the link, surrounded in quotes. For example:</p>\r
-<pre><code>This is [an example](http://example.com/ "Title") inline link.\r
-\r
-[This link](http://example.net/) has no title attribute.\r
-</code></pre>\r
-<p>Will produce:</p>\r
-<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;\r
-an example&lt;/a&gt; inline link.&lt;/p&gt;\r
-\r
-&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no\r
-title attribute.&lt;/p&gt;\r
-</code></pre>\r
-<p>If you're referring to a local resource on the same server, you can\r
-use relative paths:</p>\r
-<pre><code>See my [About](/about/) page for details.\r
-</code></pre>\r
-<p>Reference-style links use a second set of square brackets, inside\r
-which you place a label of your choosing to identify the link:</p>\r
-<pre><code>This is [an example][id] reference-style link.\r
-</code></pre>\r
-<p>You can optionally use a space to separate the sets of brackets:</p>\r
-<pre><code>This is [an example] [id] reference-style link.\r
-</code></pre>\r
-<p>Then, anywhere in the document, you define your link label like this,\r
-on a line by itself:</p>\r
-<pre><code>[id]: http://example.com/  "Optional Title Here"\r
-</code></pre>\r
-<p>That is:</p>\r
-<ul>\r
-<li>Square brackets containing the link identifier (optionally\r
-    indented from the left margin using up to three spaces);</li>\r
-<li>followed by a colon;</li>\r
-<li>followed by one or more spaces (or tabs);</li>\r
-<li>followed by the URL for the link;</li>\r
-<li>optionally followed by a title attribute for the link, enclosed\r
-    in double or single quotes.</li>\r
-</ul>\r
-<p>The link URL may, optionally, be surrounded by angle brackets:</p>\r
-<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"\r
-</code></pre>\r
-<p>You can put the title attribute on the next line and use extra spaces\r
-or tabs for padding, which tends to look better with longer URLs:</p>\r
-<pre><code>[id]: http://example.com/longish/path/to/resource/here\r
-    "Optional Title Here"\r
-</code></pre>\r
-<p>Link definitions are only used for creating links during Markdown\r
-processing, and are stripped from your document in the HTML output.</p>\r
-<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>\r
-<pre><code>[link text][a]\r
-[link text][A]\r
-</code></pre>\r
-<p>are equivalent.</p>\r
-<p>The <em>implicit link name</em> shortcut allows you to omit the name of the\r
-link, in which case the link text itself is used as the name.\r
-Just use an empty set of square brackets -- e.g., to link the word\r
-"Google" to the google.com web site, you could simply write:</p>\r
-<pre><code>[Google][]\r
-</code></pre>\r
-<p>And then define the link:</p>\r
-<pre><code>[Google]: http://google.com/\r
-</code></pre>\r
-<p>Because link names may contain spaces, this shortcut even works for\r
-multiple words in the link text:</p>\r
-<pre><code>Visit [Daring Fireball][] for more information.\r
-</code></pre>\r
-<p>And then define the link:</p>\r
-<pre><code>[Daring Fireball]: http://daringfireball.net/\r
-</code></pre>\r
-<p>Link definitions can be placed anywhere in your Markdown document. I\r
-tend to put them immediately after each paragraph in which they're\r
-used, but if you want, you can put them all at the end of your\r
-document, sort of like footnotes.</p>\r
-<p>Here's an example of reference links in action:</p>\r
-<pre><code>I get 10 times more traffic from [Google] [1] than from\r
-[Yahoo] [2] or [MSN] [3].\r
-\r
-  [1]: http://google.com/        "Google"\r
-  [2]: http://search.yahoo.com/  "Yahoo Search"\r
-  [3]: http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-<p>Using the implicit link name shortcut, you could instead write:</p>\r
-<pre><code>I get 10 times more traffic from [Google][] than from\r
-[Yahoo][] or [MSN][].\r
-\r
-  [google]: http://google.com/        "Google"\r
-  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
-  [msn]:    http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-<p>Both of the above examples will produce the following HTML output:</p>\r
-<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
-title="Google"&gt;Google&lt;/a&gt; than from\r
-&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;\r
-or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<p>For comparison, here is the same paragraph written using\r
-Markdown's inline link style:</p>\r
-<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")\r
-than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
-[MSN](http://search.msn.com/ "MSN Search").\r
-</code></pre>\r
-<p>The point of reference-style links is not that they're easier to\r
-write. The point is that with reference-style links, your document\r
-source is vastly more readable. Compare the above examples: using\r
-reference-style links, the paragraph itself is only 81 characters\r
-long; with inline-style links, it's 176 characters; and as raw HTML,\r
-it's 234 characters. In the raw HTML, there's more markup than there\r
-is text.</p>\r
-<p>With Markdown's reference-style links, a source document much more\r
-closely resembles the final output, as rendered in a browser. By\r
-allowing you to move the markup-related metadata out of the paragraph,\r
-you can add links without interrupting the narrative flow of your\r
-prose.</p>\r
-<h3 id="em">Emphasis</h3>\r
-\r
-<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of\r
-emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an\r
-HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML\r
-<code>&lt;strong&gt;</code> tag. E.g., this input:</p>\r
-<pre><code>*single asterisks*\r
-\r
-_single underscores_\r
-\r
-**double asterisks**\r
-\r
-__double underscores__\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;\r
-\r
-&lt;em&gt;single underscores&lt;/em&gt;\r
-\r
-&lt;strong&gt;double asterisks&lt;/strong&gt;\r
-\r
-&lt;strong&gt;double underscores&lt;/strong&gt;\r
-</code></pre>\r
-<p>You can use whichever style you prefer; the lone restriction is that\r
-the same character must be used to open and close an emphasis span.</p>\r
-<p>Emphasis can be used in the middle of a word:</p>\r
-<pre><code>un*fucking*believable\r
-</code></pre>\r
-<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a\r
-literal asterisk or underscore.</p>\r
-<p>To produce a literal asterisk or underscore at a position where it\r
-would otherwise be used as an emphasis delimiter, you can backslash\r
-escape it:</p>\r
-<pre><code>\*this text is surrounded by literal asterisks\*\r
-</code></pre>\r
-<h3 id="code">Code</h3>\r
-\r
-<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).\r
-Unlike a pre-formatted code block, a code span indicates code within a\r
-normal paragraph. For example:</p>\r
-<pre><code>Use the `printf()` function.\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;\r
-</code></pre>\r
-<p>To include a literal backtick character within a code span, you can use\r
-multiple backticks as the opening and closing delimiters:</p>\r
-<pre><code>``There is a literal backtick (`) here.``\r
-</code></pre>\r
-<p>which will produce this:</p>\r
-<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-<p>The backtick delimiters surrounding a code span may include spaces --\r
-one after the opening, one before the closing. This allows you to place\r
-literal backtick characters at the beginning or end of a code span:</p>\r
-<pre><code>A single backtick in a code span: `` ` ``\r
-\r
-A backtick-delimited string in a code span: `` `foo` ``\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;\r
-\r
-&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-<p>With a code span, ampersands and angle brackets are encoded as HTML\r
-entities automatically, which makes it easy to include example HTML\r
-tags. Markdown will turn this:</p>\r
-<pre><code>Please don't use any `&lt;blink&gt;` tags.\r
-</code></pre>\r
-<p>into:</p>\r
-<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
-</code></pre>\r
-<p>You can write this:</p>\r
-<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.\r
-</code></pre>\r
-<p>to produce:</p>\r
-<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded\r
-equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<h3 id="img">Images</h3>\r
-\r
-<p>Admittedly, it's fairly difficult to devise a "natural" syntax for\r
-placing images into a plain text document format.</p>\r
-<p>Markdown uses an image syntax that is intended to resemble the syntax\r
-for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>\r
-<p>Inline image syntax looks like this:</p>\r
-<pre><code>![Alt text](/path/to/img.jpg)\r
-\r
-![Alt text](/path/to/img.jpg "Optional title")\r
-</code></pre>\r
-<p>That is:</p>\r
-<ul>\r
-<li>An exclamation mark: <code>!</code>;</li>\r
-<li>followed by a set of square brackets, containing the <code>alt</code>\r
-    attribute text for the image;</li>\r
-<li>followed by a set of parentheses, containing the URL or path to\r
-    the image, and an optional <code>title</code> attribute enclosed in double\r
-    or single quotes.</li>\r
-</ul>\r
-<p>Reference-style image syntax looks like this:</p>\r
-<pre><code>![Alt text][id]\r
-</code></pre>\r
-<p>Where "id" is the name of a defined image reference. Image references\r
-are defined using syntax identical to link references:</p>\r
-<pre><code>[id]: url/to/image  "Optional title attribute"\r
-</code></pre>\r
-<p>As of this writing, Markdown has no syntax for specifying the\r
-dimensions of an image; if this is important to you, you can simply\r
-use regular HTML <code>&lt;img&gt;</code> tags.</p>\r
-<hr />\r
-<h2 id="misc">Miscellaneous</h2>\r
-\r
-<h3 id="autolink">Automatic Links</h3>\r
-\r
-<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>\r
-<pre><code>&lt;http://example.com/&gt;\r
-</code></pre>\r
-<p>Markdown will turn this into:</p>\r
-<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;\r
-</code></pre>\r
-<p>Automatic links for email addresses work similarly, except that\r
-Markdown will also perform a bit of randomized decimal and hex\r
-entity-encoding to help obscure your address from address-harvesting\r
-spambots. For example, Markdown will turn this:</p>\r
-<pre><code>&lt;address@example.com&gt;\r
-</code></pre>\r
-<p>into something like this:</p>\r
-<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;\r
-&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;\r
-&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;\r
-&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;\r
-</code></pre>\r
-<p>which will render in a browser as a clickable link to "address@example.com".</p>\r
-<p>(This sort of entity-encoding trick will indeed fool many, if not\r
-most, address-harvesting bots, but it definitely won't fool all of\r
-them. It's better than nothing, but an address published in this way\r
-will probably eventually start receiving spam.)</p>\r
-<h3 id="backslash">Backslash Escapes</h3>\r
-\r
-<p>Markdown allows you to use backslash escapes to generate literal\r
-characters which would otherwise have special meaning in Markdown's\r
-formatting syntax. For example, if you wanted to surround a word with\r
-literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes\r
-before the asterisks, like this:</p>\r
-<pre><code>\*literal asterisks\*\r
-</code></pre>\r
-<p>Markdown provides backslash escapes for the following characters:</p>\r
-<pre><code>\   backslash\r
-`   backtick\r
-*   asterisk\r
-_   underscore\r
-{}  curly braces\r
-[]  square brackets\r
-()  parentheses\r
-#   hash mark\r
-+   plus sign\r
--   minus sign (hyphen)\r
-.   dot\r
-!   exclamation mark\r
+<h1>Markdown: Syntax</h1>
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<ul>
+<li><a href="#overview">Overview</a><ul>
+<li><a href="#philosophy">Philosophy</a></li>
+<li><a href="#html">Inline HTML</a></li>
+<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>
+</ul>
+</li>
+<li><a href="#block">Block Elements</a><ul>
+<li><a href="#p">Paragraphs and Line Breaks</a></li>
+<li><a href="#header">Headers</a></li>
+<li><a href="#blockquote">Blockquotes</a></li>
+<li><a href="#list">Lists</a></li>
+<li><a href="#precode">Code Blocks</a></li>
+<li><a href="#hr">Horizontal Rules</a></li>
+</ul>
+</li>
+<li><a href="#span">Span Elements</a><ul>
+<li><a href="#link">Links</a></li>
+<li><a href="#em">Emphasis</a></li>
+<li><a href="#code">Code</a></li>
+<li><a href="#img">Images</a></li>
+</ul>
+</li>
+<li><a href="#misc">Miscellaneous</a><ul>
+<li><a href="#backslash">Backslash Escapes</a></li>
+<li><a href="#autolink">Automatic Links</a></li>
+</ul>
+</li>
+</ul>
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
+<hr />
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>
+<p>Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
+<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.</p>
+<p>To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like *emphasis*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.</p>
+<h3 id="html">Inline HTML</h3>
+
+<p>Markdown's syntax is intended for one purpose: to be used as a
+format for <em>writing</em> for the web.</p>
+<p>Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is <em>not</em> to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.</p>
+<p>For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.</p>
+<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,
+<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>
+<p>For example, to add an HTML table to a Markdown article:</p>
+<pre><code>This is a regular paragraph.
+
+&lt;table&gt;
+    &lt;tr&gt;
+        &lt;td&gt;Foo&lt;/td&gt;
+    &lt;/tr&gt;
+&lt;/table&gt;
+
+This is another regular paragraph.
+</code></pre>
+<p>Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an
+HTML block.</p>
+<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's
+link or image syntax, go right ahead.</p>
+<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within
+span-level tags.</p>
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>
+and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and
+<code>&amp;amp;</code>.</p>
+<p>Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:</p>
+<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird
+</code></pre>
+<p>you need to encode the URL as:</p>
+<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird
+</code></pre>
+<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.</p>
+<p>Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into <code>&amp;amp;</code>.</p>
+<p>So, if you want to include a copyright symbol in your article, you can write:</p>
+<pre><code>&amp;copy;
+</code></pre>
+<p>and Markdown will leave it alone. But if you write:</p>
+<pre><code>AT&amp;T
+</code></pre>
+<p>Markdown will translate it to:</p>
+<pre><code>AT&amp;amp;T
+</code></pre>
+<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:</p>
+<pre><code>4 &lt; 5
+</code></pre>
+<p>Markdown will translate it to:</p>
+<pre><code>4 &amp;lt; 5
+</code></pre>
+<p>However, inside Markdown code spans and blocks, angle brackets and
+ampersands are <em>always</em> encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single <code>&lt;</code>
+and <code>&amp;</code> in your example code needs to be escaped.)</p>
+<hr />
+<h2 id="block">Block Elements</h2>
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+<p>The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>
+<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you
+end a line with two or more spaces, then type return.</p>
+<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic
+"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.
+Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>
+work best -- and look better -- when you format them with hard breaks.</p>
+<h3 id="header">Headers</h3>
+
+<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
+<p>Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:</p>
+<pre><code>This is an H1
+=============
+
+This is an H2
+-------------
+</code></pre>
+<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>
+<p>Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:</p>
+<pre><code># This is an H1
+
+## This is an H2
+
+###### This is an H6
+</code></pre>
+<p>Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :</p>
+<pre><code># This is an H1 #
+
+## This is an H2 ##
+
+### This is an H3 ######
+</code></pre>
+<h3 id="blockquote">Blockquotes</h3>
+
+<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a <code>&gt;</code> before every line:</p>
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+&gt; 
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+&gt; id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first
+line of a hard-wrapped paragraph:</p>
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of <code>&gt;</code>:</p>
+<pre><code>&gt; This is the first level of quoting.
+&gt;
+&gt; &gt; This is nested blockquote.
+&gt;
+&gt; Back to the first level.
+</code></pre>
+<p>Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:</p>
+<pre><code>&gt; ## This is a header.
+&gt; 
+&gt; 1.   This is the first list item.
+&gt; 2.   This is the second list item.
+&gt; 
+&gt; Here's some example code:
+&gt; 
+&gt;     return shell_exec("echo $input | $markdown_script");
+</code></pre>
+<p>Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.</p>
+<h3 id="list">Lists</h3>
+
+<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>
+<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:</p>
+<pre><code>*   Red
+*   Green
+*   Blue
+</code></pre>
+<p>is equivalent to:</p>
+<pre><code>+   Red
++   Green
++   Blue
+</code></pre>
+<p>and:</p>
+<pre><code>-   Red
+-   Green
+-   Blue
+</code></pre>
+<p>Ordered lists use numbers followed by periods:</p>
+<pre><code>1.  Bird
+2.  McHale
+3.  Parish
+</code></pre>
+<p>It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:</p>
+<pre><code>&lt;ol&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;McHale&lt;/li&gt;
+&lt;li&gt;Parish&lt;/li&gt;
+&lt;/ol&gt;
+</code></pre>
+<p>If you instead wrote the list in Markdown like this:</p>
+<pre><code>1.  Bird
+1.  McHale
+1.  Parish
+</code></pre>
+<p>or even:</p>
+<pre><code>3. Bird
+1. McHale
+8. Parish
+</code></pre>
+<p>you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.</p>
+<p>If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.</p>
+<p>List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.</p>
+<p>To make lists look nice, you can wrap items with hanging indents:</p>
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>But if you want to be lazy, you don't have to:</p>
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>If list items are separated by blank lines, Markdown will wrap the
+items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>
+<pre><code>*   Bird
+*   Magic
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;ul&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;Magic&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+<p>But this:</p>
+<pre><code>*   Bird
+
+*   Magic
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;ul&gt;
+&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;
+&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+<p>List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:</p>
+<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+    mi posuere lectus.
+
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+    sit amet velit.
+
+2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:</p>
+<pre><code>*   This is a list item with two paragraphs.
+
+    This is the second paragraph in the list item. You're
+only required to indent the first line. Lorem ipsum dolor
+sit amet, consectetuer adipiscing elit.
+
+*   Another item in the same list.
+</code></pre>
+<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>
+delimiters need to be indented:</p>
+<pre><code>*   A list item with a blockquote:
+
+    &gt; This is a blockquote
+    &gt; inside a list item.
+</code></pre>
+<p>To put a code block within a list item, the code block needs
+to be indented <em>twice</em> -- 8 spaces or two tabs:</p>
+<pre><code>*   A list item with a code block:
+
+        &lt;code goes here&gt;
+</code></pre>
+<p>It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:</p>
+<pre><code>1986. What a great season.
+</code></pre>
+<p>In other words, a <em>number-period-space</em> sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:</p>
+<pre><code>1986\. What a great season.
+</code></pre>
+<h3 id="precode">Code Blocks</h3>
+
+<p>Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>
+<p>To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:</p>
+<pre><code>This is a normal paragraph:
+
+    This is a code block.
+</code></pre>
+<p>Markdown will generate:</p>
+<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;This is a code block.
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:</p>
+<pre><code>Here is an example of AppleScript:
+
+    tell application "Foo"
+        beep
+    end tell
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;tell application "Foo"
+    beep
+end tell
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>A code block continues until it reaches a line that is not indented
+(or the end of the article).</p>
+<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:</p>
+<pre><code>    &lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;
+    &amp;amp;copy; 2004 Foo Corporation
+&amp;lt;/div&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.</p>
+<h3 id="hr">Horizontal Rules</h3>
+
+<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:</p>
+<pre><code>* * *
+
+***
+
+*****
+
+- - -
+
+---------------------------------------
+
+_ _ _
+</code></pre>
+<hr />
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>
+<p>In both styles, the link text is delimited by [square brackets].</p>
+<p>To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an <em>optional</em>
+title for the link, surrounded in quotes. For example:</p>
+<pre><code>This is [an example](http://example.com/ "Title") inline link.
+
+[This link](http://example.net/) has no title attribute.
+</code></pre>
+<p>Will produce:</p>
+<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;
+an example&lt;/a&gt; inline link.&lt;/p&gt;
+
+&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no
+title attribute.&lt;/p&gt;
+</code></pre>
+<p>If you're referring to a local resource on the same server, you can
+use relative paths:</p>
+<pre><code>See my [About](/about/) page for details.
+</code></pre>
+<p>Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:</p>
+<pre><code>This is [an example][id] reference-style link.
+</code></pre>
+<p>You can optionally use a space to separate the sets of brackets:</p>
+<pre><code>This is [an example] [id] reference-style link.
+</code></pre>
+<p>Then, anywhere in the document, you define your link label like this,
+on a line by itself:</p>
+<pre><code>[id]: http://example.com/  "Optional Title Here"
+</code></pre>
+<p>That is:</p>
+<ul>
+<li>Square brackets containing the link identifier (optionally
+    indented from the left margin using up to three spaces);</li>
+<li>followed by a colon;</li>
+<li>followed by one or more spaces (or tabs);</li>
+<li>followed by the URL for the link;</li>
+<li>optionally followed by a title attribute for the link, enclosed
+    in double or single quotes.</li>
+</ul>
+<p>The link URL may, optionally, be surrounded by angle brackets:</p>
+<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"
+</code></pre>
+<p>You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:</p>
+<pre><code>[id]: http://example.com/longish/path/to/resource/here
+    "Optional Title Here"
+</code></pre>
+<p>Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.</p>
+<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>
+<pre><code>[link text][a]
+[link text][A]
+</code></pre>
+<p>are equivalent.</p>
+<p>The <em>implicit link name</em> shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:</p>
+<pre><code>[Google][]
+</code></pre>
+<p>And then define the link:</p>
+<pre><code>[Google]: http://google.com/
+</code></pre>
+<p>Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:</p>
+<pre><code>Visit [Daring Fireball][] for more information.
+</code></pre>
+<p>And then define the link:</p>
+<pre><code>[Daring Fireball]: http://daringfireball.net/
+</code></pre>
+<p>Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.</p>
+<p>Here's an example of reference links in action:</p>
+<pre><code>I get 10 times more traffic from [Google] [1] than from
+[Yahoo] [2] or [MSN] [3].
+
+  [1]: http://google.com/        "Google"
+  [2]: http://search.yahoo.com/  "Yahoo Search"
+  [3]: http://search.msn.com/    "MSN Search"
+</code></pre>
+<p>Using the implicit link name shortcut, you could instead write:</p>
+<pre><code>I get 10 times more traffic from [Google][] than from
+[Yahoo][] or [MSN][].
+
+  [google]: http://google.com/        "Google"
+  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+  [msn]:    http://search.msn.com/    "MSN Search"
+</code></pre>
+<p>Both of the above examples will produce the following HTML output:</p>
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
+title="Google"&gt;Google&lt;/a&gt; than from
+&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;
+or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+<p>For comparison, here is the same paragraph written using
+Markdown's inline link style:</p>
+<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")
+than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+[MSN](http://search.msn.com/ "MSN Search").
+</code></pre>
+<p>The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.</p>
+<p>With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.</p>
+<h3 id="em">Emphasis</h3>
+
+<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of
+emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an
+HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML
+<code>&lt;strong&gt;</code> tag. E.g., this input:</p>
+<pre><code>*single asterisks*
+
+_single underscores_
+
+**double asterisks**
+
+__double underscores__
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;
+
+&lt;em&gt;single underscores&lt;/em&gt;
+
+&lt;strong&gt;double asterisks&lt;/strong&gt;
+
+&lt;strong&gt;double underscores&lt;/strong&gt;
+</code></pre>
+<p>You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.</p>
+<p>Emphasis can be used in the middle of a word:</p>
+<pre><code>un*fucking*believable
+</code></pre>
+<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a
+literal asterisk or underscore.</p>
+<p>To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:</p>
+<pre><code>\*this text is surrounded by literal asterisks\*
+</code></pre>
+<h3 id="code">Code</h3>
+
+<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:</p>
+<pre><code>Use the `printf()` function.
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;
+</code></pre>
+<p>To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:</p>
+<pre><code>``There is a literal backtick (`) here.``
+</code></pre>
+<p>which will produce this:</p>
+<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+<p>The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:</p>
+<pre><code>A single backtick in a code span: `` ` ``
+
+A backtick-delimited string in a code span: `` `foo` ``
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;
+
+&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+<p>With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:</p>
+<pre><code>Please don't use any `&lt;blink&gt;` tags.
+</code></pre>
+<p>into:</p>
+<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
+</code></pre>
+<p>You can write this:</p>
+<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.
+</code></pre>
+<p>to produce:</p>
+<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded
+equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;
+</code></pre>
+<h3 id="img">Images</h3>
+
+<p>Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.</p>
+<p>Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
+<p>Inline image syntax looks like this:</p>
+<pre><code>![Alt text](/path/to/img.jpg)
+
+![Alt text](/path/to/img.jpg "Optional title")
+</code></pre>
+<p>That is:</p>
+<ul>
+<li>An exclamation mark: <code>!</code>;</li>
+<li>followed by a set of square brackets, containing the <code>alt</code>
+    attribute text for the image;</li>
+<li>followed by a set of parentheses, containing the URL or path to
+    the image, and an optional <code>title</code> attribute enclosed in double
+    or single quotes.</li>
+</ul>
+<p>Reference-style image syntax looks like this:</p>
+<pre><code>![Alt text][id]
+</code></pre>
+<p>Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:</p>
+<pre><code>[id]: url/to/image  "Optional title attribute"
+</code></pre>
+<p>As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML <code>&lt;img&gt;</code> tags.</p>
+<hr />
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>
+<pre><code>&lt;http://example.com/&gt;
+</code></pre>
+<p>Markdown will turn this into:</p>
+<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;
+</code></pre>
+<p>Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:</p>
+<pre><code>&lt;address@example.com&gt;
+</code></pre>
+<p>into something like this:</p>
+<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;
+&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;
+&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;
+&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;
+</code></pre>
+<p>which will render in a browser as a clickable link to "address@example.com".</p>
+<p>(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)</p>
+<h3 id="backslash">Backslash Escapes</h3>
+
+<p>Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes
+before the asterisks, like this:</p>
+<pre><code>\*literal asterisks\*
+</code></pre>
+<p>Markdown provides backslash escapes for the following characters:</p>
+<pre><code>\   backslash
+`   backtick
+*   asterisk
+_   underscore
+{}  curly braces
+[]  square brackets
+()  parentheses
+#   hash mark
++   plus sign
+-   minus sign (hyphen)
+.   dot
+!   exclamation mark
 </code></pre>
\ No newline at end of file
index 99c42e5ea024366968491af2e5c76e73ae5b7bdd..dabd75c0118e68d6f9a5d2fc7d6dc88e511e3ec8 100644 (file)
-Markdown: Syntax\r
-================\r
-\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>\r
-    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-\r
-*   [Overview](#overview)\r
-    *   [Philosophy](#philosophy)\r
-    *   [Inline HTML](#html)\r
-    *   [Automatic Escaping for Special Characters](#autoescape)\r
-*   [Block Elements](#block)\r
-    *   [Paragraphs and Line Breaks](#p)\r
-    *   [Headers](#header)\r
-    *   [Blockquotes](#blockquote)\r
-    *   [Lists](#list)\r
-    *   [Code Blocks](#precode)\r
-    *   [Horizontal Rules](#hr)\r
-*   [Span Elements](#span)\r
-    *   [Links](#link)\r
-    *   [Emphasis](#em)\r
-    *   [Code](#code)\r
-    *   [Images](#img)\r
-*   [Miscellaneous](#misc)\r
-    *   [Backslash Escapes](#backslash)\r
-    *   [Automatic Links](#autolink)\r
-\r
-\r
-**Note:** This document is itself written using Markdown; you\r
-can [see the source for it by adding '.text' to the URL][src].\r
-\r
-  [src]: /projects/markdown/syntax.text\r
-\r
-* * *\r
-\r
-<h2 id="overview">Overview</h2>\r
-\r
-<h3 id="philosophy">Philosophy</h3>\r
-\r
-Markdown is intended to be as easy-to-read and easy-to-write as is feasible.\r
-\r
-Readability, however, is emphasized above all else. A Markdown-formatted\r
-document should be publishable as-is, as plain text, without looking\r
-like it's been marked up with tags or formatting instructions. While\r
-Markdown's syntax has been influenced by several existing text-to-HTML\r
-filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],\r
-[Grutatext] [5], and [EtText] [6] -- the single biggest source of\r
-inspiration for Markdown's syntax is the format of plain text email.\r
-\r
-  [1]: http://docutils.sourceforge.net/mirror/setext.html\r
-  [2]: http://www.aaronsw.com/2002/atx/\r
-  [3]: http://textism.com/tools/textile/\r
-  [4]: http://docutils.sourceforge.net/rst.html\r
-  [5]: http://www.triptico.com/software/grutatxt.html\r
-  [6]: http://ettext.taint.org/doc/\r
-\r
-To this end, Markdown's syntax is comprised entirely of punctuation\r
-characters, which punctuation characters have been carefully chosen so\r
-as to look like what they mean. E.g., asterisks around a word actually\r
-look like \*emphasis\*. Markdown lists look like, well, lists. Even\r
-blockquotes look like quoted passages of text, assuming you've ever\r
-used email.\r
-\r
-\r
-\r
-<h3 id="html">Inline HTML</h3>\r
-\r
-Markdown's syntax is intended for one purpose: to be used as a\r
-format for *writing* for the web.\r
-\r
-Markdown is not a replacement for HTML, or even close to it. Its\r
-syntax is very small, corresponding only to a very small subset of\r
-HTML tags. The idea is *not* to create a syntax that makes it easier\r
-to insert HTML tags. In my opinion, HTML tags are already easy to\r
-insert. The idea for Markdown is to make it easy to read, write, and\r
-edit prose. HTML is a *publishing* format; Markdown is a *writing*\r
-format. Thus, Markdown's formatting syntax only addresses issues that\r
-can be conveyed in plain text.\r
-\r
-For any markup that is not covered by Markdown's syntax, you simply\r
-use HTML itself. There's no need to preface it or delimit it to\r
-indicate that you're switching from Markdown to HTML; you just use\r
-the tags.\r
-\r
-The only restrictions are that block-level HTML elements -- e.g. `<div>`,\r
-`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding\r
-content by blank lines, and the start and end tags of the block should\r
-not be indented with tabs or spaces. Markdown is smart enough not\r
-to add extra (unwanted) `<p>` tags around HTML block-level tags.\r
-\r
-For example, to add an HTML table to a Markdown article:\r
-\r
-    This is a regular paragraph.\r
-\r
-    <table>\r
-        <tr>\r
-            <td>Foo</td>\r
-        </tr>\r
-    </table>\r
-\r
-    This is another regular paragraph.\r
-\r
-Note that Markdown formatting syntax is not processed within block-level\r
-HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an\r
-HTML block.\r
-\r
-Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be\r
-used anywhere in a Markdown paragraph, list item, or header. If you\r
-want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
-you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's\r
-link or image syntax, go right ahead.\r
-\r
-Unlike block-level HTML tags, Markdown syntax *is* processed within\r
-span-level tags.\r
-\r
-\r
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>\r
-\r
-In HTML, there are two characters that demand special treatment: `<`\r
-and `&`. Left angle brackets are used to start tags; ampersands are\r
-used to denote HTML entities. If you want to use them as literal\r
-characters, you must escape them as entities, e.g. `&lt;`, and\r
-`&amp;`.\r
-\r
-Ampersands in particular are bedeviling for web writers. If you want to\r
-write about 'AT&T', you need to write '`AT&amp;T`'. You even need to\r
-escape ampersands within URLs. Thus, if you want to link to:\r
-\r
-    http://images.google.com/images?num=30&q=larry+bird\r
-\r
-you need to encode the URL as:\r
-\r
-    http://images.google.com/images?num=30&amp;q=larry+bird\r
-\r
-in your anchor tag `href` attribute. Needless to say, this is easy to\r
-forget, and is probably the single most common source of HTML validation\r
-errors in otherwise well-marked-up web sites.\r
-\r
-Markdown allows you to use these characters naturally, taking care of\r
-all the necessary escaping for you. If you use an ampersand as part of\r
-an HTML entity, it remains unchanged; otherwise it will be translated\r
-into `&amp;`.\r
-\r
-So, if you want to include a copyright symbol in your article, you can write:\r
-\r
-    &copy;\r
-\r
-and Markdown will leave it alone. But if you write:\r
-\r
-    AT&T\r
-\r
-Markdown will translate it to:\r
-\r
-    AT&amp;T\r
-\r
-Similarly, because Markdown supports [inline HTML](#html), if you use\r
-angle brackets as delimiters for HTML tags, Markdown will treat them as\r
-such. But if you write:\r
-\r
-    4 < 5\r
-\r
-Markdown will translate it to:\r
-\r
-    4 &lt; 5\r
-\r
-However, inside Markdown code spans and blocks, angle brackets and\r
-ampersands are *always* encoded automatically. This makes it easy to use\r
-Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
-terrible format for writing about HTML syntax, because every single `<`\r
-and `&` in your example code needs to be escaped.)\r
-\r
-\r
-* * *\r
-\r
-\r
-<h2 id="block">Block Elements</h2>\r
-\r
-\r
-<h3 id="p">Paragraphs and Line Breaks</h3>\r
-\r
-A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing but spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.\r
-\r
-The implication of the "one or more consecutive lines of text" rule is\r
-that Markdown supports "hard-wrapped" text paragraphs. This differs\r
-significantly from most other text-to-HTML formatters (including Movable\r
-Type's "Convert Line Breaks" option) which translate every line break\r
-character in a paragraph into a `<br />` tag.\r
-\r
-When you *do* want to insert a `<br />` break tag using Markdown, you\r
-end a line with two or more spaces, then type return.\r
-\r
-Yes, this takes a tad more effort to create a `<br />`, but a simplistic\r
-"every line break is a `<br />`" rule wouldn't work for Markdown.\r
-Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]\r
-work best -- and look better -- when you format them with hard breaks.\r
-\r
-  [bq]: #blockquote\r
-  [l]:  #list\r
-\r
-\r
-\r
-<h3 id="header">Headers</h3>\r
-\r
-Markdown supports two styles of headers, [Setext] [1] and [atx] [2].\r
-\r
-Setext-style headers are "underlined" using equal signs (for first-level\r
-headers) and dashes (for second-level headers). For example:\r
-\r
-    This is an H1\r
-    =============\r
-\r
-    This is an H2\r
-    -------------\r
-\r
-Any number of underlining `=`'s or `-`'s will work.\r
-\r
-Atx-style headers use 1-6 hash characters at the start of the line,\r
-corresponding to header levels 1-6. For example:\r
-\r
-    # This is an H1\r
-\r
-    ## This is an H2\r
-\r
-    ###### This is an H6\r
-\r
-Optionally, you may "close" atx-style headers. This is purely\r
-cosmetic -- you can use this if you think it looks better. The\r
-closing hashes don't even need to match the number of hashes\r
-used to open the header. (The number of opening hashes\r
-determines the header level.) :\r
-\r
-    # This is an H1 #\r
-\r
-    ## This is an H2 ##\r
-\r
-    ### This is an H3 ######\r
-\r
-\r
-<h3 id="blockquote">Blockquotes</h3>\r
-\r
-Markdown uses email-style `>` characters for blockquoting. If you're\r
-familiar with quoting passages of text in an email message, then you\r
-know how to create a blockquote in Markdown. It looks best if you hard\r
-wrap the text and put a `>` before every line:\r
-\r
-    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-    > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-    > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-    > \r
-    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-    > id sem consectetuer libero luctus adipiscing.\r
-\r
-Markdown allows you to be lazy and only put the `>` before the first\r
-line of a hard-wrapped paragraph:\r
-\r
-    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-\r
-    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-    id sem consectetuer libero luctus adipiscing.\r
-\r
-Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
-adding additional levels of `>`:\r
-\r
-    > This is the first level of quoting.\r
-    >\r
-    > > This is nested blockquote.\r
-    >\r
-    > Back to the first level.\r
-\r
-Blockquotes can contain other Markdown elements, including headers, lists,\r
-and code blocks:\r
-\r
-       > ## This is a header.\r
-       > \r
-       > 1.   This is the first list item.\r
-       > 2.   This is the second list item.\r
-       > \r
-       > Here's some example code:\r
-       > \r
-       >     return shell_exec("echo $input | $markdown_script");\r
-\r
-Any decent text editor should make email-style quoting easy. For\r
-example, with BBEdit, you can make a selection and choose Increase\r
-Quote Level from the Text menu.\r
-\r
-\r
-<h3 id="list">Lists</h3>\r
-\r
-Markdown supports ordered (numbered) and unordered (bulleted) lists.\r
-\r
-Unordered lists use asterisks, pluses, and hyphens -- interchangably\r
--- as list markers:\r
-\r
-    *   Red\r
-    *   Green\r
-    *   Blue\r
-\r
-is equivalent to:\r
-\r
-    +   Red\r
-    +   Green\r
-    +   Blue\r
-\r
-and:\r
-\r
-    -   Red\r
-    -   Green\r
-    -   Blue\r
-\r
-Ordered lists use numbers followed by periods:\r
-\r
-    1.  Bird\r
-    2.  McHale\r
-    3.  Parish\r
-\r
-It's important to note that the actual numbers you use to mark the\r
-list have no effect on the HTML output Markdown produces. The HTML\r
-Markdown produces from the above list is:\r
-\r
-    <ol>\r
-    <li>Bird</li>\r
-    <li>McHale</li>\r
-    <li>Parish</li>\r
-    </ol>\r
-\r
-If you instead wrote the list in Markdown like this:\r
-\r
-    1.  Bird\r
-    1.  McHale\r
-    1.  Parish\r
-\r
-or even:\r
-\r
-    3. Bird\r
-    1. McHale\r
-    8. Parish\r
-\r
-you'd get the exact same HTML output. The point is, if you want to,\r
-you can use ordinal numbers in your ordered Markdown lists, so that\r
-the numbers in your source match the numbers in your published HTML.\r
-But if you want to be lazy, you don't have to.\r
-\r
-If you do use lazy list numbering, however, you should still start the\r
-list with the number 1. At some point in the future, Markdown may support\r
-starting ordered lists at an arbitrary number.\r
-\r
-List markers typically start at the left margin, but may be indented by\r
-up to three spaces. List markers must be followed by one or more spaces\r
-or a tab.\r
-\r
-To make lists look nice, you can wrap items with hanging indents:\r
-\r
-    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-        viverra nec, fringilla in, laoreet vitae, risus.\r
-    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-        Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-But if you want to be lazy, you don't have to:\r
-\r
-    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-    viverra nec, fringilla in, laoreet vitae, risus.\r
-    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-    Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-If list items are separated by blank lines, Markdown will wrap the\r
-items in `<p>` tags in the HTML output. For example, this input:\r
-\r
-    *   Bird\r
-    *   Magic\r
-\r
-will turn into:\r
-\r
-    <ul>\r
-    <li>Bird</li>\r
-    <li>Magic</li>\r
-    </ul>\r
-\r
-But this:\r
-\r
-    *   Bird\r
-\r
-    *   Magic\r
-\r
-will turn into:\r
-\r
-    <ul>\r
-    <li><p>Bird</p></li>\r
-    <li><p>Magic</p></li>\r
-    </ul>\r
-\r
-List items may consist of multiple paragraphs. Each subsequent\r
-paragraph in a list item must be intended by either 4 spaces\r
-or one tab:\r
-\r
-    1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
-        sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
-        mi posuere lectus.\r
-\r
-        Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
-        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
-        sit amet velit.\r
-\r
-    2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-It looks nice if you indent every line of the subsequent\r
-paragraphs, but here again, Markdown will allow you to be\r
-lazy:\r
-\r
-    *   This is a list item with two paragraphs.\r
-\r
-        This is the second paragraph in the list item. You're\r
-    only required to indent the first line. Lorem ipsum dolor\r
-    sit amet, consectetuer adipiscing elit.\r
-\r
-    *   Another item in the same list.\r
-\r
-To put a blockquote within a list item, the blockquote's `>`\r
-delimiters need to be indented:\r
-\r
-    *   A list item with a blockquote:\r
-\r
-        > This is a blockquote\r
-        > inside a list item.\r
-\r
-To put a code block within a list item, the code block needs\r
-to be indented *twice* -- 8 spaces or two tabs:\r
-\r
-    *   A list item with a code block:\r
-\r
-            <code goes here>\r
-\r
-\r
-It's worth noting that it's possible to trigger an ordered list by\r
-accident, by writing something like this:\r
-\r
-    1986. What a great season.\r
-\r
-In other words, a *number-period-space* sequence at the beginning of a\r
-line. To avoid this, you can backslash-escape the period:\r
-\r
-    1986\. What a great season.\r
-\r
-\r
-\r
-<h3 id="precode">Code Blocks</h3>\r
-\r
-Pre-formatted code blocks are used for writing about programming or\r
-markup source code. Rather than forming normal paragraphs, the lines\r
-of a code block are interpreted literally. Markdown wraps a code block\r
-in both `<pre>` and `<code>` tags.\r
-\r
-To produce a code block in Markdown, simply indent every line of the\r
-block by at least 4 spaces or 1 tab. For example, given this input:\r
-\r
-    This is a normal paragraph:\r
-\r
-        This is a code block.\r
-\r
-Markdown will generate:\r
-\r
-    <p>This is a normal paragraph:</p>\r
-\r
-    <pre><code>This is a code block.\r
-    </code></pre>\r
-\r
-One level of indentation -- 4 spaces or 1 tab -- is removed from each\r
-line of the code block. For example, this:\r
-\r
-    Here is an example of AppleScript:\r
-\r
-        tell application "Foo"\r
-            beep\r
-        end tell\r
-\r
-will turn into:\r
-\r
-    <p>Here is an example of AppleScript:</p>\r
-\r
-    <pre><code>tell application "Foo"\r
-        beep\r
-    end tell\r
-    </code></pre>\r
-\r
-A code block continues until it reaches a line that is not indented\r
-(or the end of the article).\r
-\r
-Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)\r
-are automatically converted into HTML entities. This makes it very\r
-easy to include example HTML source code using Markdown -- just paste\r
-it and indent it, and Markdown will handle the hassle of encoding the\r
-ampersands and angle brackets. For example, this:\r
-\r
-        <div class="footer">\r
-            &copy; 2004 Foo Corporation\r
-        </div>\r
-\r
-will turn into:\r
-\r
-    <pre><code>&lt;div class="footer"&gt;\r
-        &amp;copy; 2004 Foo Corporation\r
-    &lt;/div&gt;\r
-    </code></pre>\r
-\r
-Regular Markdown syntax is not processed within code blocks. E.g.,\r
-asterisks are just literal asterisks within a code block. This means\r
-it's also easy to use Markdown to write about Markdown's own syntax.\r
-\r
-\r
-\r
-<h3 id="hr">Horizontal Rules</h3>\r
-\r
-You can produce a horizontal rule tag (`<hr />`) by placing three or\r
-more hyphens, asterisks, or underscores on a line by themselves. If you\r
-wish, you may use spaces between the hyphens or asterisks. Each of the\r
-following lines will produce a horizontal rule:\r
-\r
-    * * *\r
-\r
-    ***\r
-\r
-    *****\r
-       \r
-    - - -\r
-\r
-    ---------------------------------------\r
-\r
-       _ _ _\r
-\r
-\r
-* * *\r
-\r
-<h2 id="span">Span Elements</h2>\r
-\r
-<h3 id="link">Links</h3>\r
-\r
-Markdown supports two style of links: *inline* and *reference*.\r
-\r
-In both styles, the link text is delimited by [square brackets].\r
-\r
-To create an inline link, use a set of regular parentheses immediately\r
-after the link text's closing square bracket. Inside the parentheses,\r
-put the URL where you want the link to point, along with an *optional*\r
-title for the link, surrounded in quotes. For example:\r
-\r
-    This is [an example](http://example.com/ "Title") inline link.\r
-\r
-    [This link](http://example.net/) has no title attribute.\r
-\r
-Will produce:\r
-\r
-    <p>This is <a href="http://example.com/" title="Title">\r
-    an example</a> inline link.</p>\r
-\r
-    <p><a href="http://example.net/">This link</a> has no\r
-    title attribute.</p>\r
-\r
-If you're referring to a local resource on the same server, you can\r
-use relative paths:\r
-\r
-    See my [About](/about/) page for details.   \r
-\r
-Reference-style links use a second set of square brackets, inside\r
-which you place a label of your choosing to identify the link:\r
-\r
-    This is [an example][id] reference-style link.\r
-\r
-You can optionally use a space to separate the sets of brackets:\r
-\r
-    This is [an example] [id] reference-style link.\r
-\r
-Then, anywhere in the document, you define your link label like this,\r
-on a line by itself:\r
-\r
-    [id]: http://example.com/  "Optional Title Here"\r
-\r
-That is:\r
-\r
-*   Square brackets containing the link identifier (optionally\r
-    indented from the left margin using up to three spaces);\r
-*   followed by a colon;\r
-*   followed by one or more spaces (or tabs);\r
-*   followed by the URL for the link;\r
-*   optionally followed by a title attribute for the link, enclosed\r
-    in double or single quotes.\r
-\r
-The link URL may, optionally, be surrounded by angle brackets:\r
-\r
-    [id]: <http://example.com/>  "Optional Title Here"\r
-\r
-You can put the title attribute on the next line and use extra spaces\r
-or tabs for padding, which tends to look better with longer URLs:\r
-\r
-    [id]: http://example.com/longish/path/to/resource/here\r
-        "Optional Title Here"\r
-\r
-Link definitions are only used for creating links during Markdown\r
-processing, and are stripped from your document in the HTML output.\r
-\r
-Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:\r
-\r
-       [link text][a]\r
-       [link text][A]\r
-\r
-are equivalent.\r
-\r
-The *implicit link name* shortcut allows you to omit the name of the\r
-link, in which case the link text itself is used as the name.\r
-Just use an empty set of square brackets -- e.g., to link the word\r
-"Google" to the google.com web site, you could simply write:\r
-\r
-       [Google][]\r
-\r
-And then define the link:\r
-\r
-       [Google]: http://google.com/\r
-\r
-Because link names may contain spaces, this shortcut even works for\r
-multiple words in the link text:\r
-\r
-       Visit [Daring Fireball][] for more information.\r
-\r
-And then define the link:\r
-       \r
-       [Daring Fireball]: http://daringfireball.net/\r
-\r
-Link definitions can be placed anywhere in your Markdown document. I\r
-tend to put them immediately after each paragraph in which they're\r
-used, but if you want, you can put them all at the end of your\r
-document, sort of like footnotes.\r
-\r
-Here's an example of reference links in action:\r
-\r
-    I get 10 times more traffic from [Google] [1] than from\r
-    [Yahoo] [2] or [MSN] [3].\r
-\r
-      [1]: http://google.com/        "Google"\r
-      [2]: http://search.yahoo.com/  "Yahoo Search"\r
-      [3]: http://search.msn.com/    "MSN Search"\r
-\r
-Using the implicit link name shortcut, you could instead write:\r
-\r
-    I get 10 times more traffic from [Google][] than from\r
-    [Yahoo][] or [MSN][].\r
-\r
-      [google]: http://google.com/        "Google"\r
-      [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
-      [msn]:    http://search.msn.com/    "MSN Search"\r
-\r
-Both of the above examples will produce the following HTML output:\r
-\r
-    <p>I get 10 times more traffic from <a href="http://google.com/"\r
-    title="Google">Google</a> than from\r
-    <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>\r
-    or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>\r
-\r
-For comparison, here is the same paragraph written using\r
-Markdown's inline link style:\r
-\r
-    I get 10 times more traffic from [Google](http://google.com/ "Google")\r
-    than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
-    [MSN](http://search.msn.com/ "MSN Search").\r
-\r
-The point of reference-style links is not that they're easier to\r
-write. The point is that with reference-style links, your document\r
-source is vastly more readable. Compare the above examples: using\r
-reference-style links, the paragraph itself is only 81 characters\r
-long; with inline-style links, it's 176 characters; and as raw HTML,\r
-it's 234 characters. In the raw HTML, there's more markup than there\r
-is text.\r
-\r
-With Markdown's reference-style links, a source document much more\r
-closely resembles the final output, as rendered in a browser. By\r
-allowing you to move the markup-related metadata out of the paragraph,\r
-you can add links without interrupting the narrative flow of your\r
-prose.\r
-\r
-\r
-<h3 id="em">Emphasis</h3>\r
-\r
-Markdown treats asterisks (`*`) and underscores (`_`) as indicators of\r
-emphasis. Text wrapped with one `*` or `_` will be wrapped with an\r
-HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML\r
-`<strong>` tag. E.g., this input:\r
-\r
-    *single asterisks*\r
-\r
-    _single underscores_\r
-\r
-    **double asterisks**\r
-\r
-    __double underscores__\r
-\r
-will produce:\r
-\r
-    <em>single asterisks</em>\r
-\r
-    <em>single underscores</em>\r
-\r
-    <strong>double asterisks</strong>\r
-\r
-    <strong>double underscores</strong>\r
-\r
-You can use whichever style you prefer; the lone restriction is that\r
-the same character must be used to open and close an emphasis span.\r
-\r
-Emphasis can be used in the middle of a word:\r
-\r
-    un*fucking*believable\r
-\r
-But if you surround an `*` or `_` with spaces, it'll be treated as a\r
-literal asterisk or underscore.\r
-\r
-To produce a literal asterisk or underscore at a position where it\r
-would otherwise be used as an emphasis delimiter, you can backslash\r
-escape it:\r
-\r
-    \*this text is surrounded by literal asterisks\*\r
-\r
-\r
-\r
-<h3 id="code">Code</h3>\r
-\r
-To indicate a span of code, wrap it with backtick quotes (`` ` ``).\r
-Unlike a pre-formatted code block, a code span indicates code within a\r
-normal paragraph. For example:\r
-\r
-    Use the `printf()` function.\r
-\r
-will produce:\r
-\r
-    <p>Use the <code>printf()</code> function.</p>\r
-\r
-To include a literal backtick character within a code span, you can use\r
-multiple backticks as the opening and closing delimiters:\r
-\r
-    ``There is a literal backtick (`) here.``\r
-\r
-which will produce this:\r
-\r
-    <p><code>There is a literal backtick (`) here.</code></p>\r
-\r
-The backtick delimiters surrounding a code span may include spaces --\r
-one after the opening, one before the closing. This allows you to place\r
-literal backtick characters at the beginning or end of a code span:\r
-\r
-       A single backtick in a code span: `` ` ``\r
-       \r
-       A backtick-delimited string in a code span: `` `foo` ``\r
-\r
-will produce:\r
-\r
-       <p>A single backtick in a code span: <code>`</code></p>\r
-       \r
-       <p>A backtick-delimited string in a code span: <code>`foo`</code></p>\r
-\r
-With a code span, ampersands and angle brackets are encoded as HTML\r
-entities automatically, which makes it easy to include example HTML\r
-tags. Markdown will turn this:\r
-\r
-    Please don't use any `<blink>` tags.\r
-\r
-into:\r
-\r
-    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>\r
-\r
-You can write this:\r
-\r
-    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.\r
-\r
-to produce:\r
-\r
-    <p><code>&amp;#8212;</code> is the decimal-encoded\r
-    equivalent of <code>&amp;mdash;</code>.</p>\r
-\r
-\r
-\r
-<h3 id="img">Images</h3>\r
-\r
-Admittedly, it's fairly difficult to devise a "natural" syntax for\r
-placing images into a plain text document format.\r
-\r
-Markdown uses an image syntax that is intended to resemble the syntax\r
-for links, allowing for two styles: *inline* and *reference*.\r
-\r
-Inline image syntax looks like this:\r
-\r
-    ![Alt text](/path/to/img.jpg)\r
-\r
-    ![Alt text](/path/to/img.jpg "Optional title")\r
-\r
-That is:\r
-\r
-*   An exclamation mark: `!`;\r
-*   followed by a set of square brackets, containing the `alt`\r
-    attribute text for the image;\r
-*   followed by a set of parentheses, containing the URL or path to\r
-    the image, and an optional `title` attribute enclosed in double\r
-    or single quotes.\r
-\r
-Reference-style image syntax looks like this:\r
-\r
-    ![Alt text][id]\r
-\r
-Where "id" is the name of a defined image reference. Image references\r
-are defined using syntax identical to link references:\r
-\r
-    [id]: url/to/image  "Optional title attribute"\r
-\r
-As of this writing, Markdown has no syntax for specifying the\r
-dimensions of an image; if this is important to you, you can simply\r
-use regular HTML `<img>` tags.\r
-\r
-\r
-* * *\r
-\r
-\r
-<h2 id="misc">Miscellaneous</h2>\r
-\r
-<h3 id="autolink">Automatic Links</h3>\r
-\r
-Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:\r
-\r
-    <http://example.com/>\r
-    \r
-Markdown will turn this into:\r
-\r
-    <a href="http://example.com/">http://example.com/</a>\r
-\r
-Automatic links for email addresses work similarly, except that\r
-Markdown will also perform a bit of randomized decimal and hex\r
-entity-encoding to help obscure your address from address-harvesting\r
-spambots. For example, Markdown will turn this:\r
-\r
-    <address@example.com>\r
-\r
-into something like this:\r
-\r
-    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;\r
-    &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;\r
-    &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;\r
-    &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>\r
-\r
-which will render in a browser as a clickable link to "address@example.com".\r
-\r
-(This sort of entity-encoding trick will indeed fool many, if not\r
-most, address-harvesting bots, but it definitely won't fool all of\r
-them. It's better than nothing, but an address published in this way\r
-will probably eventually start receiving spam.)\r
-\r
-\r
-\r
-<h3 id="backslash">Backslash Escapes</h3>\r
-\r
-Markdown allows you to use backslash escapes to generate literal\r
-characters which would otherwise have special meaning in Markdown's\r
-formatting syntax. For example, if you wanted to surround a word with\r
-literal asterisks (instead of an HTML `<em>` tag), you can backslashes\r
-before the asterisks, like this:\r
-\r
-    \*literal asterisks\*\r
-\r
-Markdown provides backslash escapes for the following characters:\r
-\r
-    \   backslash\r
-    `   backtick\r
-    *   asterisk\r
-    _   underscore\r
-    {}  curly braces\r
-    []  square brackets\r
-    ()  parentheses\r
-    #   hash mark\r
-       +       plus sign\r
-       -       minus sign (hyphen)\r
-    .   dot\r
-    !   exclamation mark\r
-\r
+Markdown: Syntax
+================
+
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+
+*   [Overview](#overview)
+    *   [Philosophy](#philosophy)
+    *   [Inline HTML](#html)
+    *   [Automatic Escaping for Special Characters](#autoescape)
+*   [Block Elements](#block)
+    *   [Paragraphs and Line Breaks](#p)
+    *   [Headers](#header)
+    *   [Blockquotes](#blockquote)
+    *   [Lists](#list)
+    *   [Code Blocks](#precode)
+    *   [Horizontal Rules](#hr)
+*   [Span Elements](#span)
+    *   [Links](#link)
+    *   [Emphasis](#em)
+    *   [Code](#code)
+    *   [Images](#img)
+*   [Miscellaneous](#misc)
+    *   [Backslash Escapes](#backslash)
+    *   [Automatic Links](#autolink)
+
+
+**Note:** This document is itself written using Markdown; you
+can [see the source for it by adding '.text' to the URL][src].
+
+  [src]: /projects/markdown/syntax.text
+
+* * *
+
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+Markdown is intended to be as easy-to-read and easy-to-write as is feasible.
+
+Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],
+[Grutatext] [5], and [EtText] [6] -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.
+
+  [1]: http://docutils.sourceforge.net/mirror/setext.html
+  [2]: http://www.aaronsw.com/2002/atx/
+  [3]: http://textism.com/tools/textile/
+  [4]: http://docutils.sourceforge.net/rst.html
+  [5]: http://www.triptico.com/software/grutatxt.html
+  [6]: http://ettext.taint.org/doc/
+
+To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like \*emphasis\*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.
+
+
+
+<h3 id="html">Inline HTML</h3>
+
+Markdown's syntax is intended for one purpose: to be used as a
+format for *writing* for the web.
+
+Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is *not* to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a *publishing* format; Markdown is a *writing*
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.
+
+For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.
+
+The only restrictions are that block-level HTML elements -- e.g. `<div>`,
+`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) `<p>` tags around HTML block-level tags.
+
+For example, to add an HTML table to a Markdown article:
+
+    This is a regular paragraph.
+
+    <table>
+        <tr>
+            <td>Foo</td>
+        </tr>
+    </table>
+
+    This is another regular paragraph.
+
+Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an
+HTML block.
+
+Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's
+link or image syntax, go right ahead.
+
+Unlike block-level HTML tags, Markdown syntax *is* processed within
+span-level tags.
+
+
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+In HTML, there are two characters that demand special treatment: `<`
+and `&`. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. `&lt;`, and
+`&amp;`.
+
+Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&T', you need to write '`AT&amp;T`'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:
+
+    http://images.google.com/images?num=30&q=larry+bird
+
+you need to encode the URL as:
+
+    http://images.google.com/images?num=30&amp;q=larry+bird
+
+in your anchor tag `href` attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.
+
+Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into `&amp;`.
+
+So, if you want to include a copyright symbol in your article, you can write:
+
+    &copy;
+
+and Markdown will leave it alone. But if you write:
+
+    AT&T
+
+Markdown will translate it to:
+
+    AT&amp;T
+
+Similarly, because Markdown supports [inline HTML](#html), if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:
+
+    4 < 5
+
+Markdown will translate it to:
+
+    4 &lt; 5
+
+However, inside Markdown code spans and blocks, angle brackets and
+ampersands are *always* encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single `<`
+and `&` in your example code needs to be escaped.)
+
+
+* * *
+
+
+<h2 id="block">Block Elements</h2>
+
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.
+
+The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a `<br />` tag.
+
+When you *do* want to insert a `<br />` break tag using Markdown, you
+end a line with two or more spaces, then type return.
+
+Yes, this takes a tad more effort to create a `<br />`, but a simplistic
+"every line break is a `<br />`" rule wouldn't work for Markdown.
+Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]
+work best -- and look better -- when you format them with hard breaks.
+
+  [bq]: #blockquote
+  [l]:  #list
+
+
+
+<h3 id="header">Headers</h3>
+
+Markdown supports two styles of headers, [Setext] [1] and [atx] [2].
+
+Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:
+
+    This is an H1
+    =============
+
+    This is an H2
+    -------------
+
+Any number of underlining `=`'s or `-`'s will work.
+
+Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:
+
+    # This is an H1
+
+    ## This is an H2
+
+    ###### This is an H6
+
+Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :
+
+    # This is an H1 #
+
+    ## This is an H2 ##
+
+    ### This is an H3 ######
+
+
+<h3 id="blockquote">Blockquotes</h3>
+
+Markdown uses email-style `>` characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a `>` before every line:
+
+    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+    > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+    > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+    > 
+    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+    > id sem consectetuer libero luctus adipiscing.
+
+Markdown allows you to be lazy and only put the `>` before the first
+line of a hard-wrapped paragraph:
+
+    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+    id sem consectetuer libero luctus adipiscing.
+
+Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of `>`:
+
+    > This is the first level of quoting.
+    >
+    > > This is nested blockquote.
+    >
+    > Back to the first level.
+
+Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:
+
+       > ## This is a header.
+       > 
+       > 1.   This is the first list item.
+       > 2.   This is the second list item.
+       > 
+       > Here's some example code:
+       > 
+       >     return shell_exec("echo $input | $markdown_script");
+
+Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.
+
+
+<h3 id="list">Lists</h3>
+
+Markdown supports ordered (numbered) and unordered (bulleted) lists.
+
+Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:
+
+    *   Red
+    *   Green
+    *   Blue
+
+is equivalent to:
+
+    +   Red
+    +   Green
+    +   Blue
+
+and:
+
+    -   Red
+    -   Green
+    -   Blue
+
+Ordered lists use numbers followed by periods:
+
+    1.  Bird
+    2.  McHale
+    3.  Parish
+
+It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:
+
+    <ol>
+    <li>Bird</li>
+    <li>McHale</li>
+    <li>Parish</li>
+    </ol>
+
+If you instead wrote the list in Markdown like this:
+
+    1.  Bird
+    1.  McHale
+    1.  Parish
+
+or even:
+
+    3. Bird
+    1. McHale
+    8. Parish
+
+you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.
+
+If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.
+
+List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.
+
+To make lists look nice, you can wrap items with hanging indents:
+
+    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+        viverra nec, fringilla in, laoreet vitae, risus.
+    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+        Suspendisse id sem consectetuer libero luctus adipiscing.
+
+But if you want to be lazy, you don't have to:
+
+    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+
+If list items are separated by blank lines, Markdown will wrap the
+items in `<p>` tags in the HTML output. For example, this input:
+
+    *   Bird
+    *   Magic
+
+will turn into:
+
+    <ul>
+    <li>Bird</li>
+    <li>Magic</li>
+    </ul>
+
+But this:
+
+    *   Bird
+
+    *   Magic
+
+will turn into:
+
+    <ul>
+    <li><p>Bird</p></li>
+    <li><p>Magic</p></li>
+    </ul>
+
+List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:
+
+    1.  This is a list item with two paragraphs. Lorem ipsum dolor
+        sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+        mi posuere lectus.
+
+        Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+        sit amet velit.
+
+    2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+
+It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:
+
+    *   This is a list item with two paragraphs.
+
+        This is the second paragraph in the list item. You're
+    only required to indent the first line. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit.
+
+    *   Another item in the same list.
+
+To put a blockquote within a list item, the blockquote's `>`
+delimiters need to be indented:
+
+    *   A list item with a blockquote:
+
+        > This is a blockquote
+        > inside a list item.
+
+To put a code block within a list item, the code block needs
+to be indented *twice* -- 8 spaces or two tabs:
+
+    *   A list item with a code block:
+
+            <code goes here>
+
+
+It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:
+
+    1986. What a great season.
+
+In other words, a *number-period-space* sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:
+
+    1986\. What a great season.
+
+
+
+<h3 id="precode">Code Blocks</h3>
+
+Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both `<pre>` and `<code>` tags.
+
+To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:
+
+    This is a normal paragraph:
+
+        This is a code block.
+
+Markdown will generate:
+
+    <p>This is a normal paragraph:</p>
+
+    <pre><code>This is a code block.
+    </code></pre>
+
+One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:
+
+    Here is an example of AppleScript:
+
+        tell application "Foo"
+            beep
+        end tell
+
+will turn into:
+
+    <p>Here is an example of AppleScript:</p>
+
+    <pre><code>tell application "Foo"
+        beep
+    end tell
+    </code></pre>
+
+A code block continues until it reaches a line that is not indented
+(or the end of the article).
+
+Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:
+
+        <div class="footer">
+            &copy; 2004 Foo Corporation
+        </div>
+
+will turn into:
+
+    <pre><code>&lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+    </code></pre>
+
+Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.
+
+
+
+<h3 id="hr">Horizontal Rules</h3>
+
+You can produce a horizontal rule tag (`<hr />`) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:
+
+    * * *
+
+    ***
+
+    *****
+       
+    - - -
+
+    ---------------------------------------
+
+       _ _ _
+
+
+* * *
+
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+Markdown supports two style of links: *inline* and *reference*.
+
+In both styles, the link text is delimited by [square brackets].
+
+To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an *optional*
+title for the link, surrounded in quotes. For example:
+
+    This is [an example](http://example.com/ "Title") inline link.
+
+    [This link](http://example.net/) has no title attribute.
+
+Will produce:
+
+    <p>This is <a href="http://example.com/" title="Title">
+    an example</a> inline link.</p>
+
+    <p><a href="http://example.net/">This link</a> has no
+    title attribute.</p>
+
+If you're referring to a local resource on the same server, you can
+use relative paths:
+
+    See my [About](/about/) page for details.   
+
+Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:
+
+    This is [an example][id] reference-style link.
+
+You can optionally use a space to separate the sets of brackets:
+
+    This is [an example] [id] reference-style link.
+
+Then, anywhere in the document, you define your link label like this,
+on a line by itself:
+
+    [id]: http://example.com/  "Optional Title Here"
+
+That is:
+
+*   Square brackets containing the link identifier (optionally
+    indented from the left margin using up to three spaces);
+*   followed by a colon;
+*   followed by one or more spaces (or tabs);
+*   followed by the URL for the link;
+*   optionally followed by a title attribute for the link, enclosed
+    in double or single quotes.
+
+The link URL may, optionally, be surrounded by angle brackets:
+
+    [id]: <http://example.com/>  "Optional Title Here"
+
+You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:
+
+    [id]: http://example.com/longish/path/to/resource/here
+        "Optional Title Here"
+
+Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.
+
+Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:
+
+       [link text][a]
+       [link text][A]
+
+are equivalent.
+
+The *implicit link name* shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:
+
+       [Google][]
+
+And then define the link:
+
+       [Google]: http://google.com/
+
+Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:
+
+       Visit [Daring Fireball][] for more information.
+
+And then define the link:
+       
+       [Daring Fireball]: http://daringfireball.net/
+
+Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.
+
+Here's an example of reference links in action:
+
+    I get 10 times more traffic from [Google] [1] than from
+    [Yahoo] [2] or [MSN] [3].
+
+      [1]: http://google.com/        "Google"
+      [2]: http://search.yahoo.com/  "Yahoo Search"
+      [3]: http://search.msn.com/    "MSN Search"
+
+Using the implicit link name shortcut, you could instead write:
+
+    I get 10 times more traffic from [Google][] than from
+    [Yahoo][] or [MSN][].
+
+      [google]: http://google.com/        "Google"
+      [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+      [msn]:    http://search.msn.com/    "MSN Search"
+
+Both of the above examples will produce the following HTML output:
+
+    <p>I get 10 times more traffic from <a href="http://google.com/"
+    title="Google">Google</a> than from
+    <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
+    or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
+
+For comparison, here is the same paragraph written using
+Markdown's inline link style:
+
+    I get 10 times more traffic from [Google](http://google.com/ "Google")
+    than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+    [MSN](http://search.msn.com/ "MSN Search").
+
+The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.
+
+With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.
+
+
+<h3 id="em">Emphasis</h3>
+
+Markdown treats asterisks (`*`) and underscores (`_`) as indicators of
+emphasis. Text wrapped with one `*` or `_` will be wrapped with an
+HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML
+`<strong>` tag. E.g., this input:
+
+    *single asterisks*
+
+    _single underscores_
+
+    **double asterisks**
+
+    __double underscores__
+
+will produce:
+
+    <em>single asterisks</em>
+
+    <em>single underscores</em>
+
+    <strong>double asterisks</strong>
+
+    <strong>double underscores</strong>
+
+You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.
+
+Emphasis can be used in the middle of a word:
+
+    un*fucking*believable
+
+But if you surround an `*` or `_` with spaces, it'll be treated as a
+literal asterisk or underscore.
+
+To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:
+
+    \*this text is surrounded by literal asterisks\*
+
+
+
+<h3 id="code">Code</h3>
+
+To indicate a span of code, wrap it with backtick quotes (`` ` ``).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:
+
+    Use the `printf()` function.
+
+will produce:
+
+    <p>Use the <code>printf()</code> function.</p>
+
+To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:
+
+    ``There is a literal backtick (`) here.``
+
+which will produce this:
+
+    <p><code>There is a literal backtick (`) here.</code></p>
+
+The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:
+
+       A single backtick in a code span: `` ` ``
+       
+       A backtick-delimited string in a code span: `` `foo` ``
+
+will produce:
+
+       <p>A single backtick in a code span: <code>`</code></p>
+       
+       <p>A backtick-delimited string in a code span: <code>`foo`</code></p>
+
+With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:
+
+    Please don't use any `<blink>` tags.
+
+into:
+
+    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
+
+You can write this:
+
+    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.
+
+to produce:
+
+    <p><code>&amp;#8212;</code> is the decimal-encoded
+    equivalent of <code>&amp;mdash;</code>.</p>
+
+
+
+<h3 id="img">Images</h3>
+
+Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.
+
+Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: *inline* and *reference*.
+
+Inline image syntax looks like this:
+
+    ![Alt text](/path/to/img.jpg)
+
+    ![Alt text](/path/to/img.jpg "Optional title")
+
+That is:
+
+*   An exclamation mark: `!`;
+*   followed by a set of square brackets, containing the `alt`
+    attribute text for the image;
+*   followed by a set of parentheses, containing the URL or path to
+    the image, and an optional `title` attribute enclosed in double
+    or single quotes.
+
+Reference-style image syntax looks like this:
+
+    ![Alt text][id]
+
+Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:
+
+    [id]: url/to/image  "Optional title attribute"
+
+As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML `<img>` tags.
+
+
+* * *
+
+
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:
+
+    <http://example.com/>
+    
+Markdown will turn this into:
+
+    <a href="http://example.com/">http://example.com/</a>
+
+Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:
+
+    <address@example.com>
+
+into something like this:
+
+    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
+    &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
+    &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
+    &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
+
+which will render in a browser as a clickable link to "address@example.com".
+
+(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)
+
+
+
+<h3 id="backslash">Backslash Escapes</h3>
+
+Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML `<em>` tag), you can backslashes
+before the asterisks, like this:
+
+    \*literal asterisks\*
+
+Markdown provides backslash escapes for the following characters:
+
+    \   backslash
+    `   backtick
+    *   asterisk
+    _   underscore
+    {}  curly braces
+    []  square brackets
+    ()  parentheses
+    #   hash mark
+       +       plus sign
+       -       minus sign (hyphen)
+    .   dot
+    !   exclamation mark
+
index 4fbc7a1e9fe6bb0ae004d4b12850d1dc8c61f102..f1b017e91e32874f132c3020c5e873b3fd1aabdc 100644 (file)
@@ -1,7 +1,7 @@
-<blockquote>\r
-<p>foo</p>\r
-<blockquote>\r
-<p>bar</p>\r
-</blockquote>\r
-<p>foo</p>\r
+<blockquote>
+<p>foo</p>
+<blockquote>
+<p>bar</p>
+</blockquote>
+<p>foo</p>
 </blockquote>
\ No newline at end of file
index 35917e9faacd70efce2861e00ff2325fa616c4bc..ed3c624ffbedcb9031a37df80fae1cc694418629 100644 (file)
@@ -1,5 +1,5 @@
-> foo\r
->\r
-> > bar\r
->\r
-> foo\r
+> foo
+>
+> > bar
+>
+> foo
index ca8eb5437c54a94c29668d8eca36bd85d64e00f3..090c43cccab7785741a1f50771ebe29ffced9952 100644 (file)
-<h2>Unordered</h2>\r
-<p>Asterisks tight:</p>\r
-<ul>\r
-<li>asterisk 1</li>\r
-<li>asterisk 2</li>\r
-<li>asterisk 3</li>\r
-</ul>\r
-<p>Asterisks loose:</p>\r
-<ul>\r
-<li>\r
-<p>asterisk 1</p>\r
-</li>\r
-<li>\r
-<p>asterisk 2</p>\r
-</li>\r
-<li>\r
-<p>asterisk 3</p>\r
-</li>\r
-</ul>\r
-<hr />\r
-<p>Pluses tight:</p>\r
-<ul>\r
-<li>Plus 1</li>\r
-<li>Plus 2</li>\r
-<li>Plus 3</li>\r
-</ul>\r
-<p>Pluses loose:</p>\r
-<ul>\r
-<li>\r
-<p>Plus 1</p>\r
-</li>\r
-<li>\r
-<p>Plus 2</p>\r
-</li>\r
-<li>\r
-<p>Plus 3</p>\r
-</li>\r
-</ul>\r
-<hr />\r
-<p>Minuses tight:</p>\r
-<ul>\r
-<li>Minus 1</li>\r
-<li>Minus 2</li>\r
-<li>Minus 3</li>\r
-</ul>\r
-<p>Minuses loose:</p>\r
-<ul>\r
-<li>\r
-<p>Minus 1</p>\r
-</li>\r
-<li>\r
-<p>Minus 2</p>\r
-</li>\r
-<li>\r
-<p>Minus 3</p>\r
-</li>\r
-</ul>\r
-<h2>Ordered</h2>\r
-<p>Tight:</p>\r
-<ol>\r
-<li>First</li>\r
-<li>Second</li>\r
-<li>Third</li>\r
-</ol>\r
-<p>and:</p>\r
-<ol>\r
-<li>One</li>\r
-<li>Two</li>\r
-<li>Three</li>\r
-</ol>\r
-<p>Loose using tabs:</p>\r
-<ol>\r
-<li>\r
-<p>First</p>\r
-</li>\r
-<li>\r
-<p>Second</p>\r
-</li>\r
-<li>\r
-<p>Third</p>\r
-</li>\r
-</ol>\r
-<p>and using spaces:</p>\r
-<ol>\r
-<li>\r
-<p>One</p>\r
-</li>\r
-<li>\r
-<p>Two</p>\r
-</li>\r
-<li>\r
-<p>Three</p>\r
-</li>\r
-</ol>\r
-<p>Multiple paragraphs:</p>\r
-<ol>\r
-<li>\r
-<p>Item 1, graf one.</p>\r
-<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's\r
-back.</p>\r
-</li>\r
-<li>\r
-<p>Item 2.</p>\r
-</li>\r
-<li>\r
-<p>Item 3.</p>\r
-</li>\r
-</ol>\r
-<h2>Nested</h2>\r
-<ul>\r
-<li>Tab<ul>\r
-<li>Tab<ul>\r
-<li>Tab</li>\r
-</ul>\r
-</li>\r
-</ul>\r
-</li>\r
-</ul>\r
-<p>Here's another:</p>\r
-<ol>\r
-<li>First</li>\r
-<li>Second:<ul>\r
-<li>Fee</li>\r
-<li>Fie</li>\r
-<li>Foe</li>\r
-</ul>\r
-</li>\r
-<li>Third</li>\r
-</ol>\r
-<p>Same thing but with paragraphs:</p>\r
-<ol>\r
-<li>\r
-<p>First</p>\r
-</li>\r
-<li>\r
-<p>Second:</p>\r
-<ul>\r
-<li>Fee</li>\r
-<li>Fie</li>\r
-<li>Foe</li>\r
-</ul>\r
-</li>\r
-<li>\r
-<p>Third</p>\r
-</li>\r
+<h2>Unordered</h2>
+<p>Asterisks tight:</p>
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
+<p>Asterisks loose:</p>
+<ul>
+<li>
+<p>asterisk 1</p>
+</li>
+<li>
+<p>asterisk 2</p>
+</li>
+<li>
+<p>asterisk 3</p>
+</li>
+</ul>
+<hr />
+<p>Pluses tight:</p>
+<ul>
+<li>Plus 1</li>
+<li>Plus 2</li>
+<li>Plus 3</li>
+</ul>
+<p>Pluses loose:</p>
+<ul>
+<li>
+<p>Plus 1</p>
+</li>
+<li>
+<p>Plus 2</p>
+</li>
+<li>
+<p>Plus 3</p>
+</li>
+</ul>
+<hr />
+<p>Minuses tight:</p>
+<ul>
+<li>Minus 1</li>
+<li>Minus 2</li>
+<li>Minus 3</li>
+</ul>
+<p>Minuses loose:</p>
+<ul>
+<li>
+<p>Minus 1</p>
+</li>
+<li>
+<p>Minus 2</p>
+</li>
+<li>
+<p>Minus 3</p>
+</li>
+</ul>
+<h2>Ordered</h2>
+<p>Tight:</p>
+<ol>
+<li>First</li>
+<li>Second</li>
+<li>Third</li>
+</ol>
+<p>and:</p>
+<ol>
+<li>One</li>
+<li>Two</li>
+<li>Three</li>
+</ol>
+<p>Loose using tabs:</p>
+<ol>
+<li>
+<p>First</p>
+</li>
+<li>
+<p>Second</p>
+</li>
+<li>
+<p>Third</p>
+</li>
+</ol>
+<p>and using spaces:</p>
+<ol>
+<li>
+<p>One</p>
+</li>
+<li>
+<p>Two</p>
+</li>
+<li>
+<p>Three</p>
+</li>
+</ol>
+<p>Multiple paragraphs:</p>
+<ol>
+<li>
+<p>Item 1, graf one.</p>
+<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's
+back.</p>
+</li>
+<li>
+<p>Item 2.</p>
+</li>
+<li>
+<p>Item 3.</p>
+</li>
+</ol>
+<h2>Nested</h2>
+<ul>
+<li>Tab<ul>
+<li>Tab<ul>
+<li>Tab</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p>Here's another:</p>
+<ol>
+<li>First</li>
+<li>Second:<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul>
+</li>
+<li>Third</li>
+</ol>
+<p>Same thing but with paragraphs:</p>
+<ol>
+<li>
+<p>First</p>
+</li>
+<li>
+<p>Second:</p>
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul>
+</li>
+<li>
+<p>Third</p>
+</li>
 </ol>
\ No newline at end of file
index 5f104d48acb363fa098b284f8ef8083868dc8115..621db5815fb12d7f25a71317d1cc14c675f1ea83 100644 (file)
-## Unordered\r
-\r
-Asterisks tight:\r
-\r
-*      asterisk 1\r
-*      asterisk 2\r
-*      asterisk 3\r
-\r
-\r
-Asterisks loose:\r
-\r
-*      asterisk 1\r
-\r
-*      asterisk 2\r
-\r
-*      asterisk 3\r
-\r
-* * *\r
-\r
-Pluses tight:\r
-\r
-+      Plus 1\r
-+      Plus 2\r
-+      Plus 3\r
-\r
-\r
-Pluses loose:\r
-\r
-+      Plus 1\r
-\r
-+      Plus 2\r
-\r
-+      Plus 3\r
-\r
-* * *\r
-\r
-\r
-Minuses tight:\r
-\r
--      Minus 1\r
--      Minus 2\r
--      Minus 3\r
-\r
-\r
-Minuses loose:\r
-\r
--      Minus 1\r
-\r
--      Minus 2\r
-\r
--      Minus 3\r
-\r
-\r
-## Ordered\r
-\r
-Tight:\r
-\r
-1.     First\r
-2.     Second\r
-3.     Third\r
-\r
-and:\r
-\r
-1. One\r
-2. Two\r
-3. Three\r
-\r
-\r
-Loose using tabs:\r
-\r
-1.     First\r
-\r
-2.     Second\r
-\r
-3.     Third\r
-\r
-and using spaces:\r
-\r
-1. One\r
-\r
-2. Two\r
-\r
-3. Three\r
-\r
-Multiple paragraphs:\r
-\r
-1.     Item 1, graf one.\r
-\r
-       Item 2. graf two. The quick brown fox jumped over the lazy dog's\r
-       back.\r
-       \r
-2.     Item 2.\r
-\r
-3.     Item 3.\r
-\r
-\r
-\r
-## Nested\r
-\r
-*      Tab\r
-       *       Tab\r
-               *       Tab\r
-\r
-Here's another:\r
-\r
-1. First\r
-2. Second:\r
-       * Fee\r
-       * Fie\r
-       * Foe\r
-3. Third\r
-\r
-Same thing but with paragraphs:\r
-\r
-1. First\r
-\r
-2. Second:\r
-       * Fee\r
-       * Fie\r
-       * Foe\r
-\r
-3. Third\r
+## Unordered
+
+Asterisks tight:
+
+*      asterisk 1
+*      asterisk 2
+*      asterisk 3
+
+
+Asterisks loose:
+
+*      asterisk 1
+
+*      asterisk 2
+
+*      asterisk 3
+
+* * *
+
+Pluses tight:
+
++      Plus 1
++      Plus 2
++      Plus 3
+
+
+Pluses loose:
+
++      Plus 1
+
++      Plus 2
+
++      Plus 3
+
+* * *
+
+
+Minuses tight:
+
+-      Minus 1
+-      Minus 2
+-      Minus 3
+
+
+Minuses loose:
+
+-      Minus 1
+
+-      Minus 2
+
+-      Minus 3
+
+
+## Ordered
+
+Tight:
+
+1.     First
+2.     Second
+3.     Third
+
+and:
+
+1. One
+2. Two
+3. Three
+
+
+Loose using tabs:
+
+1.     First
+
+2.     Second
+
+3.     Third
+
+and using spaces:
+
+1. One
+
+2. Two
+
+3. Three
+
+Multiple paragraphs:
+
+1.     Item 1, graf one.
+
+       Item 2. graf two. The quick brown fox jumped over the lazy dog's
+       back.
+       
+2.     Item 2.
+
+3.     Item 3.
+
+
+
+## Nested
+
+*      Tab
+       *       Tab
+               *       Tab
+
+Here's another:
+
+1. First
+2. Second:
+       * Fee
+       * Fie
+       * Foe
+3. Third
+
+Same thing but with paragraphs:
+
+1. First
+
+2. Second:
+       * Fee
+       * Fie
+       * Foe
+
+3. Third
index a06e6e535aee128243368a61454c2f1fabf03ad6..7bf5163e75a254fa060f76e91341cc82de9bcd36 100644 (file)
@@ -1,4 +1,4 @@
-<p><strong><em>This is strong and em.</em></strong></p>\r
-<p>So is <strong><em>this</em></strong> word.</p>\r
-<p><strong><em>This is strong and em.</em></strong></p>\r
+<p><strong><em>This is strong and em.</em></strong></p>
+<p>So is <strong><em>this</em></strong> word.</p>
+<p><strong><em>This is strong and em.</em></strong></p>
 <p>So is <strong><em>this</em></strong> word.</p>
\ No newline at end of file
index cbb2883058cfe6ecec3fa07699aa086dc5184b36..95ee690dbe2713d1eaae2ae44e2cd6421afef161 100644 (file)
@@ -1,7 +1,7 @@
-***This is strong and em.***\r
-\r
-So is ***this*** word.\r
-\r
-___This is strong and em.___\r
-\r
-So is ___this___ word.\r
+***This is strong and em.***
+
+So is ***this*** word.
+
+___This is strong and em.___
+
+So is ___this___ word.
index 744559c42e49a53fcd0a364e070bce0a668e4d02..3c11f141d989cd92e5448a007bf6f39eef384a41 100644 (file)
@@ -1,23 +1,23 @@
-<ul>\r
-<li>\r
-<p>this is a list item\r
-    indented with tabs</p>\r
-</li>\r
-<li>\r
-<p>this is a list item\r
-    indented with spaces</p>\r
-</li>\r
-</ul>\r
-<p>Code:</p>\r
-<pre><code>this code block is indented by one tab\r
-</code></pre>\r
-<p>And:</p>\r
-<pre><code>    this code block is indented by two tabs\r
-</code></pre>\r
-<p>And:</p>\r
-<pre><code>+   this is an example list item\r
-    indented with tabs\r
-\r
-+   this is an example list item\r
-    indented with spaces\r
+<ul>
+<li>
+<p>this is a list item
+    indented with tabs</p>
+</li>
+<li>
+<p>this is a list item
+    indented with spaces</p>
+</li>
+</ul>
+<p>Code:</p>
+<pre><code>this code block is indented by one tab
+</code></pre>
+<p>And:</p>
+<pre><code>    this code block is indented by two tabs
+</code></pre>
+<p>And:</p>
+<pre><code>+   this is an example list item
+    indented with tabs
+
++   this is an example list item
+    indented with spaces
 </code></pre>
\ No newline at end of file
index 0240df39542e1093e0d5d8cada167b2051f26659..589d1136e19c0b56dcb6731e8a6c53ae0cedc9a3 100644 (file)
@@ -1,21 +1,21 @@
-+      this is a list item\r
-       indented with tabs\r
-\r
-+   this is a list item\r
-    indented with spaces\r
-\r
-Code:\r
-\r
-       this code block is indented by one tab\r
-\r
-And:\r
-\r
-               this code block is indented by two tabs\r
-\r
-And:\r
-\r
-       +       this is an example list item\r
-               indented with tabs\r
-       \r
-       +   this is an example list item\r
-           indented with spaces\r
++      this is a list item
+       indented with tabs
+
++   this is a list item
+    indented with spaces
+
+Code:
+
+       this code block is indented by one tab
+
+And:
+
+               this code block is indented by two tabs
+
+And:
+
+       +       this is an example list item
+               indented with tabs
+       
+       +   this is an example list item
+           indented with spaces
index a0296e80298525042973242622f2d777c6f0d8e6..52b2eafee29e5ebc04f382de9181c8be6cf2e62a 100644 (file)
@@ -1,8 +1,8 @@
-<blockquote>\r
-<p>A list within a blockquote:</p>\r
-<ul>\r
-<li>asterisk 1</li>\r
-<li>asterisk 2</li>\r
-<li>asterisk 3</li>\r
-</ul>\r
+<blockquote>
+<p>A list within a blockquote:</p>
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
 </blockquote>
\ No newline at end of file
index e81133972611853d6c9f5dc251fbb0088271e404..5f18b8da214b794a88b9c4303974af06acd0678c 100644 (file)
@@ -1,5 +1,5 @@
-> A list within a blockquote:\r
-> \r
-> *    asterisk 1\r
-> *    asterisk 2\r
-> *    asterisk 3\r
+> A list within a blockquote:
+> 
+> *    asterisk 1
+> *    asterisk 2
+> *    asterisk 3
index dfd888d3a142ffd075626f43ae27d13852afb727..c900757a24b3523cc5acfcf9de65d04c83f0e6c2 100644 (file)
@@ -1,30 +1,31 @@
-<p>Some text</p>\r
-<div class="admonition note">\r
-<p class="admonition-title">Note</p>\r
-<p>A normal paragraph here</p>\r
-<ol>\r
-<li>first</li>\r
-<li>second</li>\r
-</ol>\r
-<blockquote>\r
-<p>Some important quote</p>\r
-<p>another paragraph in the quote</p>\r
-</blockquote>\r
-<pre><code>int main() {\r
-    // insert some code\r
-}\r
-</code></pre>\r
-</div>\r
-<p>More text and stuff.</p>\r
-<div class="admonition note">\r
-<p class="admonition-title">Did you know?</p>\r
-<p>You can customize the title of the admonition</p>\r
-</div>\r
-<div class="admonition mycustomcssclass">\r
-<p class="admonition-title">And now...</p>\r
-<p>For something completely different.</p>\r
-<p>You can also use a custom CSS class name.</p>\r
-</div>\r
-<div class="admonition tip">\r
-<p>An explicitly empty string prevents the title from being rendered.</p>\r
+<p>Some text</p>
+<div class="admonition note">
+<p class="admonition-title">Note</p>
+<p>A normal paragraph here</p>
+<ol>
+<li>first</li>
+<li>second</li>
+</ol>
+<blockquote>
+<p>Some important quote</p>
+<p>another paragraph in the quote</p>
+</blockquote>
+<pre><code>int main() {
+    // insert some code
+}
+</code></pre>
+</div>
+<p>More text and stuff.</p>
+<div class="admonition note">
+<p class="admonition-title">Did you know?</p>
+<p>You can customize the title of the admonition</p>
+</div>
+<p>Not part of an Admonition!</p>
+<div class="admonition mycustomcssclass">
+<p class="admonition-title">And now...</p>
+<p>For something completely different.</p>
+<p>You can also use a custom CSS class name.</p>
+</div>
+<div class="admonition tip">
+<p>An explicitly empty string prevents the title from being rendered.</p>
 </div>
\ No newline at end of file
index d0b7d184b71c10d581cc202607f3d61618c97690..d24336b4a2d0e2d27b2d81c4748e71fe32cb70d1 100644 (file)
@@ -1,28 +1,29 @@
-Some text\r
-\r
-!!! note\r
-    A normal paragraph here\r
-\r
-    1. first\r
-    2. second\r
-\r
-    > Some important quote\r
-\r
-    > another paragraph in the quote\r
-\r
-        int main() {\r
-            // insert some code\r
-        }\r
-\r
-More text and stuff.\r
-\r
-!!! Note "Did you know?"\r
-    You can customize the title of the admonition\r
-\r
-!!! mycustomcssclass "And now..."\r
-    For something completely different.\r
-\r
-    You can also use a custom CSS class name.\r
-\r
-!!! tip ""\r
-    An explicitly empty string prevents the title from being rendered.\r
+Some text
+
+!!! note
+    A normal paragraph here
+
+    1. first
+    2. second
+
+    > Some important quote
+
+    > another paragraph in the quote
+
+        int main() {
+            // insert some code
+        }
+
+More text and stuff.
+
+!!! Note "Did you know?"
+    You can customize the title of the admonition
+Not part of an Admonition!
+
+!!! mycustomcssclass "And now..."
+    For something completely different.
+
+    You can also use a custom CSS class name.
+
+!!! tip ""
+    An explicitly empty string prevents the title from being rendered.
index fd270ad51b94b6d17c12f566f1ad7a264364a0f7..b76f73b268a65b03bc2aa0687a2c03a8f13f5587 100644 (file)
@@ -1,60 +1,60 @@
-<h1 id="setext">This is a sextext header</h1>\r
-<p class="myclass" id="par1">A paragraph with some text.\r
-Line two of the paragraph.</p>\r
-<h2 class="someclass" id="sextext2">This is another</h2>\r
-<p>Test some <em class="inline">inline</em> text.\r
-A <a class="linkkyclass" href="http://example.com" title="A title.">link</a>\r
-And a <strong class="nest">nested <a class="linky2" href="http://example.com" title="Some title">link</a></strong></p>\r
-<h3 id="hash">This is a hash Header</h3>\r
-<p bar="b az" baz="blah blah" foo="foo" title="I wasn't kidding!">And now some random attributes.</p>\r
-<h3 id="hash2">No closing hash header</h3>\r
-<p class="foo bar addme" id="overridden">Now test overrides</p>\r
-<pre><code># A code block which contains attr_list syntax\r
-# This should be ignored.\r
-{: #someid .someclass }\r
-</code></pre>\r
-<h3 id="hash3">No colon for compatability with Headerid ext</h3>\r
-<p id="the_end">Also a codespan: <code class="foo">{: .someclass}</code>.</p>\r
-<h3 _:="{:" id="hash5">Bad Syntax</h3>\r
-<ul>\r
-<li class="item">Item1</li>\r
-<li class="item">Item2<ul>\r
-<li class="subitem">Item2-1</li>\r
-</ul>\r
-</li>\r
-<li class="item"><em class="emph">Item3</em><ul>\r
-<li class="subitem"><em class="emph">Item3-1</em></li>\r
-</ul>\r
-</li>\r
-<li>Item4<ul>\r
-<li>Item4-1</li>\r
-</ul>\r
-</li>\r
-<li>Item5</li>\r
-</ul>\r
-<h1>And ordered lists <em class="inline">too</em></h1>\r
-<ol>\r
-<li class="item">Item1</li>\r
-<li class="item">Item2<ol>\r
-<li class="subitem">Item2-1</li>\r
-</ol>\r
-</li>\r
-<li class="item"><em class="emph">Item3</em><ol>\r
-<li class="subitem"><em class="emph">Item3-1</em></li>\r
-</ol>\r
-</li>\r
-<li>Item4<ol>\r
-<li>Item4-1</li>\r
-</ol>\r
-</li>\r
-<li>Item5</li>\r
-</ol>\r
-<h1 class="block">Definition <em>lists</em></h1>\r
-<dl>\r
-<dt class="term">DT1</dt>\r
-<dt class="term">DT2</dt>\r
-<dd class="def">Some dd</dd>\r
-<dd><em class="inline">dd</em></dd>\r
-<dt><em class="inline">DT3</em></dt>\r
-<dd>Some dd</dd>\r
+<h1 id="setext">This is a sextext header</h1>
+<p class="myclass" id="par1">A paragraph with some text.
+Line two of the paragraph.</p>
+<h2 class="someclass" id="sextext2">This is another</h2>
+<p>Test some <em class="inline">inline</em> text.
+A <a class="linkkyclass" href="http://example.com" title="A title.">link</a>
+And a <strong class="nest">nested <a class="linky2" href="http://example.com" title="Some title">link</a></strong></p>
+<h3 id="hash">This is a hash Header</h3>
+<p bar="b az" baz="blah blah" foo="foo" title="I wasn't kidding!">And now some random attributes.</p>
+<h3 id="hash2">No closing hash header</h3>
+<p class="foo bar addme" id="overridden">Now test overrides</p>
+<pre><code># A code block which contains attr_list syntax
+# This should be ignored.
+{: #someid .someclass }
+</code></pre>
+<h3 id="hash3">No colon for compatability with Headerid ext</h3>
+<p id="the_end">Also a codespan: <code class="foo">{: .someclass}</code>.</p>
+<h3 _:="{:" id="hash5">Bad Syntax</h3>
+<ul>
+<li class="item">Item1</li>
+<li class="item">Item2<ul>
+<li class="subitem">Item2-1</li>
+</ul>
+</li>
+<li class="item"><em class="emph">Item3</em><ul>
+<li class="subitem"><em class="emph">Item3-1</em></li>
+</ul>
+</li>
+<li>Item4<ul>
+<li>Item4-1</li>
+</ul>
+</li>
+<li>Item5</li>
+</ul>
+<h1>And ordered lists <em class="inline">too</em></h1>
+<ol>
+<li class="item">Item1</li>
+<li class="item">Item2<ol>
+<li class="subitem">Item2-1</li>
+</ol>
+</li>
+<li class="item"><em class="emph">Item3</em><ol>
+<li class="subitem"><em class="emph">Item3-1</em></li>
+</ol>
+</li>
+<li>Item4<ol>
+<li>Item4-1</li>
+</ol>
+</li>
+<li>Item5</li>
+</ol>
+<h1 class="block">Definition <em>lists</em></h1>
+<dl>
+<dt class="term">DT1</dt>
+<dt class="term">DT2</dt>
+<dd class="def">Some dd</dd>
+<dd><em class="inline">dd</em></dd>
+<dt><em class="inline">DT3</em></dt>
+<dd>Some dd</dd>
 </dl>
\ No newline at end of file
index 72b55838aecce87424c92c86e15b9e14f4d8e561..da108e655e3bed38fce4ce7b188ad5b299678afe 100644 (file)
@@ -1,78 +1,78 @@
-This is a sextext header {: #setext}\r
-====================================\r
-\r
-A paragraph with some text.\r
-Line two of the paragraph.\r
-{: #par1 .myclass }\r
-\r
-This is another {: #sextext2 .someclass}\r
-----------------------------------------\r
-\r
-Test some _inline_{: .inline} text.\r
-A [link](http://example.com){: .linkkyclass title="A title."}\r
-And a __nested [link][]{: .linky2}__{: .nest}\r
-\r
-[link]: http://example.com "Some title"\r
-\r
-### This is a hash Header ### {: #hash}\r
-\r
-And now some random attributes.\r
-{:foo bar='b az' baz="blah blah" title="I wasn't kidding!" }\r
-\r
-### No closing hash header {: #hash2}\r
-\r
-Now test overrides\r
-{: #overrideme .andme id=overridden class='foo bar' .addme }\r
-\r
-    # A code block which contains attr_list syntax\r
-    # This should be ignored.\r
-    {: #someid .someclass }\r
-\r
-### No colon for compatability with Headerid ext { #hash3 }\r
-\r
-Also a codespan: `{: .someclass}`{: .foo}.\r
-{: #the_end}\r
-\r
-### Bad Syntax { {: #hash5 }\r
-\r
-* Item1\r
-  {: .item }\r
-* Item2\r
-  {: .item }\r
-    * Item2-1\r
-      {: .subitem }\r
-* _Item3_{: .emph }\r
-  {: .item }\r
-    * _Item3-1_{: .emph }\r
-      {: .subitem }\r
-* Item4\r
-    * Item4-1\r
-* Item5\r
-\r
-# And ordered lists *too*{.inline}\r
-\r
-1. Item1\r
-   {: .item }\r
-2. Item2\r
-   {: .item }\r
-    1. Item2-1\r
-       {: .subitem }\r
-3. _Item3_{: .emph }\r
-   {: .item }\r
-    1. _Item3-1_{: .emph }\r
-       {: .subitem }\r
-4. Item4\r
-    1. Item4-1\r
-5. Item5\r
-\r
-# Definition *lists* {.block}\r
-\r
-DT1 {.term}\r
-DT2 {.term}\r
-:   Some dd\r
-    {.def}\r
-:   *dd*{.inline}\r
-\r
-*DT3*{.inline}\r
-:   Some dd\r
-\r
+This is a sextext header {: #setext}
+====================================
+
+A paragraph with some text.
+Line two of the paragraph.
+{: #par1 .myclass }
+
+This is another {: #sextext2 .someclass}
+----------------------------------------
+
+Test some _inline_{: .inline} text.
+A [link](http://example.com){: .linkkyclass title="A title."}
+And a __nested [link][]{: .linky2}__{: .nest}
+
+[link]: http://example.com "Some title"
+
+### This is a hash Header ### {: #hash}
+
+And now some random attributes.
+{:foo bar='b az' baz="blah blah" title="I wasn't kidding!" }
+
+### No closing hash header {: #hash2}
+
+Now test overrides
+{: #overrideme .andme id=overridden class='foo bar' .addme }
+
+    # A code block which contains attr_list syntax
+    # This should be ignored.
+    {: #someid .someclass }
+
+### No colon for compatability with Headerid ext { #hash3 }
+
+Also a codespan: `{: .someclass}`{: .foo}.
+{: #the_end}
+
+### Bad Syntax { {: #hash5 }
+
+* Item1
+  {: .item }
+* Item2
+  {: .item }
+    * Item2-1
+      {: .subitem }
+* _Item3_{: .emph }
+  {: .item }
+    * _Item3-1_{: .emph }
+      {: .subitem }
+* Item4
+    * Item4-1
+* Item5
+
+# And ordered lists *too*{.inline}
+
+1. Item1
+   {: .item }
+2. Item2
+   {: .item }
+    1. Item2-1
+       {: .subitem }
+3. _Item3_{: .emph }
+   {: .item }
+    1. _Item3-1_{: .emph }
+       {: .subitem }
+4. Item4
+    1. Item4-1
+5. Item5
+
+# Definition *lists* {.block}
+
+DT1 {.term}
+DT2 {.term}
+:   Some dd
+    {.def}
+:   *dd*{.inline}
+
+*DT3*{.inline}
+:   Some dd
+
index 7697a6106bb84d6783496f044deea817dc30d2b9..6a8ee9137874963d3d6f2b924635b61887d35341 100644 (file)
@@ -1,16 +1,16 @@
-<p>Some text</p>\r
-<table class="codehilitetable"><tr><td class="linenos"><pre>1\r
-2\r
-3\r
-4\r
-5\r
-6</pre></td><td class="code"><div class="codehilite"><pre><span class="k">def</span> <span class="nf">__init__</span> <span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pattern</span><span class="p">)</span> <span class="p">:</span>\r
-    <span class="bp">self</span><span class="o">.</span><span class="n">pattern</span> <span class="o">=</span> <span class="n">pattern</span>\r
-    <span class="bp">self</span><span class="o">.</span><span class="n">compiled_re</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">&quot;^(.*)</span><span class="si">%s</span><span class="s">(.*)$&quot;</span> <span class="o">%</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">DOTALL</span><span class="p">)</span>\r
-\r
-<span class="k">def</span> <span class="nf">getCompiledRegExp</span> <span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="p">:</span>\r
-    <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">compiled_re</span>\r
-</pre></div>\r
-</td></tr></table>\r
-\r
+<p>Some text</p>
+<table class="codehilitetable"><tr><td class="linenos"><pre>1
+2
+3
+4
+5
+6</pre></td><td class="code"><div class="codehilite"><pre><span class="k">def</span> <span class="nf">__init__</span> <span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pattern</span><span class="p">)</span> <span class="p">:</span>
+    <span class="bp">self</span><span class="o">.</span><span class="n">pattern</span> <span class="o">=</span> <span class="n">pattern</span>
+    <span class="bp">self</span><span class="o">.</span><span class="n">compiled_re</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">&quot;^(.*)</span><span class="si">%s</span><span class="s">(.*)$&quot;</span> <span class="o">%</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">DOTALL</span><span class="p">)</span>
+
+<span class="k">def</span> <span class="nf">getCompiledRegExp</span> <span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="p">:</span>
+    <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">compiled_re</span>
+</pre></div>
+</td></tr></table>
+
 <p>More text</p>
\ No newline at end of file
index de84fc7999f9e2586a448d5e55e86231f9dff858..6c62e6acc3cb63c396892a8bd57c8b6e988650db 100644 (file)
@@ -1,12 +1,12 @@
-\r
-Some text\r
-\r
-    #!python\r
-    def __init__ (self, pattern) :\r
-        self.pattern = pattern\r
-        self.compiled_re = re.compile("^(.*)%s(.*)$" % pattern, re.DOTALL)\r
-\r
-    def getCompiledRegExp (self) :\r
-        return self.compiled_re\r
-\r
+
+Some text
+
+    #!python
+    def __init__ (self, pattern) :
+        self.pattern = pattern
+        self.compiled_re = re.compile("^(.*)%s(.*)$" % pattern, re.DOTALL)
+
+    def getCompiledRegExp (self) :
+        return self.compiled_re
+
 More text
\ No newline at end of file
index 3dd01f03aa14c0896d8a5c597d0137bc5a3095bb..456524e8673e546ec294e6030e609e5450a53eec 100644 (file)
@@ -1,4 +1,4 @@
-<p>An <abbr title="Abbreviation">ABBR</abbr>: "<abbr title="Reference">REF</abbr>".\r
-ref and REFERENCE should be ignored.</p>\r
-<p>The <abbr title="Hyper Text Markup Language">HTML</abbr> specification\r
+<p>An <abbr title="Abbreviation">ABBR</abbr>: "<abbr title="Reference">REF</abbr>".
+ref and REFERENCE should be ignored.</p>
+<p>The <abbr title="Hyper Text Markup Language">HTML</abbr> specification
 is maintained by the <abbr title="World Wide Web Consortium">W3C</abbr>.</p>
\ No newline at end of file
index 7f87a089e65db99f8e95eeaf6372074fd475aad2..991bf156131072ab982b774e7c4d023ba66cc389 100644 (file)
@@ -1,13 +1,13 @@
-An ABBR: "REF".\r
-ref and REFERENCE should be ignored.\r
-\r
-*[REF]: Reference\r
-*[ABBR]: This gets overriden by the next one.\r
-*[ABBR]: Abbreviation\r
-\r
-The HTML specification\r
-is maintained by the W3C.\r
-\r
-*[HTML]: Hyper Text Markup Language\r
-*[W3C]:  World Wide Web Consortium\r
-\r
+An ABBR: "REF".
+ref and REFERENCE should be ignored.
+
+*[REF]: Reference
+*[ABBR]: This gets overriden by the next one.
+*[ABBR]: Abbreviation
+
+The HTML specification
+is maintained by the W3C.
+
+*[HTML]: Hyper Text Markup Language
+*[W3C]:  World Wide Web Consortium
+
index 7a1207fa67bfe61aaca2e5b19be4e041e96ef8ff..21cddaa9887a7890b65c29c7190b8af596d94515 100644 (file)
@@ -1,25 +1,25 @@
-<p>: a paragraph that starts with a colon</p>\r
-<ul>\r
-<li>A List item</li>\r
-<li>\r
-<dl>\r
-<dt>A def term</dt>\r
-<dd>A def item</dd>\r
-<dd>a second</dd>\r
-</dl>\r
-</li>\r
-<li>\r
-<dl>\r
-<dt>Another def term</dt>\r
-<dd>\r
-<p>a loose item</p>\r
-</dd>\r
-<dd>\r
-<p>a second</p>\r
-</dd>\r
-</dl>\r
-</li>\r
-<li>\r
-<p>: a list item that starts with a colon</p>\r
-</li>\r
+<p>: a paragraph that starts with a colon</p>
+<ul>
+<li>A List item</li>
+<li>
+<dl>
+<dt>A def term</dt>
+<dd>A def item</dd>
+<dd>a second</dd>
+</dl>
+</li>
+<li>
+<dl>
+<dt>Another def term</dt>
+<dd>
+<p>a loose item</p>
+</dd>
+<dd>
+<p>a second</p>
+</dd>
+</dl>
+</li>
+<li>
+<p>: a list item that starts with a colon</p>
+</li>
 </ul>
\ No newline at end of file
index c9e835b3c676a3f01211f73590d5c363e5766136..7a292abfa1985d2ade4ce9f79b4e88ef88a44ad2 100644 (file)
@@ -1,15 +1,15 @@
-: a paragraph that starts with a colon\r
-\r
-* A List item\r
-* \r
-    A def term\r
-    : A def item\r
-    : a second\r
-\r
-* Another def term\r
-\r
-    : a loose item\r
-    \r
-    : a second\r
-\r
-* : a list item that starts with a colon\r
+: a paragraph that starts with a colon
+
+* A List item
+* 
+    A def term
+    : A def item
+    : a second
+
+* Another def term
+
+    : a loose item
+    
+    : a second
+
+* : a list item that starts with a colon
diff --git a/tests/extensions/extra/extra_config.html b/tests/extensions/extra/extra_config.html
new file mode 100644 (file)
index 0000000..0143145
--- /dev/null
@@ -0,0 +1,9 @@
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:1">
+<p>A Footnote.&#160;<a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+</ol>
+</div>
+<p>Some text with a footnote<sup id="fnref:1"><a class="footnote-ref" href="#fn:1" rel="footnote">1</a></sup>.</p>
\ No newline at end of file
diff --git a/tests/extensions/extra/extra_config.txt b/tests/extensions/extra/extra_config.txt
new file mode 100644 (file)
index 0000000..2d29819
--- /dev/null
@@ -0,0 +1,5 @@
+~~~placemarker~~~
+
+Some text with a footnote[^1].
+
+[^1]: A Footnote.
index 857b2bb85f8b445852ac8c82d4256e3b6c29dafa..e5b41a72952c2aa0b376fcd0cba9aba2955bd4ca 100644 (file)
@@ -1,33 +1,33 @@
-<p>This is the body with a footnote<sup id="fnref:1"><a class="footnote-ref" href="#fn:1" rel="footnote">1</a></sup> or two<sup id="fnref:2"><a class="footnote-ref" href="#fn:2" rel="footnote">2</a></sup> or more<sup id="fnref:3"><a class="footnote-ref" href="#fn:3" rel="footnote">3</a></sup> <sup id="fnref:4"><a class="footnote-ref" href="#fn:4" rel="footnote">4</a></sup> <sup id="fnref:5"><a class="footnote-ref" href="#fn:5" rel="footnote">5</a></sup>.</p>\r
-<p>Also a reference that does not exist[^6].</p>\r
-<div class="footnote">\r
-<hr />\r
-<ol>\r
-<li id="fn:1">\r
-<p>Footnote that ends with a list:</p>\r
-<ul>\r
-<li>item 1</li>\r
-<li>item 2</li>\r
-</ul>\r
-<p><a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:2">\r
-<blockquote>\r
-<p>This footnote is a blockquote.</p>\r
-</blockquote>\r
-<p><a class="footnote-backref" href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:3">\r
-<p>A simple oneliner.&#160;<a class="footnote-backref" href="#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:4">\r
-<p>A footnote with multiple paragraphs.</p>\r
-<p>Paragraph two.&#160;<a class="footnote-backref" href="#fnref:4" rev="footnote" title="Jump back to footnote 4 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:5">\r
-<p>First line of first paragraph.\r
-Second line of first paragraph is not intended.\r
-Nor is third...&#160;<a class="footnote-backref" href="#fnref:5" rev="footnote" title="Jump back to footnote 5 in the text">&#8617;</a></p>\r
-</li>\r
-</ol>\r
+<p>This is the body with a footnote<sup id="fnref:1"><a class="footnote-ref" href="#fn:1" rel="footnote">1</a></sup> or two<sup id="fnref:2"><a class="footnote-ref" href="#fn:2" rel="footnote">2</a></sup> or more<sup id="fnref:3"><a class="footnote-ref" href="#fn:3" rel="footnote">3</a></sup> <sup id="fnref:4"><a class="footnote-ref" href="#fn:4" rel="footnote">4</a></sup> <sup id="fnref:5"><a class="footnote-ref" href="#fn:5" rel="footnote">5</a></sup>.</p>
+<p>Also a reference that does not exist[^6].</p>
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:1">
+<p>Footnote that ends with a list:</p>
+<ul>
+<li>item 1</li>
+<li>item 2</li>
+</ul>
+<p><a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+<li id="fn:2">
+<blockquote>
+<p>This footnote is a blockquote.</p>
+</blockquote>
+<p><a class="footnote-backref" href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>
+</li>
+<li id="fn:3">
+<p>A simple oneliner.&#160;<a class="footnote-backref" href="#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text">&#8617;</a></p>
+</li>
+<li id="fn:4">
+<p>A footnote with multiple paragraphs.</p>
+<p>Paragraph two.&#160;<a class="footnote-backref" href="#fnref:4" rev="footnote" title="Jump back to footnote 4 in the text">&#8617;</a></p>
+</li>
+<li id="fn:5">
+<p>First line of first paragraph.
+Second line of first paragraph is not intended.
+Nor is third...&#160;<a class="footnote-backref" href="#fnref:5" rev="footnote" title="Jump back to footnote 5 in the text">&#8617;</a></p>
+</li>
+</ol>
 </div>
\ No newline at end of file
index 7b91fffed2bcea5d81a05e3085e92fb322436d09..c5c1c92b4732fa83ae6436ae263e57ba878445f3 100644 (file)
@@ -1,20 +1,20 @@
-This is the body with a footnote[^1] or two[^2] or more[^3] [^4] [^5].\r
-\r
-Also a reference that does not exist[^6].\r
-\r
-[^1]: Footnote that ends with a list:\r
-\r
-    * item 1\r
-    * item 2\r
-\r
-[^2]: > This footnote is a blockquote.\r
-\r
-[^3]: A simple oneliner.\r
-\r
-[^4]: A footnote with multiple paragraphs.\r
-\r
-    Paragraph two.\r
-\r
-[^5]: First line of first paragraph.\r
-Second line of first paragraph is not intended.\r
-Nor is third...\r
+This is the body with a footnote[^1] or two[^2] or more[^3] [^4] [^5].
+
+Also a reference that does not exist[^6].
+
+[^1]: Footnote that ends with a list:
+
+    * item 1
+    * item 2
+
+[^2]: > This footnote is a blockquote.
+
+[^3]: A simple oneliner.
+
+[^4]: A footnote with multiple paragraphs.
+
+    Paragraph two.
+
+[^5]: First line of first paragraph.
+Second line of first paragraph is not intended.
+Nor is third...
index c02b501dae71447e3db05ecccea3bb779256ce40..4186ea3175760efb54857c8737dd0e5ced805f4f 100644 (file)
-<p>Something<sup id="fnref:1"><a class="footnote-ref" href="#fn:1" rel="footnote">1</a></sup></p>\r
-<p>Something<sup id="fnref:2"><a class="footnote-ref" href="#fn:2" rel="footnote">2</a></sup></p>\r
-<p>Something<sup id="fnref:3"><a class="footnote-ref" href="#fn:3" rel="footnote">3</a></sup></p>\r
-<p>Something<sup id="fnref:4"><a class="footnote-ref" href="#fn:4" rel="footnote">4</a></sup></p>\r
-<p>Something<sup id="fnref:5"><a class="footnote-ref" href="#fn:5" rel="footnote">5</a></sup></p>\r
-<p>Something<sup id="fnref:6"><a class="footnote-ref" href="#fn:6" rel="footnote">6</a></sup></p>\r
-<p>Something<sup id="fnref:7"><a class="footnote-ref" href="#fn:7" rel="footnote">7</a></sup></p>\r
-<p>Something<sup id="fnref:8"><a class="footnote-ref" href="#fn:8" rel="footnote">8</a></sup></p>\r
-<p>Something<sup id="fnref:9"><a class="footnote-ref" href="#fn:9" rel="footnote">9</a></sup></p>\r
-<p>Something<sup id="fnref:10"><a class="footnote-ref" href="#fn:10" rel="footnote">10</a></sup></p>\r
-<p>Something<sup id="fnref:11"><a class="footnote-ref" href="#fn:11" rel="footnote">11</a></sup></p>\r
-<p>Something<sup id="fnref:12"><a class="footnote-ref" href="#fn:12" rel="footnote">12</a></sup></p>\r
-<p>Something<sup id="fnref:13"><a class="footnote-ref" href="#fn:13" rel="footnote">13</a></sup></p>\r
-<p>Something<sup id="fnref:14"><a class="footnote-ref" href="#fn:14" rel="footnote">14</a></sup></p>\r
-<p>Something<sup id="fnref:15"><a class="footnote-ref" href="#fn:15" rel="footnote">15</a></sup></p>\r
-<p>Something<sup id="fnref:16"><a class="footnote-ref" href="#fn:16" rel="footnote">16</a></sup></p>\r
-<p>Something<sup id="fnref:17"><a class="footnote-ref" href="#fn:17" rel="footnote">17</a></sup></p>\r
-<p>Something<sup id="fnref:18"><a class="footnote-ref" href="#fn:18" rel="footnote">18</a></sup></p>\r
-<p>Something<sup id="fnref:19"><a class="footnote-ref" href="#fn:19" rel="footnote">19</a></sup></p>\r
-<p>Something<sup id="fnref:20"><a class="footnote-ref" href="#fn:20" rel="footnote">20</a></sup></p>\r
-<p>Something<sup id="fnref:21"><a class="footnote-ref" href="#fn:21" rel="footnote">21</a></sup></p>\r
-<p>Something<sup id="fnref:22"><a class="footnote-ref" href="#fn:22" rel="footnote">22</a></sup></p>\r
-<p>Something<sup id="fnref:23"><a class="footnote-ref" href="#fn:23" rel="footnote">23</a></sup></p>\r
-<p>Something<sup id="fnref:24"><a class="footnote-ref" href="#fn:24" rel="footnote">24</a></sup></p>\r
-<p>Something<sup id="fnref:25"><a class="footnote-ref" href="#fn:25" rel="footnote">25</a></sup></p>\r
-<p>Something<sup id="fnref:26"><a class="footnote-ref" href="#fn:26" rel="footnote">26</a></sup></p>\r
-<p>Something<sup id="fnref:27"><a class="footnote-ref" href="#fn:27" rel="footnote">27</a></sup></p>\r
-<p>Something<sup id="fnref:28"><a class="footnote-ref" href="#fn:28" rel="footnote">28</a></sup></p>\r
-<p>Something<sup id="fnref:29"><a class="footnote-ref" href="#fn:29" rel="footnote">29</a></sup></p>\r
-<p>Something<sup id="fnref:30"><a class="footnote-ref" href="#fn:30" rel="footnote">30</a></sup></p>\r
-<p>Something<sup id="fnref:31"><a class="footnote-ref" href="#fn:31" rel="footnote">31</a></sup></p>\r
-<p>Something<sup id="fnref:32"><a class="footnote-ref" href="#fn:32" rel="footnote">32</a></sup></p>\r
-<p>Something<sup id="fnref:33"><a class="footnote-ref" href="#fn:33" rel="footnote">33</a></sup></p>\r
-<p>Something<sup id="fnref:34"><a class="footnote-ref" href="#fn:34" rel="footnote">34</a></sup></p>\r
-<p>Something<sup id="fnref:35"><a class="footnote-ref" href="#fn:35" rel="footnote">35</a></sup></p>\r
-<p>Something<sup id="fnref:36"><a class="footnote-ref" href="#fn:36" rel="footnote">36</a></sup></p>\r
-<p>Something<sup id="fnref:37"><a class="footnote-ref" href="#fn:37" rel="footnote">37</a></sup></p>\r
-<p>Something<sup id="fnref:38"><a class="footnote-ref" href="#fn:38" rel="footnote">38</a></sup></p>\r
-<p>Something<sup id="fnref:39"><a class="footnote-ref" href="#fn:39" rel="footnote">39</a></sup></p>\r
-<p>Something<sup id="fnref:40"><a class="footnote-ref" href="#fn:40" rel="footnote">40</a></sup></p>\r
-<p>Something<sup id="fnref:41"><a class="footnote-ref" href="#fn:41" rel="footnote">41</a></sup></p>\r
-<p>Something<sup id="fnref:42"><a class="footnote-ref" href="#fn:42" rel="footnote">42</a></sup></p>\r
-<p>Something<sup id="fnref:43"><a class="footnote-ref" href="#fn:43" rel="footnote">43</a></sup></p>\r
-<p>Something<sup id="fnref:44"><a class="footnote-ref" href="#fn:44" rel="footnote">44</a></sup></p>\r
-<p>Something<sup id="fnref:45"><a class="footnote-ref" href="#fn:45" rel="footnote">45</a></sup></p>\r
-<p>Something<sup id="fnref:46"><a class="footnote-ref" href="#fn:46" rel="footnote">46</a></sup></p>\r
-<p>Something<sup id="fnref:47"><a class="footnote-ref" href="#fn:47" rel="footnote">47</a></sup></p>\r
-<p>Something<sup id="fnref:48"><a class="footnote-ref" href="#fn:48" rel="footnote">48</a></sup></p>\r
-<p>Something<sup id="fnref:49"><a class="footnote-ref" href="#fn:49" rel="footnote">49</a></sup></p>\r
-<p>Something<sup id="fnref:50"><a class="footnote-ref" href="#fn:50" rel="footnote">50</a></sup></p>\r
-<p>Something<sup id="fnref:51"><a class="footnote-ref" href="#fn:51" rel="footnote">51</a></sup></p>\r
-<p>Something<sup id="fnref:52"><a class="footnote-ref" href="#fn:52" rel="footnote">52</a></sup></p>\r
-<p>Something<sup id="fnref:53"><a class="footnote-ref" href="#fn:53" rel="footnote">53</a></sup></p>\r
-<p>Something<sup id="fnref:54"><a class="footnote-ref" href="#fn:54" rel="footnote">54</a></sup></p>\r
-<p>Something<sup id="fnref:55"><a class="footnote-ref" href="#fn:55" rel="footnote">55</a></sup></p>\r
-<p>Something<sup id="fnref:56"><a class="footnote-ref" href="#fn:56" rel="footnote">56</a></sup></p>\r
-<p>Something<sup id="fnref:57"><a class="footnote-ref" href="#fn:57" rel="footnote">57</a></sup></p>\r
-<p>Something<sup id="fnref:58"><a class="footnote-ref" href="#fn:58" rel="footnote">58</a></sup></p>\r
-<p>Something<sup id="fnref:59"><a class="footnote-ref" href="#fn:59" rel="footnote">59</a></sup></p>\r
-<p>Something<sup id="fnref:60"><a class="footnote-ref" href="#fn:60" rel="footnote">60</a></sup></p>\r
-<p>Something<sup id="fnref:61"><a class="footnote-ref" href="#fn:61" rel="footnote">61</a></sup></p>\r
-<p>Something<sup id="fnref:62"><a class="footnote-ref" href="#fn:62" rel="footnote">62</a></sup></p>\r
-<p>Something<sup id="fnref:63"><a class="footnote-ref" href="#fn:63" rel="footnote">63</a></sup></p>\r
-<p>Something<sup id="fnref:64"><a class="footnote-ref" href="#fn:64" rel="footnote">64</a></sup></p>\r
-<p>Something<sup id="fnref:65"><a class="footnote-ref" href="#fn:65" rel="footnote">65</a></sup></p>\r
-<p>Something<sup id="fnref:66"><a class="footnote-ref" href="#fn:66" rel="footnote">66</a></sup></p>\r
-<p>Something<sup id="fnref:67"><a class="footnote-ref" href="#fn:67" rel="footnote">67</a></sup></p>\r
-<p>Something<sup id="fnref:68"><a class="footnote-ref" href="#fn:68" rel="footnote">68</a></sup></p>\r
-<p>Something<sup id="fnref:69"><a class="footnote-ref" href="#fn:69" rel="footnote">69</a></sup></p>\r
-<p>Something<sup id="fnref:70"><a class="footnote-ref" href="#fn:70" rel="footnote">70</a></sup></p>\r
-<p>Something<sup id="fnref:71"><a class="footnote-ref" href="#fn:71" rel="footnote">71</a></sup></p>\r
-<p>Something<sup id="fnref:72"><a class="footnote-ref" href="#fn:72" rel="footnote">72</a></sup></p>\r
-<p>Something<sup id="fnref:73"><a class="footnote-ref" href="#fn:73" rel="footnote">73</a></sup></p>\r
-<p>Something<sup id="fnref:74"><a class="footnote-ref" href="#fn:74" rel="footnote">74</a></sup></p>\r
-<p>Something<sup id="fnref:75"><a class="footnote-ref" href="#fn:75" rel="footnote">75</a></sup></p>\r
-<p>Something<sup id="fnref:76"><a class="footnote-ref" href="#fn:76" rel="footnote">76</a></sup></p>\r
-<p>Something<sup id="fnref:77"><a class="footnote-ref" href="#fn:77" rel="footnote">77</a></sup></p>\r
-<p>Something<sup id="fnref:78"><a class="footnote-ref" href="#fn:78" rel="footnote">78</a></sup></p>\r
-<p>Something<sup id="fnref:79"><a class="footnote-ref" href="#fn:79" rel="footnote">79</a></sup></p>\r
-<p>Something<sup id="fnref:80"><a class="footnote-ref" href="#fn:80" rel="footnote">80</a></sup></p>\r
-<p>Something<sup id="fnref:81"><a class="footnote-ref" href="#fn:81" rel="footnote">81</a></sup></p>\r
-<p>Something<sup id="fnref:82"><a class="footnote-ref" href="#fn:82" rel="footnote">82</a></sup></p>\r
-<p>Something<sup id="fnref:83"><a class="footnote-ref" href="#fn:83" rel="footnote">83</a></sup></p>\r
-<p>Something<sup id="fnref:84"><a class="footnote-ref" href="#fn:84" rel="footnote">84</a></sup></p>\r
-<p>Something<sup id="fnref:85"><a class="footnote-ref" href="#fn:85" rel="footnote">85</a></sup></p>\r
-<p>Something<sup id="fnref:86"><a class="footnote-ref" href="#fn:86" rel="footnote">86</a></sup></p>\r
-<p>Something<sup id="fnref:87"><a class="footnote-ref" href="#fn:87" rel="footnote">87</a></sup></p>\r
-<p>Something<sup id="fnref:88"><a class="footnote-ref" href="#fn:88" rel="footnote">88</a></sup></p>\r
-<p>Something<sup id="fnref:89"><a class="footnote-ref" href="#fn:89" rel="footnote">89</a></sup></p>\r
-<p>Something<sup id="fnref:90"><a class="footnote-ref" href="#fn:90" rel="footnote">90</a></sup></p>\r
-<p>Something<sup id="fnref:91"><a class="footnote-ref" href="#fn:91" rel="footnote">91</a></sup></p>\r
-<p>Something<sup id="fnref:92"><a class="footnote-ref" href="#fn:92" rel="footnote">92</a></sup></p>\r
-<p>Something<sup id="fnref:93"><a class="footnote-ref" href="#fn:93" rel="footnote">93</a></sup></p>\r
-<p>Something<sup id="fnref:94"><a class="footnote-ref" href="#fn:94" rel="footnote">94</a></sup></p>\r
-<p>Something<sup id="fnref:95"><a class="footnote-ref" href="#fn:95" rel="footnote">95</a></sup></p>\r
-<p>Something<sup id="fnref:96"><a class="footnote-ref" href="#fn:96" rel="footnote">96</a></sup></p>\r
-<p>Something<sup id="fnref:97"><a class="footnote-ref" href="#fn:97" rel="footnote">97</a></sup></p>\r
-<p>Something<sup id="fnref:98"><a class="footnote-ref" href="#fn:98" rel="footnote">98</a></sup></p>\r
-<p>Something<sup id="fnref:99"><a class="footnote-ref" href="#fn:99" rel="footnote">99</a></sup></p>\r
-<p>Something<sup id="fnref:100"><a class="footnote-ref" href="#fn:100" rel="footnote">100</a></sup></p>\r
-<p>Something<sup id="fnref:101"><a class="footnote-ref" href="#fn:101" rel="footnote">101</a></sup></p>\r
-<p>Something<sup id="fnref:102"><a class="footnote-ref" href="#fn:102" rel="footnote">102</a></sup></p>\r
-<p>Something<sup id="fnref:103"><a class="footnote-ref" href="#fn:103" rel="footnote">103</a></sup></p>\r
-<p>Something<sup id="fnref:104"><a class="footnote-ref" href="#fn:104" rel="footnote">104</a></sup></p>\r
-<p>Something<sup id="fnref:105"><a class="footnote-ref" href="#fn:105" rel="footnote">105</a></sup></p>\r
-<p>Something<sup id="fnref:106"><a class="footnote-ref" href="#fn:106" rel="footnote">106</a></sup></p>\r
-<p>Something<sup id="fnref:107"><a class="footnote-ref" href="#fn:107" rel="footnote">107</a></sup></p>\r
-<p>Something<sup id="fnref:108"><a class="footnote-ref" href="#fn:108" rel="footnote">108</a></sup></p>\r
-<p>Something<sup id="fnref:109"><a class="footnote-ref" href="#fn:109" rel="footnote">109</a></sup></p>\r
-<p>Something<sup id="fnref:110"><a class="footnote-ref" href="#fn:110" rel="footnote">110</a></sup></p>\r
-<p>Something<sup id="fnref:111"><a class="footnote-ref" href="#fn:111" rel="footnote">111</a></sup></p>\r
-<p>Something<sup id="fnref:112"><a class="footnote-ref" href="#fn:112" rel="footnote">112</a></sup></p>\r
-<p>Something<sup id="fnref:113"><a class="footnote-ref" href="#fn:113" rel="footnote">113</a></sup></p>\r
-<p>Something<sup id="fnref:114"><a class="footnote-ref" href="#fn:114" rel="footnote">114</a></sup></p>\r
-<p>Something<sup id="fnref:115"><a class="footnote-ref" href="#fn:115" rel="footnote">115</a></sup></p>\r
-<p>Something<sup id="fnref:116"><a class="footnote-ref" href="#fn:116" rel="footnote">116</a></sup></p>\r
-<p>Something<sup id="fnref:117"><a class="footnote-ref" href="#fn:117" rel="footnote">117</a></sup></p>\r
-<p>Something<sup id="fnref:118"><a class="footnote-ref" href="#fn:118" rel="footnote">118</a></sup></p>\r
-<p>Something<sup id="fnref:119"><a class="footnote-ref" href="#fn:119" rel="footnote">119</a></sup></p>\r
-<p>Something<sup id="fnref:120"><a class="footnote-ref" href="#fn:120" rel="footnote">120</a></sup></p>\r
-<p>Something<sup id="fnref:121"><a class="footnote-ref" href="#fn:121" rel="footnote">121</a></sup></p>\r
-<p>Something<sup id="fnref:122"><a class="footnote-ref" href="#fn:122" rel="footnote">122</a></sup></p>\r
-<p>Something<sup id="fnref:123"><a class="footnote-ref" href="#fn:123" rel="footnote">123</a></sup></p>\r
-<p>Something<sup id="fnref:124"><a class="footnote-ref" href="#fn:124" rel="footnote">124</a></sup></p>\r
-<p>Something<sup id="fnref:125"><a class="footnote-ref" href="#fn:125" rel="footnote">125</a></sup></p>\r
-<p>Something<sup id="fnref:126"><a class="footnote-ref" href="#fn:126" rel="footnote">126</a></sup></p>\r
-<p>Something<sup id="fnref:127"><a class="footnote-ref" href="#fn:127" rel="footnote">127</a></sup></p>\r
-<p>Something<sup id="fnref:128"><a class="footnote-ref" href="#fn:128" rel="footnote">128</a></sup></p>\r
-<p>Something<sup id="fnref:129"><a class="footnote-ref" href="#fn:129" rel="footnote">129</a></sup></p>\r
-<p>Something<sup id="fnref:130"><a class="footnote-ref" href="#fn:130" rel="footnote">130</a></sup></p>\r
-<p>Something<sup id="fnref:131"><a class="footnote-ref" href="#fn:131" rel="footnote">131</a></sup></p>\r
-<p>Something<sup id="fnref:132"><a class="footnote-ref" href="#fn:132" rel="footnote">132</a></sup></p>\r
-<p>Something<sup id="fnref:133"><a class="footnote-ref" href="#fn:133" rel="footnote">133</a></sup></p>\r
-<p>Something<sup id="fnref:134"><a class="footnote-ref" href="#fn:134" rel="footnote">134</a></sup></p>\r
-<p>Something<sup id="fnref:135"><a class="footnote-ref" href="#fn:135" rel="footnote">135</a></sup></p>\r
-<p>Something<sup id="fnref:136"><a class="footnote-ref" href="#fn:136" rel="footnote">136</a></sup></p>\r
-<p>Something<sup id="fnref:137"><a class="footnote-ref" href="#fn:137" rel="footnote">137</a></sup></p>\r
-<p>Something<sup id="fnref:138"><a class="footnote-ref" href="#fn:138" rel="footnote">138</a></sup></p>\r
-<p>Something<sup id="fnref:139"><a class="footnote-ref" href="#fn:139" rel="footnote">139</a></sup></p>\r
-<p>Something<sup id="fnref:140"><a class="footnote-ref" href="#fn:140" rel="footnote">140</a></sup></p>\r
-<p>Something<sup id="fnref:141"><a class="footnote-ref" href="#fn:141" rel="footnote">141</a></sup></p>\r
-<p>Something<sup id="fnref:142"><a class="footnote-ref" href="#fn:142" rel="footnote">142</a></sup></p>\r
-<p>Something<sup id="fnref:143"><a class="footnote-ref" href="#fn:143" rel="footnote">143</a></sup></p>\r
-<p>Something<sup id="fnref:144"><a class="footnote-ref" href="#fn:144" rel="footnote">144</a></sup></p>\r
-<p>Something<sup id="fnref:145"><a class="footnote-ref" href="#fn:145" rel="footnote">145</a></sup></p>\r
-<p>Something<sup id="fnref:146"><a class="footnote-ref" href="#fn:146" rel="footnote">146</a></sup></p>\r
-<p>Something<sup id="fnref:147"><a class="footnote-ref" href="#fn:147" rel="footnote">147</a></sup></p>\r
-<p>Something<sup id="fnref:148"><a class="footnote-ref" href="#fn:148" rel="footnote">148</a></sup></p>\r
-<p>Something<sup id="fnref:149"><a class="footnote-ref" href="#fn:149" rel="footnote">149</a></sup></p>\r
-<p>Something<sup id="fnref:150"><a class="footnote-ref" href="#fn:150" rel="footnote">150</a></sup></p>\r
-<p>Something<sup id="fnref:151"><a class="footnote-ref" href="#fn:151" rel="footnote">151</a></sup></p>\r
-<p>Something<sup id="fnref:152"><a class="footnote-ref" href="#fn:152" rel="footnote">152</a></sup></p>\r
-<p>Something<sup id="fnref:153"><a class="footnote-ref" href="#fn:153" rel="footnote">153</a></sup></p>\r
-<p>Something<sup id="fnref:154"><a class="footnote-ref" href="#fn:154" rel="footnote">154</a></sup></p>\r
-<p>Something<sup id="fnref:155"><a class="footnote-ref" href="#fn:155" rel="footnote">155</a></sup></p>\r
-<p>Something<sup id="fnref:156"><a class="footnote-ref" href="#fn:156" rel="footnote">156</a></sup></p>\r
-<p>Something<sup id="fnref:157"><a class="footnote-ref" href="#fn:157" rel="footnote">157</a></sup></p>\r
-<p>Something<sup id="fnref:158"><a class="footnote-ref" href="#fn:158" rel="footnote">158</a></sup></p>\r
-<p>Something<sup id="fnref:159"><a class="footnote-ref" href="#fn:159" rel="footnote">159</a></sup></p>\r
-<p>Something<sup id="fnref:160"><a class="footnote-ref" href="#fn:160" rel="footnote">160</a></sup></p>\r
-<p>Something<sup id="fnref:161"><a class="footnote-ref" href="#fn:161" rel="footnote">161</a></sup></p>\r
-<p>Something<sup id="fnref:162"><a class="footnote-ref" href="#fn:162" rel="footnote">162</a></sup></p>\r
-<p>Something<sup id="fnref:163"><a class="footnote-ref" href="#fn:163" rel="footnote">163</a></sup></p>\r
-<p>Something<sup id="fnref:164"><a class="footnote-ref" href="#fn:164" rel="footnote">164</a></sup></p>\r
-<p>Something<sup id="fnref:165"><a class="footnote-ref" href="#fn:165" rel="footnote">165</a></sup></p>\r
-<p>Something<sup id="fnref:166"><a class="footnote-ref" href="#fn:166" rel="footnote">166</a></sup></p>\r
-<p>Something<sup id="fnref:167"><a class="footnote-ref" href="#fn:167" rel="footnote">167</a></sup></p>\r
-<p>Something<sup id="fnref:168"><a class="footnote-ref" href="#fn:168" rel="footnote">168</a></sup></p>\r
-<p>Something<sup id="fnref:169"><a class="footnote-ref" href="#fn:169" rel="footnote">169</a></sup></p>\r
-<p>Something<sup id="fnref:170"><a class="footnote-ref" href="#fn:170" rel="footnote">170</a></sup></p>\r
-<p>Something<sup id="fnref:171"><a class="footnote-ref" href="#fn:171" rel="footnote">171</a></sup></p>\r
-<p>Something<sup id="fnref:172"><a class="footnote-ref" href="#fn:172" rel="footnote">172</a></sup></p>\r
-<p>Something<sup id="fnref:173"><a class="footnote-ref" href="#fn:173" rel="footnote">173</a></sup></p>\r
-<p>Something<sup id="fnref:174"><a class="footnote-ref" href="#fn:174" rel="footnote">174</a></sup></p>\r
-<p>Something<sup id="fnref:175"><a class="footnote-ref" href="#fn:175" rel="footnote">175</a></sup></p>\r
-<p>Something<sup id="fnref:176"><a class="footnote-ref" href="#fn:176" rel="footnote">176</a></sup></p>\r
-<p>Something<sup id="fnref:177"><a class="footnote-ref" href="#fn:177" rel="footnote">177</a></sup></p>\r
-<p>Something<sup id="fnref:178"><a class="footnote-ref" href="#fn:178" rel="footnote">178</a></sup></p>\r
-<p>Something<sup id="fnref:179"><a class="footnote-ref" href="#fn:179" rel="footnote">179</a></sup></p>\r
-<p>Something<sup id="fnref:180"><a class="footnote-ref" href="#fn:180" rel="footnote">180</a></sup></p>\r
-<p>Something<sup id="fnref:181"><a class="footnote-ref" href="#fn:181" rel="footnote">181</a></sup></p>\r
-<p>Something<sup id="fnref:182"><a class="footnote-ref" href="#fn:182" rel="footnote">182</a></sup></p>\r
-<p>Something<sup id="fnref:183"><a class="footnote-ref" href="#fn:183" rel="footnote">183</a></sup></p>\r
-<p>Something<sup id="fnref:184"><a class="footnote-ref" href="#fn:184" rel="footnote">184</a></sup></p>\r
-<p>Something<sup id="fnref:185"><a class="footnote-ref" href="#fn:185" rel="footnote">185</a></sup></p>\r
-<p>Something<sup id="fnref:186"><a class="footnote-ref" href="#fn:186" rel="footnote">186</a></sup></p>\r
-<p>Something<sup id="fnref:187"><a class="footnote-ref" href="#fn:187" rel="footnote">187</a></sup></p>\r
-<p>Something<sup id="fnref:188"><a class="footnote-ref" href="#fn:188" rel="footnote">188</a></sup></p>\r
-<p>Something<sup id="fnref:189"><a class="footnote-ref" href="#fn:189" rel="footnote">189</a></sup></p>\r
-<p>Something<sup id="fnref:190"><a class="footnote-ref" href="#fn:190" rel="footnote">190</a></sup></p>\r
-<p>Something<sup id="fnref:191"><a class="footnote-ref" href="#fn:191" rel="footnote">191</a></sup></p>\r
-<p>Something<sup id="fnref:192"><a class="footnote-ref" href="#fn:192" rel="footnote">192</a></sup></p>\r
-<p>Something<sup id="fnref:193"><a class="footnote-ref" href="#fn:193" rel="footnote">193</a></sup></p>\r
-<p>Something<sup id="fnref:194"><a class="footnote-ref" href="#fn:194" rel="footnote">194</a></sup></p>\r
-<p>Something<sup id="fnref:195"><a class="footnote-ref" href="#fn:195" rel="footnote">195</a></sup></p>\r
-<p>Something<sup id="fnref:196"><a class="footnote-ref" href="#fn:196" rel="footnote">196</a></sup></p>\r
-<p>Something<sup id="fnref:197"><a class="footnote-ref" href="#fn:197" rel="footnote">197</a></sup></p>\r
-<p>Something<sup id="fnref:198"><a class="footnote-ref" href="#fn:198" rel="footnote">198</a></sup></p>\r
-<p>Something<sup id="fnref:199"><a class="footnote-ref" href="#fn:199" rel="footnote">199</a></sup></p>\r
-<p>Something<sup id="fnref:200"><a class="footnote-ref" href="#fn:200" rel="footnote">200</a></sup></p>\r
-<p>Something<sup id="fnref:201"><a class="footnote-ref" href="#fn:201" rel="footnote">201</a></sup></p>\r
-<p>Something<sup id="fnref:202"><a class="footnote-ref" href="#fn:202" rel="footnote">202</a></sup></p>\r
-<p>Something<sup id="fnref:203"><a class="footnote-ref" href="#fn:203" rel="footnote">203</a></sup></p>\r
-<p>Something<sup id="fnref:204"><a class="footnote-ref" href="#fn:204" rel="footnote">204</a></sup></p>\r
-<p>Something<sup id="fnref:205"><a class="footnote-ref" href="#fn:205" rel="footnote">205</a></sup></p>\r
-<p>Something<sup id="fnref:206"><a class="footnote-ref" href="#fn:206" rel="footnote">206</a></sup></p>\r
-<p>Something<sup id="fnref:207"><a class="footnote-ref" href="#fn:207" rel="footnote">207</a></sup></p>\r
-<p>Something<sup id="fnref:208"><a class="footnote-ref" href="#fn:208" rel="footnote">208</a></sup></p>\r
-<p>Something<sup id="fnref:209"><a class="footnote-ref" href="#fn:209" rel="footnote">209</a></sup></p>\r
-<p>Something<sup id="fnref:210"><a class="footnote-ref" href="#fn:210" rel="footnote">210</a></sup></p>\r
-<p>Something<sup id="fnref:211"><a class="footnote-ref" href="#fn:211" rel="footnote">211</a></sup></p>\r
-<p>Something<sup id="fnref:212"><a class="footnote-ref" href="#fn:212" rel="footnote">212</a></sup></p>\r
-<p>Something<sup id="fnref:213"><a class="footnote-ref" href="#fn:213" rel="footnote">213</a></sup></p>\r
-<p>Something<sup id="fnref:214"><a class="footnote-ref" href="#fn:214" rel="footnote">214</a></sup></p>\r
-<p>Something<sup id="fnref:215"><a class="footnote-ref" href="#fn:215" rel="footnote">215</a></sup></p>\r
-<p>Something<sup id="fnref:216"><a class="footnote-ref" href="#fn:216" rel="footnote">216</a></sup></p>\r
-<p>Something<sup id="fnref:217"><a class="footnote-ref" href="#fn:217" rel="footnote">217</a></sup></p>\r
-<p>Something<sup id="fnref:218"><a class="footnote-ref" href="#fn:218" rel="footnote">218</a></sup></p>\r
-<p>Something<sup id="fnref:219"><a class="footnote-ref" href="#fn:219" rel="footnote">219</a></sup></p>\r
-<p>Something<sup id="fnref:220"><a class="footnote-ref" href="#fn:220" rel="footnote">220</a></sup></p>\r
-<p>Something<sup id="fnref:221"><a class="footnote-ref" href="#fn:221" rel="footnote">221</a></sup></p>\r
-<p>Something<sup id="fnref:222"><a class="footnote-ref" href="#fn:222" rel="footnote">222</a></sup></p>\r
-<p>Something<sup id="fnref:223"><a class="footnote-ref" href="#fn:223" rel="footnote">223</a></sup></p>\r
-<p>Something<sup id="fnref:224"><a class="footnote-ref" href="#fn:224" rel="footnote">224</a></sup></p>\r
-<p>Something<sup id="fnref:225"><a class="footnote-ref" href="#fn:225" rel="footnote">225</a></sup></p>\r
-<p>Something<sup id="fnref:226"><a class="footnote-ref" href="#fn:226" rel="footnote">226</a></sup></p>\r
-<p>Something<sup id="fnref:227"><a class="footnote-ref" href="#fn:227" rel="footnote">227</a></sup></p>\r
-<p>Something<sup id="fnref:228"><a class="footnote-ref" href="#fn:228" rel="footnote">228</a></sup></p>\r
-<p>Something<sup id="fnref:229"><a class="footnote-ref" href="#fn:229" rel="footnote">229</a></sup></p>\r
-<p>Something<sup id="fnref:230"><a class="footnote-ref" href="#fn:230" rel="footnote">230</a></sup></p>\r
-<p>Something<sup id="fnref:231"><a class="footnote-ref" href="#fn:231" rel="footnote">231</a></sup></p>\r
-<p>Something<sup id="fnref:232"><a class="footnote-ref" href="#fn:232" rel="footnote">232</a></sup></p>\r
-<p>Something<sup id="fnref:233"><a class="footnote-ref" href="#fn:233" rel="footnote">233</a></sup></p>\r
-<p>Something<sup id="fnref:234"><a class="footnote-ref" href="#fn:234" rel="footnote">234</a></sup></p>\r
-<p>Something<sup id="fnref:235"><a class="footnote-ref" href="#fn:235" rel="footnote">235</a></sup></p>\r
-<p>Something<sup id="fnref:236"><a class="footnote-ref" href="#fn:236" rel="footnote">236</a></sup></p>\r
-<p>Something<sup id="fnref:237"><a class="footnote-ref" href="#fn:237" rel="footnote">237</a></sup></p>\r
-<p>Something<sup id="fnref:238"><a class="footnote-ref" href="#fn:238" rel="footnote">238</a></sup></p>\r
-<p>Something<sup id="fnref:239"><a class="footnote-ref" href="#fn:239" rel="footnote">239</a></sup></p>\r
-<p>Something<sup id="fnref:240"><a class="footnote-ref" href="#fn:240" rel="footnote">240</a></sup></p>\r
-<p>Something<sup id="fnref:241"><a class="footnote-ref" href="#fn:241" rel="footnote">241</a></sup></p>\r
-<p>Something<sup id="fnref:242"><a class="footnote-ref" href="#fn:242" rel="footnote">242</a></sup></p>\r
-<p>Something<sup id="fnref:243"><a class="footnote-ref" href="#fn:243" rel="footnote">243</a></sup></p>\r
-<p>Something<sup id="fnref:244"><a class="footnote-ref" href="#fn:244" rel="footnote">244</a></sup></p>\r
-<p>Something<sup id="fnref:245"><a class="footnote-ref" href="#fn:245" rel="footnote">245</a></sup></p>\r
-<p>Something<sup id="fnref:246"><a class="footnote-ref" href="#fn:246" rel="footnote">246</a></sup></p>\r
-<p>Something<sup id="fnref:247"><a class="footnote-ref" href="#fn:247" rel="footnote">247</a></sup></p>\r
-<p>Something<sup id="fnref:248"><a class="footnote-ref" href="#fn:248" rel="footnote">248</a></sup></p>\r
-<p>Something<sup id="fnref:249"><a class="footnote-ref" href="#fn:249" rel="footnote">249</a></sup></p>\r
-<p>Something<sup id="fnref:250"><a class="footnote-ref" href="#fn:250" rel="footnote">250</a></sup></p>\r
-<p>Something<sup id="fnref:251"><a class="footnote-ref" href="#fn:251" rel="footnote">251</a></sup></p>\r
-<p>Something<sup id="fnref:252"><a class="footnote-ref" href="#fn:252" rel="footnote">252</a></sup></p>\r
-<p>Something<sup id="fnref:253"><a class="footnote-ref" href="#fn:253" rel="footnote">253</a></sup></p>\r
-<p>Something<sup id="fnref:254"><a class="footnote-ref" href="#fn:254" rel="footnote">254</a></sup></p>\r
-<p>Something<sup id="fnref:255"><a class="footnote-ref" href="#fn:255" rel="footnote">255</a></sup></p>\r
-<p>Something<sup id="fnref:256"><a class="footnote-ref" href="#fn:256" rel="footnote">256</a></sup></p>\r
-<p>Something<sup id="fnref:257"><a class="footnote-ref" href="#fn:257" rel="footnote">257</a></sup></p>\r
-<p>Something<sup id="fnref:258"><a class="footnote-ref" href="#fn:258" rel="footnote">258</a></sup></p>\r
-<p>Something<sup id="fnref:259"><a class="footnote-ref" href="#fn:259" rel="footnote">259</a></sup></p>\r
-<p>Something<sup id="fnref:260"><a class="footnote-ref" href="#fn:260" rel="footnote">260</a></sup></p>\r
-<p>Something<sup id="fnref:261"><a class="footnote-ref" href="#fn:261" rel="footnote">261</a></sup></p>\r
-<p>Something<sup id="fnref:262"><a class="footnote-ref" href="#fn:262" rel="footnote">262</a></sup></p>\r
-<p>Something<sup id="fnref:263"><a class="footnote-ref" href="#fn:263" rel="footnote">263</a></sup></p>\r
-<p>Something<sup id="fnref:264"><a class="footnote-ref" href="#fn:264" rel="footnote">264</a></sup></p>\r
-<p>Something<sup id="fnref:265"><a class="footnote-ref" href="#fn:265" rel="footnote">265</a></sup></p>\r
-<p>Something<sup id="fnref:266"><a class="footnote-ref" href="#fn:266" rel="footnote">266</a></sup></p>\r
-<p>Something<sup id="fnref:267"><a class="footnote-ref" href="#fn:267" rel="footnote">267</a></sup></p>\r
-<p>Something<sup id="fnref:268"><a class="footnote-ref" href="#fn:268" rel="footnote">268</a></sup></p>\r
-<p>Something<sup id="fnref:269"><a class="footnote-ref" href="#fn:269" rel="footnote">269</a></sup></p>\r
-<p>Something<sup id="fnref:270"><a class="footnote-ref" href="#fn:270" rel="footnote">270</a></sup></p>\r
-<p>Something<sup id="fnref:271"><a class="footnote-ref" href="#fn:271" rel="footnote">271</a></sup></p>\r
-<p>Something<sup id="fnref:272"><a class="footnote-ref" href="#fn:272" rel="footnote">272</a></sup></p>\r
-<p>Something<sup id="fnref:273"><a class="footnote-ref" href="#fn:273" rel="footnote">273</a></sup></p>\r
-<p>Something<sup id="fnref:274"><a class="footnote-ref" href="#fn:274" rel="footnote">274</a></sup></p>\r
-<p>Something<sup id="fnref:275"><a class="footnote-ref" href="#fn:275" rel="footnote">275</a></sup></p>\r
-<p>Something<sup id="fnref:276"><a class="footnote-ref" href="#fn:276" rel="footnote">276</a></sup></p>\r
-<p>Something<sup id="fnref:277"><a class="footnote-ref" href="#fn:277" rel="footnote">277</a></sup></p>\r
-<p>Something<sup id="fnref:278"><a class="footnote-ref" href="#fn:278" rel="footnote">278</a></sup></p>\r
-<p>Something<sup id="fnref:279"><a class="footnote-ref" href="#fn:279" rel="footnote">279</a></sup></p>\r
-<p>Something<sup id="fnref:280"><a class="footnote-ref" href="#fn:280" rel="footnote">280</a></sup></p>\r
-<p>Something<sup id="fnref:281"><a class="footnote-ref" href="#fn:281" rel="footnote">281</a></sup></p>\r
-<p>Something<sup id="fnref:282"><a class="footnote-ref" href="#fn:282" rel="footnote">282</a></sup></p>\r
-<p>Something<sup id="fnref:283"><a class="footnote-ref" href="#fn:283" rel="footnote">283</a></sup></p>\r
-<p>Something<sup id="fnref:284"><a class="footnote-ref" href="#fn:284" rel="footnote">284</a></sup></p>\r
-<p>Something<sup id="fnref:285"><a class="footnote-ref" href="#fn:285" rel="footnote">285</a></sup></p>\r
-<p>Something<sup id="fnref:286"><a class="footnote-ref" href="#fn:286" rel="footnote">286</a></sup></p>\r
-<p>Something<sup id="fnref:287"><a class="footnote-ref" href="#fn:287" rel="footnote">287</a></sup></p>\r
-<p>Something<sup id="fnref:288"><a class="footnote-ref" href="#fn:288" rel="footnote">288</a></sup></p>\r
-<p>Something<sup id="fnref:289"><a class="footnote-ref" href="#fn:289" rel="footnote">289</a></sup></p>\r
-<p>Something<sup id="fnref:290"><a class="footnote-ref" href="#fn:290" rel="footnote">290</a></sup></p>\r
-<p>Something<sup id="fnref:291"><a class="footnote-ref" href="#fn:291" rel="footnote">291</a></sup></p>\r
-<p>Something<sup id="fnref:292"><a class="footnote-ref" href="#fn:292" rel="footnote">292</a></sup></p>\r
-<p>Something<sup id="fnref:293"><a class="footnote-ref" href="#fn:293" rel="footnote">293</a></sup></p>\r
-<p>Something<sup id="fnref:294"><a class="footnote-ref" href="#fn:294" rel="footnote">294</a></sup></p>\r
-<p>Something<sup id="fnref:295"><a class="footnote-ref" href="#fn:295" rel="footnote">295</a></sup></p>\r
-<p>Something<sup id="fnref:296"><a class="footnote-ref" href="#fn:296" rel="footnote">296</a></sup></p>\r
-<p>Something<sup id="fnref:297"><a class="footnote-ref" href="#fn:297" rel="footnote">297</a></sup></p>\r
-<p>Something<sup id="fnref:298"><a class="footnote-ref" href="#fn:298" rel="footnote">298</a></sup></p>\r
-<p>Something<sup id="fnref:299"><a class="footnote-ref" href="#fn:299" rel="footnote">299</a></sup></p>\r
-<p>Something<sup id="fnref:300"><a class="footnote-ref" href="#fn:300" rel="footnote">300</a></sup></p>\r
-<p>Something<sup id="fnref:301"><a class="footnote-ref" href="#fn:301" rel="footnote">301</a></sup></p>\r
-<p>Something<sup id="fnref:302"><a class="footnote-ref" href="#fn:302" rel="footnote">302</a></sup></p>\r
-<p>Something<sup id="fnref:303"><a class="footnote-ref" href="#fn:303" rel="footnote">303</a></sup></p>\r
-<p>Something<sup id="fnref:304"><a class="footnote-ref" href="#fn:304" rel="footnote">304</a></sup></p>\r
-<p>Something<sup id="fnref:305"><a class="footnote-ref" href="#fn:305" rel="footnote">305</a></sup></p>\r
-<p>Something<sup id="fnref:306"><a class="footnote-ref" href="#fn:306" rel="footnote">306</a></sup></p>\r
-<p>Something<sup id="fnref:307"><a class="footnote-ref" href="#fn:307" rel="footnote">307</a></sup></p>\r
-<p>Something<sup id="fnref:308"><a class="footnote-ref" href="#fn:308" rel="footnote">308</a></sup></p>\r
-<p>Something<sup id="fnref:309"><a class="footnote-ref" href="#fn:309" rel="footnote">309</a></sup></p>\r
-<p>Something<sup id="fnref:310"><a class="footnote-ref" href="#fn:310" rel="footnote">310</a></sup></p>\r
-<p>Something<sup id="fnref:311"><a class="footnote-ref" href="#fn:311" rel="footnote">311</a></sup></p>\r
-<p>Something<sup id="fnref:312"><a class="footnote-ref" href="#fn:312" rel="footnote">312</a></sup></p>\r
-<p>Something<sup id="fnref:313"><a class="footnote-ref" href="#fn:313" rel="footnote">313</a></sup></p>\r
-<p>Something<sup id="fnref:314"><a class="footnote-ref" href="#fn:314" rel="footnote">314</a></sup></p>\r
-<p>Something<sup id="fnref:315"><a class="footnote-ref" href="#fn:315" rel="footnote">315</a></sup></p>\r
-<p>Something<sup id="fnref:316"><a class="footnote-ref" href="#fn:316" rel="footnote">316</a></sup></p>\r
-<p>Something<sup id="fnref:317"><a class="footnote-ref" href="#fn:317" rel="footnote">317</a></sup></p>\r
-<p>Something<sup id="fnref:318"><a class="footnote-ref" href="#fn:318" rel="footnote">318</a></sup></p>\r
-<p>Something<sup id="fnref:319"><a class="footnote-ref" href="#fn:319" rel="footnote">319</a></sup></p>\r
-<p>Something<sup id="fnref:320"><a class="footnote-ref" href="#fn:320" rel="footnote">320</a></sup></p>\r
-<p>Something<sup id="fnref:321"><a class="footnote-ref" href="#fn:321" rel="footnote">321</a></sup></p>\r
-<p>Something<sup id="fnref:322"><a class="footnote-ref" href="#fn:322" rel="footnote">322</a></sup></p>\r
-<p>Something<sup id="fnref:323"><a class="footnote-ref" href="#fn:323" rel="footnote">323</a></sup></p>\r
-<p>Something<sup id="fnref:324"><a class="footnote-ref" href="#fn:324" rel="footnote">324</a></sup></p>\r
-<p>Something<sup id="fnref:325"><a class="footnote-ref" href="#fn:325" rel="footnote">325</a></sup></p>\r
-<p>Something<sup id="fnref:326"><a class="footnote-ref" href="#fn:326" rel="footnote">326</a></sup></p>\r
-<p>Something<sup id="fnref:327"><a class="footnote-ref" href="#fn:327" rel="footnote">327</a></sup></p>\r
-<p>Something<sup id="fnref:328"><a class="footnote-ref" href="#fn:328" rel="footnote">328</a></sup></p>\r
-<p>Something<sup id="fnref:329"><a class="footnote-ref" href="#fn:329" rel="footnote">329</a></sup></p>\r
-<p>Something<sup id="fnref:330"><a class="footnote-ref" href="#fn:330" rel="footnote">330</a></sup></p>\r
-<p>Something<sup id="fnref:331"><a class="footnote-ref" href="#fn:331" rel="footnote">331</a></sup></p>\r
-<p>Something<sup id="fnref:332"><a class="footnote-ref" href="#fn:332" rel="footnote">332</a></sup></p>\r
-<p>Something<sup id="fnref:333"><a class="footnote-ref" href="#fn:333" rel="footnote">333</a></sup></p>\r
-<p>Something<sup id="fnref:334"><a class="footnote-ref" href="#fn:334" rel="footnote">334</a></sup></p>\r
-<p>Something<sup id="fnref:335"><a class="footnote-ref" href="#fn:335" rel="footnote">335</a></sup></p>\r
-<p>Something<sup id="fnref:336"><a class="footnote-ref" href="#fn:336" rel="footnote">336</a></sup></p>\r
-<p>Something<sup id="fnref:337"><a class="footnote-ref" href="#fn:337" rel="footnote">337</a></sup></p>\r
-<p>Something<sup id="fnref:338"><a class="footnote-ref" href="#fn:338" rel="footnote">338</a></sup></p>\r
-<p>Something<sup id="fnref:339"><a class="footnote-ref" href="#fn:339" rel="footnote">339</a></sup></p>\r
-<p>Something<sup id="fnref:340"><a class="footnote-ref" href="#fn:340" rel="footnote">340</a></sup></p>\r
-<p>Something<sup id="fnref:341"><a class="footnote-ref" href="#fn:341" rel="footnote">341</a></sup></p>\r
-<p>Something<sup id="fnref:342"><a class="footnote-ref" href="#fn:342" rel="footnote">342</a></sup></p>\r
-<p>Something<sup id="fnref:343"><a class="footnote-ref" href="#fn:343" rel="footnote">343</a></sup></p>\r
-<p>Something<sup id="fnref:344"><a class="footnote-ref" href="#fn:344" rel="footnote">344</a></sup></p>\r
-<p>Something<sup id="fnref:345"><a class="footnote-ref" href="#fn:345" rel="footnote">345</a></sup></p>\r
-<p>Something<sup id="fnref:346"><a class="footnote-ref" href="#fn:346" rel="footnote">346</a></sup></p>\r
-<p>Something<sup id="fnref:347"><a class="footnote-ref" href="#fn:347" rel="footnote">347</a></sup></p>\r
-<p>Something<sup id="fnref:348"><a class="footnote-ref" href="#fn:348" rel="footnote">348</a></sup></p>\r
-<p>Something<sup id="fnref:349"><a class="footnote-ref" href="#fn:349" rel="footnote">349</a></sup></p>\r
-<p>Something<sup id="fnref:350"><a class="footnote-ref" href="#fn:350" rel="footnote">350</a></sup></p>\r
-<p>Something<sup id="fnref:351"><a class="footnote-ref" href="#fn:351" rel="footnote">351</a></sup></p>\r
-<p>Something<sup id="fnref:352"><a class="footnote-ref" href="#fn:352" rel="footnote">352</a></sup></p>\r
-<p>Something<sup id="fnref:353"><a class="footnote-ref" href="#fn:353" rel="footnote">353</a></sup></p>\r
-<p>Something<sup id="fnref:354"><a class="footnote-ref" href="#fn:354" rel="footnote">354</a></sup></p>\r
-<p>Something<sup id="fnref:355"><a class="footnote-ref" href="#fn:355" rel="footnote">355</a></sup></p>\r
-<p>Something<sup id="fnref:356"><a class="footnote-ref" href="#fn:356" rel="footnote">356</a></sup></p>\r
-<p>Something<sup id="fnref:357"><a class="footnote-ref" href="#fn:357" rel="footnote">357</a></sup></p>\r
-<p>Something<sup id="fnref:358"><a class="footnote-ref" href="#fn:358" rel="footnote">358</a></sup></p>\r
-<p>Something<sup id="fnref:359"><a class="footnote-ref" href="#fn:359" rel="footnote">359</a></sup></p>\r
-<p>Something<sup id="fnref:360"><a class="footnote-ref" href="#fn:360" rel="footnote">360</a></sup></p>\r
-<p>Something<sup id="fnref:361"><a class="footnote-ref" href="#fn:361" rel="footnote">361</a></sup></p>\r
-<p>Something<sup id="fnref:362"><a class="footnote-ref" href="#fn:362" rel="footnote">362</a></sup></p>\r
-<p>Something<sup id="fnref:363"><a class="footnote-ref" href="#fn:363" rel="footnote">363</a></sup></p>\r
-<p>Something<sup id="fnref:364"><a class="footnote-ref" href="#fn:364" rel="footnote">364</a></sup></p>\r
-<p>Something<sup id="fnref:365"><a class="footnote-ref" href="#fn:365" rel="footnote">365</a></sup></p>\r
-<p>Something<sup id="fnref:366"><a class="footnote-ref" href="#fn:366" rel="footnote">366</a></sup></p>\r
-<p>Something<sup id="fnref:367"><a class="footnote-ref" href="#fn:367" rel="footnote">367</a></sup></p>\r
-<p>Something<sup id="fnref:368"><a class="footnote-ref" href="#fn:368" rel="footnote">368</a></sup></p>\r
-<p>Something<sup id="fnref:369"><a class="footnote-ref" href="#fn:369" rel="footnote">369</a></sup></p>\r
-<p>Something<sup id="fnref:370"><a class="footnote-ref" href="#fn:370" rel="footnote">370</a></sup></p>\r
-<p>Something<sup id="fnref:371"><a class="footnote-ref" href="#fn:371" rel="footnote">371</a></sup></p>\r
-<p>Something<sup id="fnref:372"><a class="footnote-ref" href="#fn:372" rel="footnote">372</a></sup></p>\r
-<p>Something<sup id="fnref:373"><a class="footnote-ref" href="#fn:373" rel="footnote">373</a></sup></p>\r
-<p>Something<sup id="fnref:374"><a class="footnote-ref" href="#fn:374" rel="footnote">374</a></sup></p>\r
-<p>Something<sup id="fnref:375"><a class="footnote-ref" href="#fn:375" rel="footnote">375</a></sup></p>\r
-<p>Something<sup id="fnref:376"><a class="footnote-ref" href="#fn:376" rel="footnote">376</a></sup></p>\r
-<p>Something<sup id="fnref:377"><a class="footnote-ref" href="#fn:377" rel="footnote">377</a></sup></p>\r
-<p>Something<sup id="fnref:378"><a class="footnote-ref" href="#fn:378" rel="footnote">378</a></sup></p>\r
-<p>Something<sup id="fnref:379"><a class="footnote-ref" href="#fn:379" rel="footnote">379</a></sup></p>\r
-<p>Something<sup id="fnref:380"><a class="footnote-ref" href="#fn:380" rel="footnote">380</a></sup></p>\r
-<p>Something<sup id="fnref:381"><a class="footnote-ref" href="#fn:381" rel="footnote">381</a></sup></p>\r
-<p>Something<sup id="fnref:382"><a class="footnote-ref" href="#fn:382" rel="footnote">382</a></sup></p>\r
-<p>Something<sup id="fnref:383"><a class="footnote-ref" href="#fn:383" rel="footnote">383</a></sup></p>\r
-<p>Something<sup id="fnref:384"><a class="footnote-ref" href="#fn:384" rel="footnote">384</a></sup></p>\r
-<p>Something<sup id="fnref:385"><a class="footnote-ref" href="#fn:385" rel="footnote">385</a></sup></p>\r
-<p>Something<sup id="fnref:386"><a class="footnote-ref" href="#fn:386" rel="footnote">386</a></sup></p>\r
-<p>Something<sup id="fnref:387"><a class="footnote-ref" href="#fn:387" rel="footnote">387</a></sup></p>\r
-<p>Something<sup id="fnref:388"><a class="footnote-ref" href="#fn:388" rel="footnote">388</a></sup></p>\r
-<p>Something<sup id="fnref:389"><a class="footnote-ref" href="#fn:389" rel="footnote">389</a></sup></p>\r
-<p>Something<sup id="fnref:390"><a class="footnote-ref" href="#fn:390" rel="footnote">390</a></sup></p>\r
-<p>Something<sup id="fnref:391"><a class="footnote-ref" href="#fn:391" rel="footnote">391</a></sup></p>\r
-<p>Something<sup id="fnref:392"><a class="footnote-ref" href="#fn:392" rel="footnote">392</a></sup></p>\r
-<p>Something<sup id="fnref:393"><a class="footnote-ref" href="#fn:393" rel="footnote">393</a></sup></p>\r
-<p>Something<sup id="fnref:394"><a class="footnote-ref" href="#fn:394" rel="footnote">394</a></sup></p>\r
-<p>Something<sup id="fnref:395"><a class="footnote-ref" href="#fn:395" rel="footnote">395</a></sup></p>\r
-<p>Something<sup id="fnref:396"><a class="footnote-ref" href="#fn:396" rel="footnote">396</a></sup></p>\r
-<p>Something<sup id="fnref:397"><a class="footnote-ref" href="#fn:397" rel="footnote">397</a></sup></p>\r
-<p>Something<sup id="fnref:398"><a class="footnote-ref" href="#fn:398" rel="footnote">398</a></sup></p>\r
-<p>Something<sup id="fnref:399"><a class="footnote-ref" href="#fn:399" rel="footnote">399</a></sup></p>\r
-<p>Something<sup id="fnref:400"><a class="footnote-ref" href="#fn:400" rel="footnote">400</a></sup></p>\r
-<p>Something<sup id="fnref:401"><a class="footnote-ref" href="#fn:401" rel="footnote">401</a></sup></p>\r
-<p>Something<sup id="fnref:402"><a class="footnote-ref" href="#fn:402" rel="footnote">402</a></sup></p>\r
-<p>Something<sup id="fnref:403"><a class="footnote-ref" href="#fn:403" rel="footnote">403</a></sup></p>\r
-<p>Something<sup id="fnref:404"><a class="footnote-ref" href="#fn:404" rel="footnote">404</a></sup></p>\r
-<p>Something<sup id="fnref:405"><a class="footnote-ref" href="#fn:405" rel="footnote">405</a></sup></p>\r
-<p>Something<sup id="fnref:406"><a class="footnote-ref" href="#fn:406" rel="footnote">406</a></sup></p>\r
-<p>Something<sup id="fnref:407"><a class="footnote-ref" href="#fn:407" rel="footnote">407</a></sup></p>\r
-<p>Something<sup id="fnref:408"><a class="footnote-ref" href="#fn:408" rel="footnote">408</a></sup></p>\r
-<p>Something<sup id="fnref:409"><a class="footnote-ref" href="#fn:409" rel="footnote">409</a></sup></p>\r
-<p>Something<sup id="fnref:410"><a class="footnote-ref" href="#fn:410" rel="footnote">410</a></sup></p>\r
-<p>Something<sup id="fnref:411"><a class="footnote-ref" href="#fn:411" rel="footnote">411</a></sup></p>\r
-<p>Something<sup id="fnref:412"><a class="footnote-ref" href="#fn:412" rel="footnote">412</a></sup></p>\r
-<p>Something<sup id="fnref:413"><a class="footnote-ref" href="#fn:413" rel="footnote">413</a></sup></p>\r
-<p>Something<sup id="fnref:414"><a class="footnote-ref" href="#fn:414" rel="footnote">414</a></sup></p>\r
-<p>Something<sup id="fnref:415"><a class="footnote-ref" href="#fn:415" rel="footnote">415</a></sup></p>\r
-<p>Something<sup id="fnref:416"><a class="footnote-ref" href="#fn:416" rel="footnote">416</a></sup></p>\r
-<p>Something<sup id="fnref:417"><a class="footnote-ref" href="#fn:417" rel="footnote">417</a></sup></p>\r
-<p>Something<sup id="fnref:418"><a class="footnote-ref" href="#fn:418" rel="footnote">418</a></sup></p>\r
-<p>Something<sup id="fnref:419"><a class="footnote-ref" href="#fn:419" rel="footnote">419</a></sup></p>\r
-<p>Something<sup id="fnref:420"><a class="footnote-ref" href="#fn:420" rel="footnote">420</a></sup></p>\r
-<p>Something<sup id="fnref:421"><a class="footnote-ref" href="#fn:421" rel="footnote">421</a></sup></p>\r
-<p>Something<sup id="fnref:422"><a class="footnote-ref" href="#fn:422" rel="footnote">422</a></sup></p>\r
-<p>Something<sup id="fnref:423"><a class="footnote-ref" href="#fn:423" rel="footnote">423</a></sup></p>\r
-<p>Something<sup id="fnref:424"><a class="footnote-ref" href="#fn:424" rel="footnote">424</a></sup></p>\r
-<p>Something<sup id="fnref:425"><a class="footnote-ref" href="#fn:425" rel="footnote">425</a></sup></p>\r
-<p>Something<sup id="fnref:426"><a class="footnote-ref" href="#fn:426" rel="footnote">426</a></sup></p>\r
-<p>Something<sup id="fnref:427"><a class="footnote-ref" href="#fn:427" rel="footnote">427</a></sup></p>\r
-<p>Something<sup id="fnref:428"><a class="footnote-ref" href="#fn:428" rel="footnote">428</a></sup></p>\r
-<p>Something<sup id="fnref:429"><a class="footnote-ref" href="#fn:429" rel="footnote">429</a></sup></p>\r
-<p>Something<sup id="fnref:430"><a class="footnote-ref" href="#fn:430" rel="footnote">430</a></sup></p>\r
-<p>Something<sup id="fnref:431"><a class="footnote-ref" href="#fn:431" rel="footnote">431</a></sup></p>\r
-<p>Something<sup id="fnref:432"><a class="footnote-ref" href="#fn:432" rel="footnote">432</a></sup></p>\r
-<p>Something<sup id="fnref:433"><a class="footnote-ref" href="#fn:433" rel="footnote">433</a></sup></p>\r
-<p>Something<sup id="fnref:434"><a class="footnote-ref" href="#fn:434" rel="footnote">434</a></sup></p>\r
-<p>Something<sup id="fnref:435"><a class="footnote-ref" href="#fn:435" rel="footnote">435</a></sup></p>\r
-<p>Something<sup id="fnref:436"><a class="footnote-ref" href="#fn:436" rel="footnote">436</a></sup></p>\r
-<p>Something<sup id="fnref:437"><a class="footnote-ref" href="#fn:437" rel="footnote">437</a></sup></p>\r
-<p>Something<sup id="fnref:438"><a class="footnote-ref" href="#fn:438" rel="footnote">438</a></sup></p>\r
-<p>Something<sup id="fnref:439"><a class="footnote-ref" href="#fn:439" rel="footnote">439</a></sup></p>\r
-<p>Something<sup id="fnref:440"><a class="footnote-ref" href="#fn:440" rel="footnote">440</a></sup></p>\r
-<p>Something<sup id="fnref:441"><a class="footnote-ref" href="#fn:441" rel="footnote">441</a></sup></p>\r
-<p>Something<sup id="fnref:442"><a class="footnote-ref" href="#fn:442" rel="footnote">442</a></sup></p>\r
-<p>Something<sup id="fnref:443"><a class="footnote-ref" href="#fn:443" rel="footnote">443</a></sup></p>\r
-<p>Something<sup id="fnref:444"><a class="footnote-ref" href="#fn:444" rel="footnote">444</a></sup></p>\r
-<p>Something<sup id="fnref:445"><a class="footnote-ref" href="#fn:445" rel="footnote">445</a></sup></p>\r
-<p>Something<sup id="fnref:446"><a class="footnote-ref" href="#fn:446" rel="footnote">446</a></sup></p>\r
-<p>Something<sup id="fnref:447"><a class="footnote-ref" href="#fn:447" rel="footnote">447</a></sup></p>\r
-<p>Something<sup id="fnref:448"><a class="footnote-ref" href="#fn:448" rel="footnote">448</a></sup></p>\r
-<p>Something<sup id="fnref:449"><a class="footnote-ref" href="#fn:449" rel="footnote">449</a></sup></p>\r
-<p>Something<sup id="fnref:450"><a class="footnote-ref" href="#fn:450" rel="footnote">450</a></sup></p>\r
-<p>Something<sup id="fnref:451"><a class="footnote-ref" href="#fn:451" rel="footnote">451</a></sup></p>\r
-<p>Something<sup id="fnref:452"><a class="footnote-ref" href="#fn:452" rel="footnote">452</a></sup></p>\r
-<p>Something<sup id="fnref:453"><a class="footnote-ref" href="#fn:453" rel="footnote">453</a></sup></p>\r
-<p>Something<sup id="fnref:454"><a class="footnote-ref" href="#fn:454" rel="footnote">454</a></sup></p>\r
-<p>Something<sup id="fnref:455"><a class="footnote-ref" href="#fn:455" rel="footnote">455</a></sup></p>\r
-<p>Something<sup id="fnref:456"><a class="footnote-ref" href="#fn:456" rel="footnote">456</a></sup></p>\r
-<p>Something<sup id="fnref:457"><a class="footnote-ref" href="#fn:457" rel="footnote">457</a></sup></p>\r
-<p>Something<sup id="fnref:458"><a class="footnote-ref" href="#fn:458" rel="footnote">458</a></sup></p>\r
-<p>Something<sup id="fnref:459"><a class="footnote-ref" href="#fn:459" rel="footnote">459</a></sup></p>\r
-<p>Something<sup id="fnref:460"><a class="footnote-ref" href="#fn:460" rel="footnote">460</a></sup></p>\r
-<p>Something<sup id="fnref:461"><a class="footnote-ref" href="#fn:461" rel="footnote">461</a></sup></p>\r
-<p>Something<sup id="fnref:462"><a class="footnote-ref" href="#fn:462" rel="footnote">462</a></sup></p>\r
-<p>Something<sup id="fnref:463"><a class="footnote-ref" href="#fn:463" rel="footnote">463</a></sup></p>\r
-<p>Something<sup id="fnref:464"><a class="footnote-ref" href="#fn:464" rel="footnote">464</a></sup></p>\r
-<p>Something<sup id="fnref:465"><a class="footnote-ref" href="#fn:465" rel="footnote">465</a></sup></p>\r
-<p>Something<sup id="fnref:466"><a class="footnote-ref" href="#fn:466" rel="footnote">466</a></sup></p>\r
-<p>Something<sup id="fnref:467"><a class="footnote-ref" href="#fn:467" rel="footnote">467</a></sup></p>\r
-<p>Something<sup id="fnref:468"><a class="footnote-ref" href="#fn:468" rel="footnote">468</a></sup></p>\r
-<p>Something<sup id="fnref:469"><a class="footnote-ref" href="#fn:469" rel="footnote">469</a></sup></p>\r
-<p>Something<sup id="fnref:470"><a class="footnote-ref" href="#fn:470" rel="footnote">470</a></sup></p>\r
-<p>Something<sup id="fnref:471"><a class="footnote-ref" href="#fn:471" rel="footnote">471</a></sup></p>\r
-<p>Something<sup id="fnref:472"><a class="footnote-ref" href="#fn:472" rel="footnote">472</a></sup></p>\r
-<p>Something<sup id="fnref:473"><a class="footnote-ref" href="#fn:473" rel="footnote">473</a></sup></p>\r
-<p>Something<sup id="fnref:474"><a class="footnote-ref" href="#fn:474" rel="footnote">474</a></sup></p>\r
-<p>Something<sup id="fnref:475"><a class="footnote-ref" href="#fn:475" rel="footnote">475</a></sup></p>\r
-<p>Something<sup id="fnref:476"><a class="footnote-ref" href="#fn:476" rel="footnote">476</a></sup></p>\r
-<p>Something<sup id="fnref:477"><a class="footnote-ref" href="#fn:477" rel="footnote">477</a></sup></p>\r
-<p>Something<sup id="fnref:478"><a class="footnote-ref" href="#fn:478" rel="footnote">478</a></sup></p>\r
-<p>Something<sup id="fnref:479"><a class="footnote-ref" href="#fn:479" rel="footnote">479</a></sup></p>\r
-<p>Something<sup id="fnref:480"><a class="footnote-ref" href="#fn:480" rel="footnote">480</a></sup></p>\r
-<p>Something<sup id="fnref:481"><a class="footnote-ref" href="#fn:481" rel="footnote">481</a></sup></p>\r
-<p>Something<sup id="fnref:482"><a class="footnote-ref" href="#fn:482" rel="footnote">482</a></sup></p>\r
-<p>Something<sup id="fnref:483"><a class="footnote-ref" href="#fn:483" rel="footnote">483</a></sup></p>\r
-<p>Something<sup id="fnref:484"><a class="footnote-ref" href="#fn:484" rel="footnote">484</a></sup></p>\r
-<p>Something<sup id="fnref:485"><a class="footnote-ref" href="#fn:485" rel="footnote">485</a></sup></p>\r
-<p>Something<sup id="fnref:486"><a class="footnote-ref" href="#fn:486" rel="footnote">486</a></sup></p>\r
-<p>Something<sup id="fnref:487"><a class="footnote-ref" href="#fn:487" rel="footnote">487</a></sup></p>\r
-<p>Something<sup id="fnref:488"><a class="footnote-ref" href="#fn:488" rel="footnote">488</a></sup></p>\r
-<p>Something<sup id="fnref:489"><a class="footnote-ref" href="#fn:489" rel="footnote">489</a></sup></p>\r
-<p>Something<sup id="fnref:490"><a class="footnote-ref" href="#fn:490" rel="footnote">490</a></sup></p>\r
-<p>Something<sup id="fnref:491"><a class="footnote-ref" href="#fn:491" rel="footnote">491</a></sup></p>\r
-<p>Something<sup id="fnref:492"><a class="footnote-ref" href="#fn:492" rel="footnote">492</a></sup></p>\r
-<p>Something<sup id="fnref:493"><a class="footnote-ref" href="#fn:493" rel="footnote">493</a></sup></p>\r
-<p>Something<sup id="fnref:494"><a class="footnote-ref" href="#fn:494" rel="footnote">494</a></sup></p>\r
-<p>Something<sup id="fnref:495"><a class="footnote-ref" href="#fn:495" rel="footnote">495</a></sup></p>\r
-<p>Something<sup id="fnref:496"><a class="footnote-ref" href="#fn:496" rel="footnote">496</a></sup></p>\r
-<p>Something<sup id="fnref:497"><a class="footnote-ref" href="#fn:497" rel="footnote">497</a></sup></p>\r
-<p>Something<sup id="fnref:498"><a class="footnote-ref" href="#fn:498" rel="footnote">498</a></sup></p>\r
-<p>Something<sup id="fnref:499"><a class="footnote-ref" href="#fn:499" rel="footnote">499</a></sup></p>\r
-<p>Something<sup id="fnref:500"><a class="footnote-ref" href="#fn:500" rel="footnote">500</a></sup></p>\r
-<p>Something<sup id="fnref:501"><a class="footnote-ref" href="#fn:501" rel="footnote">501</a></sup></p>\r
-<p>Something<sup id="fnref:502"><a class="footnote-ref" href="#fn:502" rel="footnote">502</a></sup></p>\r
-<p>Something<sup id="fnref:503"><a class="footnote-ref" href="#fn:503" rel="footnote">503</a></sup></p>\r
-<p>Something<sup id="fnref:504"><a class="footnote-ref" href="#fn:504" rel="footnote">504</a></sup></p>\r
-<p>Something<sup id="fnref:505"><a class="footnote-ref" href="#fn:505" rel="footnote">505</a></sup></p>\r
-<p>Something<sup id="fnref:506"><a class="footnote-ref" href="#fn:506" rel="footnote">506</a></sup></p>\r
-<p>Something<sup id="fnref:507"><a class="footnote-ref" href="#fn:507" rel="footnote">507</a></sup></p>\r
-<p>Something<sup id="fnref:508"><a class="footnote-ref" href="#fn:508" rel="footnote">508</a></sup></p>\r
-<p>Something<sup id="fnref:509"><a class="footnote-ref" href="#fn:509" rel="footnote">509</a></sup></p>\r
-<p>Something<sup id="fnref:510"><a class="footnote-ref" href="#fn:510" rel="footnote">510</a></sup></p>\r
-<p>Something<sup id="fnref:511"><a class="footnote-ref" href="#fn:511" rel="footnote">511</a></sup></p>\r
-<p>Something<sup id="fnref:512"><a class="footnote-ref" href="#fn:512" rel="footnote">512</a></sup></p>\r
-<p>Something<sup id="fnref:513"><a class="footnote-ref" href="#fn:513" rel="footnote">513</a></sup></p>\r
-<p>Something<sup id="fnref:514"><a class="footnote-ref" href="#fn:514" rel="footnote">514</a></sup></p>\r
-<p>Something<sup id="fnref:515"><a class="footnote-ref" href="#fn:515" rel="footnote">515</a></sup></p>\r
-<p>Something<sup id="fnref:516"><a class="footnote-ref" href="#fn:516" rel="footnote">516</a></sup></p>\r
-<p>Something<sup id="fnref:517"><a class="footnote-ref" href="#fn:517" rel="footnote">517</a></sup></p>\r
-<p>Something<sup id="fnref:518"><a class="footnote-ref" href="#fn:518" rel="footnote">518</a></sup></p>\r
-<p>Something<sup id="fnref:519"><a class="footnote-ref" href="#fn:519" rel="footnote">519</a></sup></p>\r
-<p>Something<sup id="fnref:520"><a class="footnote-ref" href="#fn:520" rel="footnote">520</a></sup></p>\r
-<p>Something<sup id="fnref:521"><a class="footnote-ref" href="#fn:521" rel="footnote">521</a></sup></p>\r
-<p>Something<sup id="fnref:522"><a class="footnote-ref" href="#fn:522" rel="footnote">522</a></sup></p>\r
-<p>Something<sup id="fnref:523"><a class="footnote-ref" href="#fn:523" rel="footnote">523</a></sup></p>\r
-<p>Something<sup id="fnref:524"><a class="footnote-ref" href="#fn:524" rel="footnote">524</a></sup></p>\r
-<p>Something<sup id="fnref:525"><a class="footnote-ref" href="#fn:525" rel="footnote">525</a></sup></p>\r
-<p>Something<sup id="fnref:526"><a class="footnote-ref" href="#fn:526" rel="footnote">526</a></sup></p>\r
-<p>Something<sup id="fnref:527"><a class="footnote-ref" href="#fn:527" rel="footnote">527</a></sup></p>\r
-<p>Something<sup id="fnref:528"><a class="footnote-ref" href="#fn:528" rel="footnote">528</a></sup></p>\r
-<p>Something<sup id="fnref:529"><a class="footnote-ref" href="#fn:529" rel="footnote">529</a></sup></p>\r
-<p>Something<sup id="fnref:530"><a class="footnote-ref" href="#fn:530" rel="footnote">530</a></sup></p>\r
-<p>Something<sup id="fnref:531"><a class="footnote-ref" href="#fn:531" rel="footnote">531</a></sup></p>\r
-<p>Something<sup id="fnref:532"><a class="footnote-ref" href="#fn:532" rel="footnote">532</a></sup></p>\r
-<p>Something<sup id="fnref:533"><a class="footnote-ref" href="#fn:533" rel="footnote">533</a></sup></p>\r
-<p>Something<sup id="fnref:534"><a class="footnote-ref" href="#fn:534" rel="footnote">534</a></sup></p>\r
-<p>Something<sup id="fnref:535"><a class="footnote-ref" href="#fn:535" rel="footnote">535</a></sup></p>\r
-<p>Something<sup id="fnref:536"><a class="footnote-ref" href="#fn:536" rel="footnote">536</a></sup></p>\r
-<p>Something<sup id="fnref:537"><a class="footnote-ref" href="#fn:537" rel="footnote">537</a></sup></p>\r
-<p>Something<sup id="fnref:538"><a class="footnote-ref" href="#fn:538" rel="footnote">538</a></sup></p>\r
-<p>Something<sup id="fnref:539"><a class="footnote-ref" href="#fn:539" rel="footnote">539</a></sup></p>\r
-<p>Something<sup id="fnref:540"><a class="footnote-ref" href="#fn:540" rel="footnote">540</a></sup></p>\r
-<p>Something<sup id="fnref:541"><a class="footnote-ref" href="#fn:541" rel="footnote">541</a></sup></p>\r
-<p>Something<sup id="fnref:542"><a class="footnote-ref" href="#fn:542" rel="footnote">542</a></sup></p>\r
-<p>Something<sup id="fnref:543"><a class="footnote-ref" href="#fn:543" rel="footnote">543</a></sup></p>\r
-<p>Something<sup id="fnref:544"><a class="footnote-ref" href="#fn:544" rel="footnote">544</a></sup></p>\r
-<p>Something<sup id="fnref:545"><a class="footnote-ref" href="#fn:545" rel="footnote">545</a></sup></p>\r
-<p>Something<sup id="fnref:546"><a class="footnote-ref" href="#fn:546" rel="footnote">546</a></sup></p>\r
-<p>Something<sup id="fnref:547"><a class="footnote-ref" href="#fn:547" rel="footnote">547</a></sup></p>\r
-<p>Something<sup id="fnref:548"><a class="footnote-ref" href="#fn:548" rel="footnote">548</a></sup></p>\r
-<p>Something<sup id="fnref:549"><a class="footnote-ref" href="#fn:549" rel="footnote">549</a></sup></p>\r
-<p>Something<sup id="fnref:550"><a class="footnote-ref" href="#fn:550" rel="footnote">550</a></sup></p>\r
-<p>Something<sup id="fnref:551"><a class="footnote-ref" href="#fn:551" rel="footnote">551</a></sup></p>\r
-<p>Something<sup id="fnref:552"><a class="footnote-ref" href="#fn:552" rel="footnote">552</a></sup></p>\r
-<p>Something<sup id="fnref:553"><a class="footnote-ref" href="#fn:553" rel="footnote">553</a></sup></p>\r
-<p>Something<sup id="fnref:554"><a class="footnote-ref" href="#fn:554" rel="footnote">554</a></sup></p>\r
-<p>Something<sup id="fnref:555"><a class="footnote-ref" href="#fn:555" rel="footnote">555</a></sup></p>\r
-<p>Something<sup id="fnref:556"><a class="footnote-ref" href="#fn:556" rel="footnote">556</a></sup></p>\r
-<p>Something<sup id="fnref:557"><a class="footnote-ref" href="#fn:557" rel="footnote">557</a></sup></p>\r
-<p>Something<sup id="fnref:558"><a class="footnote-ref" href="#fn:558" rel="footnote">558</a></sup></p>\r
-<p>Something<sup id="fnref:559"><a class="footnote-ref" href="#fn:559" rel="footnote">559</a></sup></p>\r
-<p>Something<sup id="fnref:560"><a class="footnote-ref" href="#fn:560" rel="footnote">560</a></sup></p>\r
-<p>Something<sup id="fnref:561"><a class="footnote-ref" href="#fn:561" rel="footnote">561</a></sup></p>\r
-<p>Something<sup id="fnref:562"><a class="footnote-ref" href="#fn:562" rel="footnote">562</a></sup></p>\r
-<p>Something<sup id="fnref:563"><a class="footnote-ref" href="#fn:563" rel="footnote">563</a></sup></p>\r
-<p>Something<sup id="fnref:564"><a class="footnote-ref" href="#fn:564" rel="footnote">564</a></sup></p>\r
-<p>Something<sup id="fnref:565"><a class="footnote-ref" href="#fn:565" rel="footnote">565</a></sup></p>\r
-<p>Something<sup id="fnref:566"><a class="footnote-ref" href="#fn:566" rel="footnote">566</a></sup></p>\r
-<p>Something<sup id="fnref:567"><a class="footnote-ref" href="#fn:567" rel="footnote">567</a></sup></p>\r
-<p>Something<sup id="fnref:568"><a class="footnote-ref" href="#fn:568" rel="footnote">568</a></sup></p>\r
-<p>Something<sup id="fnref:569"><a class="footnote-ref" href="#fn:569" rel="footnote">569</a></sup></p>\r
-<p>Something<sup id="fnref:570"><a class="footnote-ref" href="#fn:570" rel="footnote">570</a></sup></p>\r
-<p>Something<sup id="fnref:571"><a class="footnote-ref" href="#fn:571" rel="footnote">571</a></sup></p>\r
-<p>Something<sup id="fnref:572"><a class="footnote-ref" href="#fn:572" rel="footnote">572</a></sup></p>\r
-<p>Something<sup id="fnref:573"><a class="footnote-ref" href="#fn:573" rel="footnote">573</a></sup></p>\r
-<p>Something<sup id="fnref:574"><a class="footnote-ref" href="#fn:574" rel="footnote">574</a></sup></p>\r
-<p>Something<sup id="fnref:575"><a class="footnote-ref" href="#fn:575" rel="footnote">575</a></sup></p>\r
-<p>Something<sup id="fnref:576"><a class="footnote-ref" href="#fn:576" rel="footnote">576</a></sup></p>\r
-<p>Something<sup id="fnref:577"><a class="footnote-ref" href="#fn:577" rel="footnote">577</a></sup></p>\r
-<p>Something<sup id="fnref:578"><a class="footnote-ref" href="#fn:578" rel="footnote">578</a></sup></p>\r
-<p>Something<sup id="fnref:579"><a class="footnote-ref" href="#fn:579" rel="footnote">579</a></sup></p>\r
-<p>Something<sup id="fnref:580"><a class="footnote-ref" href="#fn:580" rel="footnote">580</a></sup></p>\r
-<p>Something<sup id="fnref:581"><a class="footnote-ref" href="#fn:581" rel="footnote">581</a></sup></p>\r
-<p>Something<sup id="fnref:582"><a class="footnote-ref" href="#fn:582" rel="footnote">582</a></sup></p>\r
-<p>Something<sup id="fnref:583"><a class="footnote-ref" href="#fn:583" rel="footnote">583</a></sup></p>\r
-<p>Something<sup id="fnref:584"><a class="footnote-ref" href="#fn:584" rel="footnote">584</a></sup></p>\r
-<p>Something<sup id="fnref:585"><a class="footnote-ref" href="#fn:585" rel="footnote">585</a></sup></p>\r
-<p>Something<sup id="fnref:586"><a class="footnote-ref" href="#fn:586" rel="footnote">586</a></sup></p>\r
-<p>Something<sup id="fnref:587"><a class="footnote-ref" href="#fn:587" rel="footnote">587</a></sup></p>\r
-<p>Something<sup id="fnref:588"><a class="footnote-ref" href="#fn:588" rel="footnote">588</a></sup></p>\r
-<p>Something<sup id="fnref:589"><a class="footnote-ref" href="#fn:589" rel="footnote">589</a></sup></p>\r
-<p>Something<sup id="fnref:590"><a class="footnote-ref" href="#fn:590" rel="footnote">590</a></sup></p>\r
-<p>Something<sup id="fnref:591"><a class="footnote-ref" href="#fn:591" rel="footnote">591</a></sup></p>\r
-<p>Something<sup id="fnref:592"><a class="footnote-ref" href="#fn:592" rel="footnote">592</a></sup></p>\r
-<p>Something<sup id="fnref:593"><a class="footnote-ref" href="#fn:593" rel="footnote">593</a></sup></p>\r
-<p>Something<sup id="fnref:594"><a class="footnote-ref" href="#fn:594" rel="footnote">594</a></sup></p>\r
-<p>Something<sup id="fnref:595"><a class="footnote-ref" href="#fn:595" rel="footnote">595</a></sup></p>\r
-<p>Something<sup id="fnref:596"><a class="footnote-ref" href="#fn:596" rel="footnote">596</a></sup></p>\r
-<p>Something<sup id="fnref:597"><a class="footnote-ref" href="#fn:597" rel="footnote">597</a></sup></p>\r
-<p>Something<sup id="fnref:598"><a class="footnote-ref" href="#fn:598" rel="footnote">598</a></sup></p>\r
-<p>Something<sup id="fnref:599"><a class="footnote-ref" href="#fn:599" rel="footnote">599</a></sup></p>\r
-<p>Something<sup id="fnref:600"><a class="footnote-ref" href="#fn:600" rel="footnote">600</a></sup></p>\r
-<p>Something<sup id="fnref:601"><a class="footnote-ref" href="#fn:601" rel="footnote">601</a></sup></p>\r
-<p>Something<sup id="fnref:602"><a class="footnote-ref" href="#fn:602" rel="footnote">602</a></sup></p>\r
-<p>Something<sup id="fnref:603"><a class="footnote-ref" href="#fn:603" rel="footnote">603</a></sup></p>\r
-<p>Something<sup id="fnref:604"><a class="footnote-ref" href="#fn:604" rel="footnote">604</a></sup></p>\r
-<p>Something<sup id="fnref:605"><a class="footnote-ref" href="#fn:605" rel="footnote">605</a></sup></p>\r
-<p>Something<sup id="fnref:606"><a class="footnote-ref" href="#fn:606" rel="footnote">606</a></sup></p>\r
-<p>Something<sup id="fnref:607"><a class="footnote-ref" href="#fn:607" rel="footnote">607</a></sup></p>\r
-<p>Something<sup id="fnref:608"><a class="footnote-ref" href="#fn:608" rel="footnote">608</a></sup></p>\r
-<p>Something<sup id="fnref:609"><a class="footnote-ref" href="#fn:609" rel="footnote">609</a></sup></p>\r
-<p>Something<sup id="fnref:610"><a class="footnote-ref" href="#fn:610" rel="footnote">610</a></sup></p>\r
-<p>Something<sup id="fnref:611"><a class="footnote-ref" href="#fn:611" rel="footnote">611</a></sup></p>\r
-<p>Something<sup id="fnref:612"><a class="footnote-ref" href="#fn:612" rel="footnote">612</a></sup></p>\r
-<p>Something<sup id="fnref:613"><a class="footnote-ref" href="#fn:613" rel="footnote">613</a></sup></p>\r
-<p>Something<sup id="fnref:614"><a class="footnote-ref" href="#fn:614" rel="footnote">614</a></sup></p>\r
-<p>Something<sup id="fnref:615"><a class="footnote-ref" href="#fn:615" rel="footnote">615</a></sup></p>\r
-<p>Something<sup id="fnref:616"><a class="footnote-ref" href="#fn:616" rel="footnote">616</a></sup></p>\r
-<p>Something<sup id="fnref:617"><a class="footnote-ref" href="#fn:617" rel="footnote">617</a></sup></p>\r
-<p>Something<sup id="fnref:618"><a class="footnote-ref" href="#fn:618" rel="footnote">618</a></sup></p>\r
-<p>Something<sup id="fnref:619"><a class="footnote-ref" href="#fn:619" rel="footnote">619</a></sup></p>\r
-<p>Something<sup id="fnref:620"><a class="footnote-ref" href="#fn:620" rel="footnote">620</a></sup></p>\r
-<p>Something<sup id="fnref:621"><a class="footnote-ref" href="#fn:621" rel="footnote">621</a></sup></p>\r
-<p>Something<sup id="fnref:622"><a class="footnote-ref" href="#fn:622" rel="footnote">622</a></sup></p>\r
-<p>Something<sup id="fnref:623"><a class="footnote-ref" href="#fn:623" rel="footnote">623</a></sup></p>\r
-<p>Something<sup id="fnref:624"><a class="footnote-ref" href="#fn:624" rel="footnote">624</a></sup></p>\r
-<p>Something<sup id="fnref:625"><a class="footnote-ref" href="#fn:625" rel="footnote">625</a></sup></p>\r
-<p>Something<sup id="fnref:626"><a class="footnote-ref" href="#fn:626" rel="footnote">626</a></sup></p>\r
-<p>Something<sup id="fnref:627"><a class="footnote-ref" href="#fn:627" rel="footnote">627</a></sup></p>\r
-<p>Something<sup id="fnref:628"><a class="footnote-ref" href="#fn:628" rel="footnote">628</a></sup></p>\r
-<p>Something<sup id="fnref:629"><a class="footnote-ref" href="#fn:629" rel="footnote">629</a></sup></p>\r
-<p>Something<sup id="fnref:630"><a class="footnote-ref" href="#fn:630" rel="footnote">630</a></sup></p>\r
-<p>Something<sup id="fnref:631"><a class="footnote-ref" href="#fn:631" rel="footnote">631</a></sup></p>\r
-<p>Something<sup id="fnref:632"><a class="footnote-ref" href="#fn:632" rel="footnote">632</a></sup></p>\r
-<p>Something<sup id="fnref:633"><a class="footnote-ref" href="#fn:633" rel="footnote">633</a></sup></p>\r
-<p>Something<sup id="fnref:634"><a class="footnote-ref" href="#fn:634" rel="footnote">634</a></sup></p>\r
-<p>Something<sup id="fnref:635"><a class="footnote-ref" href="#fn:635" rel="footnote">635</a></sup></p>\r
-<p>Something<sup id="fnref:636"><a class="footnote-ref" href="#fn:636" rel="footnote">636</a></sup></p>\r
-<p>Something<sup id="fnref:637"><a class="footnote-ref" href="#fn:637" rel="footnote">637</a></sup></p>\r
-<p>Something<sup id="fnref:638"><a class="footnote-ref" href="#fn:638" rel="footnote">638</a></sup></p>\r
-<p>Something<sup id="fnref:639"><a class="footnote-ref" href="#fn:639" rel="footnote">639</a></sup></p>\r
-<p>Something<sup id="fnref:640"><a class="footnote-ref" href="#fn:640" rel="footnote">640</a></sup></p>\r
-<p>Something<sup id="fnref:641"><a class="footnote-ref" href="#fn:641" rel="footnote">641</a></sup></p>\r
-<p>Something<sup id="fnref:642"><a class="footnote-ref" href="#fn:642" rel="footnote">642</a></sup></p>\r
-<p>Something<sup id="fnref:643"><a class="footnote-ref" href="#fn:643" rel="footnote">643</a></sup></p>\r
-<p>Something<sup id="fnref:644"><a class="footnote-ref" href="#fn:644" rel="footnote">644</a></sup></p>\r
-<p>Something<sup id="fnref:645"><a class="footnote-ref" href="#fn:645" rel="footnote">645</a></sup></p>\r
-<p>Something<sup id="fnref:646"><a class="footnote-ref" href="#fn:646" rel="footnote">646</a></sup></p>\r
-<p>Something<sup id="fnref:647"><a class="footnote-ref" href="#fn:647" rel="footnote">647</a></sup></p>\r
-<p>Something<sup id="fnref:648"><a class="footnote-ref" href="#fn:648" rel="footnote">648</a></sup></p>\r
-<p>Something<sup id="fnref:649"><a class="footnote-ref" href="#fn:649" rel="footnote">649</a></sup></p>\r
-<p>Something<sup id="fnref:650"><a class="footnote-ref" href="#fn:650" rel="footnote">650</a></sup></p>\r
-<p>Something<sup id="fnref:651"><a class="footnote-ref" href="#fn:651" rel="footnote">651</a></sup></p>\r
-<p>Something<sup id="fnref:652"><a class="footnote-ref" href="#fn:652" rel="footnote">652</a></sup></p>\r
-<p>Something<sup id="fnref:653"><a class="footnote-ref" href="#fn:653" rel="footnote">653</a></sup></p>\r
-<p>Something<sup id="fnref:654"><a class="footnote-ref" href="#fn:654" rel="footnote">654</a></sup></p>\r
-<p>Something<sup id="fnref:655"><a class="footnote-ref" href="#fn:655" rel="footnote">655</a></sup></p>\r
-<p>Something<sup id="fnref:656"><a class="footnote-ref" href="#fn:656" rel="footnote">656</a></sup></p>\r
-<p>Something<sup id="fnref:657"><a class="footnote-ref" href="#fn:657" rel="footnote">657</a></sup></p>\r
-<p>Something<sup id="fnref:658"><a class="footnote-ref" href="#fn:658" rel="footnote">658</a></sup></p>\r
-<p>Something<sup id="fnref:659"><a class="footnote-ref" href="#fn:659" rel="footnote">659</a></sup></p>\r
-<p>Something<sup id="fnref:660"><a class="footnote-ref" href="#fn:660" rel="footnote">660</a></sup></p>\r
-<p>Something<sup id="fnref:661"><a class="footnote-ref" href="#fn:661" rel="footnote">661</a></sup></p>\r
-<p>Something<sup id="fnref:662"><a class="footnote-ref" href="#fn:662" rel="footnote">662</a></sup></p>\r
-<p>Something<sup id="fnref:663"><a class="footnote-ref" href="#fn:663" rel="footnote">663</a></sup></p>\r
-<p>Something<sup id="fnref:664"><a class="footnote-ref" href="#fn:664" rel="footnote">664</a></sup></p>\r
-<p>Something<sup id="fnref:665"><a class="footnote-ref" href="#fn:665" rel="footnote">665</a></sup></p>\r
-<p>Something<sup id="fnref:666"><a class="footnote-ref" href="#fn:666" rel="footnote">666</a></sup></p>\r
-<p>Something<sup id="fnref:667"><a class="footnote-ref" href="#fn:667" rel="footnote">667</a></sup></p>\r
-<p>Something<sup id="fnref:668"><a class="footnote-ref" href="#fn:668" rel="footnote">668</a></sup></p>\r
-<p>Something<sup id="fnref:669"><a class="footnote-ref" href="#fn:669" rel="footnote">669</a></sup></p>\r
-<p>Something<sup id="fnref:670"><a class="footnote-ref" href="#fn:670" rel="footnote">670</a></sup></p>\r
-<p>Something<sup id="fnref:671"><a class="footnote-ref" href="#fn:671" rel="footnote">671</a></sup></p>\r
-<p>Something<sup id="fnref:672"><a class="footnote-ref" href="#fn:672" rel="footnote">672</a></sup></p>\r
-<p>Something<sup id="fnref:673"><a class="footnote-ref" href="#fn:673" rel="footnote">673</a></sup></p>\r
-<p>Something<sup id="fnref:674"><a class="footnote-ref" href="#fn:674" rel="footnote">674</a></sup></p>\r
-<p>Something<sup id="fnref:675"><a class="footnote-ref" href="#fn:675" rel="footnote">675</a></sup></p>\r
-<p>Something<sup id="fnref:676"><a class="footnote-ref" href="#fn:676" rel="footnote">676</a></sup></p>\r
-<p>Something<sup id="fnref:677"><a class="footnote-ref" href="#fn:677" rel="footnote">677</a></sup></p>\r
-<p>Something<sup id="fnref:678"><a class="footnote-ref" href="#fn:678" rel="footnote">678</a></sup></p>\r
-<p>Something<sup id="fnref:679"><a class="footnote-ref" href="#fn:679" rel="footnote">679</a></sup></p>\r
-<p>Something<sup id="fnref:680"><a class="footnote-ref" href="#fn:680" rel="footnote">680</a></sup></p>\r
-<p>Something<sup id="fnref:681"><a class="footnote-ref" href="#fn:681" rel="footnote">681</a></sup></p>\r
-<p>Something<sup id="fnref:682"><a class="footnote-ref" href="#fn:682" rel="footnote">682</a></sup></p>\r
-<p>Something<sup id="fnref:683"><a class="footnote-ref" href="#fn:683" rel="footnote">683</a></sup></p>\r
-<p>Something<sup id="fnref:684"><a class="footnote-ref" href="#fn:684" rel="footnote">684</a></sup></p>\r
-<p>Something<sup id="fnref:685"><a class="footnote-ref" href="#fn:685" rel="footnote">685</a></sup></p>\r
-<p>Something<sup id="fnref:686"><a class="footnote-ref" href="#fn:686" rel="footnote">686</a></sup></p>\r
-<p>Something<sup id="fnref:687"><a class="footnote-ref" href="#fn:687" rel="footnote">687</a></sup></p>\r
-<p>Something<sup id="fnref:688"><a class="footnote-ref" href="#fn:688" rel="footnote">688</a></sup></p>\r
-<p>Something<sup id="fnref:689"><a class="footnote-ref" href="#fn:689" rel="footnote">689</a></sup></p>\r
-<p>Something<sup id="fnref:690"><a class="footnote-ref" href="#fn:690" rel="footnote">690</a></sup></p>\r
-<p>Something<sup id="fnref:691"><a class="footnote-ref" href="#fn:691" rel="footnote">691</a></sup></p>\r
-<p>Something<sup id="fnref:692"><a class="footnote-ref" href="#fn:692" rel="footnote">692</a></sup></p>\r
-<p>Something<sup id="fnref:693"><a class="footnote-ref" href="#fn:693" rel="footnote">693</a></sup></p>\r
-<p>Something<sup id="fnref:694"><a class="footnote-ref" href="#fn:694" rel="footnote">694</a></sup></p>\r
-<p>Something<sup id="fnref:695"><a class="footnote-ref" href="#fn:695" rel="footnote">695</a></sup></p>\r
-<p>Something<sup id="fnref:696"><a class="footnote-ref" href="#fn:696" rel="footnote">696</a></sup></p>\r
-<p>Something<sup id="fnref:697"><a class="footnote-ref" href="#fn:697" rel="footnote">697</a></sup></p>\r
-<p>Something<sup id="fnref:698"><a class="footnote-ref" href="#fn:698" rel="footnote">698</a></sup></p>\r
-<p>Something<sup id="fnref:699"><a class="footnote-ref" href="#fn:699" rel="footnote">699</a></sup></p>\r
-<p>Something<sup id="fnref:700"><a class="footnote-ref" href="#fn:700" rel="footnote">700</a></sup></p>\r
-<p>Something<sup id="fnref:701"><a class="footnote-ref" href="#fn:701" rel="footnote">701</a></sup></p>\r
-<p>Something<sup id="fnref:702"><a class="footnote-ref" href="#fn:702" rel="footnote">702</a></sup></p>\r
-<p>Something<sup id="fnref:703"><a class="footnote-ref" href="#fn:703" rel="footnote">703</a></sup></p>\r
-<p>Something<sup id="fnref:704"><a class="footnote-ref" href="#fn:704" rel="footnote">704</a></sup></p>\r
-<p>Something<sup id="fnref:705"><a class="footnote-ref" href="#fn:705" rel="footnote">705</a></sup></p>\r
-<p>Something<sup id="fnref:706"><a class="footnote-ref" href="#fn:706" rel="footnote">706</a></sup></p>\r
-<p>Something<sup id="fnref:707"><a class="footnote-ref" href="#fn:707" rel="footnote">707</a></sup></p>\r
-<p>Something<sup id="fnref:708"><a class="footnote-ref" href="#fn:708" rel="footnote">708</a></sup></p>\r
-<p>Something<sup id="fnref:709"><a class="footnote-ref" href="#fn:709" rel="footnote">709</a></sup></p>\r
-<p>Something<sup id="fnref:710"><a class="footnote-ref" href="#fn:710" rel="footnote">710</a></sup></p>\r
-<p>Something<sup id="fnref:711"><a class="footnote-ref" href="#fn:711" rel="footnote">711</a></sup></p>\r
-<p>Something<sup id="fnref:712"><a class="footnote-ref" href="#fn:712" rel="footnote">712</a></sup></p>\r
-<p>Something<sup id="fnref:713"><a class="footnote-ref" href="#fn:713" rel="footnote">713</a></sup></p>\r
-<p>Something<sup id="fnref:714"><a class="footnote-ref" href="#fn:714" rel="footnote">714</a></sup></p>\r
-<p>Something<sup id="fnref:715"><a class="footnote-ref" href="#fn:715" rel="footnote">715</a></sup></p>\r
-<p>Something<sup id="fnref:716"><a class="footnote-ref" href="#fn:716" rel="footnote">716</a></sup></p>\r
-<p>Something<sup id="fnref:717"><a class="footnote-ref" href="#fn:717" rel="footnote">717</a></sup></p>\r
-<p>Something<sup id="fnref:718"><a class="footnote-ref" href="#fn:718" rel="footnote">718</a></sup></p>\r
-<p>Something<sup id="fnref:719"><a class="footnote-ref" href="#fn:719" rel="footnote">719</a></sup></p>\r
-<p>Something<sup id="fnref:720"><a class="footnote-ref" href="#fn:720" rel="footnote">720</a></sup></p>\r
-<p>Something<sup id="fnref:721"><a class="footnote-ref" href="#fn:721" rel="footnote">721</a></sup></p>\r
-<p>Something<sup id="fnref:722"><a class="footnote-ref" href="#fn:722" rel="footnote">722</a></sup></p>\r
-<p>Something<sup id="fnref:723"><a class="footnote-ref" href="#fn:723" rel="footnote">723</a></sup></p>\r
-<p>Something<sup id="fnref:724"><a class="footnote-ref" href="#fn:724" rel="footnote">724</a></sup></p>\r
-<p>Something<sup id="fnref:725"><a class="footnote-ref" href="#fn:725" rel="footnote">725</a></sup></p>\r
-<p>Something<sup id="fnref:726"><a class="footnote-ref" href="#fn:726" rel="footnote">726</a></sup></p>\r
-<p>Something<sup id="fnref:727"><a class="footnote-ref" href="#fn:727" rel="footnote">727</a></sup></p>\r
-<p>Something<sup id="fnref:728"><a class="footnote-ref" href="#fn:728" rel="footnote">728</a></sup></p>\r
-<p>Something<sup id="fnref:729"><a class="footnote-ref" href="#fn:729" rel="footnote">729</a></sup></p>\r
-<p>Something<sup id="fnref:730"><a class="footnote-ref" href="#fn:730" rel="footnote">730</a></sup></p>\r
-<p>Something<sup id="fnref:731"><a class="footnote-ref" href="#fn:731" rel="footnote">731</a></sup></p>\r
-<p>Something<sup id="fnref:732"><a class="footnote-ref" href="#fn:732" rel="footnote">732</a></sup></p>\r
-<p>Something<sup id="fnref:733"><a class="footnote-ref" href="#fn:733" rel="footnote">733</a></sup></p>\r
-<p>Something<sup id="fnref:734"><a class="footnote-ref" href="#fn:734" rel="footnote">734</a></sup></p>\r
-<p>Something<sup id="fnref:735"><a class="footnote-ref" href="#fn:735" rel="footnote">735</a></sup></p>\r
-<p>Something<sup id="fnref:736"><a class="footnote-ref" href="#fn:736" rel="footnote">736</a></sup></p>\r
-<p>Something<sup id="fnref:737"><a class="footnote-ref" href="#fn:737" rel="footnote">737</a></sup></p>\r
-<p>Something<sup id="fnref:738"><a class="footnote-ref" href="#fn:738" rel="footnote">738</a></sup></p>\r
-<p>Something<sup id="fnref:739"><a class="footnote-ref" href="#fn:739" rel="footnote">739</a></sup></p>\r
-<p>Something<sup id="fnref:740"><a class="footnote-ref" href="#fn:740" rel="footnote">740</a></sup></p>\r
-<p>Something<sup id="fnref:741"><a class="footnote-ref" href="#fn:741" rel="footnote">741</a></sup></p>\r
-<p>Something<sup id="fnref:742"><a class="footnote-ref" href="#fn:742" rel="footnote">742</a></sup></p>\r
-<p>Something<sup id="fnref:743"><a class="footnote-ref" href="#fn:743" rel="footnote">743</a></sup></p>\r
-<p>Something<sup id="fnref:744"><a class="footnote-ref" href="#fn:744" rel="footnote">744</a></sup></p>\r
-<p>Something<sup id="fnref:745"><a class="footnote-ref" href="#fn:745" rel="footnote">745</a></sup></p>\r
-<p>Something<sup id="fnref:746"><a class="footnote-ref" href="#fn:746" rel="footnote">746</a></sup></p>\r
-<p>Something<sup id="fnref:747"><a class="footnote-ref" href="#fn:747" rel="footnote">747</a></sup></p>\r
-<p>Something<sup id="fnref:748"><a class="footnote-ref" href="#fn:748" rel="footnote">748</a></sup></p>\r
-<p>Something<sup id="fnref:749"><a class="footnote-ref" href="#fn:749" rel="footnote">749</a></sup></p>\r
-<p>Something<sup id="fnref:750"><a class="footnote-ref" href="#fn:750" rel="footnote">750</a></sup></p>\r
-<p>Something<sup id="fnref:751"><a class="footnote-ref" href="#fn:751" rel="footnote">751</a></sup></p>\r
-<p>Something<sup id="fnref:752"><a class="footnote-ref" href="#fn:752" rel="footnote">752</a></sup></p>\r
-<p>Something<sup id="fnref:753"><a class="footnote-ref" href="#fn:753" rel="footnote">753</a></sup></p>\r
-<p>Something<sup id="fnref:754"><a class="footnote-ref" href="#fn:754" rel="footnote">754</a></sup></p>\r
-<p>Something<sup id="fnref:755"><a class="footnote-ref" href="#fn:755" rel="footnote">755</a></sup></p>\r
-<p>Something<sup id="fnref:756"><a class="footnote-ref" href="#fn:756" rel="footnote">756</a></sup></p>\r
-<p>Something<sup id="fnref:757"><a class="footnote-ref" href="#fn:757" rel="footnote">757</a></sup></p>\r
-<p>Something<sup id="fnref:758"><a class="footnote-ref" href="#fn:758" rel="footnote">758</a></sup></p>\r
-<p>Something<sup id="fnref:759"><a class="footnote-ref" href="#fn:759" rel="footnote">759</a></sup></p>\r
-<p>Something<sup id="fnref:760"><a class="footnote-ref" href="#fn:760" rel="footnote">760</a></sup></p>\r
-<p>Something<sup id="fnref:761"><a class="footnote-ref" href="#fn:761" rel="footnote">761</a></sup></p>\r
-<p>Something<sup id="fnref:762"><a class="footnote-ref" href="#fn:762" rel="footnote">762</a></sup></p>\r
-<p>Something<sup id="fnref:763"><a class="footnote-ref" href="#fn:763" rel="footnote">763</a></sup></p>\r
-<p>Something<sup id="fnref:764"><a class="footnote-ref" href="#fn:764" rel="footnote">764</a></sup></p>\r
-<p>Something<sup id="fnref:765"><a class="footnote-ref" href="#fn:765" rel="footnote">765</a></sup></p>\r
-<p>Something<sup id="fnref:766"><a class="footnote-ref" href="#fn:766" rel="footnote">766</a></sup></p>\r
-<p>Something<sup id="fnref:767"><a class="footnote-ref" href="#fn:767" rel="footnote">767</a></sup></p>\r
-<p>Something<sup id="fnref:768"><a class="footnote-ref" href="#fn:768" rel="footnote">768</a></sup></p>\r
-<p>Something<sup id="fnref:769"><a class="footnote-ref" href="#fn:769" rel="footnote">769</a></sup></p>\r
-<p>Something<sup id="fnref:770"><a class="footnote-ref" href="#fn:770" rel="footnote">770</a></sup></p>\r
-<p>Something<sup id="fnref:771"><a class="footnote-ref" href="#fn:771" rel="footnote">771</a></sup></p>\r
-<p>Something<sup id="fnref:772"><a class="footnote-ref" href="#fn:772" rel="footnote">772</a></sup></p>\r
-<p>Something<sup id="fnref:773"><a class="footnote-ref" href="#fn:773" rel="footnote">773</a></sup></p>\r
-<p>Something<sup id="fnref:774"><a class="footnote-ref" href="#fn:774" rel="footnote">774</a></sup></p>\r
-<p>Something<sup id="fnref:775"><a class="footnote-ref" href="#fn:775" rel="footnote">775</a></sup></p>\r
-<p>Something<sup id="fnref:776"><a class="footnote-ref" href="#fn:776" rel="footnote">776</a></sup></p>\r
-<p>Something<sup id="fnref:777"><a class="footnote-ref" href="#fn:777" rel="footnote">777</a></sup></p>\r
-<p>Something<sup id="fnref:778"><a class="footnote-ref" href="#fn:778" rel="footnote">778</a></sup></p>\r
-<p>Something<sup id="fnref:779"><a class="footnote-ref" href="#fn:779" rel="footnote">779</a></sup></p>\r
-<p>Something<sup id="fnref:780"><a class="footnote-ref" href="#fn:780" rel="footnote">780</a></sup></p>\r
-<p>Something<sup id="fnref:781"><a class="footnote-ref" href="#fn:781" rel="footnote">781</a></sup></p>\r
-<p>Something<sup id="fnref:782"><a class="footnote-ref" href="#fn:782" rel="footnote">782</a></sup></p>\r
-<p>Something<sup id="fnref:783"><a class="footnote-ref" href="#fn:783" rel="footnote">783</a></sup></p>\r
-<p>Something<sup id="fnref:784"><a class="footnote-ref" href="#fn:784" rel="footnote">784</a></sup></p>\r
-<p>Something<sup id="fnref:785"><a class="footnote-ref" href="#fn:785" rel="footnote">785</a></sup></p>\r
-<p>Something<sup id="fnref:786"><a class="footnote-ref" href="#fn:786" rel="footnote">786</a></sup></p>\r
-<p>Something<sup id="fnref:787"><a class="footnote-ref" href="#fn:787" rel="footnote">787</a></sup></p>\r
-<p>Something<sup id="fnref:788"><a class="footnote-ref" href="#fn:788" rel="footnote">788</a></sup></p>\r
-<p>Something<sup id="fnref:789"><a class="footnote-ref" href="#fn:789" rel="footnote">789</a></sup></p>\r
-<p>Something<sup id="fnref:790"><a class="footnote-ref" href="#fn:790" rel="footnote">790</a></sup></p>\r
-<p>Something<sup id="fnref:791"><a class="footnote-ref" href="#fn:791" rel="footnote">791</a></sup></p>\r
-<p>Something<sup id="fnref:792"><a class="footnote-ref" href="#fn:792" rel="footnote">792</a></sup></p>\r
-<p>Something<sup id="fnref:793"><a class="footnote-ref" href="#fn:793" rel="footnote">793</a></sup></p>\r
-<p>Something<sup id="fnref:794"><a class="footnote-ref" href="#fn:794" rel="footnote">794</a></sup></p>\r
-<p>Something<sup id="fnref:795"><a class="footnote-ref" href="#fn:795" rel="footnote">795</a></sup></p>\r
-<p>Something<sup id="fnref:796"><a class="footnote-ref" href="#fn:796" rel="footnote">796</a></sup></p>\r
-<p>Something<sup id="fnref:797"><a class="footnote-ref" href="#fn:797" rel="footnote">797</a></sup></p>\r
-<p>Something<sup id="fnref:798"><a class="footnote-ref" href="#fn:798" rel="footnote">798</a></sup></p>\r
-<p>Something<sup id="fnref:799"><a class="footnote-ref" href="#fn:799" rel="footnote">799</a></sup></p>\r
-<p>Something<sup id="fnref:800"><a class="footnote-ref" href="#fn:800" rel="footnote">800</a></sup></p>\r
-<p>Something<sup id="fnref:801"><a class="footnote-ref" href="#fn:801" rel="footnote">801</a></sup></p>\r
-<p>Something<sup id="fnref:802"><a class="footnote-ref" href="#fn:802" rel="footnote">802</a></sup></p>\r
-<p>Something<sup id="fnref:803"><a class="footnote-ref" href="#fn:803" rel="footnote">803</a></sup></p>\r
-<p>Something<sup id="fnref:804"><a class="footnote-ref" href="#fn:804" rel="footnote">804</a></sup></p>\r
-<p>Something<sup id="fnref:805"><a class="footnote-ref" href="#fn:805" rel="footnote">805</a></sup></p>\r
-<p>Something<sup id="fnref:806"><a class="footnote-ref" href="#fn:806" rel="footnote">806</a></sup></p>\r
-<p>Something<sup id="fnref:807"><a class="footnote-ref" href="#fn:807" rel="footnote">807</a></sup></p>\r
-<p>Something<sup id="fnref:808"><a class="footnote-ref" href="#fn:808" rel="footnote">808</a></sup></p>\r
-<p>Something<sup id="fnref:809"><a class="footnote-ref" href="#fn:809" rel="footnote">809</a></sup></p>\r
-<p>Something<sup id="fnref:810"><a class="footnote-ref" href="#fn:810" rel="footnote">810</a></sup></p>\r
-<p>Something<sup id="fnref:811"><a class="footnote-ref" href="#fn:811" rel="footnote">811</a></sup></p>\r
-<p>Something<sup id="fnref:812"><a class="footnote-ref" href="#fn:812" rel="footnote">812</a></sup></p>\r
-<p>Something<sup id="fnref:813"><a class="footnote-ref" href="#fn:813" rel="footnote">813</a></sup></p>\r
-<p>Something<sup id="fnref:814"><a class="footnote-ref" href="#fn:814" rel="footnote">814</a></sup></p>\r
-<p>Something<sup id="fnref:815"><a class="footnote-ref" href="#fn:815" rel="footnote">815</a></sup></p>\r
-<p>Something<sup id="fnref:816"><a class="footnote-ref" href="#fn:816" rel="footnote">816</a></sup></p>\r
-<p>Something<sup id="fnref:817"><a class="footnote-ref" href="#fn:817" rel="footnote">817</a></sup></p>\r
-<p>Something<sup id="fnref:818"><a class="footnote-ref" href="#fn:818" rel="footnote">818</a></sup></p>\r
-<p>Something<sup id="fnref:819"><a class="footnote-ref" href="#fn:819" rel="footnote">819</a></sup></p>\r
-<p>Something<sup id="fnref:820"><a class="footnote-ref" href="#fn:820" rel="footnote">820</a></sup></p>\r
-<p>Something<sup id="fnref:821"><a class="footnote-ref" href="#fn:821" rel="footnote">821</a></sup></p>\r
-<p>Something<sup id="fnref:822"><a class="footnote-ref" href="#fn:822" rel="footnote">822</a></sup></p>\r
-<p>Something<sup id="fnref:823"><a class="footnote-ref" href="#fn:823" rel="footnote">823</a></sup></p>\r
-<p>Something<sup id="fnref:824"><a class="footnote-ref" href="#fn:824" rel="footnote">824</a></sup></p>\r
-<p>Something<sup id="fnref:825"><a class="footnote-ref" href="#fn:825" rel="footnote">825</a></sup></p>\r
-<p>Something<sup id="fnref:826"><a class="footnote-ref" href="#fn:826" rel="footnote">826</a></sup></p>\r
-<p>Something<sup id="fnref:827"><a class="footnote-ref" href="#fn:827" rel="footnote">827</a></sup></p>\r
-<p>Something<sup id="fnref:828"><a class="footnote-ref" href="#fn:828" rel="footnote">828</a></sup></p>\r
-<p>Something<sup id="fnref:829"><a class="footnote-ref" href="#fn:829" rel="footnote">829</a></sup></p>\r
-<p>Something<sup id="fnref:830"><a class="footnote-ref" href="#fn:830" rel="footnote">830</a></sup></p>\r
-<p>Something<sup id="fnref:831"><a class="footnote-ref" href="#fn:831" rel="footnote">831</a></sup></p>\r
-<p>Something<sup id="fnref:832"><a class="footnote-ref" href="#fn:832" rel="footnote">832</a></sup></p>\r
-<p>Something<sup id="fnref:833"><a class="footnote-ref" href="#fn:833" rel="footnote">833</a></sup></p>\r
-<p>Something<sup id="fnref:834"><a class="footnote-ref" href="#fn:834" rel="footnote">834</a></sup></p>\r
-<p>Something<sup id="fnref:835"><a class="footnote-ref" href="#fn:835" rel="footnote">835</a></sup></p>\r
-<p>Something<sup id="fnref:836"><a class="footnote-ref" href="#fn:836" rel="footnote">836</a></sup></p>\r
-<p>Something<sup id="fnref:837"><a class="footnote-ref" href="#fn:837" rel="footnote">837</a></sup></p>\r
-<p>Something<sup id="fnref:838"><a class="footnote-ref" href="#fn:838" rel="footnote">838</a></sup></p>\r
-<p>Something<sup id="fnref:839"><a class="footnote-ref" href="#fn:839" rel="footnote">839</a></sup></p>\r
-<p>Something<sup id="fnref:840"><a class="footnote-ref" href="#fn:840" rel="footnote">840</a></sup></p>\r
-<p>Something<sup id="fnref:841"><a class="footnote-ref" href="#fn:841" rel="footnote">841</a></sup></p>\r
-<p>Something<sup id="fnref:842"><a class="footnote-ref" href="#fn:842" rel="footnote">842</a></sup></p>\r
-<p>Something<sup id="fnref:843"><a class="footnote-ref" href="#fn:843" rel="footnote">843</a></sup></p>\r
-<p>Something<sup id="fnref:844"><a class="footnote-ref" href="#fn:844" rel="footnote">844</a></sup></p>\r
-<p>Something<sup id="fnref:845"><a class="footnote-ref" href="#fn:845" rel="footnote">845</a></sup></p>\r
-<p>Something<sup id="fnref:846"><a class="footnote-ref" href="#fn:846" rel="footnote">846</a></sup></p>\r
-<p>Something<sup id="fnref:847"><a class="footnote-ref" href="#fn:847" rel="footnote">847</a></sup></p>\r
-<p>Something<sup id="fnref:848"><a class="footnote-ref" href="#fn:848" rel="footnote">848</a></sup></p>\r
-<p>Something<sup id="fnref:849"><a class="footnote-ref" href="#fn:849" rel="footnote">849</a></sup></p>\r
-<p>Something<sup id="fnref:850"><a class="footnote-ref" href="#fn:850" rel="footnote">850</a></sup></p>\r
-<p>Something<sup id="fnref:851"><a class="footnote-ref" href="#fn:851" rel="footnote">851</a></sup></p>\r
-<p>Something<sup id="fnref:852"><a class="footnote-ref" href="#fn:852" rel="footnote">852</a></sup></p>\r
-<p>Something<sup id="fnref:853"><a class="footnote-ref" href="#fn:853" rel="footnote">853</a></sup></p>\r
-<p>Something<sup id="fnref:854"><a class="footnote-ref" href="#fn:854" rel="footnote">854</a></sup></p>\r
-<p>Something<sup id="fnref:855"><a class="footnote-ref" href="#fn:855" rel="footnote">855</a></sup></p>\r
-<p>Something<sup id="fnref:856"><a class="footnote-ref" href="#fn:856" rel="footnote">856</a></sup></p>\r
-<p>Something<sup id="fnref:857"><a class="footnote-ref" href="#fn:857" rel="footnote">857</a></sup></p>\r
-<p>Something<sup id="fnref:858"><a class="footnote-ref" href="#fn:858" rel="footnote">858</a></sup></p>\r
-<p>Something<sup id="fnref:859"><a class="footnote-ref" href="#fn:859" rel="footnote">859</a></sup></p>\r
-<p>Something<sup id="fnref:860"><a class="footnote-ref" href="#fn:860" rel="footnote">860</a></sup></p>\r
-<p>Something<sup id="fnref:861"><a class="footnote-ref" href="#fn:861" rel="footnote">861</a></sup></p>\r
-<p>Something<sup id="fnref:862"><a class="footnote-ref" href="#fn:862" rel="footnote">862</a></sup></p>\r
-<p>Something<sup id="fnref:863"><a class="footnote-ref" href="#fn:863" rel="footnote">863</a></sup></p>\r
-<p>Something<sup id="fnref:864"><a class="footnote-ref" href="#fn:864" rel="footnote">864</a></sup></p>\r
-<p>Something<sup id="fnref:865"><a class="footnote-ref" href="#fn:865" rel="footnote">865</a></sup></p>\r
-<p>Something<sup id="fnref:866"><a class="footnote-ref" href="#fn:866" rel="footnote">866</a></sup></p>\r
-<p>Something<sup id="fnref:867"><a class="footnote-ref" href="#fn:867" rel="footnote">867</a></sup></p>\r
-<p>Something<sup id="fnref:868"><a class="footnote-ref" href="#fn:868" rel="footnote">868</a></sup></p>\r
-<p>Something<sup id="fnref:869"><a class="footnote-ref" href="#fn:869" rel="footnote">869</a></sup></p>\r
-<p>Something<sup id="fnref:870"><a class="footnote-ref" href="#fn:870" rel="footnote">870</a></sup></p>\r
-<p>Something<sup id="fnref:871"><a class="footnote-ref" href="#fn:871" rel="footnote">871</a></sup></p>\r
-<p>Something<sup id="fnref:872"><a class="footnote-ref" href="#fn:872" rel="footnote">872</a></sup></p>\r
-<p>Something<sup id="fnref:873"><a class="footnote-ref" href="#fn:873" rel="footnote">873</a></sup></p>\r
-<p>Something<sup id="fnref:874"><a class="footnote-ref" href="#fn:874" rel="footnote">874</a></sup></p>\r
-<p>Something<sup id="fnref:875"><a class="footnote-ref" href="#fn:875" rel="footnote">875</a></sup></p>\r
-<p>Something<sup id="fnref:876"><a class="footnote-ref" href="#fn:876" rel="footnote">876</a></sup></p>\r
-<p>Something<sup id="fnref:877"><a class="footnote-ref" href="#fn:877" rel="footnote">877</a></sup></p>\r
-<p>Something<sup id="fnref:878"><a class="footnote-ref" href="#fn:878" rel="footnote">878</a></sup></p>\r
-<p>Something<sup id="fnref:879"><a class="footnote-ref" href="#fn:879" rel="footnote">879</a></sup></p>\r
-<p>Something<sup id="fnref:880"><a class="footnote-ref" href="#fn:880" rel="footnote">880</a></sup></p>\r
-<p>Something<sup id="fnref:881"><a class="footnote-ref" href="#fn:881" rel="footnote">881</a></sup></p>\r
-<p>Something<sup id="fnref:882"><a class="footnote-ref" href="#fn:882" rel="footnote">882</a></sup></p>\r
-<p>Something<sup id="fnref:883"><a class="footnote-ref" href="#fn:883" rel="footnote">883</a></sup></p>\r
-<p>Something<sup id="fnref:884"><a class="footnote-ref" href="#fn:884" rel="footnote">884</a></sup></p>\r
-<p>Something<sup id="fnref:885"><a class="footnote-ref" href="#fn:885" rel="footnote">885</a></sup></p>\r
-<p>Something<sup id="fnref:886"><a class="footnote-ref" href="#fn:886" rel="footnote">886</a></sup></p>\r
-<p>Something<sup id="fnref:887"><a class="footnote-ref" href="#fn:887" rel="footnote">887</a></sup></p>\r
-<p>Something<sup id="fnref:888"><a class="footnote-ref" href="#fn:888" rel="footnote">888</a></sup></p>\r
-<p>Something<sup id="fnref:889"><a class="footnote-ref" href="#fn:889" rel="footnote">889</a></sup></p>\r
-<p>Something<sup id="fnref:890"><a class="footnote-ref" href="#fn:890" rel="footnote">890</a></sup></p>\r
-<p>Something<sup id="fnref:891"><a class="footnote-ref" href="#fn:891" rel="footnote">891</a></sup></p>\r
-<p>Something<sup id="fnref:892"><a class="footnote-ref" href="#fn:892" rel="footnote">892</a></sup></p>\r
-<p>Something<sup id="fnref:893"><a class="footnote-ref" href="#fn:893" rel="footnote">893</a></sup></p>\r
-<p>Something<sup id="fnref:894"><a class="footnote-ref" href="#fn:894" rel="footnote">894</a></sup></p>\r
-<p>Something<sup id="fnref:895"><a class="footnote-ref" href="#fn:895" rel="footnote">895</a></sup></p>\r
-<p>Something<sup id="fnref:896"><a class="footnote-ref" href="#fn:896" rel="footnote">896</a></sup></p>\r
-<p>Something<sup id="fnref:897"><a class="footnote-ref" href="#fn:897" rel="footnote">897</a></sup></p>\r
-<p>Something<sup id="fnref:898"><a class="footnote-ref" href="#fn:898" rel="footnote">898</a></sup></p>\r
-<p>Something<sup id="fnref:899"><a class="footnote-ref" href="#fn:899" rel="footnote">899</a></sup></p>\r
-<p>Something<sup id="fnref:900"><a class="footnote-ref" href="#fn:900" rel="footnote">900</a></sup></p>\r
-<p>Something<sup id="fnref:901"><a class="footnote-ref" href="#fn:901" rel="footnote">901</a></sup></p>\r
-<p>Something<sup id="fnref:902"><a class="footnote-ref" href="#fn:902" rel="footnote">902</a></sup></p>\r
-<p>Something<sup id="fnref:903"><a class="footnote-ref" href="#fn:903" rel="footnote">903</a></sup></p>\r
-<p>Something<sup id="fnref:904"><a class="footnote-ref" href="#fn:904" rel="footnote">904</a></sup></p>\r
-<p>Something<sup id="fnref:905"><a class="footnote-ref" href="#fn:905" rel="footnote">905</a></sup></p>\r
-<p>Something<sup id="fnref:906"><a class="footnote-ref" href="#fn:906" rel="footnote">906</a></sup></p>\r
-<p>Something<sup id="fnref:907"><a class="footnote-ref" href="#fn:907" rel="footnote">907</a></sup></p>\r
-<p>Something<sup id="fnref:908"><a class="footnote-ref" href="#fn:908" rel="footnote">908</a></sup></p>\r
-<p>Something<sup id="fnref:909"><a class="footnote-ref" href="#fn:909" rel="footnote">909</a></sup></p>\r
-<p>Something<sup id="fnref:910"><a class="footnote-ref" href="#fn:910" rel="footnote">910</a></sup></p>\r
-<p>Something<sup id="fnref:911"><a class="footnote-ref" href="#fn:911" rel="footnote">911</a></sup></p>\r
-<p>Something<sup id="fnref:912"><a class="footnote-ref" href="#fn:912" rel="footnote">912</a></sup></p>\r
-<p>Something<sup id="fnref:913"><a class="footnote-ref" href="#fn:913" rel="footnote">913</a></sup></p>\r
-<p>Something<sup id="fnref:914"><a class="footnote-ref" href="#fn:914" rel="footnote">914</a></sup></p>\r
-<p>Something<sup id="fnref:915"><a class="footnote-ref" href="#fn:915" rel="footnote">915</a></sup></p>\r
-<p>Something<sup id="fnref:916"><a class="footnote-ref" href="#fn:916" rel="footnote">916</a></sup></p>\r
-<p>Something<sup id="fnref:917"><a class="footnote-ref" href="#fn:917" rel="footnote">917</a></sup></p>\r
-<p>Something<sup id="fnref:918"><a class="footnote-ref" href="#fn:918" rel="footnote">918</a></sup></p>\r
-<p>Something<sup id="fnref:919"><a class="footnote-ref" href="#fn:919" rel="footnote">919</a></sup></p>\r
-<p>Something<sup id="fnref:920"><a class="footnote-ref" href="#fn:920" rel="footnote">920</a></sup></p>\r
-<p>Something<sup id="fnref:921"><a class="footnote-ref" href="#fn:921" rel="footnote">921</a></sup></p>\r
-<p>Something<sup id="fnref:922"><a class="footnote-ref" href="#fn:922" rel="footnote">922</a></sup></p>\r
-<p>Something<sup id="fnref:923"><a class="footnote-ref" href="#fn:923" rel="footnote">923</a></sup></p>\r
-<p>Something<sup id="fnref:924"><a class="footnote-ref" href="#fn:924" rel="footnote">924</a></sup></p>\r
-<p>Something<sup id="fnref:925"><a class="footnote-ref" href="#fn:925" rel="footnote">925</a></sup></p>\r
-<p>Something<sup id="fnref:926"><a class="footnote-ref" href="#fn:926" rel="footnote">926</a></sup></p>\r
-<p>Something<sup id="fnref:927"><a class="footnote-ref" href="#fn:927" rel="footnote">927</a></sup></p>\r
-<p>Something<sup id="fnref:928"><a class="footnote-ref" href="#fn:928" rel="footnote">928</a></sup></p>\r
-<p>Something<sup id="fnref:929"><a class="footnote-ref" href="#fn:929" rel="footnote">929</a></sup></p>\r
-<p>Something<sup id="fnref:930"><a class="footnote-ref" href="#fn:930" rel="footnote">930</a></sup></p>\r
-<p>Something<sup id="fnref:931"><a class="footnote-ref" href="#fn:931" rel="footnote">931</a></sup></p>\r
-<p>Something<sup id="fnref:932"><a class="footnote-ref" href="#fn:932" rel="footnote">932</a></sup></p>\r
-<p>Something<sup id="fnref:933"><a class="footnote-ref" href="#fn:933" rel="footnote">933</a></sup></p>\r
-<p>Something<sup id="fnref:934"><a class="footnote-ref" href="#fn:934" rel="footnote">934</a></sup></p>\r
-<p>Something<sup id="fnref:935"><a class="footnote-ref" href="#fn:935" rel="footnote">935</a></sup></p>\r
-<p>Something<sup id="fnref:936"><a class="footnote-ref" href="#fn:936" rel="footnote">936</a></sup></p>\r
-<p>Something<sup id="fnref:937"><a class="footnote-ref" href="#fn:937" rel="footnote">937</a></sup></p>\r
-<p>Something<sup id="fnref:938"><a class="footnote-ref" href="#fn:938" rel="footnote">938</a></sup></p>\r
-<p>Something<sup id="fnref:939"><a class="footnote-ref" href="#fn:939" rel="footnote">939</a></sup></p>\r
-<p>Something<sup id="fnref:940"><a class="footnote-ref" href="#fn:940" rel="footnote">940</a></sup></p>\r
-<p>Something<sup id="fnref:941"><a class="footnote-ref" href="#fn:941" rel="footnote">941</a></sup></p>\r
-<p>Something<sup id="fnref:942"><a class="footnote-ref" href="#fn:942" rel="footnote">942</a></sup></p>\r
-<p>Something<sup id="fnref:943"><a class="footnote-ref" href="#fn:943" rel="footnote">943</a></sup></p>\r
-<p>Something<sup id="fnref:944"><a class="footnote-ref" href="#fn:944" rel="footnote">944</a></sup></p>\r
-<p>Something<sup id="fnref:945"><a class="footnote-ref" href="#fn:945" rel="footnote">945</a></sup></p>\r
-<p>Something<sup id="fnref:946"><a class="footnote-ref" href="#fn:946" rel="footnote">946</a></sup></p>\r
-<p>Something<sup id="fnref:947"><a class="footnote-ref" href="#fn:947" rel="footnote">947</a></sup></p>\r
-<p>Something<sup id="fnref:948"><a class="footnote-ref" href="#fn:948" rel="footnote">948</a></sup></p>\r
-<p>Something<sup id="fnref:949"><a class="footnote-ref" href="#fn:949" rel="footnote">949</a></sup></p>\r
-<p>Something<sup id="fnref:950"><a class="footnote-ref" href="#fn:950" rel="footnote">950</a></sup></p>\r
-<p>Something<sup id="fnref:951"><a class="footnote-ref" href="#fn:951" rel="footnote">951</a></sup></p>\r
-<p>Something<sup id="fnref:952"><a class="footnote-ref" href="#fn:952" rel="footnote">952</a></sup></p>\r
-<p>Something<sup id="fnref:953"><a class="footnote-ref" href="#fn:953" rel="footnote">953</a></sup></p>\r
-<p>Something<sup id="fnref:954"><a class="footnote-ref" href="#fn:954" rel="footnote">954</a></sup></p>\r
-<p>Something<sup id="fnref:955"><a class="footnote-ref" href="#fn:955" rel="footnote">955</a></sup></p>\r
-<p>Something<sup id="fnref:956"><a class="footnote-ref" href="#fn:956" rel="footnote">956</a></sup></p>\r
-<p>Something<sup id="fnref:957"><a class="footnote-ref" href="#fn:957" rel="footnote">957</a></sup></p>\r
-<p>Something<sup id="fnref:958"><a class="footnote-ref" href="#fn:958" rel="footnote">958</a></sup></p>\r
-<p>Something<sup id="fnref:959"><a class="footnote-ref" href="#fn:959" rel="footnote">959</a></sup></p>\r
-<p>Something<sup id="fnref:960"><a class="footnote-ref" href="#fn:960" rel="footnote">960</a></sup></p>\r
-<p>Something<sup id="fnref:961"><a class="footnote-ref" href="#fn:961" rel="footnote">961</a></sup></p>\r
-<p>Something<sup id="fnref:962"><a class="footnote-ref" href="#fn:962" rel="footnote">962</a></sup></p>\r
-<p>Something<sup id="fnref:963"><a class="footnote-ref" href="#fn:963" rel="footnote">963</a></sup></p>\r
-<p>Something<sup id="fnref:964"><a class="footnote-ref" href="#fn:964" rel="footnote">964</a></sup></p>\r
-<p>Something<sup id="fnref:965"><a class="footnote-ref" href="#fn:965" rel="footnote">965</a></sup></p>\r
-<p>Something<sup id="fnref:966"><a class="footnote-ref" href="#fn:966" rel="footnote">966</a></sup></p>\r
-<p>Something<sup id="fnref:967"><a class="footnote-ref" href="#fn:967" rel="footnote">967</a></sup></p>\r
-<p>Something<sup id="fnref:968"><a class="footnote-ref" href="#fn:968" rel="footnote">968</a></sup></p>\r
-<p>Something<sup id="fnref:969"><a class="footnote-ref" href="#fn:969" rel="footnote">969</a></sup></p>\r
-<p>Something<sup id="fnref:970"><a class="footnote-ref" href="#fn:970" rel="footnote">970</a></sup></p>\r
-<p>Something<sup id="fnref:971"><a class="footnote-ref" href="#fn:971" rel="footnote">971</a></sup></p>\r
-<p>Something<sup id="fnref:972"><a class="footnote-ref" href="#fn:972" rel="footnote">972</a></sup></p>\r
-<p>Something<sup id="fnref:973"><a class="footnote-ref" href="#fn:973" rel="footnote">973</a></sup></p>\r
-<p>Something<sup id="fnref:974"><a class="footnote-ref" href="#fn:974" rel="footnote">974</a></sup></p>\r
-<p>Something<sup id="fnref:975"><a class="footnote-ref" href="#fn:975" rel="footnote">975</a></sup></p>\r
-<p>Something<sup id="fnref:976"><a class="footnote-ref" href="#fn:976" rel="footnote">976</a></sup></p>\r
-<p>Something<sup id="fnref:977"><a class="footnote-ref" href="#fn:977" rel="footnote">977</a></sup></p>\r
-<p>Something<sup id="fnref:978"><a class="footnote-ref" href="#fn:978" rel="footnote">978</a></sup></p>\r
-<p>Something<sup id="fnref:979"><a class="footnote-ref" href="#fn:979" rel="footnote">979</a></sup></p>\r
-<p>Something<sup id="fnref:980"><a class="footnote-ref" href="#fn:980" rel="footnote">980</a></sup></p>\r
-<p>Something<sup id="fnref:981"><a class="footnote-ref" href="#fn:981" rel="footnote">981</a></sup></p>\r
-<p>Something<sup id="fnref:982"><a class="footnote-ref" href="#fn:982" rel="footnote">982</a></sup></p>\r
-<p>Something<sup id="fnref:983"><a class="footnote-ref" href="#fn:983" rel="footnote">983</a></sup></p>\r
-<p>Something<sup id="fnref:984"><a class="footnote-ref" href="#fn:984" rel="footnote">984</a></sup></p>\r
-<p>Something<sup id="fnref:985"><a class="footnote-ref" href="#fn:985" rel="footnote">985</a></sup></p>\r
-<p>Something<sup id="fnref:986"><a class="footnote-ref" href="#fn:986" rel="footnote">986</a></sup></p>\r
-<p>Something<sup id="fnref:987"><a class="footnote-ref" href="#fn:987" rel="footnote">987</a></sup></p>\r
-<p>Something<sup id="fnref:988"><a class="footnote-ref" href="#fn:988" rel="footnote">988</a></sup></p>\r
-<p>Something<sup id="fnref:989"><a class="footnote-ref" href="#fn:989" rel="footnote">989</a></sup></p>\r
-<p>Something<sup id="fnref:990"><a class="footnote-ref" href="#fn:990" rel="footnote">990</a></sup></p>\r
-<p>Something<sup id="fnref:991"><a class="footnote-ref" href="#fn:991" rel="footnote">991</a></sup></p>\r
-<p>Something<sup id="fnref:992"><a class="footnote-ref" href="#fn:992" rel="footnote">992</a></sup></p>\r
-<p>Something<sup id="fnref:993"><a class="footnote-ref" href="#fn:993" rel="footnote">993</a></sup></p>\r
-<p>Something<sup id="fnref:994"><a class="footnote-ref" href="#fn:994" rel="footnote">994</a></sup></p>\r
-<p>Something<sup id="fnref:995"><a class="footnote-ref" href="#fn:995" rel="footnote">995</a></sup></p>\r
-<p>Something<sup id="fnref:996"><a class="footnote-ref" href="#fn:996" rel="footnote">996</a></sup></p>\r
-<p>Something<sup id="fnref:997"><a class="footnote-ref" href="#fn:997" rel="footnote">997</a></sup></p>\r
-<p>Something<sup id="fnref:998"><a class="footnote-ref" href="#fn:998" rel="footnote">998</a></sup></p>\r
-<p>Something<sup id="fnref:999"><a class="footnote-ref" href="#fn:999" rel="footnote">999</a></sup></p>\r
-<p>Something<sup id="fnref:1000"><a class="footnote-ref" href="#fn:1000" rel="footnote">1000</a></sup></p>\r
-<p>Something<sup id="fnref:1001"><a class="footnote-ref" href="#fn:1001" rel="footnote">1001</a></sup></p>\r
-<p>Something<sup id="fnref:1002"><a class="footnote-ref" href="#fn:1002" rel="footnote">1002</a></sup></p>\r
-<p>Something<sup id="fnref:1003"><a class="footnote-ref" href="#fn:1003" rel="footnote">1003</a></sup></p>\r
-<p>Something<sup id="fnref:1004"><a class="footnote-ref" href="#fn:1004" rel="footnote">1004</a></sup></p>\r
-<p>Something<sup id="fnref:1005"><a class="footnote-ref" href="#fn:1005" rel="footnote">1005</a></sup></p>\r
-<p>Something<sup id="fnref:1006"><a class="footnote-ref" href="#fn:1006" rel="footnote">1006</a></sup></p>\r
-<p>Something<sup id="fnref:1007"><a class="footnote-ref" href="#fn:1007" rel="footnote">1007</a></sup></p>\r
-<p>Something<sup id="fnref:1008"><a class="footnote-ref" href="#fn:1008" rel="footnote">1008</a></sup></p>\r
-<p>Something<sup id="fnref:1009"><a class="footnote-ref" href="#fn:1009" rel="footnote">1009</a></sup></p>\r
-<p>Something<sup id="fnref:1010"><a class="footnote-ref" href="#fn:1010" rel="footnote">1010</a></sup></p>\r
-<p>Something<sup id="fnref:1011"><a class="footnote-ref" href="#fn:1011" rel="footnote">1011</a></sup></p>\r
-<p>Something<sup id="fnref:1012"><a class="footnote-ref" href="#fn:1012" rel="footnote">1012</a></sup></p>\r
-<p>Something<sup id="fnref:1013"><a class="footnote-ref" href="#fn:1013" rel="footnote">1013</a></sup></p>\r
-<p>Something<sup id="fnref:1014"><a class="footnote-ref" href="#fn:1014" rel="footnote">1014</a></sup></p>\r
-<p>Something<sup id="fnref:1015"><a class="footnote-ref" href="#fn:1015" rel="footnote">1015</a></sup></p>\r
-<p>Something<sup id="fnref:1016"><a class="footnote-ref" href="#fn:1016" rel="footnote">1016</a></sup></p>\r
-<p>Something<sup id="fnref:1017"><a class="footnote-ref" href="#fn:1017" rel="footnote">1017</a></sup></p>\r
-<p>Something<sup id="fnref:1018"><a class="footnote-ref" href="#fn:1018" rel="footnote">1018</a></sup></p>\r
-<p>Something<sup id="fnref:1019"><a class="footnote-ref" href="#fn:1019" rel="footnote">1019</a></sup></p>\r
-<p>Something<sup id="fnref:1020"><a class="footnote-ref" href="#fn:1020" rel="footnote">1020</a></sup></p>\r
-<p>Something<sup id="fnref:1021"><a class="footnote-ref" href="#fn:1021" rel="footnote">1021</a></sup></p>\r
-<p>Something<sup id="fnref:1022"><a class="footnote-ref" href="#fn:1022" rel="footnote">1022</a></sup></p>\r
-<p>Something<sup id="fnref:1023"><a class="footnote-ref" href="#fn:1023" rel="footnote">1023</a></sup></p>\r
-<p>Something<sup id="fnref:1024"><a class="footnote-ref" href="#fn:1024" rel="footnote">1024</a></sup></p>\r
-<p>Something<sup id="fnref:1025"><a class="footnote-ref" href="#fn:1025" rel="footnote">1025</a></sup></p>\r
-<p>Something<sup id="fnref:1026"><a class="footnote-ref" href="#fn:1026" rel="footnote">1026</a></sup></p>\r
-<p>Something<sup id="fnref:1027"><a class="footnote-ref" href="#fn:1027" rel="footnote">1027</a></sup></p>\r
-<p>Something<sup id="fnref:1028"><a class="footnote-ref" href="#fn:1028" rel="footnote">1028</a></sup></p>\r
-<p>Something<sup id="fnref:1029"><a class="footnote-ref" href="#fn:1029" rel="footnote">1029</a></sup></p>\r
-<p>Something<sup id="fnref:1030"><a class="footnote-ref" href="#fn:1030" rel="footnote">1030</a></sup></p>\r
-<p>Something<sup id="fnref:1031"><a class="footnote-ref" href="#fn:1031" rel="footnote">1031</a></sup></p>\r
-<p>Something<sup id="fnref:1032"><a class="footnote-ref" href="#fn:1032" rel="footnote">1032</a></sup></p>\r
-<p>Something<sup id="fnref:1033"><a class="footnote-ref" href="#fn:1033" rel="footnote">1033</a></sup></p>\r
-<p>Something<sup id="fnref:1034"><a class="footnote-ref" href="#fn:1034" rel="footnote">1034</a></sup></p>\r
-<p>Something<sup id="fnref:1035"><a class="footnote-ref" href="#fn:1035" rel="footnote">1035</a></sup></p>\r
-<p>Something<sup id="fnref:1036"><a class="footnote-ref" href="#fn:1036" rel="footnote">1036</a></sup></p>\r
-<p>Something<sup id="fnref:1037"><a class="footnote-ref" href="#fn:1037" rel="footnote">1037</a></sup></p>\r
-<p>Something<sup id="fnref:1038"><a class="footnote-ref" href="#fn:1038" rel="footnote">1038</a></sup></p>\r
-<p>Something<sup id="fnref:1039"><a class="footnote-ref" href="#fn:1039" rel="footnote">1039</a></sup></p>\r
-<p>Something<sup id="fnref:1040"><a class="footnote-ref" href="#fn:1040" rel="footnote">1040</a></sup></p>\r
-<p>Something<sup id="fnref:1041"><a class="footnote-ref" href="#fn:1041" rel="footnote">1041</a></sup></p>\r
-<p>Something<sup id="fnref:1042"><a class="footnote-ref" href="#fn:1042" rel="footnote">1042</a></sup></p>\r
-<p>Something<sup id="fnref:1043"><a class="footnote-ref" href="#fn:1043" rel="footnote">1043</a></sup></p>\r
-<p>Something<sup id="fnref:1044"><a class="footnote-ref" href="#fn:1044" rel="footnote">1044</a></sup></p>\r
-<p>Something<sup id="fnref:1045"><a class="footnote-ref" href="#fn:1045" rel="footnote">1045</a></sup></p>\r
-<p>Something<sup id="fnref:1046"><a class="footnote-ref" href="#fn:1046" rel="footnote">1046</a></sup></p>\r
-<p>Something<sup id="fnref:1047"><a class="footnote-ref" href="#fn:1047" rel="footnote">1047</a></sup></p>\r
-<p>Something<sup id="fnref:1048"><a class="footnote-ref" href="#fn:1048" rel="footnote">1048</a></sup></p>\r
-<p>Something<sup id="fnref:1049"><a class="footnote-ref" href="#fn:1049" rel="footnote">1049</a></sup></p>\r
-<p>Something<sup id="fnref:1050"><a class="footnote-ref" href="#fn:1050" rel="footnote">1050</a></sup></p>\r
-<p>Something<sup id="fnref:1051"><a class="footnote-ref" href="#fn:1051" rel="footnote">1051</a></sup></p>\r
-<p>Something<sup id="fnref:1052"><a class="footnote-ref" href="#fn:1052" rel="footnote">1052</a></sup></p>\r
-<p>Something<sup id="fnref:1053"><a class="footnote-ref" href="#fn:1053" rel="footnote">1053</a></sup></p>\r
-<p>Something<sup id="fnref:1054"><a class="footnote-ref" href="#fn:1054" rel="footnote">1054</a></sup></p>\r
-<p>Something<sup id="fnref:1055"><a class="footnote-ref" href="#fn:1055" rel="footnote">1055</a></sup></p>\r
-<p>Something<sup id="fnref:1056"><a class="footnote-ref" href="#fn:1056" rel="footnote">1056</a></sup></p>\r
-<p>Something<sup id="fnref:1057"><a class="footnote-ref" href="#fn:1057" rel="footnote">1057</a></sup></p>\r
-<p>Something<sup id="fnref:1058"><a class="footnote-ref" href="#fn:1058" rel="footnote">1058</a></sup></p>\r
-<p>Something<sup id="fnref:1059"><a class="footnote-ref" href="#fn:1059" rel="footnote">1059</a></sup></p>\r
-<p>Something<sup id="fnref:1060"><a class="footnote-ref" href="#fn:1060" rel="footnote">1060</a></sup></p>\r
-<p>Something<sup id="fnref:1061"><a class="footnote-ref" href="#fn:1061" rel="footnote">1061</a></sup></p>\r
-<p>Something<sup id="fnref:1062"><a class="footnote-ref" href="#fn:1062" rel="footnote">1062</a></sup></p>\r
-<p>Something<sup id="fnref:1063"><a class="footnote-ref" href="#fn:1063" rel="footnote">1063</a></sup></p>\r
-<p>Something<sup id="fnref:1064"><a class="footnote-ref" href="#fn:1064" rel="footnote">1064</a></sup></p>\r
-<p>Something<sup id="fnref:1065"><a class="footnote-ref" href="#fn:1065" rel="footnote">1065</a></sup></p>\r
-<p>Something<sup id="fnref:1066"><a class="footnote-ref" href="#fn:1066" rel="footnote">1066</a></sup></p>\r
-<p>Something<sup id="fnref:1067"><a class="footnote-ref" href="#fn:1067" rel="footnote">1067</a></sup></p>\r
-<p>Something<sup id="fnref:1068"><a class="footnote-ref" href="#fn:1068" rel="footnote">1068</a></sup></p>\r
-<p>Something<sup id="fnref:1069"><a class="footnote-ref" href="#fn:1069" rel="footnote">1069</a></sup></p>\r
-<p>Something<sup id="fnref:1070"><a class="footnote-ref" href="#fn:1070" rel="footnote">1070</a></sup></p>\r
-<p>Something<sup id="fnref:1071"><a class="footnote-ref" href="#fn:1071" rel="footnote">1071</a></sup></p>\r
-<p>Something<sup id="fnref:1072"><a class="footnote-ref" href="#fn:1072" rel="footnote">1072</a></sup></p>\r
-<p>Something<sup id="fnref:1073"><a class="footnote-ref" href="#fn:1073" rel="footnote">1073</a></sup></p>\r
-<p>Something<sup id="fnref:1074"><a class="footnote-ref" href="#fn:1074" rel="footnote">1074</a></sup></p>\r
-<p>Something<sup id="fnref:1075"><a class="footnote-ref" href="#fn:1075" rel="footnote">1075</a></sup></p>\r
-<p>Something<sup id="fnref:1076"><a class="footnote-ref" href="#fn:1076" rel="footnote">1076</a></sup></p>\r
-<p>Something<sup id="fnref:1077"><a class="footnote-ref" href="#fn:1077" rel="footnote">1077</a></sup></p>\r
-<p>Something<sup id="fnref:1078"><a class="footnote-ref" href="#fn:1078" rel="footnote">1078</a></sup></p>\r
-<p>Something<sup id="fnref:1079"><a class="footnote-ref" href="#fn:1079" rel="footnote">1079</a></sup></p>\r
-<p>Something<sup id="fnref:1080"><a class="footnote-ref" href="#fn:1080" rel="footnote">1080</a></sup></p>\r
-<p>Something<sup id="fnref:1081"><a class="footnote-ref" href="#fn:1081" rel="footnote">1081</a></sup></p>\r
-<p>Something<sup id="fnref:1082"><a class="footnote-ref" href="#fn:1082" rel="footnote">1082</a></sup></p>\r
-<p>Something<sup id="fnref:1083"><a class="footnote-ref" href="#fn:1083" rel="footnote">1083</a></sup></p>\r
-<p>Something<sup id="fnref:1084"><a class="footnote-ref" href="#fn:1084" rel="footnote">1084</a></sup></p>\r
-<p>Something<sup id="fnref:1085"><a class="footnote-ref" href="#fn:1085" rel="footnote">1085</a></sup></p>\r
-<p>Something<sup id="fnref:1086"><a class="footnote-ref" href="#fn:1086" rel="footnote">1086</a></sup></p>\r
-<p>Something<sup id="fnref:1087"><a class="footnote-ref" href="#fn:1087" rel="footnote">1087</a></sup></p>\r
-<p>Something<sup id="fnref:1088"><a class="footnote-ref" href="#fn:1088" rel="footnote">1088</a></sup></p>\r
-<p>Something<sup id="fnref:1089"><a class="footnote-ref" href="#fn:1089" rel="footnote">1089</a></sup></p>\r
-<p>Something<sup id="fnref:1090"><a class="footnote-ref" href="#fn:1090" rel="footnote">1090</a></sup></p>\r
-<p>Something<sup id="fnref:1091"><a class="footnote-ref" href="#fn:1091" rel="footnote">1091</a></sup></p>\r
-<p>Something<sup id="fnref:1092"><a class="footnote-ref" href="#fn:1092" rel="footnote">1092</a></sup></p>\r
-<p>Something<sup id="fnref:1093"><a class="footnote-ref" href="#fn:1093" rel="footnote">1093</a></sup></p>\r
-<p>Something<sup id="fnref:1094"><a class="footnote-ref" href="#fn:1094" rel="footnote">1094</a></sup></p>\r
-<p>Something<sup id="fnref:1095"><a class="footnote-ref" href="#fn:1095" rel="footnote">1095</a></sup></p>\r
-<p>Something<sup id="fnref:1096"><a class="footnote-ref" href="#fn:1096" rel="footnote">1096</a></sup></p>\r
-<p>Something<sup id="fnref:1097"><a class="footnote-ref" href="#fn:1097" rel="footnote">1097</a></sup></p>\r
-<p>Something<sup id="fnref:1098"><a class="footnote-ref" href="#fn:1098" rel="footnote">1098</a></sup></p>\r
-<p>Something<sup id="fnref:1099"><a class="footnote-ref" href="#fn:1099" rel="footnote">1099</a></sup></p>\r
-<p>Something<sup id="fnref:1100"><a class="footnote-ref" href="#fn:1100" rel="footnote">1100</a></sup></p>\r
-<p>Something<sup id="fnref:1101"><a class="footnote-ref" href="#fn:1101" rel="footnote">1101</a></sup></p>\r
-<p>Something<sup id="fnref:1102"><a class="footnote-ref" href="#fn:1102" rel="footnote">1102</a></sup></p>\r
-<p>Something<sup id="fnref:1103"><a class="footnote-ref" href="#fn:1103" rel="footnote">1103</a></sup></p>\r
-<p>Something<sup id="fnref:1104"><a class="footnote-ref" href="#fn:1104" rel="footnote">1104</a></sup></p>\r
-<p>Something<sup id="fnref:1105"><a class="footnote-ref" href="#fn:1105" rel="footnote">1105</a></sup></p>\r
-<p>Something<sup id="fnref:1106"><a class="footnote-ref" href="#fn:1106" rel="footnote">1106</a></sup></p>\r
-<p>Something<sup id="fnref:1107"><a class="footnote-ref" href="#fn:1107" rel="footnote">1107</a></sup></p>\r
-<p>Something<sup id="fnref:1108"><a class="footnote-ref" href="#fn:1108" rel="footnote">1108</a></sup></p>\r
-<p>Something<sup id="fnref:1109"><a class="footnote-ref" href="#fn:1109" rel="footnote">1109</a></sup></p>\r
-<p>Something<sup id="fnref:1110"><a class="footnote-ref" href="#fn:1110" rel="footnote">1110</a></sup></p>\r
-<p>Something<sup id="fnref:1111"><a class="footnote-ref" href="#fn:1111" rel="footnote">1111</a></sup></p>\r
-<p>Something<sup id="fnref:1112"><a class="footnote-ref" href="#fn:1112" rel="footnote">1112</a></sup></p>\r
-<p>Something<sup id="fnref:1113"><a class="footnote-ref" href="#fn:1113" rel="footnote">1113</a></sup></p>\r
-<p>Something<sup id="fnref:1114"><a class="footnote-ref" href="#fn:1114" rel="footnote">1114</a></sup></p>\r
-<p>Something<sup id="fnref:1115"><a class="footnote-ref" href="#fn:1115" rel="footnote">1115</a></sup></p>\r
-<p>Something<sup id="fnref:1116"><a class="footnote-ref" href="#fn:1116" rel="footnote">1116</a></sup></p>\r
-<p>Something<sup id="fnref:1117"><a class="footnote-ref" href="#fn:1117" rel="footnote">1117</a></sup></p>\r
-<p>Something<sup id="fnref:1118"><a class="footnote-ref" href="#fn:1118" rel="footnote">1118</a></sup></p>\r
-<p>Something<sup id="fnref:1119"><a class="footnote-ref" href="#fn:1119" rel="footnote">1119</a></sup></p>\r
-<p>Something<sup id="fnref:1120"><a class="footnote-ref" href="#fn:1120" rel="footnote">1120</a></sup></p>\r
-<p>Something<sup id="fnref:1121"><a class="footnote-ref" href="#fn:1121" rel="footnote">1121</a></sup></p>\r
-<p>Something<sup id="fnref:1122"><a class="footnote-ref" href="#fn:1122" rel="footnote">1122</a></sup></p>\r
-<p>Something<sup id="fnref:1123"><a class="footnote-ref" href="#fn:1123" rel="footnote">1123</a></sup></p>\r
-<p>Something<sup id="fnref:1124"><a class="footnote-ref" href="#fn:1124" rel="footnote">1124</a></sup></p>\r
-<p>Something<sup id="fnref:1125"><a class="footnote-ref" href="#fn:1125" rel="footnote">1125</a></sup></p>\r
-<p>Something<sup id="fnref:1126"><a class="footnote-ref" href="#fn:1126" rel="footnote">1126</a></sup></p>\r
-<p>Something<sup id="fnref:1127"><a class="footnote-ref" href="#fn:1127" rel="footnote">1127</a></sup></p>\r
-<p>Something<sup id="fnref:1128"><a class="footnote-ref" href="#fn:1128" rel="footnote">1128</a></sup></p>\r
-<p>Something<sup id="fnref:1129"><a class="footnote-ref" href="#fn:1129" rel="footnote">1129</a></sup></p>\r
-<p>Something<sup id="fnref:1130"><a class="footnote-ref" href="#fn:1130" rel="footnote">1130</a></sup></p>\r
-<p>Something<sup id="fnref:1131"><a class="footnote-ref" href="#fn:1131" rel="footnote">1131</a></sup></p>\r
-<p>Something<sup id="fnref:1132"><a class="footnote-ref" href="#fn:1132" rel="footnote">1132</a></sup></p>\r
-<p>Something<sup id="fnref:1133"><a class="footnote-ref" href="#fn:1133" rel="footnote">1133</a></sup></p>\r
-<p>Something<sup id="fnref:1134"><a class="footnote-ref" href="#fn:1134" rel="footnote">1134</a></sup></p>\r
-<p>Something<sup id="fnref:1135"><a class="footnote-ref" href="#fn:1135" rel="footnote">1135</a></sup></p>\r
-<p>Something<sup id="fnref:1136"><a class="footnote-ref" href="#fn:1136" rel="footnote">1136</a></sup></p>\r
-<p>Something<sup id="fnref:1137"><a class="footnote-ref" href="#fn:1137" rel="footnote">1137</a></sup></p>\r
-<p>Something<sup id="fnref:1138"><a class="footnote-ref" href="#fn:1138" rel="footnote">1138</a></sup></p>\r
-<p>Something<sup id="fnref:1139"><a class="footnote-ref" href="#fn:1139" rel="footnote">1139</a></sup></p>\r
-<p>Something<sup id="fnref:1140"><a class="footnote-ref" href="#fn:1140" rel="footnote">1140</a></sup></p>\r
-<p>Something<sup id="fnref:1141"><a class="footnote-ref" href="#fn:1141" rel="footnote">1141</a></sup></p>\r
-<p>Something<sup id="fnref:1142"><a class="footnote-ref" href="#fn:1142" rel="footnote">1142</a></sup></p>\r
-<p>Something<sup id="fnref:1143"><a class="footnote-ref" href="#fn:1143" rel="footnote">1143</a></sup></p>\r
-<p>Something<sup id="fnref:1144"><a class="footnote-ref" href="#fn:1144" rel="footnote">1144</a></sup></p>\r
-<p>Something<sup id="fnref:1145"><a class="footnote-ref" href="#fn:1145" rel="footnote">1145</a></sup></p>\r
-<p>Something<sup id="fnref:1146"><a class="footnote-ref" href="#fn:1146" rel="footnote">1146</a></sup></p>\r
-<p>Something<sup id="fnref:1147"><a class="footnote-ref" href="#fn:1147" rel="footnote">1147</a></sup></p>\r
-<p>Something<sup id="fnref:1148"><a class="footnote-ref" href="#fn:1148" rel="footnote">1148</a></sup></p>\r
-<p>Something<sup id="fnref:1149"><a class="footnote-ref" href="#fn:1149" rel="footnote">1149</a></sup></p>\r
-<p>Something<sup id="fnref:1150"><a class="footnote-ref" href="#fn:1150" rel="footnote">1150</a></sup></p>\r
-<p>Something<sup id="fnref:1151"><a class="footnote-ref" href="#fn:1151" rel="footnote">1151</a></sup></p>\r
-<p>Something<sup id="fnref:1152"><a class="footnote-ref" href="#fn:1152" rel="footnote">1152</a></sup></p>\r
-<p>Something<sup id="fnref:1153"><a class="footnote-ref" href="#fn:1153" rel="footnote">1153</a></sup></p>\r
-<p>Something<sup id="fnref:1154"><a class="footnote-ref" href="#fn:1154" rel="footnote">1154</a></sup></p>\r
-<p>Something<sup id="fnref:1155"><a class="footnote-ref" href="#fn:1155" rel="footnote">1155</a></sup></p>\r
-<p>Something<sup id="fnref:1156"><a class="footnote-ref" href="#fn:1156" rel="footnote">1156</a></sup></p>\r
-<p>Something<sup id="fnref:1157"><a class="footnote-ref" href="#fn:1157" rel="footnote">1157</a></sup></p>\r
-<p>Something<sup id="fnref:1158"><a class="footnote-ref" href="#fn:1158" rel="footnote">1158</a></sup></p>\r
-<p>Something<sup id="fnref:1159"><a class="footnote-ref" href="#fn:1159" rel="footnote">1159</a></sup></p>\r
-<p>Something<sup id="fnref:1160"><a class="footnote-ref" href="#fn:1160" rel="footnote">1160</a></sup></p>\r
-<p>Something<sup id="fnref:1161"><a class="footnote-ref" href="#fn:1161" rel="footnote">1161</a></sup></p>\r
-<p>Something<sup id="fnref:1162"><a class="footnote-ref" href="#fn:1162" rel="footnote">1162</a></sup></p>\r
-<p>Something<sup id="fnref:1163"><a class="footnote-ref" href="#fn:1163" rel="footnote">1163</a></sup></p>\r
-<p>Something<sup id="fnref:1164"><a class="footnote-ref" href="#fn:1164" rel="footnote">1164</a></sup></p>\r
-<p>Something<sup id="fnref:1165"><a class="footnote-ref" href="#fn:1165" rel="footnote">1165</a></sup></p>\r
-<p>Something<sup id="fnref:1166"><a class="footnote-ref" href="#fn:1166" rel="footnote">1166</a></sup></p>\r
-<p>Something<sup id="fnref:1167"><a class="footnote-ref" href="#fn:1167" rel="footnote">1167</a></sup></p>\r
-<p>Something<sup id="fnref:1168"><a class="footnote-ref" href="#fn:1168" rel="footnote">1168</a></sup></p>\r
-<p>Something<sup id="fnref:1169"><a class="footnote-ref" href="#fn:1169" rel="footnote">1169</a></sup></p>\r
-<p>Something<sup id="fnref:1170"><a class="footnote-ref" href="#fn:1170" rel="footnote">1170</a></sup></p>\r
-<p>Something<sup id="fnref:1171"><a class="footnote-ref" href="#fn:1171" rel="footnote">1171</a></sup></p>\r
-<p>Something<sup id="fnref:1172"><a class="footnote-ref" href="#fn:1172" rel="footnote">1172</a></sup></p>\r
-<p>Something<sup id="fnref:1173"><a class="footnote-ref" href="#fn:1173" rel="footnote">1173</a></sup></p>\r
-<p>Something<sup id="fnref:1174"><a class="footnote-ref" href="#fn:1174" rel="footnote">1174</a></sup></p>\r
-<p>Something<sup id="fnref:1175"><a class="footnote-ref" href="#fn:1175" rel="footnote">1175</a></sup></p>\r
-<p>Something<sup id="fnref:1176"><a class="footnote-ref" href="#fn:1176" rel="footnote">1176</a></sup></p>\r
-<p>Something<sup id="fnref:1177"><a class="footnote-ref" href="#fn:1177" rel="footnote">1177</a></sup></p>\r
-<p>Something<sup id="fnref:1178"><a class="footnote-ref" href="#fn:1178" rel="footnote">1178</a></sup></p>\r
-<p>Something<sup id="fnref:1179"><a class="footnote-ref" href="#fn:1179" rel="footnote">1179</a></sup></p>\r
-<p>Something<sup id="fnref:1180"><a class="footnote-ref" href="#fn:1180" rel="footnote">1180</a></sup></p>\r
-<p>Something<sup id="fnref:1181"><a class="footnote-ref" href="#fn:1181" rel="footnote">1181</a></sup></p>\r
-<p>Something<sup id="fnref:1182"><a class="footnote-ref" href="#fn:1182" rel="footnote">1182</a></sup></p>\r
-<p>Something<sup id="fnref:1183"><a class="footnote-ref" href="#fn:1183" rel="footnote">1183</a></sup></p>\r
-<p>Something<sup id="fnref:1184"><a class="footnote-ref" href="#fn:1184" rel="footnote">1184</a></sup></p>\r
-<p>Something<sup id="fnref:1185"><a class="footnote-ref" href="#fn:1185" rel="footnote">1185</a></sup></p>\r
-<p>Something<sup id="fnref:1186"><a class="footnote-ref" href="#fn:1186" rel="footnote">1186</a></sup></p>\r
-<p>Something<sup id="fnref:1187"><a class="footnote-ref" href="#fn:1187" rel="footnote">1187</a></sup></p>\r
-<p>Something<sup id="fnref:1188"><a class="footnote-ref" href="#fn:1188" rel="footnote">1188</a></sup></p>\r
-<p>Something<sup id="fnref:1189"><a class="footnote-ref" href="#fn:1189" rel="footnote">1189</a></sup></p>\r
-<p>Something<sup id="fnref:1190"><a class="footnote-ref" href="#fn:1190" rel="footnote">1190</a></sup></p>\r
-<p>Something<sup id="fnref:1191"><a class="footnote-ref" href="#fn:1191" rel="footnote">1191</a></sup></p>\r
-<p>Something<sup id="fnref:1192"><a class="footnote-ref" href="#fn:1192" rel="footnote">1192</a></sup></p>\r
-<p>Something<sup id="fnref:1193"><a class="footnote-ref" href="#fn:1193" rel="footnote">1193</a></sup></p>\r
-<p>Something<sup id="fnref:1194"><a class="footnote-ref" href="#fn:1194" rel="footnote">1194</a></sup></p>\r
-<p>Something<sup id="fnref:1195"><a class="footnote-ref" href="#fn:1195" rel="footnote">1195</a></sup></p>\r
-<p>Something<sup id="fnref:1196"><a class="footnote-ref" href="#fn:1196" rel="footnote">1196</a></sup></p>\r
-<p>Something<sup id="fnref:1197"><a class="footnote-ref" href="#fn:1197" rel="footnote">1197</a></sup></p>\r
-<p>Something<sup id="fnref:1198"><a class="footnote-ref" href="#fn:1198" rel="footnote">1198</a></sup></p>\r
-<p>Something<sup id="fnref:1199"><a class="footnote-ref" href="#fn:1199" rel="footnote">1199</a></sup></p>\r
-<div class="footnote">\r
-<hr />\r
-<ol>\r
-<li id="fn:1">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:2">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:3">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:4">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:4" rev="footnote" title="Jump back to footnote 4 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:5">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:5" rev="footnote" title="Jump back to footnote 5 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:6">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:6" rev="footnote" title="Jump back to footnote 6 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:7">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:7" rev="footnote" title="Jump back to footnote 7 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:8">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:8" rev="footnote" title="Jump back to footnote 8 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:9">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:9" rev="footnote" title="Jump back to footnote 9 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:10">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:10" rev="footnote" title="Jump back to footnote 10 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:11">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:11" rev="footnote" title="Jump back to footnote 11 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:12">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:12" rev="footnote" title="Jump back to footnote 12 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:13">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:13" rev="footnote" title="Jump back to footnote 13 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:14">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:14" rev="footnote" title="Jump back to footnote 14 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:15">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:15" rev="footnote" title="Jump back to footnote 15 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:16">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:16" rev="footnote" title="Jump back to footnote 16 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:17">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:17" rev="footnote" title="Jump back to footnote 17 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:18">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:18" rev="footnote" title="Jump back to footnote 18 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:19">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:19" rev="footnote" title="Jump back to footnote 19 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:20">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:20" rev="footnote" title="Jump back to footnote 20 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:21">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:21" rev="footnote" title="Jump back to footnote 21 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:22">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:22" rev="footnote" title="Jump back to footnote 22 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:23">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:23" rev="footnote" title="Jump back to footnote 23 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:24">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:24" rev="footnote" title="Jump back to footnote 24 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:25">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:25" rev="footnote" title="Jump back to footnote 25 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:26">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:26" rev="footnote" title="Jump back to footnote 26 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:27">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:27" rev="footnote" title="Jump back to footnote 27 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:28">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:28" rev="footnote" title="Jump back to footnote 28 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:29">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:29" rev="footnote" title="Jump back to footnote 29 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:30">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:30" rev="footnote" title="Jump back to footnote 30 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:31">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:31" rev="footnote" title="Jump back to footnote 31 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:32">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:32" rev="footnote" title="Jump back to footnote 32 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:33">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:33" rev="footnote" title="Jump back to footnote 33 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:34">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:34" rev="footnote" title="Jump back to footnote 34 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:35">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:35" rev="footnote" title="Jump back to footnote 35 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:36">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:36" rev="footnote" title="Jump back to footnote 36 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:37">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:37" rev="footnote" title="Jump back to footnote 37 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:38">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:38" rev="footnote" title="Jump back to footnote 38 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:39">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:39" rev="footnote" title="Jump back to footnote 39 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:40">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:40" rev="footnote" title="Jump back to footnote 40 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:41">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:41" rev="footnote" title="Jump back to footnote 41 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:42">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:42" rev="footnote" title="Jump back to footnote 42 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:43">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:43" rev="footnote" title="Jump back to footnote 43 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:44">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:44" rev="footnote" title="Jump back to footnote 44 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:45">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:45" rev="footnote" title="Jump back to footnote 45 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:46">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:46" rev="footnote" title="Jump back to footnote 46 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:47">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:47" rev="footnote" title="Jump back to footnote 47 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:48">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:48" rev="footnote" title="Jump back to footnote 48 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:49">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:49" rev="footnote" title="Jump back to footnote 49 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:50">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:50" rev="footnote" title="Jump back to footnote 50 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:51">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:51" rev="footnote" title="Jump back to footnote 51 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:52">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:52" rev="footnote" title="Jump back to footnote 52 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:53">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:53" rev="footnote" title="Jump back to footnote 53 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:54">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:54" rev="footnote" title="Jump back to footnote 54 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:55">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:55" rev="footnote" title="Jump back to footnote 55 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:56">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:56" rev="footnote" title="Jump back to footnote 56 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:57">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:57" rev="footnote" title="Jump back to footnote 57 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:58">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:58" rev="footnote" title="Jump back to footnote 58 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:59">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:59" rev="footnote" title="Jump back to footnote 59 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:60">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:60" rev="footnote" title="Jump back to footnote 60 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:61">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:61" rev="footnote" title="Jump back to footnote 61 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:62">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:62" rev="footnote" title="Jump back to footnote 62 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:63">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:63" rev="footnote" title="Jump back to footnote 63 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:64">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:64" rev="footnote" title="Jump back to footnote 64 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:65">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:65" rev="footnote" title="Jump back to footnote 65 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:66">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:66" rev="footnote" title="Jump back to footnote 66 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:67">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:67" rev="footnote" title="Jump back to footnote 67 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:68">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:68" rev="footnote" title="Jump back to footnote 68 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:69">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:69" rev="footnote" title="Jump back to footnote 69 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:70">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:70" rev="footnote" title="Jump back to footnote 70 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:71">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:71" rev="footnote" title="Jump back to footnote 71 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:72">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:72" rev="footnote" title="Jump back to footnote 72 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:73">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:73" rev="footnote" title="Jump back to footnote 73 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:74">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:74" rev="footnote" title="Jump back to footnote 74 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:75">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:75" rev="footnote" title="Jump back to footnote 75 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:76">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:76" rev="footnote" title="Jump back to footnote 76 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:77">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:77" rev="footnote" title="Jump back to footnote 77 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:78">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:78" rev="footnote" title="Jump back to footnote 78 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:79">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:79" rev="footnote" title="Jump back to footnote 79 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:80">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:80" rev="footnote" title="Jump back to footnote 80 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:81">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:81" rev="footnote" title="Jump back to footnote 81 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:82">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:82" rev="footnote" title="Jump back to footnote 82 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:83">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:83" rev="footnote" title="Jump back to footnote 83 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:84">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:84" rev="footnote" title="Jump back to footnote 84 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:85">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:85" rev="footnote" title="Jump back to footnote 85 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:86">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:86" rev="footnote" title="Jump back to footnote 86 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:87">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:87" rev="footnote" title="Jump back to footnote 87 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:88">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:88" rev="footnote" title="Jump back to footnote 88 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:89">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:89" rev="footnote" title="Jump back to footnote 89 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:90">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:90" rev="footnote" title="Jump back to footnote 90 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:91">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:91" rev="footnote" title="Jump back to footnote 91 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:92">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:92" rev="footnote" title="Jump back to footnote 92 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:93">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:93" rev="footnote" title="Jump back to footnote 93 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:94">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:94" rev="footnote" title="Jump back to footnote 94 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:95">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:95" rev="footnote" title="Jump back to footnote 95 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:96">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:96" rev="footnote" title="Jump back to footnote 96 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:97">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:97" rev="footnote" title="Jump back to footnote 97 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:98">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:98" rev="footnote" title="Jump back to footnote 98 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:99">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:99" rev="footnote" title="Jump back to footnote 99 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:100">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:100" rev="footnote" title="Jump back to footnote 100 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:101">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:101" rev="footnote" title="Jump back to footnote 101 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:102">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:102" rev="footnote" title="Jump back to footnote 102 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:103">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:103" rev="footnote" title="Jump back to footnote 103 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:104">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:104" rev="footnote" title="Jump back to footnote 104 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:105">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:105" rev="footnote" title="Jump back to footnote 105 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:106">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:106" rev="footnote" title="Jump back to footnote 106 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:107">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:107" rev="footnote" title="Jump back to footnote 107 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:108">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:108" rev="footnote" title="Jump back to footnote 108 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:109">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:109" rev="footnote" title="Jump back to footnote 109 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:110">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:110" rev="footnote" title="Jump back to footnote 110 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:111">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:111" rev="footnote" title="Jump back to footnote 111 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:112">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:112" rev="footnote" title="Jump back to footnote 112 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:113">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:113" rev="footnote" title="Jump back to footnote 113 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:114">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:114" rev="footnote" title="Jump back to footnote 114 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:115">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:115" rev="footnote" title="Jump back to footnote 115 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:116">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:116" rev="footnote" title="Jump back to footnote 116 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:117">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:117" rev="footnote" title="Jump back to footnote 117 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:118">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:118" rev="footnote" title="Jump back to footnote 118 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:119">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:119" rev="footnote" title="Jump back to footnote 119 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:120">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:120" rev="footnote" title="Jump back to footnote 120 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:121">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:121" rev="footnote" title="Jump back to footnote 121 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:122">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:122" rev="footnote" title="Jump back to footnote 122 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:123">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:123" rev="footnote" title="Jump back to footnote 123 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:124">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:124" rev="footnote" title="Jump back to footnote 124 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:125">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:125" rev="footnote" title="Jump back to footnote 125 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:126">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:126" rev="footnote" title="Jump back to footnote 126 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:127">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:127" rev="footnote" title="Jump back to footnote 127 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:128">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:128" rev="footnote" title="Jump back to footnote 128 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:129">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:129" rev="footnote" title="Jump back to footnote 129 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:130">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:130" rev="footnote" title="Jump back to footnote 130 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:131">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:131" rev="footnote" title="Jump back to footnote 131 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:132">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:132" rev="footnote" title="Jump back to footnote 132 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:133">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:133" rev="footnote" title="Jump back to footnote 133 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:134">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:134" rev="footnote" title="Jump back to footnote 134 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:135">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:135" rev="footnote" title="Jump back to footnote 135 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:136">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:136" rev="footnote" title="Jump back to footnote 136 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:137">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:137" rev="footnote" title="Jump back to footnote 137 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:138">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:138" rev="footnote" title="Jump back to footnote 138 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:139">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:139" rev="footnote" title="Jump back to footnote 139 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:140">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:140" rev="footnote" title="Jump back to footnote 140 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:141">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:141" rev="footnote" title="Jump back to footnote 141 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:142">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:142" rev="footnote" title="Jump back to footnote 142 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:143">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:143" rev="footnote" title="Jump back to footnote 143 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:144">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:144" rev="footnote" title="Jump back to footnote 144 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:145">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:145" rev="footnote" title="Jump back to footnote 145 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:146">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:146" rev="footnote" title="Jump back to footnote 146 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:147">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:147" rev="footnote" title="Jump back to footnote 147 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:148">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:148" rev="footnote" title="Jump back to footnote 148 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:149">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:149" rev="footnote" title="Jump back to footnote 149 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:150">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:150" rev="footnote" title="Jump back to footnote 150 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:151">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:151" rev="footnote" title="Jump back to footnote 151 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:152">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:152" rev="footnote" title="Jump back to footnote 152 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:153">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:153" rev="footnote" title="Jump back to footnote 153 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:154">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:154" rev="footnote" title="Jump back to footnote 154 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:155">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:155" rev="footnote" title="Jump back to footnote 155 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:156">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:156" rev="footnote" title="Jump back to footnote 156 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:157">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:157" rev="footnote" title="Jump back to footnote 157 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:158">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:158" rev="footnote" title="Jump back to footnote 158 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:159">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:159" rev="footnote" title="Jump back to footnote 159 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:160">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:160" rev="footnote" title="Jump back to footnote 160 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:161">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:161" rev="footnote" title="Jump back to footnote 161 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:162">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:162" rev="footnote" title="Jump back to footnote 162 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:163">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:163" rev="footnote" title="Jump back to footnote 163 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:164">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:164" rev="footnote" title="Jump back to footnote 164 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:165">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:165" rev="footnote" title="Jump back to footnote 165 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:166">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:166" rev="footnote" title="Jump back to footnote 166 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:167">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:167" rev="footnote" title="Jump back to footnote 167 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:168">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:168" rev="footnote" title="Jump back to footnote 168 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:169">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:169" rev="footnote" title="Jump back to footnote 169 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:170">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:170" rev="footnote" title="Jump back to footnote 170 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:171">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:171" rev="footnote" title="Jump back to footnote 171 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:172">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:172" rev="footnote" title="Jump back to footnote 172 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:173">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:173" rev="footnote" title="Jump back to footnote 173 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:174">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:174" rev="footnote" title="Jump back to footnote 174 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:175">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:175" rev="footnote" title="Jump back to footnote 175 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:176">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:176" rev="footnote" title="Jump back to footnote 176 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:177">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:177" rev="footnote" title="Jump back to footnote 177 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:178">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:178" rev="footnote" title="Jump back to footnote 178 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:179">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:179" rev="footnote" title="Jump back to footnote 179 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:180">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:180" rev="footnote" title="Jump back to footnote 180 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:181">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:181" rev="footnote" title="Jump back to footnote 181 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:182">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:182" rev="footnote" title="Jump back to footnote 182 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:183">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:183" rev="footnote" title="Jump back to footnote 183 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:184">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:184" rev="footnote" title="Jump back to footnote 184 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:185">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:185" rev="footnote" title="Jump back to footnote 185 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:186">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:186" rev="footnote" title="Jump back to footnote 186 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:187">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:187" rev="footnote" title="Jump back to footnote 187 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:188">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:188" rev="footnote" title="Jump back to footnote 188 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:189">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:189" rev="footnote" title="Jump back to footnote 189 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:190">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:190" rev="footnote" title="Jump back to footnote 190 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:191">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:191" rev="footnote" title="Jump back to footnote 191 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:192">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:192" rev="footnote" title="Jump back to footnote 192 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:193">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:193" rev="footnote" title="Jump back to footnote 193 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:194">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:194" rev="footnote" title="Jump back to footnote 194 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:195">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:195" rev="footnote" title="Jump back to footnote 195 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:196">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:196" rev="footnote" title="Jump back to footnote 196 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:197">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:197" rev="footnote" title="Jump back to footnote 197 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:198">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:198" rev="footnote" title="Jump back to footnote 198 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:199">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:199" rev="footnote" title="Jump back to footnote 199 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:200">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:200" rev="footnote" title="Jump back to footnote 200 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:201">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:201" rev="footnote" title="Jump back to footnote 201 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:202">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:202" rev="footnote" title="Jump back to footnote 202 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:203">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:203" rev="footnote" title="Jump back to footnote 203 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:204">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:204" rev="footnote" title="Jump back to footnote 204 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:205">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:205" rev="footnote" title="Jump back to footnote 205 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:206">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:206" rev="footnote" title="Jump back to footnote 206 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:207">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:207" rev="footnote" title="Jump back to footnote 207 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:208">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:208" rev="footnote" title="Jump back to footnote 208 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:209">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:209" rev="footnote" title="Jump back to footnote 209 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:210">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:210" rev="footnote" title="Jump back to footnote 210 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:211">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:211" rev="footnote" title="Jump back to footnote 211 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:212">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:212" rev="footnote" title="Jump back to footnote 212 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:213">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:213" rev="footnote" title="Jump back to footnote 213 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:214">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:214" rev="footnote" title="Jump back to footnote 214 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:215">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:215" rev="footnote" title="Jump back to footnote 215 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:216">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:216" rev="footnote" title="Jump back to footnote 216 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:217">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:217" rev="footnote" title="Jump back to footnote 217 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:218">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:218" rev="footnote" title="Jump back to footnote 218 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:219">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:219" rev="footnote" title="Jump back to footnote 219 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:220">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:220" rev="footnote" title="Jump back to footnote 220 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:221">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:221" rev="footnote" title="Jump back to footnote 221 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:222">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:222" rev="footnote" title="Jump back to footnote 222 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:223">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:223" rev="footnote" title="Jump back to footnote 223 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:224">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:224" rev="footnote" title="Jump back to footnote 224 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:225">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:225" rev="footnote" title="Jump back to footnote 225 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:226">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:226" rev="footnote" title="Jump back to footnote 226 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:227">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:227" rev="footnote" title="Jump back to footnote 227 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:228">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:228" rev="footnote" title="Jump back to footnote 228 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:229">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:229" rev="footnote" title="Jump back to footnote 229 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:230">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:230" rev="footnote" title="Jump back to footnote 230 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:231">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:231" rev="footnote" title="Jump back to footnote 231 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:232">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:232" rev="footnote" title="Jump back to footnote 232 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:233">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:233" rev="footnote" title="Jump back to footnote 233 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:234">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:234" rev="footnote" title="Jump back to footnote 234 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:235">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:235" rev="footnote" title="Jump back to footnote 235 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:236">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:236" rev="footnote" title="Jump back to footnote 236 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:237">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:237" rev="footnote" title="Jump back to footnote 237 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:238">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:238" rev="footnote" title="Jump back to footnote 238 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:239">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:239" rev="footnote" title="Jump back to footnote 239 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:240">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:240" rev="footnote" title="Jump back to footnote 240 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:241">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:241" rev="footnote" title="Jump back to footnote 241 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:242">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:242" rev="footnote" title="Jump back to footnote 242 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:243">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:243" rev="footnote" title="Jump back to footnote 243 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:244">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:244" rev="footnote" title="Jump back to footnote 244 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:245">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:245" rev="footnote" title="Jump back to footnote 245 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:246">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:246" rev="footnote" title="Jump back to footnote 246 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:247">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:247" rev="footnote" title="Jump back to footnote 247 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:248">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:248" rev="footnote" title="Jump back to footnote 248 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:249">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:249" rev="footnote" title="Jump back to footnote 249 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:250">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:250" rev="footnote" title="Jump back to footnote 250 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:251">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:251" rev="footnote" title="Jump back to footnote 251 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:252">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:252" rev="footnote" title="Jump back to footnote 252 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:253">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:253" rev="footnote" title="Jump back to footnote 253 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:254">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:254" rev="footnote" title="Jump back to footnote 254 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:255">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:255" rev="footnote" title="Jump back to footnote 255 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:256">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:256" rev="footnote" title="Jump back to footnote 256 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:257">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:257" rev="footnote" title="Jump back to footnote 257 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:258">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:258" rev="footnote" title="Jump back to footnote 258 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:259">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:259" rev="footnote" title="Jump back to footnote 259 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:260">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:260" rev="footnote" title="Jump back to footnote 260 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:261">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:261" rev="footnote" title="Jump back to footnote 261 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:262">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:262" rev="footnote" title="Jump back to footnote 262 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:263">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:263" rev="footnote" title="Jump back to footnote 263 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:264">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:264" rev="footnote" title="Jump back to footnote 264 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:265">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:265" rev="footnote" title="Jump back to footnote 265 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:266">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:266" rev="footnote" title="Jump back to footnote 266 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:267">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:267" rev="footnote" title="Jump back to footnote 267 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:268">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:268" rev="footnote" title="Jump back to footnote 268 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:269">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:269" rev="footnote" title="Jump back to footnote 269 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:270">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:270" rev="footnote" title="Jump back to footnote 270 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:271">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:271" rev="footnote" title="Jump back to footnote 271 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:272">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:272" rev="footnote" title="Jump back to footnote 272 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:273">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:273" rev="footnote" title="Jump back to footnote 273 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:274">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:274" rev="footnote" title="Jump back to footnote 274 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:275">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:275" rev="footnote" title="Jump back to footnote 275 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:276">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:276" rev="footnote" title="Jump back to footnote 276 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:277">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:277" rev="footnote" title="Jump back to footnote 277 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:278">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:278" rev="footnote" title="Jump back to footnote 278 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:279">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:279" rev="footnote" title="Jump back to footnote 279 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:280">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:280" rev="footnote" title="Jump back to footnote 280 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:281">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:281" rev="footnote" title="Jump back to footnote 281 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:282">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:282" rev="footnote" title="Jump back to footnote 282 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:283">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:283" rev="footnote" title="Jump back to footnote 283 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:284">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:284" rev="footnote" title="Jump back to footnote 284 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:285">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:285" rev="footnote" title="Jump back to footnote 285 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:286">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:286" rev="footnote" title="Jump back to footnote 286 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:287">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:287" rev="footnote" title="Jump back to footnote 287 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:288">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:288" rev="footnote" title="Jump back to footnote 288 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:289">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:289" rev="footnote" title="Jump back to footnote 289 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:290">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:290" rev="footnote" title="Jump back to footnote 290 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:291">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:291" rev="footnote" title="Jump back to footnote 291 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:292">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:292" rev="footnote" title="Jump back to footnote 292 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:293">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:293" rev="footnote" title="Jump back to footnote 293 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:294">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:294" rev="footnote" title="Jump back to footnote 294 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:295">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:295" rev="footnote" title="Jump back to footnote 295 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:296">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:296" rev="footnote" title="Jump back to footnote 296 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:297">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:297" rev="footnote" title="Jump back to footnote 297 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:298">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:298" rev="footnote" title="Jump back to footnote 298 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:299">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:299" rev="footnote" title="Jump back to footnote 299 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:300">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:300" rev="footnote" title="Jump back to footnote 300 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:301">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:301" rev="footnote" title="Jump back to footnote 301 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:302">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:302" rev="footnote" title="Jump back to footnote 302 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:303">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:303" rev="footnote" title="Jump back to footnote 303 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:304">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:304" rev="footnote" title="Jump back to footnote 304 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:305">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:305" rev="footnote" title="Jump back to footnote 305 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:306">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:306" rev="footnote" title="Jump back to footnote 306 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:307">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:307" rev="footnote" title="Jump back to footnote 307 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:308">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:308" rev="footnote" title="Jump back to footnote 308 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:309">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:309" rev="footnote" title="Jump back to footnote 309 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:310">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:310" rev="footnote" title="Jump back to footnote 310 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:311">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:311" rev="footnote" title="Jump back to footnote 311 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:312">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:312" rev="footnote" title="Jump back to footnote 312 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:313">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:313" rev="footnote" title="Jump back to footnote 313 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:314">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:314" rev="footnote" title="Jump back to footnote 314 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:315">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:315" rev="footnote" title="Jump back to footnote 315 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:316">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:316" rev="footnote" title="Jump back to footnote 316 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:317">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:317" rev="footnote" title="Jump back to footnote 317 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:318">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:318" rev="footnote" title="Jump back to footnote 318 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:319">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:319" rev="footnote" title="Jump back to footnote 319 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:320">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:320" rev="footnote" title="Jump back to footnote 320 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:321">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:321" rev="footnote" title="Jump back to footnote 321 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:322">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:322" rev="footnote" title="Jump back to footnote 322 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:323">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:323" rev="footnote" title="Jump back to footnote 323 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:324">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:324" rev="footnote" title="Jump back to footnote 324 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:325">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:325" rev="footnote" title="Jump back to footnote 325 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:326">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:326" rev="footnote" title="Jump back to footnote 326 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:327">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:327" rev="footnote" title="Jump back to footnote 327 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:328">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:328" rev="footnote" title="Jump back to footnote 328 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:329">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:329" rev="footnote" title="Jump back to footnote 329 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:330">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:330" rev="footnote" title="Jump back to footnote 330 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:331">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:331" rev="footnote" title="Jump back to footnote 331 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:332">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:332" rev="footnote" title="Jump back to footnote 332 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:333">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:333" rev="footnote" title="Jump back to footnote 333 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:334">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:334" rev="footnote" title="Jump back to footnote 334 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:335">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:335" rev="footnote" title="Jump back to footnote 335 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:336">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:336" rev="footnote" title="Jump back to footnote 336 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:337">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:337" rev="footnote" title="Jump back to footnote 337 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:338">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:338" rev="footnote" title="Jump back to footnote 338 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:339">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:339" rev="footnote" title="Jump back to footnote 339 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:340">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:340" rev="footnote" title="Jump back to footnote 340 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:341">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:341" rev="footnote" title="Jump back to footnote 341 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:342">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:342" rev="footnote" title="Jump back to footnote 342 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:343">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:343" rev="footnote" title="Jump back to footnote 343 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:344">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:344" rev="footnote" title="Jump back to footnote 344 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:345">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:345" rev="footnote" title="Jump back to footnote 345 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:346">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:346" rev="footnote" title="Jump back to footnote 346 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:347">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:347" rev="footnote" title="Jump back to footnote 347 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:348">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:348" rev="footnote" title="Jump back to footnote 348 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:349">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:349" rev="footnote" title="Jump back to footnote 349 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:350">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:350" rev="footnote" title="Jump back to footnote 350 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:351">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:351" rev="footnote" title="Jump back to footnote 351 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:352">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:352" rev="footnote" title="Jump back to footnote 352 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:353">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:353" rev="footnote" title="Jump back to footnote 353 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:354">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:354" rev="footnote" title="Jump back to footnote 354 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:355">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:355" rev="footnote" title="Jump back to footnote 355 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:356">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:356" rev="footnote" title="Jump back to footnote 356 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:357">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:357" rev="footnote" title="Jump back to footnote 357 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:358">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:358" rev="footnote" title="Jump back to footnote 358 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:359">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:359" rev="footnote" title="Jump back to footnote 359 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:360">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:360" rev="footnote" title="Jump back to footnote 360 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:361">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:361" rev="footnote" title="Jump back to footnote 361 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:362">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:362" rev="footnote" title="Jump back to footnote 362 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:363">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:363" rev="footnote" title="Jump back to footnote 363 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:364">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:364" rev="footnote" title="Jump back to footnote 364 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:365">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:365" rev="footnote" title="Jump back to footnote 365 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:366">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:366" rev="footnote" title="Jump back to footnote 366 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:367">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:367" rev="footnote" title="Jump back to footnote 367 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:368">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:368" rev="footnote" title="Jump back to footnote 368 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:369">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:369" rev="footnote" title="Jump back to footnote 369 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:370">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:370" rev="footnote" title="Jump back to footnote 370 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:371">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:371" rev="footnote" title="Jump back to footnote 371 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:372">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:372" rev="footnote" title="Jump back to footnote 372 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:373">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:373" rev="footnote" title="Jump back to footnote 373 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:374">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:374" rev="footnote" title="Jump back to footnote 374 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:375">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:375" rev="footnote" title="Jump back to footnote 375 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:376">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:376" rev="footnote" title="Jump back to footnote 376 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:377">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:377" rev="footnote" title="Jump back to footnote 377 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:378">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:378" rev="footnote" title="Jump back to footnote 378 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:379">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:379" rev="footnote" title="Jump back to footnote 379 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:380">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:380" rev="footnote" title="Jump back to footnote 380 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:381">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:381" rev="footnote" title="Jump back to footnote 381 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:382">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:382" rev="footnote" title="Jump back to footnote 382 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:383">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:383" rev="footnote" title="Jump back to footnote 383 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:384">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:384" rev="footnote" title="Jump back to footnote 384 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:385">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:385" rev="footnote" title="Jump back to footnote 385 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:386">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:386" rev="footnote" title="Jump back to footnote 386 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:387">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:387" rev="footnote" title="Jump back to footnote 387 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:388">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:388" rev="footnote" title="Jump back to footnote 388 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:389">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:389" rev="footnote" title="Jump back to footnote 389 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:390">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:390" rev="footnote" title="Jump back to footnote 390 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:391">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:391" rev="footnote" title="Jump back to footnote 391 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:392">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:392" rev="footnote" title="Jump back to footnote 392 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:393">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:393" rev="footnote" title="Jump back to footnote 393 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:394">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:394" rev="footnote" title="Jump back to footnote 394 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:395">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:395" rev="footnote" title="Jump back to footnote 395 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:396">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:396" rev="footnote" title="Jump back to footnote 396 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:397">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:397" rev="footnote" title="Jump back to footnote 397 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:398">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:398" rev="footnote" title="Jump back to footnote 398 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:399">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:399" rev="footnote" title="Jump back to footnote 399 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:400">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:400" rev="footnote" title="Jump back to footnote 400 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:401">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:401" rev="footnote" title="Jump back to footnote 401 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:402">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:402" rev="footnote" title="Jump back to footnote 402 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:403">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:403" rev="footnote" title="Jump back to footnote 403 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:404">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:404" rev="footnote" title="Jump back to footnote 404 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:405">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:405" rev="footnote" title="Jump back to footnote 405 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:406">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:406" rev="footnote" title="Jump back to footnote 406 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:407">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:407" rev="footnote" title="Jump back to footnote 407 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:408">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:408" rev="footnote" title="Jump back to footnote 408 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:409">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:409" rev="footnote" title="Jump back to footnote 409 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:410">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:410" rev="footnote" title="Jump back to footnote 410 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:411">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:411" rev="footnote" title="Jump back to footnote 411 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:412">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:412" rev="footnote" title="Jump back to footnote 412 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:413">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:413" rev="footnote" title="Jump back to footnote 413 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:414">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:414" rev="footnote" title="Jump back to footnote 414 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:415">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:415" rev="footnote" title="Jump back to footnote 415 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:416">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:416" rev="footnote" title="Jump back to footnote 416 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:417">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:417" rev="footnote" title="Jump back to footnote 417 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:418">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:418" rev="footnote" title="Jump back to footnote 418 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:419">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:419" rev="footnote" title="Jump back to footnote 419 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:420">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:420" rev="footnote" title="Jump back to footnote 420 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:421">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:421" rev="footnote" title="Jump back to footnote 421 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:422">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:422" rev="footnote" title="Jump back to footnote 422 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:423">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:423" rev="footnote" title="Jump back to footnote 423 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:424">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:424" rev="footnote" title="Jump back to footnote 424 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:425">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:425" rev="footnote" title="Jump back to footnote 425 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:426">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:426" rev="footnote" title="Jump back to footnote 426 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:427">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:427" rev="footnote" title="Jump back to footnote 427 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:428">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:428" rev="footnote" title="Jump back to footnote 428 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:429">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:429" rev="footnote" title="Jump back to footnote 429 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:430">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:430" rev="footnote" title="Jump back to footnote 430 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:431">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:431" rev="footnote" title="Jump back to footnote 431 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:432">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:432" rev="footnote" title="Jump back to footnote 432 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:433">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:433" rev="footnote" title="Jump back to footnote 433 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:434">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:434" rev="footnote" title="Jump back to footnote 434 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:435">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:435" rev="footnote" title="Jump back to footnote 435 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:436">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:436" rev="footnote" title="Jump back to footnote 436 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:437">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:437" rev="footnote" title="Jump back to footnote 437 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:438">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:438" rev="footnote" title="Jump back to footnote 438 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:439">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:439" rev="footnote" title="Jump back to footnote 439 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:440">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:440" rev="footnote" title="Jump back to footnote 440 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:441">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:441" rev="footnote" title="Jump back to footnote 441 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:442">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:442" rev="footnote" title="Jump back to footnote 442 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:443">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:443" rev="footnote" title="Jump back to footnote 443 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:444">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:444" rev="footnote" title="Jump back to footnote 444 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:445">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:445" rev="footnote" title="Jump back to footnote 445 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:446">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:446" rev="footnote" title="Jump back to footnote 446 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:447">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:447" rev="footnote" title="Jump back to footnote 447 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:448">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:448" rev="footnote" title="Jump back to footnote 448 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:449">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:449" rev="footnote" title="Jump back to footnote 449 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:450">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:450" rev="footnote" title="Jump back to footnote 450 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:451">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:451" rev="footnote" title="Jump back to footnote 451 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:452">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:452" rev="footnote" title="Jump back to footnote 452 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:453">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:453" rev="footnote" title="Jump back to footnote 453 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:454">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:454" rev="footnote" title="Jump back to footnote 454 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:455">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:455" rev="footnote" title="Jump back to footnote 455 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:456">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:456" rev="footnote" title="Jump back to footnote 456 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:457">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:457" rev="footnote" title="Jump back to footnote 457 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:458">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:458" rev="footnote" title="Jump back to footnote 458 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:459">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:459" rev="footnote" title="Jump back to footnote 459 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:460">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:460" rev="footnote" title="Jump back to footnote 460 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:461">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:461" rev="footnote" title="Jump back to footnote 461 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:462">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:462" rev="footnote" title="Jump back to footnote 462 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:463">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:463" rev="footnote" title="Jump back to footnote 463 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:464">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:464" rev="footnote" title="Jump back to footnote 464 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:465">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:465" rev="footnote" title="Jump back to footnote 465 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:466">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:466" rev="footnote" title="Jump back to footnote 466 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:467">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:467" rev="footnote" title="Jump back to footnote 467 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:468">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:468" rev="footnote" title="Jump back to footnote 468 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:469">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:469" rev="footnote" title="Jump back to footnote 469 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:470">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:470" rev="footnote" title="Jump back to footnote 470 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:471">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:471" rev="footnote" title="Jump back to footnote 471 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:472">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:472" rev="footnote" title="Jump back to footnote 472 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:473">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:473" rev="footnote" title="Jump back to footnote 473 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:474">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:474" rev="footnote" title="Jump back to footnote 474 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:475">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:475" rev="footnote" title="Jump back to footnote 475 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:476">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:476" rev="footnote" title="Jump back to footnote 476 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:477">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:477" rev="footnote" title="Jump back to footnote 477 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:478">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:478" rev="footnote" title="Jump back to footnote 478 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:479">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:479" rev="footnote" title="Jump back to footnote 479 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:480">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:480" rev="footnote" title="Jump back to footnote 480 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:481">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:481" rev="footnote" title="Jump back to footnote 481 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:482">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:482" rev="footnote" title="Jump back to footnote 482 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:483">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:483" rev="footnote" title="Jump back to footnote 483 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:484">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:484" rev="footnote" title="Jump back to footnote 484 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:485">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:485" rev="footnote" title="Jump back to footnote 485 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:486">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:486" rev="footnote" title="Jump back to footnote 486 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:487">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:487" rev="footnote" title="Jump back to footnote 487 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:488">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:488" rev="footnote" title="Jump back to footnote 488 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:489">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:489" rev="footnote" title="Jump back to footnote 489 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:490">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:490" rev="footnote" title="Jump back to footnote 490 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:491">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:491" rev="footnote" title="Jump back to footnote 491 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:492">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:492" rev="footnote" title="Jump back to footnote 492 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:493">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:493" rev="footnote" title="Jump back to footnote 493 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:494">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:494" rev="footnote" title="Jump back to footnote 494 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:495">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:495" rev="footnote" title="Jump back to footnote 495 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:496">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:496" rev="footnote" title="Jump back to footnote 496 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:497">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:497" rev="footnote" title="Jump back to footnote 497 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:498">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:498" rev="footnote" title="Jump back to footnote 498 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:499">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:499" rev="footnote" title="Jump back to footnote 499 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:500">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:500" rev="footnote" title="Jump back to footnote 500 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:501">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:501" rev="footnote" title="Jump back to footnote 501 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:502">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:502" rev="footnote" title="Jump back to footnote 502 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:503">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:503" rev="footnote" title="Jump back to footnote 503 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:504">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:504" rev="footnote" title="Jump back to footnote 504 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:505">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:505" rev="footnote" title="Jump back to footnote 505 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:506">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:506" rev="footnote" title="Jump back to footnote 506 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:507">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:507" rev="footnote" title="Jump back to footnote 507 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:508">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:508" rev="footnote" title="Jump back to footnote 508 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:509">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:509" rev="footnote" title="Jump back to footnote 509 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:510">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:510" rev="footnote" title="Jump back to footnote 510 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:511">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:511" rev="footnote" title="Jump back to footnote 511 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:512">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:512" rev="footnote" title="Jump back to footnote 512 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:513">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:513" rev="footnote" title="Jump back to footnote 513 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:514">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:514" rev="footnote" title="Jump back to footnote 514 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:515">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:515" rev="footnote" title="Jump back to footnote 515 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:516">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:516" rev="footnote" title="Jump back to footnote 516 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:517">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:517" rev="footnote" title="Jump back to footnote 517 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:518">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:518" rev="footnote" title="Jump back to footnote 518 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:519">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:519" rev="footnote" title="Jump back to footnote 519 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:520">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:520" rev="footnote" title="Jump back to footnote 520 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:521">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:521" rev="footnote" title="Jump back to footnote 521 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:522">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:522" rev="footnote" title="Jump back to footnote 522 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:523">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:523" rev="footnote" title="Jump back to footnote 523 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:524">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:524" rev="footnote" title="Jump back to footnote 524 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:525">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:525" rev="footnote" title="Jump back to footnote 525 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:526">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:526" rev="footnote" title="Jump back to footnote 526 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:527">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:527" rev="footnote" title="Jump back to footnote 527 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:528">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:528" rev="footnote" title="Jump back to footnote 528 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:529">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:529" rev="footnote" title="Jump back to footnote 529 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:530">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:530" rev="footnote" title="Jump back to footnote 530 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:531">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:531" rev="footnote" title="Jump back to footnote 531 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:532">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:532" rev="footnote" title="Jump back to footnote 532 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:533">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:533" rev="footnote" title="Jump back to footnote 533 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:534">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:534" rev="footnote" title="Jump back to footnote 534 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:535">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:535" rev="footnote" title="Jump back to footnote 535 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:536">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:536" rev="footnote" title="Jump back to footnote 536 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:537">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:537" rev="footnote" title="Jump back to footnote 537 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:538">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:538" rev="footnote" title="Jump back to footnote 538 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:539">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:539" rev="footnote" title="Jump back to footnote 539 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:540">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:540" rev="footnote" title="Jump back to footnote 540 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:541">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:541" rev="footnote" title="Jump back to footnote 541 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:542">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:542" rev="footnote" title="Jump back to footnote 542 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:543">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:543" rev="footnote" title="Jump back to footnote 543 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:544">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:544" rev="footnote" title="Jump back to footnote 544 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:545">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:545" rev="footnote" title="Jump back to footnote 545 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:546">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:546" rev="footnote" title="Jump back to footnote 546 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:547">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:547" rev="footnote" title="Jump back to footnote 547 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:548">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:548" rev="footnote" title="Jump back to footnote 548 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:549">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:549" rev="footnote" title="Jump back to footnote 549 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:550">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:550" rev="footnote" title="Jump back to footnote 550 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:551">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:551" rev="footnote" title="Jump back to footnote 551 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:552">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:552" rev="footnote" title="Jump back to footnote 552 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:553">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:553" rev="footnote" title="Jump back to footnote 553 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:554">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:554" rev="footnote" title="Jump back to footnote 554 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:555">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:555" rev="footnote" title="Jump back to footnote 555 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:556">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:556" rev="footnote" title="Jump back to footnote 556 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:557">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:557" rev="footnote" title="Jump back to footnote 557 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:558">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:558" rev="footnote" title="Jump back to footnote 558 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:559">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:559" rev="footnote" title="Jump back to footnote 559 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:560">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:560" rev="footnote" title="Jump back to footnote 560 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:561">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:561" rev="footnote" title="Jump back to footnote 561 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:562">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:562" rev="footnote" title="Jump back to footnote 562 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:563">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:563" rev="footnote" title="Jump back to footnote 563 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:564">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:564" rev="footnote" title="Jump back to footnote 564 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:565">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:565" rev="footnote" title="Jump back to footnote 565 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:566">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:566" rev="footnote" title="Jump back to footnote 566 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:567">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:567" rev="footnote" title="Jump back to footnote 567 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:568">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:568" rev="footnote" title="Jump back to footnote 568 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:569">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:569" rev="footnote" title="Jump back to footnote 569 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:570">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:570" rev="footnote" title="Jump back to footnote 570 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:571">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:571" rev="footnote" title="Jump back to footnote 571 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:572">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:572" rev="footnote" title="Jump back to footnote 572 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:573">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:573" rev="footnote" title="Jump back to footnote 573 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:574">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:574" rev="footnote" title="Jump back to footnote 574 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:575">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:575" rev="footnote" title="Jump back to footnote 575 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:576">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:576" rev="footnote" title="Jump back to footnote 576 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:577">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:577" rev="footnote" title="Jump back to footnote 577 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:578">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:578" rev="footnote" title="Jump back to footnote 578 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:579">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:579" rev="footnote" title="Jump back to footnote 579 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:580">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:580" rev="footnote" title="Jump back to footnote 580 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:581">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:581" rev="footnote" title="Jump back to footnote 581 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:582">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:582" rev="footnote" title="Jump back to footnote 582 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:583">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:583" rev="footnote" title="Jump back to footnote 583 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:584">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:584" rev="footnote" title="Jump back to footnote 584 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:585">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:585" rev="footnote" title="Jump back to footnote 585 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:586">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:586" rev="footnote" title="Jump back to footnote 586 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:587">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:587" rev="footnote" title="Jump back to footnote 587 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:588">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:588" rev="footnote" title="Jump back to footnote 588 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:589">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:589" rev="footnote" title="Jump back to footnote 589 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:590">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:590" rev="footnote" title="Jump back to footnote 590 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:591">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:591" rev="footnote" title="Jump back to footnote 591 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:592">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:592" rev="footnote" title="Jump back to footnote 592 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:593">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:593" rev="footnote" title="Jump back to footnote 593 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:594">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:594" rev="footnote" title="Jump back to footnote 594 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:595">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:595" rev="footnote" title="Jump back to footnote 595 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:596">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:596" rev="footnote" title="Jump back to footnote 596 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:597">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:597" rev="footnote" title="Jump back to footnote 597 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:598">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:598" rev="footnote" title="Jump back to footnote 598 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:599">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:599" rev="footnote" title="Jump back to footnote 599 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:600">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:600" rev="footnote" title="Jump back to footnote 600 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:601">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:601" rev="footnote" title="Jump back to footnote 601 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:602">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:602" rev="footnote" title="Jump back to footnote 602 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:603">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:603" rev="footnote" title="Jump back to footnote 603 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:604">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:604" rev="footnote" title="Jump back to footnote 604 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:605">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:605" rev="footnote" title="Jump back to footnote 605 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:606">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:606" rev="footnote" title="Jump back to footnote 606 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:607">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:607" rev="footnote" title="Jump back to footnote 607 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:608">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:608" rev="footnote" title="Jump back to footnote 608 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:609">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:609" rev="footnote" title="Jump back to footnote 609 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:610">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:610" rev="footnote" title="Jump back to footnote 610 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:611">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:611" rev="footnote" title="Jump back to footnote 611 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:612">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:612" rev="footnote" title="Jump back to footnote 612 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:613">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:613" rev="footnote" title="Jump back to footnote 613 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:614">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:614" rev="footnote" title="Jump back to footnote 614 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:615">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:615" rev="footnote" title="Jump back to footnote 615 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:616">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:616" rev="footnote" title="Jump back to footnote 616 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:617">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:617" rev="footnote" title="Jump back to footnote 617 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:618">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:618" rev="footnote" title="Jump back to footnote 618 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:619">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:619" rev="footnote" title="Jump back to footnote 619 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:620">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:620" rev="footnote" title="Jump back to footnote 620 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:621">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:621" rev="footnote" title="Jump back to footnote 621 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:622">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:622" rev="footnote" title="Jump back to footnote 622 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:623">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:623" rev="footnote" title="Jump back to footnote 623 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:624">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:624" rev="footnote" title="Jump back to footnote 624 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:625">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:625" rev="footnote" title="Jump back to footnote 625 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:626">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:626" rev="footnote" title="Jump back to footnote 626 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:627">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:627" rev="footnote" title="Jump back to footnote 627 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:628">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:628" rev="footnote" title="Jump back to footnote 628 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:629">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:629" rev="footnote" title="Jump back to footnote 629 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:630">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:630" rev="footnote" title="Jump back to footnote 630 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:631">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:631" rev="footnote" title="Jump back to footnote 631 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:632">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:632" rev="footnote" title="Jump back to footnote 632 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:633">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:633" rev="footnote" title="Jump back to footnote 633 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:634">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:634" rev="footnote" title="Jump back to footnote 634 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:635">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:635" rev="footnote" title="Jump back to footnote 635 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:636">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:636" rev="footnote" title="Jump back to footnote 636 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:637">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:637" rev="footnote" title="Jump back to footnote 637 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:638">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:638" rev="footnote" title="Jump back to footnote 638 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:639">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:639" rev="footnote" title="Jump back to footnote 639 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:640">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:640" rev="footnote" title="Jump back to footnote 640 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:641">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:641" rev="footnote" title="Jump back to footnote 641 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:642">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:642" rev="footnote" title="Jump back to footnote 642 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:643">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:643" rev="footnote" title="Jump back to footnote 643 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:644">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:644" rev="footnote" title="Jump back to footnote 644 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:645">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:645" rev="footnote" title="Jump back to footnote 645 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:646">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:646" rev="footnote" title="Jump back to footnote 646 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:647">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:647" rev="footnote" title="Jump back to footnote 647 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:648">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:648" rev="footnote" title="Jump back to footnote 648 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:649">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:649" rev="footnote" title="Jump back to footnote 649 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:650">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:650" rev="footnote" title="Jump back to footnote 650 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:651">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:651" rev="footnote" title="Jump back to footnote 651 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:652">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:652" rev="footnote" title="Jump back to footnote 652 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:653">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:653" rev="footnote" title="Jump back to footnote 653 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:654">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:654" rev="footnote" title="Jump back to footnote 654 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:655">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:655" rev="footnote" title="Jump back to footnote 655 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:656">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:656" rev="footnote" title="Jump back to footnote 656 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:657">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:657" rev="footnote" title="Jump back to footnote 657 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:658">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:658" rev="footnote" title="Jump back to footnote 658 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:659">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:659" rev="footnote" title="Jump back to footnote 659 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:660">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:660" rev="footnote" title="Jump back to footnote 660 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:661">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:661" rev="footnote" title="Jump back to footnote 661 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:662">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:662" rev="footnote" title="Jump back to footnote 662 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:663">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:663" rev="footnote" title="Jump back to footnote 663 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:664">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:664" rev="footnote" title="Jump back to footnote 664 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:665">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:665" rev="footnote" title="Jump back to footnote 665 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:666">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:666" rev="footnote" title="Jump back to footnote 666 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:667">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:667" rev="footnote" title="Jump back to footnote 667 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:668">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:668" rev="footnote" title="Jump back to footnote 668 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:669">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:669" rev="footnote" title="Jump back to footnote 669 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:670">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:670" rev="footnote" title="Jump back to footnote 670 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:671">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:671" rev="footnote" title="Jump back to footnote 671 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:672">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:672" rev="footnote" title="Jump back to footnote 672 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:673">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:673" rev="footnote" title="Jump back to footnote 673 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:674">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:674" rev="footnote" title="Jump back to footnote 674 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:675">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:675" rev="footnote" title="Jump back to footnote 675 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:676">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:676" rev="footnote" title="Jump back to footnote 676 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:677">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:677" rev="footnote" title="Jump back to footnote 677 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:678">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:678" rev="footnote" title="Jump back to footnote 678 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:679">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:679" rev="footnote" title="Jump back to footnote 679 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:680">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:680" rev="footnote" title="Jump back to footnote 680 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:681">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:681" rev="footnote" title="Jump back to footnote 681 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:682">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:682" rev="footnote" title="Jump back to footnote 682 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:683">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:683" rev="footnote" title="Jump back to footnote 683 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:684">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:684" rev="footnote" title="Jump back to footnote 684 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:685">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:685" rev="footnote" title="Jump back to footnote 685 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:686">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:686" rev="footnote" title="Jump back to footnote 686 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:687">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:687" rev="footnote" title="Jump back to footnote 687 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:688">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:688" rev="footnote" title="Jump back to footnote 688 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:689">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:689" rev="footnote" title="Jump back to footnote 689 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:690">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:690" rev="footnote" title="Jump back to footnote 690 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:691">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:691" rev="footnote" title="Jump back to footnote 691 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:692">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:692" rev="footnote" title="Jump back to footnote 692 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:693">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:693" rev="footnote" title="Jump back to footnote 693 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:694">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:694" rev="footnote" title="Jump back to footnote 694 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:695">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:695" rev="footnote" title="Jump back to footnote 695 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:696">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:696" rev="footnote" title="Jump back to footnote 696 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:697">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:697" rev="footnote" title="Jump back to footnote 697 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:698">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:698" rev="footnote" title="Jump back to footnote 698 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:699">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:699" rev="footnote" title="Jump back to footnote 699 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:700">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:700" rev="footnote" title="Jump back to footnote 700 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:701">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:701" rev="footnote" title="Jump back to footnote 701 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:702">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:702" rev="footnote" title="Jump back to footnote 702 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:703">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:703" rev="footnote" title="Jump back to footnote 703 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:704">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:704" rev="footnote" title="Jump back to footnote 704 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:705">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:705" rev="footnote" title="Jump back to footnote 705 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:706">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:706" rev="footnote" title="Jump back to footnote 706 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:707">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:707" rev="footnote" title="Jump back to footnote 707 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:708">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:708" rev="footnote" title="Jump back to footnote 708 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:709">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:709" rev="footnote" title="Jump back to footnote 709 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:710">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:710" rev="footnote" title="Jump back to footnote 710 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:711">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:711" rev="footnote" title="Jump back to footnote 711 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:712">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:712" rev="footnote" title="Jump back to footnote 712 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:713">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:713" rev="footnote" title="Jump back to footnote 713 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:714">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:714" rev="footnote" title="Jump back to footnote 714 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:715">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:715" rev="footnote" title="Jump back to footnote 715 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:716">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:716" rev="footnote" title="Jump back to footnote 716 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:717">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:717" rev="footnote" title="Jump back to footnote 717 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:718">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:718" rev="footnote" title="Jump back to footnote 718 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:719">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:719" rev="footnote" title="Jump back to footnote 719 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:720">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:720" rev="footnote" title="Jump back to footnote 720 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:721">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:721" rev="footnote" title="Jump back to footnote 721 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:722">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:722" rev="footnote" title="Jump back to footnote 722 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:723">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:723" rev="footnote" title="Jump back to footnote 723 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:724">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:724" rev="footnote" title="Jump back to footnote 724 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:725">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:725" rev="footnote" title="Jump back to footnote 725 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:726">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:726" rev="footnote" title="Jump back to footnote 726 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:727">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:727" rev="footnote" title="Jump back to footnote 727 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:728">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:728" rev="footnote" title="Jump back to footnote 728 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:729">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:729" rev="footnote" title="Jump back to footnote 729 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:730">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:730" rev="footnote" title="Jump back to footnote 730 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:731">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:731" rev="footnote" title="Jump back to footnote 731 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:732">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:732" rev="footnote" title="Jump back to footnote 732 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:733">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:733" rev="footnote" title="Jump back to footnote 733 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:734">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:734" rev="footnote" title="Jump back to footnote 734 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:735">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:735" rev="footnote" title="Jump back to footnote 735 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:736">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:736" rev="footnote" title="Jump back to footnote 736 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:737">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:737" rev="footnote" title="Jump back to footnote 737 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:738">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:738" rev="footnote" title="Jump back to footnote 738 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:739">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:739" rev="footnote" title="Jump back to footnote 739 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:740">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:740" rev="footnote" title="Jump back to footnote 740 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:741">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:741" rev="footnote" title="Jump back to footnote 741 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:742">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:742" rev="footnote" title="Jump back to footnote 742 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:743">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:743" rev="footnote" title="Jump back to footnote 743 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:744">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:744" rev="footnote" title="Jump back to footnote 744 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:745">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:745" rev="footnote" title="Jump back to footnote 745 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:746">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:746" rev="footnote" title="Jump back to footnote 746 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:747">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:747" rev="footnote" title="Jump back to footnote 747 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:748">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:748" rev="footnote" title="Jump back to footnote 748 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:749">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:749" rev="footnote" title="Jump back to footnote 749 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:750">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:750" rev="footnote" title="Jump back to footnote 750 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:751">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:751" rev="footnote" title="Jump back to footnote 751 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:752">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:752" rev="footnote" title="Jump back to footnote 752 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:753">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:753" rev="footnote" title="Jump back to footnote 753 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:754">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:754" rev="footnote" title="Jump back to footnote 754 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:755">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:755" rev="footnote" title="Jump back to footnote 755 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:756">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:756" rev="footnote" title="Jump back to footnote 756 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:757">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:757" rev="footnote" title="Jump back to footnote 757 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:758">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:758" rev="footnote" title="Jump back to footnote 758 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:759">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:759" rev="footnote" title="Jump back to footnote 759 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:760">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:760" rev="footnote" title="Jump back to footnote 760 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:761">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:761" rev="footnote" title="Jump back to footnote 761 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:762">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:762" rev="footnote" title="Jump back to footnote 762 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:763">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:763" rev="footnote" title="Jump back to footnote 763 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:764">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:764" rev="footnote" title="Jump back to footnote 764 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:765">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:765" rev="footnote" title="Jump back to footnote 765 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:766">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:766" rev="footnote" title="Jump back to footnote 766 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:767">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:767" rev="footnote" title="Jump back to footnote 767 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:768">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:768" rev="footnote" title="Jump back to footnote 768 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:769">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:769" rev="footnote" title="Jump back to footnote 769 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:770">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:770" rev="footnote" title="Jump back to footnote 770 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:771">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:771" rev="footnote" title="Jump back to footnote 771 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:772">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:772" rev="footnote" title="Jump back to footnote 772 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:773">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:773" rev="footnote" title="Jump back to footnote 773 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:774">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:774" rev="footnote" title="Jump back to footnote 774 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:775">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:775" rev="footnote" title="Jump back to footnote 775 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:776">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:776" rev="footnote" title="Jump back to footnote 776 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:777">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:777" rev="footnote" title="Jump back to footnote 777 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:778">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:778" rev="footnote" title="Jump back to footnote 778 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:779">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:779" rev="footnote" title="Jump back to footnote 779 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:780">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:780" rev="footnote" title="Jump back to footnote 780 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:781">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:781" rev="footnote" title="Jump back to footnote 781 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:782">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:782" rev="footnote" title="Jump back to footnote 782 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:783">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:783" rev="footnote" title="Jump back to footnote 783 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:784">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:784" rev="footnote" title="Jump back to footnote 784 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:785">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:785" rev="footnote" title="Jump back to footnote 785 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:786">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:786" rev="footnote" title="Jump back to footnote 786 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:787">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:787" rev="footnote" title="Jump back to footnote 787 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:788">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:788" rev="footnote" title="Jump back to footnote 788 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:789">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:789" rev="footnote" title="Jump back to footnote 789 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:790">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:790" rev="footnote" title="Jump back to footnote 790 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:791">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:791" rev="footnote" title="Jump back to footnote 791 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:792">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:792" rev="footnote" title="Jump back to footnote 792 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:793">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:793" rev="footnote" title="Jump back to footnote 793 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:794">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:794" rev="footnote" title="Jump back to footnote 794 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:795">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:795" rev="footnote" title="Jump back to footnote 795 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:796">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:796" rev="footnote" title="Jump back to footnote 796 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:797">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:797" rev="footnote" title="Jump back to footnote 797 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:798">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:798" rev="footnote" title="Jump back to footnote 798 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:799">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:799" rev="footnote" title="Jump back to footnote 799 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:800">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:800" rev="footnote" title="Jump back to footnote 800 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:801">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:801" rev="footnote" title="Jump back to footnote 801 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:802">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:802" rev="footnote" title="Jump back to footnote 802 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:803">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:803" rev="footnote" title="Jump back to footnote 803 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:804">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:804" rev="footnote" title="Jump back to footnote 804 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:805">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:805" rev="footnote" title="Jump back to footnote 805 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:806">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:806" rev="footnote" title="Jump back to footnote 806 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:807">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:807" rev="footnote" title="Jump back to footnote 807 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:808">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:808" rev="footnote" title="Jump back to footnote 808 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:809">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:809" rev="footnote" title="Jump back to footnote 809 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:810">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:810" rev="footnote" title="Jump back to footnote 810 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:811">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:811" rev="footnote" title="Jump back to footnote 811 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:812">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:812" rev="footnote" title="Jump back to footnote 812 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:813">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:813" rev="footnote" title="Jump back to footnote 813 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:814">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:814" rev="footnote" title="Jump back to footnote 814 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:815">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:815" rev="footnote" title="Jump back to footnote 815 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:816">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:816" rev="footnote" title="Jump back to footnote 816 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:817">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:817" rev="footnote" title="Jump back to footnote 817 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:818">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:818" rev="footnote" title="Jump back to footnote 818 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:819">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:819" rev="footnote" title="Jump back to footnote 819 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:820">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:820" rev="footnote" title="Jump back to footnote 820 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:821">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:821" rev="footnote" title="Jump back to footnote 821 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:822">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:822" rev="footnote" title="Jump back to footnote 822 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:823">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:823" rev="footnote" title="Jump back to footnote 823 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:824">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:824" rev="footnote" title="Jump back to footnote 824 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:825">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:825" rev="footnote" title="Jump back to footnote 825 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:826">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:826" rev="footnote" title="Jump back to footnote 826 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:827">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:827" rev="footnote" title="Jump back to footnote 827 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:828">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:828" rev="footnote" title="Jump back to footnote 828 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:829">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:829" rev="footnote" title="Jump back to footnote 829 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:830">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:830" rev="footnote" title="Jump back to footnote 830 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:831">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:831" rev="footnote" title="Jump back to footnote 831 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:832">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:832" rev="footnote" title="Jump back to footnote 832 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:833">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:833" rev="footnote" title="Jump back to footnote 833 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:834">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:834" rev="footnote" title="Jump back to footnote 834 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:835">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:835" rev="footnote" title="Jump back to footnote 835 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:836">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:836" rev="footnote" title="Jump back to footnote 836 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:837">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:837" rev="footnote" title="Jump back to footnote 837 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:838">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:838" rev="footnote" title="Jump back to footnote 838 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:839">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:839" rev="footnote" title="Jump back to footnote 839 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:840">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:840" rev="footnote" title="Jump back to footnote 840 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:841">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:841" rev="footnote" title="Jump back to footnote 841 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:842">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:842" rev="footnote" title="Jump back to footnote 842 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:843">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:843" rev="footnote" title="Jump back to footnote 843 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:844">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:844" rev="footnote" title="Jump back to footnote 844 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:845">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:845" rev="footnote" title="Jump back to footnote 845 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:846">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:846" rev="footnote" title="Jump back to footnote 846 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:847">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:847" rev="footnote" title="Jump back to footnote 847 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:848">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:848" rev="footnote" title="Jump back to footnote 848 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:849">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:849" rev="footnote" title="Jump back to footnote 849 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:850">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:850" rev="footnote" title="Jump back to footnote 850 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:851">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:851" rev="footnote" title="Jump back to footnote 851 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:852">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:852" rev="footnote" title="Jump back to footnote 852 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:853">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:853" rev="footnote" title="Jump back to footnote 853 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:854">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:854" rev="footnote" title="Jump back to footnote 854 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:855">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:855" rev="footnote" title="Jump back to footnote 855 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:856">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:856" rev="footnote" title="Jump back to footnote 856 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:857">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:857" rev="footnote" title="Jump back to footnote 857 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:858">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:858" rev="footnote" title="Jump back to footnote 858 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:859">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:859" rev="footnote" title="Jump back to footnote 859 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:860">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:860" rev="footnote" title="Jump back to footnote 860 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:861">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:861" rev="footnote" title="Jump back to footnote 861 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:862">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:862" rev="footnote" title="Jump back to footnote 862 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:863">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:863" rev="footnote" title="Jump back to footnote 863 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:864">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:864" rev="footnote" title="Jump back to footnote 864 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:865">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:865" rev="footnote" title="Jump back to footnote 865 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:866">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:866" rev="footnote" title="Jump back to footnote 866 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:867">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:867" rev="footnote" title="Jump back to footnote 867 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:868">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:868" rev="footnote" title="Jump back to footnote 868 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:869">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:869" rev="footnote" title="Jump back to footnote 869 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:870">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:870" rev="footnote" title="Jump back to footnote 870 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:871">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:871" rev="footnote" title="Jump back to footnote 871 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:872">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:872" rev="footnote" title="Jump back to footnote 872 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:873">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:873" rev="footnote" title="Jump back to footnote 873 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:874">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:874" rev="footnote" title="Jump back to footnote 874 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:875">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:875" rev="footnote" title="Jump back to footnote 875 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:876">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:876" rev="footnote" title="Jump back to footnote 876 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:877">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:877" rev="footnote" title="Jump back to footnote 877 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:878">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:878" rev="footnote" title="Jump back to footnote 878 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:879">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:879" rev="footnote" title="Jump back to footnote 879 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:880">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:880" rev="footnote" title="Jump back to footnote 880 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:881">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:881" rev="footnote" title="Jump back to footnote 881 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:882">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:882" rev="footnote" title="Jump back to footnote 882 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:883">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:883" rev="footnote" title="Jump back to footnote 883 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:884">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:884" rev="footnote" title="Jump back to footnote 884 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:885">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:885" rev="footnote" title="Jump back to footnote 885 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:886">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:886" rev="footnote" title="Jump back to footnote 886 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:887">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:887" rev="footnote" title="Jump back to footnote 887 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:888">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:888" rev="footnote" title="Jump back to footnote 888 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:889">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:889" rev="footnote" title="Jump back to footnote 889 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:890">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:890" rev="footnote" title="Jump back to footnote 890 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:891">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:891" rev="footnote" title="Jump back to footnote 891 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:892">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:892" rev="footnote" title="Jump back to footnote 892 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:893">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:893" rev="footnote" title="Jump back to footnote 893 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:894">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:894" rev="footnote" title="Jump back to footnote 894 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:895">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:895" rev="footnote" title="Jump back to footnote 895 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:896">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:896" rev="footnote" title="Jump back to footnote 896 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:897">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:897" rev="footnote" title="Jump back to footnote 897 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:898">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:898" rev="footnote" title="Jump back to footnote 898 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:899">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:899" rev="footnote" title="Jump back to footnote 899 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:900">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:900" rev="footnote" title="Jump back to footnote 900 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:901">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:901" rev="footnote" title="Jump back to footnote 901 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:902">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:902" rev="footnote" title="Jump back to footnote 902 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:903">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:903" rev="footnote" title="Jump back to footnote 903 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:904">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:904" rev="footnote" title="Jump back to footnote 904 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:905">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:905" rev="footnote" title="Jump back to footnote 905 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:906">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:906" rev="footnote" title="Jump back to footnote 906 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:907">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:907" rev="footnote" title="Jump back to footnote 907 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:908">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:908" rev="footnote" title="Jump back to footnote 908 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:909">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:909" rev="footnote" title="Jump back to footnote 909 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:910">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:910" rev="footnote" title="Jump back to footnote 910 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:911">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:911" rev="footnote" title="Jump back to footnote 911 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:912">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:912" rev="footnote" title="Jump back to footnote 912 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:913">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:913" rev="footnote" title="Jump back to footnote 913 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:914">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:914" rev="footnote" title="Jump back to footnote 914 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:915">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:915" rev="footnote" title="Jump back to footnote 915 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:916">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:916" rev="footnote" title="Jump back to footnote 916 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:917">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:917" rev="footnote" title="Jump back to footnote 917 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:918">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:918" rev="footnote" title="Jump back to footnote 918 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:919">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:919" rev="footnote" title="Jump back to footnote 919 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:920">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:920" rev="footnote" title="Jump back to footnote 920 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:921">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:921" rev="footnote" title="Jump back to footnote 921 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:922">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:922" rev="footnote" title="Jump back to footnote 922 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:923">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:923" rev="footnote" title="Jump back to footnote 923 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:924">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:924" rev="footnote" title="Jump back to footnote 924 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:925">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:925" rev="footnote" title="Jump back to footnote 925 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:926">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:926" rev="footnote" title="Jump back to footnote 926 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:927">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:927" rev="footnote" title="Jump back to footnote 927 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:928">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:928" rev="footnote" title="Jump back to footnote 928 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:929">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:929" rev="footnote" title="Jump back to footnote 929 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:930">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:930" rev="footnote" title="Jump back to footnote 930 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:931">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:931" rev="footnote" title="Jump back to footnote 931 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:932">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:932" rev="footnote" title="Jump back to footnote 932 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:933">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:933" rev="footnote" title="Jump back to footnote 933 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:934">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:934" rev="footnote" title="Jump back to footnote 934 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:935">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:935" rev="footnote" title="Jump back to footnote 935 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:936">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:936" rev="footnote" title="Jump back to footnote 936 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:937">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:937" rev="footnote" title="Jump back to footnote 937 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:938">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:938" rev="footnote" title="Jump back to footnote 938 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:939">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:939" rev="footnote" title="Jump back to footnote 939 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:940">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:940" rev="footnote" title="Jump back to footnote 940 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:941">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:941" rev="footnote" title="Jump back to footnote 941 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:942">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:942" rev="footnote" title="Jump back to footnote 942 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:943">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:943" rev="footnote" title="Jump back to footnote 943 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:944">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:944" rev="footnote" title="Jump back to footnote 944 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:945">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:945" rev="footnote" title="Jump back to footnote 945 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:946">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:946" rev="footnote" title="Jump back to footnote 946 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:947">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:947" rev="footnote" title="Jump back to footnote 947 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:948">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:948" rev="footnote" title="Jump back to footnote 948 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:949">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:949" rev="footnote" title="Jump back to footnote 949 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:950">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:950" rev="footnote" title="Jump back to footnote 950 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:951">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:951" rev="footnote" title="Jump back to footnote 951 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:952">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:952" rev="footnote" title="Jump back to footnote 952 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:953">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:953" rev="footnote" title="Jump back to footnote 953 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:954">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:954" rev="footnote" title="Jump back to footnote 954 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:955">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:955" rev="footnote" title="Jump back to footnote 955 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:956">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:956" rev="footnote" title="Jump back to footnote 956 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:957">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:957" rev="footnote" title="Jump back to footnote 957 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:958">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:958" rev="footnote" title="Jump back to footnote 958 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:959">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:959" rev="footnote" title="Jump back to footnote 959 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:960">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:960" rev="footnote" title="Jump back to footnote 960 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:961">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:961" rev="footnote" title="Jump back to footnote 961 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:962">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:962" rev="footnote" title="Jump back to footnote 962 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:963">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:963" rev="footnote" title="Jump back to footnote 963 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:964">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:964" rev="footnote" title="Jump back to footnote 964 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:965">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:965" rev="footnote" title="Jump back to footnote 965 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:966">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:966" rev="footnote" title="Jump back to footnote 966 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:967">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:967" rev="footnote" title="Jump back to footnote 967 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:968">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:968" rev="footnote" title="Jump back to footnote 968 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:969">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:969" rev="footnote" title="Jump back to footnote 969 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:970">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:970" rev="footnote" title="Jump back to footnote 970 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:971">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:971" rev="footnote" title="Jump back to footnote 971 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:972">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:972" rev="footnote" title="Jump back to footnote 972 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:973">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:973" rev="footnote" title="Jump back to footnote 973 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:974">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:974" rev="footnote" title="Jump back to footnote 974 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:975">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:975" rev="footnote" title="Jump back to footnote 975 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:976">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:976" rev="footnote" title="Jump back to footnote 976 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:977">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:977" rev="footnote" title="Jump back to footnote 977 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:978">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:978" rev="footnote" title="Jump back to footnote 978 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:979">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:979" rev="footnote" title="Jump back to footnote 979 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:980">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:980" rev="footnote" title="Jump back to footnote 980 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:981">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:981" rev="footnote" title="Jump back to footnote 981 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:982">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:982" rev="footnote" title="Jump back to footnote 982 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:983">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:983" rev="footnote" title="Jump back to footnote 983 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:984">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:984" rev="footnote" title="Jump back to footnote 984 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:985">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:985" rev="footnote" title="Jump back to footnote 985 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:986">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:986" rev="footnote" title="Jump back to footnote 986 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:987">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:987" rev="footnote" title="Jump back to footnote 987 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:988">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:988" rev="footnote" title="Jump back to footnote 988 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:989">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:989" rev="footnote" title="Jump back to footnote 989 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:990">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:990" rev="footnote" title="Jump back to footnote 990 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:991">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:991" rev="footnote" title="Jump back to footnote 991 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:992">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:992" rev="footnote" title="Jump back to footnote 992 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:993">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:993" rev="footnote" title="Jump back to footnote 993 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:994">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:994" rev="footnote" title="Jump back to footnote 994 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:995">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:995" rev="footnote" title="Jump back to footnote 995 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:996">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:996" rev="footnote" title="Jump back to footnote 996 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:997">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:997" rev="footnote" title="Jump back to footnote 997 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:998">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:998" rev="footnote" title="Jump back to footnote 998 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:999">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:999" rev="footnote" title="Jump back to footnote 999 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1000">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1000" rev="footnote" title="Jump back to footnote 1000 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1001">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1001" rev="footnote" title="Jump back to footnote 1001 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1002">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1002" rev="footnote" title="Jump back to footnote 1002 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1003">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1003" rev="footnote" title="Jump back to footnote 1003 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1004">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1004" rev="footnote" title="Jump back to footnote 1004 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1005">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1005" rev="footnote" title="Jump back to footnote 1005 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1006">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1006" rev="footnote" title="Jump back to footnote 1006 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1007">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1007" rev="footnote" title="Jump back to footnote 1007 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1008">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1008" rev="footnote" title="Jump back to footnote 1008 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1009">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1009" rev="footnote" title="Jump back to footnote 1009 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1010">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1010" rev="footnote" title="Jump back to footnote 1010 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1011">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1011" rev="footnote" title="Jump back to footnote 1011 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1012">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1012" rev="footnote" title="Jump back to footnote 1012 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1013">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1013" rev="footnote" title="Jump back to footnote 1013 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1014">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1014" rev="footnote" title="Jump back to footnote 1014 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1015">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1015" rev="footnote" title="Jump back to footnote 1015 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1016">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1016" rev="footnote" title="Jump back to footnote 1016 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1017">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1017" rev="footnote" title="Jump back to footnote 1017 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1018">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1018" rev="footnote" title="Jump back to footnote 1018 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1019">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1019" rev="footnote" title="Jump back to footnote 1019 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1020">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1020" rev="footnote" title="Jump back to footnote 1020 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1021">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1021" rev="footnote" title="Jump back to footnote 1021 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1022">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1022" rev="footnote" title="Jump back to footnote 1022 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1023">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1023" rev="footnote" title="Jump back to footnote 1023 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1024">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1024" rev="footnote" title="Jump back to footnote 1024 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1025">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1025" rev="footnote" title="Jump back to footnote 1025 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1026">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1026" rev="footnote" title="Jump back to footnote 1026 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1027">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1027" rev="footnote" title="Jump back to footnote 1027 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1028">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1028" rev="footnote" title="Jump back to footnote 1028 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1029">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1029" rev="footnote" title="Jump back to footnote 1029 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1030">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1030" rev="footnote" title="Jump back to footnote 1030 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1031">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1031" rev="footnote" title="Jump back to footnote 1031 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1032">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1032" rev="footnote" title="Jump back to footnote 1032 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1033">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1033" rev="footnote" title="Jump back to footnote 1033 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1034">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1034" rev="footnote" title="Jump back to footnote 1034 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1035">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1035" rev="footnote" title="Jump back to footnote 1035 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1036">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1036" rev="footnote" title="Jump back to footnote 1036 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1037">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1037" rev="footnote" title="Jump back to footnote 1037 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1038">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1038" rev="footnote" title="Jump back to footnote 1038 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1039">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1039" rev="footnote" title="Jump back to footnote 1039 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1040">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1040" rev="footnote" title="Jump back to footnote 1040 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1041">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1041" rev="footnote" title="Jump back to footnote 1041 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1042">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1042" rev="footnote" title="Jump back to footnote 1042 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1043">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1043" rev="footnote" title="Jump back to footnote 1043 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1044">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1044" rev="footnote" title="Jump back to footnote 1044 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1045">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1045" rev="footnote" title="Jump back to footnote 1045 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1046">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1046" rev="footnote" title="Jump back to footnote 1046 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1047">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1047" rev="footnote" title="Jump back to footnote 1047 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1048">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1048" rev="footnote" title="Jump back to footnote 1048 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1049">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1049" rev="footnote" title="Jump back to footnote 1049 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1050">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1050" rev="footnote" title="Jump back to footnote 1050 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1051">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1051" rev="footnote" title="Jump back to footnote 1051 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1052">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1052" rev="footnote" title="Jump back to footnote 1052 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1053">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1053" rev="footnote" title="Jump back to footnote 1053 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1054">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1054" rev="footnote" title="Jump back to footnote 1054 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1055">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1055" rev="footnote" title="Jump back to footnote 1055 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1056">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1056" rev="footnote" title="Jump back to footnote 1056 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1057">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1057" rev="footnote" title="Jump back to footnote 1057 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1058">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1058" rev="footnote" title="Jump back to footnote 1058 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1059">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1059" rev="footnote" title="Jump back to footnote 1059 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1060">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1060" rev="footnote" title="Jump back to footnote 1060 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1061">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1061" rev="footnote" title="Jump back to footnote 1061 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1062">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1062" rev="footnote" title="Jump back to footnote 1062 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1063">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1063" rev="footnote" title="Jump back to footnote 1063 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1064">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1064" rev="footnote" title="Jump back to footnote 1064 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1065">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1065" rev="footnote" title="Jump back to footnote 1065 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1066">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1066" rev="footnote" title="Jump back to footnote 1066 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1067">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1067" rev="footnote" title="Jump back to footnote 1067 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1068">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1068" rev="footnote" title="Jump back to footnote 1068 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1069">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1069" rev="footnote" title="Jump back to footnote 1069 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1070">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1070" rev="footnote" title="Jump back to footnote 1070 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1071">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1071" rev="footnote" title="Jump back to footnote 1071 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1072">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1072" rev="footnote" title="Jump back to footnote 1072 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1073">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1073" rev="footnote" title="Jump back to footnote 1073 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1074">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1074" rev="footnote" title="Jump back to footnote 1074 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1075">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1075" rev="footnote" title="Jump back to footnote 1075 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1076">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1076" rev="footnote" title="Jump back to footnote 1076 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1077">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1077" rev="footnote" title="Jump back to footnote 1077 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1078">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1078" rev="footnote" title="Jump back to footnote 1078 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1079">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1079" rev="footnote" title="Jump back to footnote 1079 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1080">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1080" rev="footnote" title="Jump back to footnote 1080 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1081">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1081" rev="footnote" title="Jump back to footnote 1081 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1082">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1082" rev="footnote" title="Jump back to footnote 1082 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1083">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1083" rev="footnote" title="Jump back to footnote 1083 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1084">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1084" rev="footnote" title="Jump back to footnote 1084 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1085">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1085" rev="footnote" title="Jump back to footnote 1085 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1086">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1086" rev="footnote" title="Jump back to footnote 1086 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1087">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1087" rev="footnote" title="Jump back to footnote 1087 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1088">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1088" rev="footnote" title="Jump back to footnote 1088 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1089">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1089" rev="footnote" title="Jump back to footnote 1089 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1090">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1090" rev="footnote" title="Jump back to footnote 1090 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1091">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1091" rev="footnote" title="Jump back to footnote 1091 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1092">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1092" rev="footnote" title="Jump back to footnote 1092 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1093">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1093" rev="footnote" title="Jump back to footnote 1093 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1094">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1094" rev="footnote" title="Jump back to footnote 1094 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1095">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1095" rev="footnote" title="Jump back to footnote 1095 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1096">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1096" rev="footnote" title="Jump back to footnote 1096 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1097">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1097" rev="footnote" title="Jump back to footnote 1097 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1098">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1098" rev="footnote" title="Jump back to footnote 1098 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1099">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1099" rev="footnote" title="Jump back to footnote 1099 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1100">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1100" rev="footnote" title="Jump back to footnote 1100 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1101">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1101" rev="footnote" title="Jump back to footnote 1101 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1102">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1102" rev="footnote" title="Jump back to footnote 1102 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1103">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1103" rev="footnote" title="Jump back to footnote 1103 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1104">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1104" rev="footnote" title="Jump back to footnote 1104 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1105">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1105" rev="footnote" title="Jump back to footnote 1105 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1106">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1106" rev="footnote" title="Jump back to footnote 1106 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1107">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1107" rev="footnote" title="Jump back to footnote 1107 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1108">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1108" rev="footnote" title="Jump back to footnote 1108 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1109">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1109" rev="footnote" title="Jump back to footnote 1109 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1110">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1110" rev="footnote" title="Jump back to footnote 1110 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1111">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1111" rev="footnote" title="Jump back to footnote 1111 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1112">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1112" rev="footnote" title="Jump back to footnote 1112 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1113">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1113" rev="footnote" title="Jump back to footnote 1113 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1114">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1114" rev="footnote" title="Jump back to footnote 1114 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1115">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1115" rev="footnote" title="Jump back to footnote 1115 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1116">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1116" rev="footnote" title="Jump back to footnote 1116 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1117">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1117" rev="footnote" title="Jump back to footnote 1117 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1118">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1118" rev="footnote" title="Jump back to footnote 1118 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1119">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1119" rev="footnote" title="Jump back to footnote 1119 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1120">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1120" rev="footnote" title="Jump back to footnote 1120 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1121">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1121" rev="footnote" title="Jump back to footnote 1121 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1122">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1122" rev="footnote" title="Jump back to footnote 1122 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1123">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1123" rev="footnote" title="Jump back to footnote 1123 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1124">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1124" rev="footnote" title="Jump back to footnote 1124 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1125">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1125" rev="footnote" title="Jump back to footnote 1125 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1126">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1126" rev="footnote" title="Jump back to footnote 1126 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1127">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1127" rev="footnote" title="Jump back to footnote 1127 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1128">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1128" rev="footnote" title="Jump back to footnote 1128 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1129">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1129" rev="footnote" title="Jump back to footnote 1129 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1130">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1130" rev="footnote" title="Jump back to footnote 1130 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1131">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1131" rev="footnote" title="Jump back to footnote 1131 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1132">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1132" rev="footnote" title="Jump back to footnote 1132 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1133">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1133" rev="footnote" title="Jump back to footnote 1133 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1134">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1134" rev="footnote" title="Jump back to footnote 1134 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1135">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1135" rev="footnote" title="Jump back to footnote 1135 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1136">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1136" rev="footnote" title="Jump back to footnote 1136 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1137">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1137" rev="footnote" title="Jump back to footnote 1137 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1138">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1138" rev="footnote" title="Jump back to footnote 1138 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1139">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1139" rev="footnote" title="Jump back to footnote 1139 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1140">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1140" rev="footnote" title="Jump back to footnote 1140 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1141">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1141" rev="footnote" title="Jump back to footnote 1141 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1142">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1142" rev="footnote" title="Jump back to footnote 1142 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1143">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1143" rev="footnote" title="Jump back to footnote 1143 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1144">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1144" rev="footnote" title="Jump back to footnote 1144 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1145">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1145" rev="footnote" title="Jump back to footnote 1145 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1146">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1146" rev="footnote" title="Jump back to footnote 1146 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1147">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1147" rev="footnote" title="Jump back to footnote 1147 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1148">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1148" rev="footnote" title="Jump back to footnote 1148 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1149">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1149" rev="footnote" title="Jump back to footnote 1149 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1150">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1150" rev="footnote" title="Jump back to footnote 1150 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1151">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1151" rev="footnote" title="Jump back to footnote 1151 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1152">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1152" rev="footnote" title="Jump back to footnote 1152 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1153">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1153" rev="footnote" title="Jump back to footnote 1153 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1154">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1154" rev="footnote" title="Jump back to footnote 1154 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1155">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1155" rev="footnote" title="Jump back to footnote 1155 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1156">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1156" rev="footnote" title="Jump back to footnote 1156 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1157">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1157" rev="footnote" title="Jump back to footnote 1157 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1158">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1158" rev="footnote" title="Jump back to footnote 1158 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1159">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1159" rev="footnote" title="Jump back to footnote 1159 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1160">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1160" rev="footnote" title="Jump back to footnote 1160 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1161">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1161" rev="footnote" title="Jump back to footnote 1161 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1162">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1162" rev="footnote" title="Jump back to footnote 1162 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1163">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1163" rev="footnote" title="Jump back to footnote 1163 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1164">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1164" rev="footnote" title="Jump back to footnote 1164 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1165">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1165" rev="footnote" title="Jump back to footnote 1165 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1166">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1166" rev="footnote" title="Jump back to footnote 1166 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1167">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1167" rev="footnote" title="Jump back to footnote 1167 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1168">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1168" rev="footnote" title="Jump back to footnote 1168 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1169">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1169" rev="footnote" title="Jump back to footnote 1169 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1170">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1170" rev="footnote" title="Jump back to footnote 1170 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1171">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1171" rev="footnote" title="Jump back to footnote 1171 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1172">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1172" rev="footnote" title="Jump back to footnote 1172 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1173">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1173" rev="footnote" title="Jump back to footnote 1173 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1174">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1174" rev="footnote" title="Jump back to footnote 1174 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1175">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1175" rev="footnote" title="Jump back to footnote 1175 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1176">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1176" rev="footnote" title="Jump back to footnote 1176 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1177">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1177" rev="footnote" title="Jump back to footnote 1177 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1178">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1178" rev="footnote" title="Jump back to footnote 1178 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1179">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1179" rev="footnote" title="Jump back to footnote 1179 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1180">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1180" rev="footnote" title="Jump back to footnote 1180 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1181">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1181" rev="footnote" title="Jump back to footnote 1181 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1182">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1182" rev="footnote" title="Jump back to footnote 1182 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1183">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1183" rev="footnote" title="Jump back to footnote 1183 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1184">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1184" rev="footnote" title="Jump back to footnote 1184 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1185">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1185" rev="footnote" title="Jump back to footnote 1185 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1186">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1186" rev="footnote" title="Jump back to footnote 1186 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1187">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1187" rev="footnote" title="Jump back to footnote 1187 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1188">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1188" rev="footnote" title="Jump back to footnote 1188 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1189">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1189" rev="footnote" title="Jump back to footnote 1189 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1190">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1190" rev="footnote" title="Jump back to footnote 1190 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1191">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1191" rev="footnote" title="Jump back to footnote 1191 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1192">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1192" rev="footnote" title="Jump back to footnote 1192 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1193">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1193" rev="footnote" title="Jump back to footnote 1193 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1194">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1194" rev="footnote" title="Jump back to footnote 1194 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1195">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1195" rev="footnote" title="Jump back to footnote 1195 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1196">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1196" rev="footnote" title="Jump back to footnote 1196 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1197">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1197" rev="footnote" title="Jump back to footnote 1197 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1198">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1198" rev="footnote" title="Jump back to footnote 1198 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:1199">\r
-<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1199" rev="footnote" title="Jump back to footnote 1199 in the text">&#8617;</a></p>\r
-</li>\r
-</ol>\r
+<p>Something<sup id="fnref:1"><a class="footnote-ref" href="#fn:1" rel="footnote">1</a></sup></p>
+<p>Something<sup id="fnref:2"><a class="footnote-ref" href="#fn:2" rel="footnote">2</a></sup></p>
+<p>Something<sup id="fnref:3"><a class="footnote-ref" href="#fn:3" rel="footnote">3</a></sup></p>
+<p>Something<sup id="fnref:4"><a class="footnote-ref" href="#fn:4" rel="footnote">4</a></sup></p>
+<p>Something<sup id="fnref:5"><a class="footnote-ref" href="#fn:5" rel="footnote">5</a></sup></p>
+<p>Something<sup id="fnref:6"><a class="footnote-ref" href="#fn:6" rel="footnote">6</a></sup></p>
+<p>Something<sup id="fnref:7"><a class="footnote-ref" href="#fn:7" rel="footnote">7</a></sup></p>
+<p>Something<sup id="fnref:8"><a class="footnote-ref" href="#fn:8" rel="footnote">8</a></sup></p>
+<p>Something<sup id="fnref:9"><a class="footnote-ref" href="#fn:9" rel="footnote">9</a></sup></p>
+<p>Something<sup id="fnref:10"><a class="footnote-ref" href="#fn:10" rel="footnote">10</a></sup></p>
+<p>Something<sup id="fnref:11"><a class="footnote-ref" href="#fn:11" rel="footnote">11</a></sup></p>
+<p>Something<sup id="fnref:12"><a class="footnote-ref" href="#fn:12" rel="footnote">12</a></sup></p>
+<p>Something<sup id="fnref:13"><a class="footnote-ref" href="#fn:13" rel="footnote">13</a></sup></p>
+<p>Something<sup id="fnref:14"><a class="footnote-ref" href="#fn:14" rel="footnote">14</a></sup></p>
+<p>Something<sup id="fnref:15"><a class="footnote-ref" href="#fn:15" rel="footnote">15</a></sup></p>
+<p>Something<sup id="fnref:16"><a class="footnote-ref" href="#fn:16" rel="footnote">16</a></sup></p>
+<p>Something<sup id="fnref:17"><a class="footnote-ref" href="#fn:17" rel="footnote">17</a></sup></p>
+<p>Something<sup id="fnref:18"><a class="footnote-ref" href="#fn:18" rel="footnote">18</a></sup></p>
+<p>Something<sup id="fnref:19"><a class="footnote-ref" href="#fn:19" rel="footnote">19</a></sup></p>
+<p>Something<sup id="fnref:20"><a class="footnote-ref" href="#fn:20" rel="footnote">20</a></sup></p>
+<p>Something<sup id="fnref:21"><a class="footnote-ref" href="#fn:21" rel="footnote">21</a></sup></p>
+<p>Something<sup id="fnref:22"><a class="footnote-ref" href="#fn:22" rel="footnote">22</a></sup></p>
+<p>Something<sup id="fnref:23"><a class="footnote-ref" href="#fn:23" rel="footnote">23</a></sup></p>
+<p>Something<sup id="fnref:24"><a class="footnote-ref" href="#fn:24" rel="footnote">24</a></sup></p>
+<p>Something<sup id="fnref:25"><a class="footnote-ref" href="#fn:25" rel="footnote">25</a></sup></p>
+<p>Something<sup id="fnref:26"><a class="footnote-ref" href="#fn:26" rel="footnote">26</a></sup></p>
+<p>Something<sup id="fnref:27"><a class="footnote-ref" href="#fn:27" rel="footnote">27</a></sup></p>
+<p>Something<sup id="fnref:28"><a class="footnote-ref" href="#fn:28" rel="footnote">28</a></sup></p>
+<p>Something<sup id="fnref:29"><a class="footnote-ref" href="#fn:29" rel="footnote">29</a></sup></p>
+<p>Something<sup id="fnref:30"><a class="footnote-ref" href="#fn:30" rel="footnote">30</a></sup></p>
+<p>Something<sup id="fnref:31"><a class="footnote-ref" href="#fn:31" rel="footnote">31</a></sup></p>
+<p>Something<sup id="fnref:32"><a class="footnote-ref" href="#fn:32" rel="footnote">32</a></sup></p>
+<p>Something<sup id="fnref:33"><a class="footnote-ref" href="#fn:33" rel="footnote">33</a></sup></p>
+<p>Something<sup id="fnref:34"><a class="footnote-ref" href="#fn:34" rel="footnote">34</a></sup></p>
+<p>Something<sup id="fnref:35"><a class="footnote-ref" href="#fn:35" rel="footnote">35</a></sup></p>
+<p>Something<sup id="fnref:36"><a class="footnote-ref" href="#fn:36" rel="footnote">36</a></sup></p>
+<p>Something<sup id="fnref:37"><a class="footnote-ref" href="#fn:37" rel="footnote">37</a></sup></p>
+<p>Something<sup id="fnref:38"><a class="footnote-ref" href="#fn:38" rel="footnote">38</a></sup></p>
+<p>Something<sup id="fnref:39"><a class="footnote-ref" href="#fn:39" rel="footnote">39</a></sup></p>
+<p>Something<sup id="fnref:40"><a class="footnote-ref" href="#fn:40" rel="footnote">40</a></sup></p>
+<p>Something<sup id="fnref:41"><a class="footnote-ref" href="#fn:41" rel="footnote">41</a></sup></p>
+<p>Something<sup id="fnref:42"><a class="footnote-ref" href="#fn:42" rel="footnote">42</a></sup></p>
+<p>Something<sup id="fnref:43"><a class="footnote-ref" href="#fn:43" rel="footnote">43</a></sup></p>
+<p>Something<sup id="fnref:44"><a class="footnote-ref" href="#fn:44" rel="footnote">44</a></sup></p>
+<p>Something<sup id="fnref:45"><a class="footnote-ref" href="#fn:45" rel="footnote">45</a></sup></p>
+<p>Something<sup id="fnref:46"><a class="footnote-ref" href="#fn:46" rel="footnote">46</a></sup></p>
+<p>Something<sup id="fnref:47"><a class="footnote-ref" href="#fn:47" rel="footnote">47</a></sup></p>
+<p>Something<sup id="fnref:48"><a class="footnote-ref" href="#fn:48" rel="footnote">48</a></sup></p>
+<p>Something<sup id="fnref:49"><a class="footnote-ref" href="#fn:49" rel="footnote">49</a></sup></p>
+<p>Something<sup id="fnref:50"><a class="footnote-ref" href="#fn:50" rel="footnote">50</a></sup></p>
+<p>Something<sup id="fnref:51"><a class="footnote-ref" href="#fn:51" rel="footnote">51</a></sup></p>
+<p>Something<sup id="fnref:52"><a class="footnote-ref" href="#fn:52" rel="footnote">52</a></sup></p>
+<p>Something<sup id="fnref:53"><a class="footnote-ref" href="#fn:53" rel="footnote">53</a></sup></p>
+<p>Something<sup id="fnref:54"><a class="footnote-ref" href="#fn:54" rel="footnote">54</a></sup></p>
+<p>Something<sup id="fnref:55"><a class="footnote-ref" href="#fn:55" rel="footnote">55</a></sup></p>
+<p>Something<sup id="fnref:56"><a class="footnote-ref" href="#fn:56" rel="footnote">56</a></sup></p>
+<p>Something<sup id="fnref:57"><a class="footnote-ref" href="#fn:57" rel="footnote">57</a></sup></p>
+<p>Something<sup id="fnref:58"><a class="footnote-ref" href="#fn:58" rel="footnote">58</a></sup></p>
+<p>Something<sup id="fnref:59"><a class="footnote-ref" href="#fn:59" rel="footnote">59</a></sup></p>
+<p>Something<sup id="fnref:60"><a class="footnote-ref" href="#fn:60" rel="footnote">60</a></sup></p>
+<p>Something<sup id="fnref:61"><a class="footnote-ref" href="#fn:61" rel="footnote">61</a></sup></p>
+<p>Something<sup id="fnref:62"><a class="footnote-ref" href="#fn:62" rel="footnote">62</a></sup></p>
+<p>Something<sup id="fnref:63"><a class="footnote-ref" href="#fn:63" rel="footnote">63</a></sup></p>
+<p>Something<sup id="fnref:64"><a class="footnote-ref" href="#fn:64" rel="footnote">64</a></sup></p>
+<p>Something<sup id="fnref:65"><a class="footnote-ref" href="#fn:65" rel="footnote">65</a></sup></p>
+<p>Something<sup id="fnref:66"><a class="footnote-ref" href="#fn:66" rel="footnote">66</a></sup></p>
+<p>Something<sup id="fnref:67"><a class="footnote-ref" href="#fn:67" rel="footnote">67</a></sup></p>
+<p>Something<sup id="fnref:68"><a class="footnote-ref" href="#fn:68" rel="footnote">68</a></sup></p>
+<p>Something<sup id="fnref:69"><a class="footnote-ref" href="#fn:69" rel="footnote">69</a></sup></p>
+<p>Something<sup id="fnref:70"><a class="footnote-ref" href="#fn:70" rel="footnote">70</a></sup></p>
+<p>Something<sup id="fnref:71"><a class="footnote-ref" href="#fn:71" rel="footnote">71</a></sup></p>
+<p>Something<sup id="fnref:72"><a class="footnote-ref" href="#fn:72" rel="footnote">72</a></sup></p>
+<p>Something<sup id="fnref:73"><a class="footnote-ref" href="#fn:73" rel="footnote">73</a></sup></p>
+<p>Something<sup id="fnref:74"><a class="footnote-ref" href="#fn:74" rel="footnote">74</a></sup></p>
+<p>Something<sup id="fnref:75"><a class="footnote-ref" href="#fn:75" rel="footnote">75</a></sup></p>
+<p>Something<sup id="fnref:76"><a class="footnote-ref" href="#fn:76" rel="footnote">76</a></sup></p>
+<p>Something<sup id="fnref:77"><a class="footnote-ref" href="#fn:77" rel="footnote">77</a></sup></p>
+<p>Something<sup id="fnref:78"><a class="footnote-ref" href="#fn:78" rel="footnote">78</a></sup></p>
+<p>Something<sup id="fnref:79"><a class="footnote-ref" href="#fn:79" rel="footnote">79</a></sup></p>
+<p>Something<sup id="fnref:80"><a class="footnote-ref" href="#fn:80" rel="footnote">80</a></sup></p>
+<p>Something<sup id="fnref:81"><a class="footnote-ref" href="#fn:81" rel="footnote">81</a></sup></p>
+<p>Something<sup id="fnref:82"><a class="footnote-ref" href="#fn:82" rel="footnote">82</a></sup></p>
+<p>Something<sup id="fnref:83"><a class="footnote-ref" href="#fn:83" rel="footnote">83</a></sup></p>
+<p>Something<sup id="fnref:84"><a class="footnote-ref" href="#fn:84" rel="footnote">84</a></sup></p>
+<p>Something<sup id="fnref:85"><a class="footnote-ref" href="#fn:85" rel="footnote">85</a></sup></p>
+<p>Something<sup id="fnref:86"><a class="footnote-ref" href="#fn:86" rel="footnote">86</a></sup></p>
+<p>Something<sup id="fnref:87"><a class="footnote-ref" href="#fn:87" rel="footnote">87</a></sup></p>
+<p>Something<sup id="fnref:88"><a class="footnote-ref" href="#fn:88" rel="footnote">88</a></sup></p>
+<p>Something<sup id="fnref:89"><a class="footnote-ref" href="#fn:89" rel="footnote">89</a></sup></p>
+<p>Something<sup id="fnref:90"><a class="footnote-ref" href="#fn:90" rel="footnote">90</a></sup></p>
+<p>Something<sup id="fnref:91"><a class="footnote-ref" href="#fn:91" rel="footnote">91</a></sup></p>
+<p>Something<sup id="fnref:92"><a class="footnote-ref" href="#fn:92" rel="footnote">92</a></sup></p>
+<p>Something<sup id="fnref:93"><a class="footnote-ref" href="#fn:93" rel="footnote">93</a></sup></p>
+<p>Something<sup id="fnref:94"><a class="footnote-ref" href="#fn:94" rel="footnote">94</a></sup></p>
+<p>Something<sup id="fnref:95"><a class="footnote-ref" href="#fn:95" rel="footnote">95</a></sup></p>
+<p>Something<sup id="fnref:96"><a class="footnote-ref" href="#fn:96" rel="footnote">96</a></sup></p>
+<p>Something<sup id="fnref:97"><a class="footnote-ref" href="#fn:97" rel="footnote">97</a></sup></p>
+<p>Something<sup id="fnref:98"><a class="footnote-ref" href="#fn:98" rel="footnote">98</a></sup></p>
+<p>Something<sup id="fnref:99"><a class="footnote-ref" href="#fn:99" rel="footnote">99</a></sup></p>
+<p>Something<sup id="fnref:100"><a class="footnote-ref" href="#fn:100" rel="footnote">100</a></sup></p>
+<p>Something<sup id="fnref:101"><a class="footnote-ref" href="#fn:101" rel="footnote">101</a></sup></p>
+<p>Something<sup id="fnref:102"><a class="footnote-ref" href="#fn:102" rel="footnote">102</a></sup></p>
+<p>Something<sup id="fnref:103"><a class="footnote-ref" href="#fn:103" rel="footnote">103</a></sup></p>
+<p>Something<sup id="fnref:104"><a class="footnote-ref" href="#fn:104" rel="footnote">104</a></sup></p>
+<p>Something<sup id="fnref:105"><a class="footnote-ref" href="#fn:105" rel="footnote">105</a></sup></p>
+<p>Something<sup id="fnref:106"><a class="footnote-ref" href="#fn:106" rel="footnote">106</a></sup></p>
+<p>Something<sup id="fnref:107"><a class="footnote-ref" href="#fn:107" rel="footnote">107</a></sup></p>
+<p>Something<sup id="fnref:108"><a class="footnote-ref" href="#fn:108" rel="footnote">108</a></sup></p>
+<p>Something<sup id="fnref:109"><a class="footnote-ref" href="#fn:109" rel="footnote">109</a></sup></p>
+<p>Something<sup id="fnref:110"><a class="footnote-ref" href="#fn:110" rel="footnote">110</a></sup></p>
+<p>Something<sup id="fnref:111"><a class="footnote-ref" href="#fn:111" rel="footnote">111</a></sup></p>
+<p>Something<sup id="fnref:112"><a class="footnote-ref" href="#fn:112" rel="footnote">112</a></sup></p>
+<p>Something<sup id="fnref:113"><a class="footnote-ref" href="#fn:113" rel="footnote">113</a></sup></p>
+<p>Something<sup id="fnref:114"><a class="footnote-ref" href="#fn:114" rel="footnote">114</a></sup></p>
+<p>Something<sup id="fnref:115"><a class="footnote-ref" href="#fn:115" rel="footnote">115</a></sup></p>
+<p>Something<sup id="fnref:116"><a class="footnote-ref" href="#fn:116" rel="footnote">116</a></sup></p>
+<p>Something<sup id="fnref:117"><a class="footnote-ref" href="#fn:117" rel="footnote">117</a></sup></p>
+<p>Something<sup id="fnref:118"><a class="footnote-ref" href="#fn:118" rel="footnote">118</a></sup></p>
+<p>Something<sup id="fnref:119"><a class="footnote-ref" href="#fn:119" rel="footnote">119</a></sup></p>
+<p>Something<sup id="fnref:120"><a class="footnote-ref" href="#fn:120" rel="footnote">120</a></sup></p>
+<p>Something<sup id="fnref:121"><a class="footnote-ref" href="#fn:121" rel="footnote">121</a></sup></p>
+<p>Something<sup id="fnref:122"><a class="footnote-ref" href="#fn:122" rel="footnote">122</a></sup></p>
+<p>Something<sup id="fnref:123"><a class="footnote-ref" href="#fn:123" rel="footnote">123</a></sup></p>
+<p>Something<sup id="fnref:124"><a class="footnote-ref" href="#fn:124" rel="footnote">124</a></sup></p>
+<p>Something<sup id="fnref:125"><a class="footnote-ref" href="#fn:125" rel="footnote">125</a></sup></p>
+<p>Something<sup id="fnref:126"><a class="footnote-ref" href="#fn:126" rel="footnote">126</a></sup></p>
+<p>Something<sup id="fnref:127"><a class="footnote-ref" href="#fn:127" rel="footnote">127</a></sup></p>
+<p>Something<sup id="fnref:128"><a class="footnote-ref" href="#fn:128" rel="footnote">128</a></sup></p>
+<p>Something<sup id="fnref:129"><a class="footnote-ref" href="#fn:129" rel="footnote">129</a></sup></p>
+<p>Something<sup id="fnref:130"><a class="footnote-ref" href="#fn:130" rel="footnote">130</a></sup></p>
+<p>Something<sup id="fnref:131"><a class="footnote-ref" href="#fn:131" rel="footnote">131</a></sup></p>
+<p>Something<sup id="fnref:132"><a class="footnote-ref" href="#fn:132" rel="footnote">132</a></sup></p>
+<p>Something<sup id="fnref:133"><a class="footnote-ref" href="#fn:133" rel="footnote">133</a></sup></p>
+<p>Something<sup id="fnref:134"><a class="footnote-ref" href="#fn:134" rel="footnote">134</a></sup></p>
+<p>Something<sup id="fnref:135"><a class="footnote-ref" href="#fn:135" rel="footnote">135</a></sup></p>
+<p>Something<sup id="fnref:136"><a class="footnote-ref" href="#fn:136" rel="footnote">136</a></sup></p>
+<p>Something<sup id="fnref:137"><a class="footnote-ref" href="#fn:137" rel="footnote">137</a></sup></p>
+<p>Something<sup id="fnref:138"><a class="footnote-ref" href="#fn:138" rel="footnote">138</a></sup></p>
+<p>Something<sup id="fnref:139"><a class="footnote-ref" href="#fn:139" rel="footnote">139</a></sup></p>
+<p>Something<sup id="fnref:140"><a class="footnote-ref" href="#fn:140" rel="footnote">140</a></sup></p>
+<p>Something<sup id="fnref:141"><a class="footnote-ref" href="#fn:141" rel="footnote">141</a></sup></p>
+<p>Something<sup id="fnref:142"><a class="footnote-ref" href="#fn:142" rel="footnote">142</a></sup></p>
+<p>Something<sup id="fnref:143"><a class="footnote-ref" href="#fn:143" rel="footnote">143</a></sup></p>
+<p>Something<sup id="fnref:144"><a class="footnote-ref" href="#fn:144" rel="footnote">144</a></sup></p>
+<p>Something<sup id="fnref:145"><a class="footnote-ref" href="#fn:145" rel="footnote">145</a></sup></p>
+<p>Something<sup id="fnref:146"><a class="footnote-ref" href="#fn:146" rel="footnote">146</a></sup></p>
+<p>Something<sup id="fnref:147"><a class="footnote-ref" href="#fn:147" rel="footnote">147</a></sup></p>
+<p>Something<sup id="fnref:148"><a class="footnote-ref" href="#fn:148" rel="footnote">148</a></sup></p>
+<p>Something<sup id="fnref:149"><a class="footnote-ref" href="#fn:149" rel="footnote">149</a></sup></p>
+<p>Something<sup id="fnref:150"><a class="footnote-ref" href="#fn:150" rel="footnote">150</a></sup></p>
+<p>Something<sup id="fnref:151"><a class="footnote-ref" href="#fn:151" rel="footnote">151</a></sup></p>
+<p>Something<sup id="fnref:152"><a class="footnote-ref" href="#fn:152" rel="footnote">152</a></sup></p>
+<p>Something<sup id="fnref:153"><a class="footnote-ref" href="#fn:153" rel="footnote">153</a></sup></p>
+<p>Something<sup id="fnref:154"><a class="footnote-ref" href="#fn:154" rel="footnote">154</a></sup></p>
+<p>Something<sup id="fnref:155"><a class="footnote-ref" href="#fn:155" rel="footnote">155</a></sup></p>
+<p>Something<sup id="fnref:156"><a class="footnote-ref" href="#fn:156" rel="footnote">156</a></sup></p>
+<p>Something<sup id="fnref:157"><a class="footnote-ref" href="#fn:157" rel="footnote">157</a></sup></p>
+<p>Something<sup id="fnref:158"><a class="footnote-ref" href="#fn:158" rel="footnote">158</a></sup></p>
+<p>Something<sup id="fnref:159"><a class="footnote-ref" href="#fn:159" rel="footnote">159</a></sup></p>
+<p>Something<sup id="fnref:160"><a class="footnote-ref" href="#fn:160" rel="footnote">160</a></sup></p>
+<p>Something<sup id="fnref:161"><a class="footnote-ref" href="#fn:161" rel="footnote">161</a></sup></p>
+<p>Something<sup id="fnref:162"><a class="footnote-ref" href="#fn:162" rel="footnote">162</a></sup></p>
+<p>Something<sup id="fnref:163"><a class="footnote-ref" href="#fn:163" rel="footnote">163</a></sup></p>
+<p>Something<sup id="fnref:164"><a class="footnote-ref" href="#fn:164" rel="footnote">164</a></sup></p>
+<p>Something<sup id="fnref:165"><a class="footnote-ref" href="#fn:165" rel="footnote">165</a></sup></p>
+<p>Something<sup id="fnref:166"><a class="footnote-ref" href="#fn:166" rel="footnote">166</a></sup></p>
+<p>Something<sup id="fnref:167"><a class="footnote-ref" href="#fn:167" rel="footnote">167</a></sup></p>
+<p>Something<sup id="fnref:168"><a class="footnote-ref" href="#fn:168" rel="footnote">168</a></sup></p>
+<p>Something<sup id="fnref:169"><a class="footnote-ref" href="#fn:169" rel="footnote">169</a></sup></p>
+<p>Something<sup id="fnref:170"><a class="footnote-ref" href="#fn:170" rel="footnote">170</a></sup></p>
+<p>Something<sup id="fnref:171"><a class="footnote-ref" href="#fn:171" rel="footnote">171</a></sup></p>
+<p>Something<sup id="fnref:172"><a class="footnote-ref" href="#fn:172" rel="footnote">172</a></sup></p>
+<p>Something<sup id="fnref:173"><a class="footnote-ref" href="#fn:173" rel="footnote">173</a></sup></p>
+<p>Something<sup id="fnref:174"><a class="footnote-ref" href="#fn:174" rel="footnote">174</a></sup></p>
+<p>Something<sup id="fnref:175"><a class="footnote-ref" href="#fn:175" rel="footnote">175</a></sup></p>
+<p>Something<sup id="fnref:176"><a class="footnote-ref" href="#fn:176" rel="footnote">176</a></sup></p>
+<p>Something<sup id="fnref:177"><a class="footnote-ref" href="#fn:177" rel="footnote">177</a></sup></p>
+<p>Something<sup id="fnref:178"><a class="footnote-ref" href="#fn:178" rel="footnote">178</a></sup></p>
+<p>Something<sup id="fnref:179"><a class="footnote-ref" href="#fn:179" rel="footnote">179</a></sup></p>
+<p>Something<sup id="fnref:180"><a class="footnote-ref" href="#fn:180" rel="footnote">180</a></sup></p>
+<p>Something<sup id="fnref:181"><a class="footnote-ref" href="#fn:181" rel="footnote">181</a></sup></p>
+<p>Something<sup id="fnref:182"><a class="footnote-ref" href="#fn:182" rel="footnote">182</a></sup></p>
+<p>Something<sup id="fnref:183"><a class="footnote-ref" href="#fn:183" rel="footnote">183</a></sup></p>
+<p>Something<sup id="fnref:184"><a class="footnote-ref" href="#fn:184" rel="footnote">184</a></sup></p>
+<p>Something<sup id="fnref:185"><a class="footnote-ref" href="#fn:185" rel="footnote">185</a></sup></p>
+<p>Something<sup id="fnref:186"><a class="footnote-ref" href="#fn:186" rel="footnote">186</a></sup></p>
+<p>Something<sup id="fnref:187"><a class="footnote-ref" href="#fn:187" rel="footnote">187</a></sup></p>
+<p>Something<sup id="fnref:188"><a class="footnote-ref" href="#fn:188" rel="footnote">188</a></sup></p>
+<p>Something<sup id="fnref:189"><a class="footnote-ref" href="#fn:189" rel="footnote">189</a></sup></p>
+<p>Something<sup id="fnref:190"><a class="footnote-ref" href="#fn:190" rel="footnote">190</a></sup></p>
+<p>Something<sup id="fnref:191"><a class="footnote-ref" href="#fn:191" rel="footnote">191</a></sup></p>
+<p>Something<sup id="fnref:192"><a class="footnote-ref" href="#fn:192" rel="footnote">192</a></sup></p>
+<p>Something<sup id="fnref:193"><a class="footnote-ref" href="#fn:193" rel="footnote">193</a></sup></p>
+<p>Something<sup id="fnref:194"><a class="footnote-ref" href="#fn:194" rel="footnote">194</a></sup></p>
+<p>Something<sup id="fnref:195"><a class="footnote-ref" href="#fn:195" rel="footnote">195</a></sup></p>
+<p>Something<sup id="fnref:196"><a class="footnote-ref" href="#fn:196" rel="footnote">196</a></sup></p>
+<p>Something<sup id="fnref:197"><a class="footnote-ref" href="#fn:197" rel="footnote">197</a></sup></p>
+<p>Something<sup id="fnref:198"><a class="footnote-ref" href="#fn:198" rel="footnote">198</a></sup></p>
+<p>Something<sup id="fnref:199"><a class="footnote-ref" href="#fn:199" rel="footnote">199</a></sup></p>
+<p>Something<sup id="fnref:200"><a class="footnote-ref" href="#fn:200" rel="footnote">200</a></sup></p>
+<p>Something<sup id="fnref:201"><a class="footnote-ref" href="#fn:201" rel="footnote">201</a></sup></p>
+<p>Something<sup id="fnref:202"><a class="footnote-ref" href="#fn:202" rel="footnote">202</a></sup></p>
+<p>Something<sup id="fnref:203"><a class="footnote-ref" href="#fn:203" rel="footnote">203</a></sup></p>
+<p>Something<sup id="fnref:204"><a class="footnote-ref" href="#fn:204" rel="footnote">204</a></sup></p>
+<p>Something<sup id="fnref:205"><a class="footnote-ref" href="#fn:205" rel="footnote">205</a></sup></p>
+<p>Something<sup id="fnref:206"><a class="footnote-ref" href="#fn:206" rel="footnote">206</a></sup></p>
+<p>Something<sup id="fnref:207"><a class="footnote-ref" href="#fn:207" rel="footnote">207</a></sup></p>
+<p>Something<sup id="fnref:208"><a class="footnote-ref" href="#fn:208" rel="footnote">208</a></sup></p>
+<p>Something<sup id="fnref:209"><a class="footnote-ref" href="#fn:209" rel="footnote">209</a></sup></p>
+<p>Something<sup id="fnref:210"><a class="footnote-ref" href="#fn:210" rel="footnote">210</a></sup></p>
+<p>Something<sup id="fnref:211"><a class="footnote-ref" href="#fn:211" rel="footnote">211</a></sup></p>
+<p>Something<sup id="fnref:212"><a class="footnote-ref" href="#fn:212" rel="footnote">212</a></sup></p>
+<p>Something<sup id="fnref:213"><a class="footnote-ref" href="#fn:213" rel="footnote">213</a></sup></p>
+<p>Something<sup id="fnref:214"><a class="footnote-ref" href="#fn:214" rel="footnote">214</a></sup></p>
+<p>Something<sup id="fnref:215"><a class="footnote-ref" href="#fn:215" rel="footnote">215</a></sup></p>
+<p>Something<sup id="fnref:216"><a class="footnote-ref" href="#fn:216" rel="footnote">216</a></sup></p>
+<p>Something<sup id="fnref:217"><a class="footnote-ref" href="#fn:217" rel="footnote">217</a></sup></p>
+<p>Something<sup id="fnref:218"><a class="footnote-ref" href="#fn:218" rel="footnote">218</a></sup></p>
+<p>Something<sup id="fnref:219"><a class="footnote-ref" href="#fn:219" rel="footnote">219</a></sup></p>
+<p>Something<sup id="fnref:220"><a class="footnote-ref" href="#fn:220" rel="footnote">220</a></sup></p>
+<p>Something<sup id="fnref:221"><a class="footnote-ref" href="#fn:221" rel="footnote">221</a></sup></p>
+<p>Something<sup id="fnref:222"><a class="footnote-ref" href="#fn:222" rel="footnote">222</a></sup></p>
+<p>Something<sup id="fnref:223"><a class="footnote-ref" href="#fn:223" rel="footnote">223</a></sup></p>
+<p>Something<sup id="fnref:224"><a class="footnote-ref" href="#fn:224" rel="footnote">224</a></sup></p>
+<p>Something<sup id="fnref:225"><a class="footnote-ref" href="#fn:225" rel="footnote">225</a></sup></p>
+<p>Something<sup id="fnref:226"><a class="footnote-ref" href="#fn:226" rel="footnote">226</a></sup></p>
+<p>Something<sup id="fnref:227"><a class="footnote-ref" href="#fn:227" rel="footnote">227</a></sup></p>
+<p>Something<sup id="fnref:228"><a class="footnote-ref" href="#fn:228" rel="footnote">228</a></sup></p>
+<p>Something<sup id="fnref:229"><a class="footnote-ref" href="#fn:229" rel="footnote">229</a></sup></p>
+<p>Something<sup id="fnref:230"><a class="footnote-ref" href="#fn:230" rel="footnote">230</a></sup></p>
+<p>Something<sup id="fnref:231"><a class="footnote-ref" href="#fn:231" rel="footnote">231</a></sup></p>
+<p>Something<sup id="fnref:232"><a class="footnote-ref" href="#fn:232" rel="footnote">232</a></sup></p>
+<p>Something<sup id="fnref:233"><a class="footnote-ref" href="#fn:233" rel="footnote">233</a></sup></p>
+<p>Something<sup id="fnref:234"><a class="footnote-ref" href="#fn:234" rel="footnote">234</a></sup></p>
+<p>Something<sup id="fnref:235"><a class="footnote-ref" href="#fn:235" rel="footnote">235</a></sup></p>
+<p>Something<sup id="fnref:236"><a class="footnote-ref" href="#fn:236" rel="footnote">236</a></sup></p>
+<p>Something<sup id="fnref:237"><a class="footnote-ref" href="#fn:237" rel="footnote">237</a></sup></p>
+<p>Something<sup id="fnref:238"><a class="footnote-ref" href="#fn:238" rel="footnote">238</a></sup></p>
+<p>Something<sup id="fnref:239"><a class="footnote-ref" href="#fn:239" rel="footnote">239</a></sup></p>
+<p>Something<sup id="fnref:240"><a class="footnote-ref" href="#fn:240" rel="footnote">240</a></sup></p>
+<p>Something<sup id="fnref:241"><a class="footnote-ref" href="#fn:241" rel="footnote">241</a></sup></p>
+<p>Something<sup id="fnref:242"><a class="footnote-ref" href="#fn:242" rel="footnote">242</a></sup></p>
+<p>Something<sup id="fnref:243"><a class="footnote-ref" href="#fn:243" rel="footnote">243</a></sup></p>
+<p>Something<sup id="fnref:244"><a class="footnote-ref" href="#fn:244" rel="footnote">244</a></sup></p>
+<p>Something<sup id="fnref:245"><a class="footnote-ref" href="#fn:245" rel="footnote">245</a></sup></p>
+<p>Something<sup id="fnref:246"><a class="footnote-ref" href="#fn:246" rel="footnote">246</a></sup></p>
+<p>Something<sup id="fnref:247"><a class="footnote-ref" href="#fn:247" rel="footnote">247</a></sup></p>
+<p>Something<sup id="fnref:248"><a class="footnote-ref" href="#fn:248" rel="footnote">248</a></sup></p>
+<p>Something<sup id="fnref:249"><a class="footnote-ref" href="#fn:249" rel="footnote">249</a></sup></p>
+<p>Something<sup id="fnref:250"><a class="footnote-ref" href="#fn:250" rel="footnote">250</a></sup></p>
+<p>Something<sup id="fnref:251"><a class="footnote-ref" href="#fn:251" rel="footnote">251</a></sup></p>
+<p>Something<sup id="fnref:252"><a class="footnote-ref" href="#fn:252" rel="footnote">252</a></sup></p>
+<p>Something<sup id="fnref:253"><a class="footnote-ref" href="#fn:253" rel="footnote">253</a></sup></p>
+<p>Something<sup id="fnref:254"><a class="footnote-ref" href="#fn:254" rel="footnote">254</a></sup></p>
+<p>Something<sup id="fnref:255"><a class="footnote-ref" href="#fn:255" rel="footnote">255</a></sup></p>
+<p>Something<sup id="fnref:256"><a class="footnote-ref" href="#fn:256" rel="footnote">256</a></sup></p>
+<p>Something<sup id="fnref:257"><a class="footnote-ref" href="#fn:257" rel="footnote">257</a></sup></p>
+<p>Something<sup id="fnref:258"><a class="footnote-ref" href="#fn:258" rel="footnote">258</a></sup></p>
+<p>Something<sup id="fnref:259"><a class="footnote-ref" href="#fn:259" rel="footnote">259</a></sup></p>
+<p>Something<sup id="fnref:260"><a class="footnote-ref" href="#fn:260" rel="footnote">260</a></sup></p>
+<p>Something<sup id="fnref:261"><a class="footnote-ref" href="#fn:261" rel="footnote">261</a></sup></p>
+<p>Something<sup id="fnref:262"><a class="footnote-ref" href="#fn:262" rel="footnote">262</a></sup></p>
+<p>Something<sup id="fnref:263"><a class="footnote-ref" href="#fn:263" rel="footnote">263</a></sup></p>
+<p>Something<sup id="fnref:264"><a class="footnote-ref" href="#fn:264" rel="footnote">264</a></sup></p>
+<p>Something<sup id="fnref:265"><a class="footnote-ref" href="#fn:265" rel="footnote">265</a></sup></p>
+<p>Something<sup id="fnref:266"><a class="footnote-ref" href="#fn:266" rel="footnote">266</a></sup></p>
+<p>Something<sup id="fnref:267"><a class="footnote-ref" href="#fn:267" rel="footnote">267</a></sup></p>
+<p>Something<sup id="fnref:268"><a class="footnote-ref" href="#fn:268" rel="footnote">268</a></sup></p>
+<p>Something<sup id="fnref:269"><a class="footnote-ref" href="#fn:269" rel="footnote">269</a></sup></p>
+<p>Something<sup id="fnref:270"><a class="footnote-ref" href="#fn:270" rel="footnote">270</a></sup></p>
+<p>Something<sup id="fnref:271"><a class="footnote-ref" href="#fn:271" rel="footnote">271</a></sup></p>
+<p>Something<sup id="fnref:272"><a class="footnote-ref" href="#fn:272" rel="footnote">272</a></sup></p>
+<p>Something<sup id="fnref:273"><a class="footnote-ref" href="#fn:273" rel="footnote">273</a></sup></p>
+<p>Something<sup id="fnref:274"><a class="footnote-ref" href="#fn:274" rel="footnote">274</a></sup></p>
+<p>Something<sup id="fnref:275"><a class="footnote-ref" href="#fn:275" rel="footnote">275</a></sup></p>
+<p>Something<sup id="fnref:276"><a class="footnote-ref" href="#fn:276" rel="footnote">276</a></sup></p>
+<p>Something<sup id="fnref:277"><a class="footnote-ref" href="#fn:277" rel="footnote">277</a></sup></p>
+<p>Something<sup id="fnref:278"><a class="footnote-ref" href="#fn:278" rel="footnote">278</a></sup></p>
+<p>Something<sup id="fnref:279"><a class="footnote-ref" href="#fn:279" rel="footnote">279</a></sup></p>
+<p>Something<sup id="fnref:280"><a class="footnote-ref" href="#fn:280" rel="footnote">280</a></sup></p>
+<p>Something<sup id="fnref:281"><a class="footnote-ref" href="#fn:281" rel="footnote">281</a></sup></p>
+<p>Something<sup id="fnref:282"><a class="footnote-ref" href="#fn:282" rel="footnote">282</a></sup></p>
+<p>Something<sup id="fnref:283"><a class="footnote-ref" href="#fn:283" rel="footnote">283</a></sup></p>
+<p>Something<sup id="fnref:284"><a class="footnote-ref" href="#fn:284" rel="footnote">284</a></sup></p>
+<p>Something<sup id="fnref:285"><a class="footnote-ref" href="#fn:285" rel="footnote">285</a></sup></p>
+<p>Something<sup id="fnref:286"><a class="footnote-ref" href="#fn:286" rel="footnote">286</a></sup></p>
+<p>Something<sup id="fnref:287"><a class="footnote-ref" href="#fn:287" rel="footnote">287</a></sup></p>
+<p>Something<sup id="fnref:288"><a class="footnote-ref" href="#fn:288" rel="footnote">288</a></sup></p>
+<p>Something<sup id="fnref:289"><a class="footnote-ref" href="#fn:289" rel="footnote">289</a></sup></p>
+<p>Something<sup id="fnref:290"><a class="footnote-ref" href="#fn:290" rel="footnote">290</a></sup></p>
+<p>Something<sup id="fnref:291"><a class="footnote-ref" href="#fn:291" rel="footnote">291</a></sup></p>
+<p>Something<sup id="fnref:292"><a class="footnote-ref" href="#fn:292" rel="footnote">292</a></sup></p>
+<p>Something<sup id="fnref:293"><a class="footnote-ref" href="#fn:293" rel="footnote">293</a></sup></p>
+<p>Something<sup id="fnref:294"><a class="footnote-ref" href="#fn:294" rel="footnote">294</a></sup></p>
+<p>Something<sup id="fnref:295"><a class="footnote-ref" href="#fn:295" rel="footnote">295</a></sup></p>
+<p>Something<sup id="fnref:296"><a class="footnote-ref" href="#fn:296" rel="footnote">296</a></sup></p>
+<p>Something<sup id="fnref:297"><a class="footnote-ref" href="#fn:297" rel="footnote">297</a></sup></p>
+<p>Something<sup id="fnref:298"><a class="footnote-ref" href="#fn:298" rel="footnote">298</a></sup></p>
+<p>Something<sup id="fnref:299"><a class="footnote-ref" href="#fn:299" rel="footnote">299</a></sup></p>
+<p>Something<sup id="fnref:300"><a class="footnote-ref" href="#fn:300" rel="footnote">300</a></sup></p>
+<p>Something<sup id="fnref:301"><a class="footnote-ref" href="#fn:301" rel="footnote">301</a></sup></p>
+<p>Something<sup id="fnref:302"><a class="footnote-ref" href="#fn:302" rel="footnote">302</a></sup></p>
+<p>Something<sup id="fnref:303"><a class="footnote-ref" href="#fn:303" rel="footnote">303</a></sup></p>
+<p>Something<sup id="fnref:304"><a class="footnote-ref" href="#fn:304" rel="footnote">304</a></sup></p>
+<p>Something<sup id="fnref:305"><a class="footnote-ref" href="#fn:305" rel="footnote">305</a></sup></p>
+<p>Something<sup id="fnref:306"><a class="footnote-ref" href="#fn:306" rel="footnote">306</a></sup></p>
+<p>Something<sup id="fnref:307"><a class="footnote-ref" href="#fn:307" rel="footnote">307</a></sup></p>
+<p>Something<sup id="fnref:308"><a class="footnote-ref" href="#fn:308" rel="footnote">308</a></sup></p>
+<p>Something<sup id="fnref:309"><a class="footnote-ref" href="#fn:309" rel="footnote">309</a></sup></p>
+<p>Something<sup id="fnref:310"><a class="footnote-ref" href="#fn:310" rel="footnote">310</a></sup></p>
+<p>Something<sup id="fnref:311"><a class="footnote-ref" href="#fn:311" rel="footnote">311</a></sup></p>
+<p>Something<sup id="fnref:312"><a class="footnote-ref" href="#fn:312" rel="footnote">312</a></sup></p>
+<p>Something<sup id="fnref:313"><a class="footnote-ref" href="#fn:313" rel="footnote">313</a></sup></p>
+<p>Something<sup id="fnref:314"><a class="footnote-ref" href="#fn:314" rel="footnote">314</a></sup></p>
+<p>Something<sup id="fnref:315"><a class="footnote-ref" href="#fn:315" rel="footnote">315</a></sup></p>
+<p>Something<sup id="fnref:316"><a class="footnote-ref" href="#fn:316" rel="footnote">316</a></sup></p>
+<p>Something<sup id="fnref:317"><a class="footnote-ref" href="#fn:317" rel="footnote">317</a></sup></p>
+<p>Something<sup id="fnref:318"><a class="footnote-ref" href="#fn:318" rel="footnote">318</a></sup></p>
+<p>Something<sup id="fnref:319"><a class="footnote-ref" href="#fn:319" rel="footnote">319</a></sup></p>
+<p>Something<sup id="fnref:320"><a class="footnote-ref" href="#fn:320" rel="footnote">320</a></sup></p>
+<p>Something<sup id="fnref:321"><a class="footnote-ref" href="#fn:321" rel="footnote">321</a></sup></p>
+<p>Something<sup id="fnref:322"><a class="footnote-ref" href="#fn:322" rel="footnote">322</a></sup></p>
+<p>Something<sup id="fnref:323"><a class="footnote-ref" href="#fn:323" rel="footnote">323</a></sup></p>
+<p>Something<sup id="fnref:324"><a class="footnote-ref" href="#fn:324" rel="footnote">324</a></sup></p>
+<p>Something<sup id="fnref:325"><a class="footnote-ref" href="#fn:325" rel="footnote">325</a></sup></p>
+<p>Something<sup id="fnref:326"><a class="footnote-ref" href="#fn:326" rel="footnote">326</a></sup></p>
+<p>Something<sup id="fnref:327"><a class="footnote-ref" href="#fn:327" rel="footnote">327</a></sup></p>
+<p>Something<sup id="fnref:328"><a class="footnote-ref" href="#fn:328" rel="footnote">328</a></sup></p>
+<p>Something<sup id="fnref:329"><a class="footnote-ref" href="#fn:329" rel="footnote">329</a></sup></p>
+<p>Something<sup id="fnref:330"><a class="footnote-ref" href="#fn:330" rel="footnote">330</a></sup></p>
+<p>Something<sup id="fnref:331"><a class="footnote-ref" href="#fn:331" rel="footnote">331</a></sup></p>
+<p>Something<sup id="fnref:332"><a class="footnote-ref" href="#fn:332" rel="footnote">332</a></sup></p>
+<p>Something<sup id="fnref:333"><a class="footnote-ref" href="#fn:333" rel="footnote">333</a></sup></p>
+<p>Something<sup id="fnref:334"><a class="footnote-ref" href="#fn:334" rel="footnote">334</a></sup></p>
+<p>Something<sup id="fnref:335"><a class="footnote-ref" href="#fn:335" rel="footnote">335</a></sup></p>
+<p>Something<sup id="fnref:336"><a class="footnote-ref" href="#fn:336" rel="footnote">336</a></sup></p>
+<p>Something<sup id="fnref:337"><a class="footnote-ref" href="#fn:337" rel="footnote">337</a></sup></p>
+<p>Something<sup id="fnref:338"><a class="footnote-ref" href="#fn:338" rel="footnote">338</a></sup></p>
+<p>Something<sup id="fnref:339"><a class="footnote-ref" href="#fn:339" rel="footnote">339</a></sup></p>
+<p>Something<sup id="fnref:340"><a class="footnote-ref" href="#fn:340" rel="footnote">340</a></sup></p>
+<p>Something<sup id="fnref:341"><a class="footnote-ref" href="#fn:341" rel="footnote">341</a></sup></p>
+<p>Something<sup id="fnref:342"><a class="footnote-ref" href="#fn:342" rel="footnote">342</a></sup></p>
+<p>Something<sup id="fnref:343"><a class="footnote-ref" href="#fn:343" rel="footnote">343</a></sup></p>
+<p>Something<sup id="fnref:344"><a class="footnote-ref" href="#fn:344" rel="footnote">344</a></sup></p>
+<p>Something<sup id="fnref:345"><a class="footnote-ref" href="#fn:345" rel="footnote">345</a></sup></p>
+<p>Something<sup id="fnref:346"><a class="footnote-ref" href="#fn:346" rel="footnote">346</a></sup></p>
+<p>Something<sup id="fnref:347"><a class="footnote-ref" href="#fn:347" rel="footnote">347</a></sup></p>
+<p>Something<sup id="fnref:348"><a class="footnote-ref" href="#fn:348" rel="footnote">348</a></sup></p>
+<p>Something<sup id="fnref:349"><a class="footnote-ref" href="#fn:349" rel="footnote">349</a></sup></p>
+<p>Something<sup id="fnref:350"><a class="footnote-ref" href="#fn:350" rel="footnote">350</a></sup></p>
+<p>Something<sup id="fnref:351"><a class="footnote-ref" href="#fn:351" rel="footnote">351</a></sup></p>
+<p>Something<sup id="fnref:352"><a class="footnote-ref" href="#fn:352" rel="footnote">352</a></sup></p>
+<p>Something<sup id="fnref:353"><a class="footnote-ref" href="#fn:353" rel="footnote">353</a></sup></p>
+<p>Something<sup id="fnref:354"><a class="footnote-ref" href="#fn:354" rel="footnote">354</a></sup></p>
+<p>Something<sup id="fnref:355"><a class="footnote-ref" href="#fn:355" rel="footnote">355</a></sup></p>
+<p>Something<sup id="fnref:356"><a class="footnote-ref" href="#fn:356" rel="footnote">356</a></sup></p>
+<p>Something<sup id="fnref:357"><a class="footnote-ref" href="#fn:357" rel="footnote">357</a></sup></p>
+<p>Something<sup id="fnref:358"><a class="footnote-ref" href="#fn:358" rel="footnote">358</a></sup></p>
+<p>Something<sup id="fnref:359"><a class="footnote-ref" href="#fn:359" rel="footnote">359</a></sup></p>
+<p>Something<sup id="fnref:360"><a class="footnote-ref" href="#fn:360" rel="footnote">360</a></sup></p>
+<p>Something<sup id="fnref:361"><a class="footnote-ref" href="#fn:361" rel="footnote">361</a></sup></p>
+<p>Something<sup id="fnref:362"><a class="footnote-ref" href="#fn:362" rel="footnote">362</a></sup></p>
+<p>Something<sup id="fnref:363"><a class="footnote-ref" href="#fn:363" rel="footnote">363</a></sup></p>
+<p>Something<sup id="fnref:364"><a class="footnote-ref" href="#fn:364" rel="footnote">364</a></sup></p>
+<p>Something<sup id="fnref:365"><a class="footnote-ref" href="#fn:365" rel="footnote">365</a></sup></p>
+<p>Something<sup id="fnref:366"><a class="footnote-ref" href="#fn:366" rel="footnote">366</a></sup></p>
+<p>Something<sup id="fnref:367"><a class="footnote-ref" href="#fn:367" rel="footnote">367</a></sup></p>
+<p>Something<sup id="fnref:368"><a class="footnote-ref" href="#fn:368" rel="footnote">368</a></sup></p>
+<p>Something<sup id="fnref:369"><a class="footnote-ref" href="#fn:369" rel="footnote">369</a></sup></p>
+<p>Something<sup id="fnref:370"><a class="footnote-ref" href="#fn:370" rel="footnote">370</a></sup></p>
+<p>Something<sup id="fnref:371"><a class="footnote-ref" href="#fn:371" rel="footnote">371</a></sup></p>
+<p>Something<sup id="fnref:372"><a class="footnote-ref" href="#fn:372" rel="footnote">372</a></sup></p>
+<p>Something<sup id="fnref:373"><a class="footnote-ref" href="#fn:373" rel="footnote">373</a></sup></p>
+<p>Something<sup id="fnref:374"><a class="footnote-ref" href="#fn:374" rel="footnote">374</a></sup></p>
+<p>Something<sup id="fnref:375"><a class="footnote-ref" href="#fn:375" rel="footnote">375</a></sup></p>
+<p>Something<sup id="fnref:376"><a class="footnote-ref" href="#fn:376" rel="footnote">376</a></sup></p>
+<p>Something<sup id="fnref:377"><a class="footnote-ref" href="#fn:377" rel="footnote">377</a></sup></p>
+<p>Something<sup id="fnref:378"><a class="footnote-ref" href="#fn:378" rel="footnote">378</a></sup></p>
+<p>Something<sup id="fnref:379"><a class="footnote-ref" href="#fn:379" rel="footnote">379</a></sup></p>
+<p>Something<sup id="fnref:380"><a class="footnote-ref" href="#fn:380" rel="footnote">380</a></sup></p>
+<p>Something<sup id="fnref:381"><a class="footnote-ref" href="#fn:381" rel="footnote">381</a></sup></p>
+<p>Something<sup id="fnref:382"><a class="footnote-ref" href="#fn:382" rel="footnote">382</a></sup></p>
+<p>Something<sup id="fnref:383"><a class="footnote-ref" href="#fn:383" rel="footnote">383</a></sup></p>
+<p>Something<sup id="fnref:384"><a class="footnote-ref" href="#fn:384" rel="footnote">384</a></sup></p>
+<p>Something<sup id="fnref:385"><a class="footnote-ref" href="#fn:385" rel="footnote">385</a></sup></p>
+<p>Something<sup id="fnref:386"><a class="footnote-ref" href="#fn:386" rel="footnote">386</a></sup></p>
+<p>Something<sup id="fnref:387"><a class="footnote-ref" href="#fn:387" rel="footnote">387</a></sup></p>
+<p>Something<sup id="fnref:388"><a class="footnote-ref" href="#fn:388" rel="footnote">388</a></sup></p>
+<p>Something<sup id="fnref:389"><a class="footnote-ref" href="#fn:389" rel="footnote">389</a></sup></p>
+<p>Something<sup id="fnref:390"><a class="footnote-ref" href="#fn:390" rel="footnote">390</a></sup></p>
+<p>Something<sup id="fnref:391"><a class="footnote-ref" href="#fn:391" rel="footnote">391</a></sup></p>
+<p>Something<sup id="fnref:392"><a class="footnote-ref" href="#fn:392" rel="footnote">392</a></sup></p>
+<p>Something<sup id="fnref:393"><a class="footnote-ref" href="#fn:393" rel="footnote">393</a></sup></p>
+<p>Something<sup id="fnref:394"><a class="footnote-ref" href="#fn:394" rel="footnote">394</a></sup></p>
+<p>Something<sup id="fnref:395"><a class="footnote-ref" href="#fn:395" rel="footnote">395</a></sup></p>
+<p>Something<sup id="fnref:396"><a class="footnote-ref" href="#fn:396" rel="footnote">396</a></sup></p>
+<p>Something<sup id="fnref:397"><a class="footnote-ref" href="#fn:397" rel="footnote">397</a></sup></p>
+<p>Something<sup id="fnref:398"><a class="footnote-ref" href="#fn:398" rel="footnote">398</a></sup></p>
+<p>Something<sup id="fnref:399"><a class="footnote-ref" href="#fn:399" rel="footnote">399</a></sup></p>
+<p>Something<sup id="fnref:400"><a class="footnote-ref" href="#fn:400" rel="footnote">400</a></sup></p>
+<p>Something<sup id="fnref:401"><a class="footnote-ref" href="#fn:401" rel="footnote">401</a></sup></p>
+<p>Something<sup id="fnref:402"><a class="footnote-ref" href="#fn:402" rel="footnote">402</a></sup></p>
+<p>Something<sup id="fnref:403"><a class="footnote-ref" href="#fn:403" rel="footnote">403</a></sup></p>
+<p>Something<sup id="fnref:404"><a class="footnote-ref" href="#fn:404" rel="footnote">404</a></sup></p>
+<p>Something<sup id="fnref:405"><a class="footnote-ref" href="#fn:405" rel="footnote">405</a></sup></p>
+<p>Something<sup id="fnref:406"><a class="footnote-ref" href="#fn:406" rel="footnote">406</a></sup></p>
+<p>Something<sup id="fnref:407"><a class="footnote-ref" href="#fn:407" rel="footnote">407</a></sup></p>
+<p>Something<sup id="fnref:408"><a class="footnote-ref" href="#fn:408" rel="footnote">408</a></sup></p>
+<p>Something<sup id="fnref:409"><a class="footnote-ref" href="#fn:409" rel="footnote">409</a></sup></p>
+<p>Something<sup id="fnref:410"><a class="footnote-ref" href="#fn:410" rel="footnote">410</a></sup></p>
+<p>Something<sup id="fnref:411"><a class="footnote-ref" href="#fn:411" rel="footnote">411</a></sup></p>
+<p>Something<sup id="fnref:412"><a class="footnote-ref" href="#fn:412" rel="footnote">412</a></sup></p>
+<p>Something<sup id="fnref:413"><a class="footnote-ref" href="#fn:413" rel="footnote">413</a></sup></p>
+<p>Something<sup id="fnref:414"><a class="footnote-ref" href="#fn:414" rel="footnote">414</a></sup></p>
+<p>Something<sup id="fnref:415"><a class="footnote-ref" href="#fn:415" rel="footnote">415</a></sup></p>
+<p>Something<sup id="fnref:416"><a class="footnote-ref" href="#fn:416" rel="footnote">416</a></sup></p>
+<p>Something<sup id="fnref:417"><a class="footnote-ref" href="#fn:417" rel="footnote">417</a></sup></p>
+<p>Something<sup id="fnref:418"><a class="footnote-ref" href="#fn:418" rel="footnote">418</a></sup></p>
+<p>Something<sup id="fnref:419"><a class="footnote-ref" href="#fn:419" rel="footnote">419</a></sup></p>
+<p>Something<sup id="fnref:420"><a class="footnote-ref" href="#fn:420" rel="footnote">420</a></sup></p>
+<p>Something<sup id="fnref:421"><a class="footnote-ref" href="#fn:421" rel="footnote">421</a></sup></p>
+<p>Something<sup id="fnref:422"><a class="footnote-ref" href="#fn:422" rel="footnote">422</a></sup></p>
+<p>Something<sup id="fnref:423"><a class="footnote-ref" href="#fn:423" rel="footnote">423</a></sup></p>
+<p>Something<sup id="fnref:424"><a class="footnote-ref" href="#fn:424" rel="footnote">424</a></sup></p>
+<p>Something<sup id="fnref:425"><a class="footnote-ref" href="#fn:425" rel="footnote">425</a></sup></p>
+<p>Something<sup id="fnref:426"><a class="footnote-ref" href="#fn:426" rel="footnote">426</a></sup></p>
+<p>Something<sup id="fnref:427"><a class="footnote-ref" href="#fn:427" rel="footnote">427</a></sup></p>
+<p>Something<sup id="fnref:428"><a class="footnote-ref" href="#fn:428" rel="footnote">428</a></sup></p>
+<p>Something<sup id="fnref:429"><a class="footnote-ref" href="#fn:429" rel="footnote">429</a></sup></p>
+<p>Something<sup id="fnref:430"><a class="footnote-ref" href="#fn:430" rel="footnote">430</a></sup></p>
+<p>Something<sup id="fnref:431"><a class="footnote-ref" href="#fn:431" rel="footnote">431</a></sup></p>
+<p>Something<sup id="fnref:432"><a class="footnote-ref" href="#fn:432" rel="footnote">432</a></sup></p>
+<p>Something<sup id="fnref:433"><a class="footnote-ref" href="#fn:433" rel="footnote">433</a></sup></p>
+<p>Something<sup id="fnref:434"><a class="footnote-ref" href="#fn:434" rel="footnote">434</a></sup></p>
+<p>Something<sup id="fnref:435"><a class="footnote-ref" href="#fn:435" rel="footnote">435</a></sup></p>
+<p>Something<sup id="fnref:436"><a class="footnote-ref" href="#fn:436" rel="footnote">436</a></sup></p>
+<p>Something<sup id="fnref:437"><a class="footnote-ref" href="#fn:437" rel="footnote">437</a></sup></p>
+<p>Something<sup id="fnref:438"><a class="footnote-ref" href="#fn:438" rel="footnote">438</a></sup></p>
+<p>Something<sup id="fnref:439"><a class="footnote-ref" href="#fn:439" rel="footnote">439</a></sup></p>
+<p>Something<sup id="fnref:440"><a class="footnote-ref" href="#fn:440" rel="footnote">440</a></sup></p>
+<p>Something<sup id="fnref:441"><a class="footnote-ref" href="#fn:441" rel="footnote">441</a></sup></p>
+<p>Something<sup id="fnref:442"><a class="footnote-ref" href="#fn:442" rel="footnote">442</a></sup></p>
+<p>Something<sup id="fnref:443"><a class="footnote-ref" href="#fn:443" rel="footnote">443</a></sup></p>
+<p>Something<sup id="fnref:444"><a class="footnote-ref" href="#fn:444" rel="footnote">444</a></sup></p>
+<p>Something<sup id="fnref:445"><a class="footnote-ref" href="#fn:445" rel="footnote">445</a></sup></p>
+<p>Something<sup id="fnref:446"><a class="footnote-ref" href="#fn:446" rel="footnote">446</a></sup></p>
+<p>Something<sup id="fnref:447"><a class="footnote-ref" href="#fn:447" rel="footnote">447</a></sup></p>
+<p>Something<sup id="fnref:448"><a class="footnote-ref" href="#fn:448" rel="footnote">448</a></sup></p>
+<p>Something<sup id="fnref:449"><a class="footnote-ref" href="#fn:449" rel="footnote">449</a></sup></p>
+<p>Something<sup id="fnref:450"><a class="footnote-ref" href="#fn:450" rel="footnote">450</a></sup></p>
+<p>Something<sup id="fnref:451"><a class="footnote-ref" href="#fn:451" rel="footnote">451</a></sup></p>
+<p>Something<sup id="fnref:452"><a class="footnote-ref" href="#fn:452" rel="footnote">452</a></sup></p>
+<p>Something<sup id="fnref:453"><a class="footnote-ref" href="#fn:453" rel="footnote">453</a></sup></p>
+<p>Something<sup id="fnref:454"><a class="footnote-ref" href="#fn:454" rel="footnote">454</a></sup></p>
+<p>Something<sup id="fnref:455"><a class="footnote-ref" href="#fn:455" rel="footnote">455</a></sup></p>
+<p>Something<sup id="fnref:456"><a class="footnote-ref" href="#fn:456" rel="footnote">456</a></sup></p>
+<p>Something<sup id="fnref:457"><a class="footnote-ref" href="#fn:457" rel="footnote">457</a></sup></p>
+<p>Something<sup id="fnref:458"><a class="footnote-ref" href="#fn:458" rel="footnote">458</a></sup></p>
+<p>Something<sup id="fnref:459"><a class="footnote-ref" href="#fn:459" rel="footnote">459</a></sup></p>
+<p>Something<sup id="fnref:460"><a class="footnote-ref" href="#fn:460" rel="footnote">460</a></sup></p>
+<p>Something<sup id="fnref:461"><a class="footnote-ref" href="#fn:461" rel="footnote">461</a></sup></p>
+<p>Something<sup id="fnref:462"><a class="footnote-ref" href="#fn:462" rel="footnote">462</a></sup></p>
+<p>Something<sup id="fnref:463"><a class="footnote-ref" href="#fn:463" rel="footnote">463</a></sup></p>
+<p>Something<sup id="fnref:464"><a class="footnote-ref" href="#fn:464" rel="footnote">464</a></sup></p>
+<p>Something<sup id="fnref:465"><a class="footnote-ref" href="#fn:465" rel="footnote">465</a></sup></p>
+<p>Something<sup id="fnref:466"><a class="footnote-ref" href="#fn:466" rel="footnote">466</a></sup></p>
+<p>Something<sup id="fnref:467"><a class="footnote-ref" href="#fn:467" rel="footnote">467</a></sup></p>
+<p>Something<sup id="fnref:468"><a class="footnote-ref" href="#fn:468" rel="footnote">468</a></sup></p>
+<p>Something<sup id="fnref:469"><a class="footnote-ref" href="#fn:469" rel="footnote">469</a></sup></p>
+<p>Something<sup id="fnref:470"><a class="footnote-ref" href="#fn:470" rel="footnote">470</a></sup></p>
+<p>Something<sup id="fnref:471"><a class="footnote-ref" href="#fn:471" rel="footnote">471</a></sup></p>
+<p>Something<sup id="fnref:472"><a class="footnote-ref" href="#fn:472" rel="footnote">472</a></sup></p>
+<p>Something<sup id="fnref:473"><a class="footnote-ref" href="#fn:473" rel="footnote">473</a></sup></p>
+<p>Something<sup id="fnref:474"><a class="footnote-ref" href="#fn:474" rel="footnote">474</a></sup></p>
+<p>Something<sup id="fnref:475"><a class="footnote-ref" href="#fn:475" rel="footnote">475</a></sup></p>
+<p>Something<sup id="fnref:476"><a class="footnote-ref" href="#fn:476" rel="footnote">476</a></sup></p>
+<p>Something<sup id="fnref:477"><a class="footnote-ref" href="#fn:477" rel="footnote">477</a></sup></p>
+<p>Something<sup id="fnref:478"><a class="footnote-ref" href="#fn:478" rel="footnote">478</a></sup></p>
+<p>Something<sup id="fnref:479"><a class="footnote-ref" href="#fn:479" rel="footnote">479</a></sup></p>
+<p>Something<sup id="fnref:480"><a class="footnote-ref" href="#fn:480" rel="footnote">480</a></sup></p>
+<p>Something<sup id="fnref:481"><a class="footnote-ref" href="#fn:481" rel="footnote">481</a></sup></p>
+<p>Something<sup id="fnref:482"><a class="footnote-ref" href="#fn:482" rel="footnote">482</a></sup></p>
+<p>Something<sup id="fnref:483"><a class="footnote-ref" href="#fn:483" rel="footnote">483</a></sup></p>
+<p>Something<sup id="fnref:484"><a class="footnote-ref" href="#fn:484" rel="footnote">484</a></sup></p>
+<p>Something<sup id="fnref:485"><a class="footnote-ref" href="#fn:485" rel="footnote">485</a></sup></p>
+<p>Something<sup id="fnref:486"><a class="footnote-ref" href="#fn:486" rel="footnote">486</a></sup></p>
+<p>Something<sup id="fnref:487"><a class="footnote-ref" href="#fn:487" rel="footnote">487</a></sup></p>
+<p>Something<sup id="fnref:488"><a class="footnote-ref" href="#fn:488" rel="footnote">488</a></sup></p>
+<p>Something<sup id="fnref:489"><a class="footnote-ref" href="#fn:489" rel="footnote">489</a></sup></p>
+<p>Something<sup id="fnref:490"><a class="footnote-ref" href="#fn:490" rel="footnote">490</a></sup></p>
+<p>Something<sup id="fnref:491"><a class="footnote-ref" href="#fn:491" rel="footnote">491</a></sup></p>
+<p>Something<sup id="fnref:492"><a class="footnote-ref" href="#fn:492" rel="footnote">492</a></sup></p>
+<p>Something<sup id="fnref:493"><a class="footnote-ref" href="#fn:493" rel="footnote">493</a></sup></p>
+<p>Something<sup id="fnref:494"><a class="footnote-ref" href="#fn:494" rel="footnote">494</a></sup></p>
+<p>Something<sup id="fnref:495"><a class="footnote-ref" href="#fn:495" rel="footnote">495</a></sup></p>
+<p>Something<sup id="fnref:496"><a class="footnote-ref" href="#fn:496" rel="footnote">496</a></sup></p>
+<p>Something<sup id="fnref:497"><a class="footnote-ref" href="#fn:497" rel="footnote">497</a></sup></p>
+<p>Something<sup id="fnref:498"><a class="footnote-ref" href="#fn:498" rel="footnote">498</a></sup></p>
+<p>Something<sup id="fnref:499"><a class="footnote-ref" href="#fn:499" rel="footnote">499</a></sup></p>
+<p>Something<sup id="fnref:500"><a class="footnote-ref" href="#fn:500" rel="footnote">500</a></sup></p>
+<p>Something<sup id="fnref:501"><a class="footnote-ref" href="#fn:501" rel="footnote">501</a></sup></p>
+<p>Something<sup id="fnref:502"><a class="footnote-ref" href="#fn:502" rel="footnote">502</a></sup></p>
+<p>Something<sup id="fnref:503"><a class="footnote-ref" href="#fn:503" rel="footnote">503</a></sup></p>
+<p>Something<sup id="fnref:504"><a class="footnote-ref" href="#fn:504" rel="footnote">504</a></sup></p>
+<p>Something<sup id="fnref:505"><a class="footnote-ref" href="#fn:505" rel="footnote">505</a></sup></p>
+<p>Something<sup id="fnref:506"><a class="footnote-ref" href="#fn:506" rel="footnote">506</a></sup></p>
+<p>Something<sup id="fnref:507"><a class="footnote-ref" href="#fn:507" rel="footnote">507</a></sup></p>
+<p>Something<sup id="fnref:508"><a class="footnote-ref" href="#fn:508" rel="footnote">508</a></sup></p>
+<p>Something<sup id="fnref:509"><a class="footnote-ref" href="#fn:509" rel="footnote">509</a></sup></p>
+<p>Something<sup id="fnref:510"><a class="footnote-ref" href="#fn:510" rel="footnote">510</a></sup></p>
+<p>Something<sup id="fnref:511"><a class="footnote-ref" href="#fn:511" rel="footnote">511</a></sup></p>
+<p>Something<sup id="fnref:512"><a class="footnote-ref" href="#fn:512" rel="footnote">512</a></sup></p>
+<p>Something<sup id="fnref:513"><a class="footnote-ref" href="#fn:513" rel="footnote">513</a></sup></p>
+<p>Something<sup id="fnref:514"><a class="footnote-ref" href="#fn:514" rel="footnote">514</a></sup></p>
+<p>Something<sup id="fnref:515"><a class="footnote-ref" href="#fn:515" rel="footnote">515</a></sup></p>
+<p>Something<sup id="fnref:516"><a class="footnote-ref" href="#fn:516" rel="footnote">516</a></sup></p>
+<p>Something<sup id="fnref:517"><a class="footnote-ref" href="#fn:517" rel="footnote">517</a></sup></p>
+<p>Something<sup id="fnref:518"><a class="footnote-ref" href="#fn:518" rel="footnote">518</a></sup></p>
+<p>Something<sup id="fnref:519"><a class="footnote-ref" href="#fn:519" rel="footnote">519</a></sup></p>
+<p>Something<sup id="fnref:520"><a class="footnote-ref" href="#fn:520" rel="footnote">520</a></sup></p>
+<p>Something<sup id="fnref:521"><a class="footnote-ref" href="#fn:521" rel="footnote">521</a></sup></p>
+<p>Something<sup id="fnref:522"><a class="footnote-ref" href="#fn:522" rel="footnote">522</a></sup></p>
+<p>Something<sup id="fnref:523"><a class="footnote-ref" href="#fn:523" rel="footnote">523</a></sup></p>
+<p>Something<sup id="fnref:524"><a class="footnote-ref" href="#fn:524" rel="footnote">524</a></sup></p>
+<p>Something<sup id="fnref:525"><a class="footnote-ref" href="#fn:525" rel="footnote">525</a></sup></p>
+<p>Something<sup id="fnref:526"><a class="footnote-ref" href="#fn:526" rel="footnote">526</a></sup></p>
+<p>Something<sup id="fnref:527"><a class="footnote-ref" href="#fn:527" rel="footnote">527</a></sup></p>
+<p>Something<sup id="fnref:528"><a class="footnote-ref" href="#fn:528" rel="footnote">528</a></sup></p>
+<p>Something<sup id="fnref:529"><a class="footnote-ref" href="#fn:529" rel="footnote">529</a></sup></p>
+<p>Something<sup id="fnref:530"><a class="footnote-ref" href="#fn:530" rel="footnote">530</a></sup></p>
+<p>Something<sup id="fnref:531"><a class="footnote-ref" href="#fn:531" rel="footnote">531</a></sup></p>
+<p>Something<sup id="fnref:532"><a class="footnote-ref" href="#fn:532" rel="footnote">532</a></sup></p>
+<p>Something<sup id="fnref:533"><a class="footnote-ref" href="#fn:533" rel="footnote">533</a></sup></p>
+<p>Something<sup id="fnref:534"><a class="footnote-ref" href="#fn:534" rel="footnote">534</a></sup></p>
+<p>Something<sup id="fnref:535"><a class="footnote-ref" href="#fn:535" rel="footnote">535</a></sup></p>
+<p>Something<sup id="fnref:536"><a class="footnote-ref" href="#fn:536" rel="footnote">536</a></sup></p>
+<p>Something<sup id="fnref:537"><a class="footnote-ref" href="#fn:537" rel="footnote">537</a></sup></p>
+<p>Something<sup id="fnref:538"><a class="footnote-ref" href="#fn:538" rel="footnote">538</a></sup></p>
+<p>Something<sup id="fnref:539"><a class="footnote-ref" href="#fn:539" rel="footnote">539</a></sup></p>
+<p>Something<sup id="fnref:540"><a class="footnote-ref" href="#fn:540" rel="footnote">540</a></sup></p>
+<p>Something<sup id="fnref:541"><a class="footnote-ref" href="#fn:541" rel="footnote">541</a></sup></p>
+<p>Something<sup id="fnref:542"><a class="footnote-ref" href="#fn:542" rel="footnote">542</a></sup></p>
+<p>Something<sup id="fnref:543"><a class="footnote-ref" href="#fn:543" rel="footnote">543</a></sup></p>
+<p>Something<sup id="fnref:544"><a class="footnote-ref" href="#fn:544" rel="footnote">544</a></sup></p>
+<p>Something<sup id="fnref:545"><a class="footnote-ref" href="#fn:545" rel="footnote">545</a></sup></p>
+<p>Something<sup id="fnref:546"><a class="footnote-ref" href="#fn:546" rel="footnote">546</a></sup></p>
+<p>Something<sup id="fnref:547"><a class="footnote-ref" href="#fn:547" rel="footnote">547</a></sup></p>
+<p>Something<sup id="fnref:548"><a class="footnote-ref" href="#fn:548" rel="footnote">548</a></sup></p>
+<p>Something<sup id="fnref:549"><a class="footnote-ref" href="#fn:549" rel="footnote">549</a></sup></p>
+<p>Something<sup id="fnref:550"><a class="footnote-ref" href="#fn:550" rel="footnote">550</a></sup></p>
+<p>Something<sup id="fnref:551"><a class="footnote-ref" href="#fn:551" rel="footnote">551</a></sup></p>
+<p>Something<sup id="fnref:552"><a class="footnote-ref" href="#fn:552" rel="footnote">552</a></sup></p>
+<p>Something<sup id="fnref:553"><a class="footnote-ref" href="#fn:553" rel="footnote">553</a></sup></p>
+<p>Something<sup id="fnref:554"><a class="footnote-ref" href="#fn:554" rel="footnote">554</a></sup></p>
+<p>Something<sup id="fnref:555"><a class="footnote-ref" href="#fn:555" rel="footnote">555</a></sup></p>
+<p>Something<sup id="fnref:556"><a class="footnote-ref" href="#fn:556" rel="footnote">556</a></sup></p>
+<p>Something<sup id="fnref:557"><a class="footnote-ref" href="#fn:557" rel="footnote">557</a></sup></p>
+<p>Something<sup id="fnref:558"><a class="footnote-ref" href="#fn:558" rel="footnote">558</a></sup></p>
+<p>Something<sup id="fnref:559"><a class="footnote-ref" href="#fn:559" rel="footnote">559</a></sup></p>
+<p>Something<sup id="fnref:560"><a class="footnote-ref" href="#fn:560" rel="footnote">560</a></sup></p>
+<p>Something<sup id="fnref:561"><a class="footnote-ref" href="#fn:561" rel="footnote">561</a></sup></p>
+<p>Something<sup id="fnref:562"><a class="footnote-ref" href="#fn:562" rel="footnote">562</a></sup></p>
+<p>Something<sup id="fnref:563"><a class="footnote-ref" href="#fn:563" rel="footnote">563</a></sup></p>
+<p>Something<sup id="fnref:564"><a class="footnote-ref" href="#fn:564" rel="footnote">564</a></sup></p>
+<p>Something<sup id="fnref:565"><a class="footnote-ref" href="#fn:565" rel="footnote">565</a></sup></p>
+<p>Something<sup id="fnref:566"><a class="footnote-ref" href="#fn:566" rel="footnote">566</a></sup></p>
+<p>Something<sup id="fnref:567"><a class="footnote-ref" href="#fn:567" rel="footnote">567</a></sup></p>
+<p>Something<sup id="fnref:568"><a class="footnote-ref" href="#fn:568" rel="footnote">568</a></sup></p>
+<p>Something<sup id="fnref:569"><a class="footnote-ref" href="#fn:569" rel="footnote">569</a></sup></p>
+<p>Something<sup id="fnref:570"><a class="footnote-ref" href="#fn:570" rel="footnote">570</a></sup></p>
+<p>Something<sup id="fnref:571"><a class="footnote-ref" href="#fn:571" rel="footnote">571</a></sup></p>
+<p>Something<sup id="fnref:572"><a class="footnote-ref" href="#fn:572" rel="footnote">572</a></sup></p>
+<p>Something<sup id="fnref:573"><a class="footnote-ref" href="#fn:573" rel="footnote">573</a></sup></p>
+<p>Something<sup id="fnref:574"><a class="footnote-ref" href="#fn:574" rel="footnote">574</a></sup></p>
+<p>Something<sup id="fnref:575"><a class="footnote-ref" href="#fn:575" rel="footnote">575</a></sup></p>
+<p>Something<sup id="fnref:576"><a class="footnote-ref" href="#fn:576" rel="footnote">576</a></sup></p>
+<p>Something<sup id="fnref:577"><a class="footnote-ref" href="#fn:577" rel="footnote">577</a></sup></p>
+<p>Something<sup id="fnref:578"><a class="footnote-ref" href="#fn:578" rel="footnote">578</a></sup></p>
+<p>Something<sup id="fnref:579"><a class="footnote-ref" href="#fn:579" rel="footnote">579</a></sup></p>
+<p>Something<sup id="fnref:580"><a class="footnote-ref" href="#fn:580" rel="footnote">580</a></sup></p>
+<p>Something<sup id="fnref:581"><a class="footnote-ref" href="#fn:581" rel="footnote">581</a></sup></p>
+<p>Something<sup id="fnref:582"><a class="footnote-ref" href="#fn:582" rel="footnote">582</a></sup></p>
+<p>Something<sup id="fnref:583"><a class="footnote-ref" href="#fn:583" rel="footnote">583</a></sup></p>
+<p>Something<sup id="fnref:584"><a class="footnote-ref" href="#fn:584" rel="footnote">584</a></sup></p>
+<p>Something<sup id="fnref:585"><a class="footnote-ref" href="#fn:585" rel="footnote">585</a></sup></p>
+<p>Something<sup id="fnref:586"><a class="footnote-ref" href="#fn:586" rel="footnote">586</a></sup></p>
+<p>Something<sup id="fnref:587"><a class="footnote-ref" href="#fn:587" rel="footnote">587</a></sup></p>
+<p>Something<sup id="fnref:588"><a class="footnote-ref" href="#fn:588" rel="footnote">588</a></sup></p>
+<p>Something<sup id="fnref:589"><a class="footnote-ref" href="#fn:589" rel="footnote">589</a></sup></p>
+<p>Something<sup id="fnref:590"><a class="footnote-ref" href="#fn:590" rel="footnote">590</a></sup></p>
+<p>Something<sup id="fnref:591"><a class="footnote-ref" href="#fn:591" rel="footnote">591</a></sup></p>
+<p>Something<sup id="fnref:592"><a class="footnote-ref" href="#fn:592" rel="footnote">592</a></sup></p>
+<p>Something<sup id="fnref:593"><a class="footnote-ref" href="#fn:593" rel="footnote">593</a></sup></p>
+<p>Something<sup id="fnref:594"><a class="footnote-ref" href="#fn:594" rel="footnote">594</a></sup></p>
+<p>Something<sup id="fnref:595"><a class="footnote-ref" href="#fn:595" rel="footnote">595</a></sup></p>
+<p>Something<sup id="fnref:596"><a class="footnote-ref" href="#fn:596" rel="footnote">596</a></sup></p>
+<p>Something<sup id="fnref:597"><a class="footnote-ref" href="#fn:597" rel="footnote">597</a></sup></p>
+<p>Something<sup id="fnref:598"><a class="footnote-ref" href="#fn:598" rel="footnote">598</a></sup></p>
+<p>Something<sup id="fnref:599"><a class="footnote-ref" href="#fn:599" rel="footnote">599</a></sup></p>
+<p>Something<sup id="fnref:600"><a class="footnote-ref" href="#fn:600" rel="footnote">600</a></sup></p>
+<p>Something<sup id="fnref:601"><a class="footnote-ref" href="#fn:601" rel="footnote">601</a></sup></p>
+<p>Something<sup id="fnref:602"><a class="footnote-ref" href="#fn:602" rel="footnote">602</a></sup></p>
+<p>Something<sup id="fnref:603"><a class="footnote-ref" href="#fn:603" rel="footnote">603</a></sup></p>
+<p>Something<sup id="fnref:604"><a class="footnote-ref" href="#fn:604" rel="footnote">604</a></sup></p>
+<p>Something<sup id="fnref:605"><a class="footnote-ref" href="#fn:605" rel="footnote">605</a></sup></p>
+<p>Something<sup id="fnref:606"><a class="footnote-ref" href="#fn:606" rel="footnote">606</a></sup></p>
+<p>Something<sup id="fnref:607"><a class="footnote-ref" href="#fn:607" rel="footnote">607</a></sup></p>
+<p>Something<sup id="fnref:608"><a class="footnote-ref" href="#fn:608" rel="footnote">608</a></sup></p>
+<p>Something<sup id="fnref:609"><a class="footnote-ref" href="#fn:609" rel="footnote">609</a></sup></p>
+<p>Something<sup id="fnref:610"><a class="footnote-ref" href="#fn:610" rel="footnote">610</a></sup></p>
+<p>Something<sup id="fnref:611"><a class="footnote-ref" href="#fn:611" rel="footnote">611</a></sup></p>
+<p>Something<sup id="fnref:612"><a class="footnote-ref" href="#fn:612" rel="footnote">612</a></sup></p>
+<p>Something<sup id="fnref:613"><a class="footnote-ref" href="#fn:613" rel="footnote">613</a></sup></p>
+<p>Something<sup id="fnref:614"><a class="footnote-ref" href="#fn:614" rel="footnote">614</a></sup></p>
+<p>Something<sup id="fnref:615"><a class="footnote-ref" href="#fn:615" rel="footnote">615</a></sup></p>
+<p>Something<sup id="fnref:616"><a class="footnote-ref" href="#fn:616" rel="footnote">616</a></sup></p>
+<p>Something<sup id="fnref:617"><a class="footnote-ref" href="#fn:617" rel="footnote">617</a></sup></p>
+<p>Something<sup id="fnref:618"><a class="footnote-ref" href="#fn:618" rel="footnote">618</a></sup></p>
+<p>Something<sup id="fnref:619"><a class="footnote-ref" href="#fn:619" rel="footnote">619</a></sup></p>
+<p>Something<sup id="fnref:620"><a class="footnote-ref" href="#fn:620" rel="footnote">620</a></sup></p>
+<p>Something<sup id="fnref:621"><a class="footnote-ref" href="#fn:621" rel="footnote">621</a></sup></p>
+<p>Something<sup id="fnref:622"><a class="footnote-ref" href="#fn:622" rel="footnote">622</a></sup></p>
+<p>Something<sup id="fnref:623"><a class="footnote-ref" href="#fn:623" rel="footnote">623</a></sup></p>
+<p>Something<sup id="fnref:624"><a class="footnote-ref" href="#fn:624" rel="footnote">624</a></sup></p>
+<p>Something<sup id="fnref:625"><a class="footnote-ref" href="#fn:625" rel="footnote">625</a></sup></p>
+<p>Something<sup id="fnref:626"><a class="footnote-ref" href="#fn:626" rel="footnote">626</a></sup></p>
+<p>Something<sup id="fnref:627"><a class="footnote-ref" href="#fn:627" rel="footnote">627</a></sup></p>
+<p>Something<sup id="fnref:628"><a class="footnote-ref" href="#fn:628" rel="footnote">628</a></sup></p>
+<p>Something<sup id="fnref:629"><a class="footnote-ref" href="#fn:629" rel="footnote">629</a></sup></p>
+<p>Something<sup id="fnref:630"><a class="footnote-ref" href="#fn:630" rel="footnote">630</a></sup></p>
+<p>Something<sup id="fnref:631"><a class="footnote-ref" href="#fn:631" rel="footnote">631</a></sup></p>
+<p>Something<sup id="fnref:632"><a class="footnote-ref" href="#fn:632" rel="footnote">632</a></sup></p>
+<p>Something<sup id="fnref:633"><a class="footnote-ref" href="#fn:633" rel="footnote">633</a></sup></p>
+<p>Something<sup id="fnref:634"><a class="footnote-ref" href="#fn:634" rel="footnote">634</a></sup></p>
+<p>Something<sup id="fnref:635"><a class="footnote-ref" href="#fn:635" rel="footnote">635</a></sup></p>
+<p>Something<sup id="fnref:636"><a class="footnote-ref" href="#fn:636" rel="footnote">636</a></sup></p>
+<p>Something<sup id="fnref:637"><a class="footnote-ref" href="#fn:637" rel="footnote">637</a></sup></p>
+<p>Something<sup id="fnref:638"><a class="footnote-ref" href="#fn:638" rel="footnote">638</a></sup></p>
+<p>Something<sup id="fnref:639"><a class="footnote-ref" href="#fn:639" rel="footnote">639</a></sup></p>
+<p>Something<sup id="fnref:640"><a class="footnote-ref" href="#fn:640" rel="footnote">640</a></sup></p>
+<p>Something<sup id="fnref:641"><a class="footnote-ref" href="#fn:641" rel="footnote">641</a></sup></p>
+<p>Something<sup id="fnref:642"><a class="footnote-ref" href="#fn:642" rel="footnote">642</a></sup></p>
+<p>Something<sup id="fnref:643"><a class="footnote-ref" href="#fn:643" rel="footnote">643</a></sup></p>
+<p>Something<sup id="fnref:644"><a class="footnote-ref" href="#fn:644" rel="footnote">644</a></sup></p>
+<p>Something<sup id="fnref:645"><a class="footnote-ref" href="#fn:645" rel="footnote">645</a></sup></p>
+<p>Something<sup id="fnref:646"><a class="footnote-ref" href="#fn:646" rel="footnote">646</a></sup></p>
+<p>Something<sup id="fnref:647"><a class="footnote-ref" href="#fn:647" rel="footnote">647</a></sup></p>
+<p>Something<sup id="fnref:648"><a class="footnote-ref" href="#fn:648" rel="footnote">648</a></sup></p>
+<p>Something<sup id="fnref:649"><a class="footnote-ref" href="#fn:649" rel="footnote">649</a></sup></p>
+<p>Something<sup id="fnref:650"><a class="footnote-ref" href="#fn:650" rel="footnote">650</a></sup></p>
+<p>Something<sup id="fnref:651"><a class="footnote-ref" href="#fn:651" rel="footnote">651</a></sup></p>
+<p>Something<sup id="fnref:652"><a class="footnote-ref" href="#fn:652" rel="footnote">652</a></sup></p>
+<p>Something<sup id="fnref:653"><a class="footnote-ref" href="#fn:653" rel="footnote">653</a></sup></p>
+<p>Something<sup id="fnref:654"><a class="footnote-ref" href="#fn:654" rel="footnote">654</a></sup></p>
+<p>Something<sup id="fnref:655"><a class="footnote-ref" href="#fn:655" rel="footnote">655</a></sup></p>
+<p>Something<sup id="fnref:656"><a class="footnote-ref" href="#fn:656" rel="footnote">656</a></sup></p>
+<p>Something<sup id="fnref:657"><a class="footnote-ref" href="#fn:657" rel="footnote">657</a></sup></p>
+<p>Something<sup id="fnref:658"><a class="footnote-ref" href="#fn:658" rel="footnote">658</a></sup></p>
+<p>Something<sup id="fnref:659"><a class="footnote-ref" href="#fn:659" rel="footnote">659</a></sup></p>
+<p>Something<sup id="fnref:660"><a class="footnote-ref" href="#fn:660" rel="footnote">660</a></sup></p>
+<p>Something<sup id="fnref:661"><a class="footnote-ref" href="#fn:661" rel="footnote">661</a></sup></p>
+<p>Something<sup id="fnref:662"><a class="footnote-ref" href="#fn:662" rel="footnote">662</a></sup></p>
+<p>Something<sup id="fnref:663"><a class="footnote-ref" href="#fn:663" rel="footnote">663</a></sup></p>
+<p>Something<sup id="fnref:664"><a class="footnote-ref" href="#fn:664" rel="footnote">664</a></sup></p>
+<p>Something<sup id="fnref:665"><a class="footnote-ref" href="#fn:665" rel="footnote">665</a></sup></p>
+<p>Something<sup id="fnref:666"><a class="footnote-ref" href="#fn:666" rel="footnote">666</a></sup></p>
+<p>Something<sup id="fnref:667"><a class="footnote-ref" href="#fn:667" rel="footnote">667</a></sup></p>
+<p>Something<sup id="fnref:668"><a class="footnote-ref" href="#fn:668" rel="footnote">668</a></sup></p>
+<p>Something<sup id="fnref:669"><a class="footnote-ref" href="#fn:669" rel="footnote">669</a></sup></p>
+<p>Something<sup id="fnref:670"><a class="footnote-ref" href="#fn:670" rel="footnote">670</a></sup></p>
+<p>Something<sup id="fnref:671"><a class="footnote-ref" href="#fn:671" rel="footnote">671</a></sup></p>
+<p>Something<sup id="fnref:672"><a class="footnote-ref" href="#fn:672" rel="footnote">672</a></sup></p>
+<p>Something<sup id="fnref:673"><a class="footnote-ref" href="#fn:673" rel="footnote">673</a></sup></p>
+<p>Something<sup id="fnref:674"><a class="footnote-ref" href="#fn:674" rel="footnote">674</a></sup></p>
+<p>Something<sup id="fnref:675"><a class="footnote-ref" href="#fn:675" rel="footnote">675</a></sup></p>
+<p>Something<sup id="fnref:676"><a class="footnote-ref" href="#fn:676" rel="footnote">676</a></sup></p>
+<p>Something<sup id="fnref:677"><a class="footnote-ref" href="#fn:677" rel="footnote">677</a></sup></p>
+<p>Something<sup id="fnref:678"><a class="footnote-ref" href="#fn:678" rel="footnote">678</a></sup></p>
+<p>Something<sup id="fnref:679"><a class="footnote-ref" href="#fn:679" rel="footnote">679</a></sup></p>
+<p>Something<sup id="fnref:680"><a class="footnote-ref" href="#fn:680" rel="footnote">680</a></sup></p>
+<p>Something<sup id="fnref:681"><a class="footnote-ref" href="#fn:681" rel="footnote">681</a></sup></p>
+<p>Something<sup id="fnref:682"><a class="footnote-ref" href="#fn:682" rel="footnote">682</a></sup></p>
+<p>Something<sup id="fnref:683"><a class="footnote-ref" href="#fn:683" rel="footnote">683</a></sup></p>
+<p>Something<sup id="fnref:684"><a class="footnote-ref" href="#fn:684" rel="footnote">684</a></sup></p>
+<p>Something<sup id="fnref:685"><a class="footnote-ref" href="#fn:685" rel="footnote">685</a></sup></p>
+<p>Something<sup id="fnref:686"><a class="footnote-ref" href="#fn:686" rel="footnote">686</a></sup></p>
+<p>Something<sup id="fnref:687"><a class="footnote-ref" href="#fn:687" rel="footnote">687</a></sup></p>
+<p>Something<sup id="fnref:688"><a class="footnote-ref" href="#fn:688" rel="footnote">688</a></sup></p>
+<p>Something<sup id="fnref:689"><a class="footnote-ref" href="#fn:689" rel="footnote">689</a></sup></p>
+<p>Something<sup id="fnref:690"><a class="footnote-ref" href="#fn:690" rel="footnote">690</a></sup></p>
+<p>Something<sup id="fnref:691"><a class="footnote-ref" href="#fn:691" rel="footnote">691</a></sup></p>
+<p>Something<sup id="fnref:692"><a class="footnote-ref" href="#fn:692" rel="footnote">692</a></sup></p>
+<p>Something<sup id="fnref:693"><a class="footnote-ref" href="#fn:693" rel="footnote">693</a></sup></p>
+<p>Something<sup id="fnref:694"><a class="footnote-ref" href="#fn:694" rel="footnote">694</a></sup></p>
+<p>Something<sup id="fnref:695"><a class="footnote-ref" href="#fn:695" rel="footnote">695</a></sup></p>
+<p>Something<sup id="fnref:696"><a class="footnote-ref" href="#fn:696" rel="footnote">696</a></sup></p>
+<p>Something<sup id="fnref:697"><a class="footnote-ref" href="#fn:697" rel="footnote">697</a></sup></p>
+<p>Something<sup id="fnref:698"><a class="footnote-ref" href="#fn:698" rel="footnote">698</a></sup></p>
+<p>Something<sup id="fnref:699"><a class="footnote-ref" href="#fn:699" rel="footnote">699</a></sup></p>
+<p>Something<sup id="fnref:700"><a class="footnote-ref" href="#fn:700" rel="footnote">700</a></sup></p>
+<p>Something<sup id="fnref:701"><a class="footnote-ref" href="#fn:701" rel="footnote">701</a></sup></p>
+<p>Something<sup id="fnref:702"><a class="footnote-ref" href="#fn:702" rel="footnote">702</a></sup></p>
+<p>Something<sup id="fnref:703"><a class="footnote-ref" href="#fn:703" rel="footnote">703</a></sup></p>
+<p>Something<sup id="fnref:704"><a class="footnote-ref" href="#fn:704" rel="footnote">704</a></sup></p>
+<p>Something<sup id="fnref:705"><a class="footnote-ref" href="#fn:705" rel="footnote">705</a></sup></p>
+<p>Something<sup id="fnref:706"><a class="footnote-ref" href="#fn:706" rel="footnote">706</a></sup></p>
+<p>Something<sup id="fnref:707"><a class="footnote-ref" href="#fn:707" rel="footnote">707</a></sup></p>
+<p>Something<sup id="fnref:708"><a class="footnote-ref" href="#fn:708" rel="footnote">708</a></sup></p>
+<p>Something<sup id="fnref:709"><a class="footnote-ref" href="#fn:709" rel="footnote">709</a></sup></p>
+<p>Something<sup id="fnref:710"><a class="footnote-ref" href="#fn:710" rel="footnote">710</a></sup></p>
+<p>Something<sup id="fnref:711"><a class="footnote-ref" href="#fn:711" rel="footnote">711</a></sup></p>
+<p>Something<sup id="fnref:712"><a class="footnote-ref" href="#fn:712" rel="footnote">712</a></sup></p>
+<p>Something<sup id="fnref:713"><a class="footnote-ref" href="#fn:713" rel="footnote">713</a></sup></p>
+<p>Something<sup id="fnref:714"><a class="footnote-ref" href="#fn:714" rel="footnote">714</a></sup></p>
+<p>Something<sup id="fnref:715"><a class="footnote-ref" href="#fn:715" rel="footnote">715</a></sup></p>
+<p>Something<sup id="fnref:716"><a class="footnote-ref" href="#fn:716" rel="footnote">716</a></sup></p>
+<p>Something<sup id="fnref:717"><a class="footnote-ref" href="#fn:717" rel="footnote">717</a></sup></p>
+<p>Something<sup id="fnref:718"><a class="footnote-ref" href="#fn:718" rel="footnote">718</a></sup></p>
+<p>Something<sup id="fnref:719"><a class="footnote-ref" href="#fn:719" rel="footnote">719</a></sup></p>
+<p>Something<sup id="fnref:720"><a class="footnote-ref" href="#fn:720" rel="footnote">720</a></sup></p>
+<p>Something<sup id="fnref:721"><a class="footnote-ref" href="#fn:721" rel="footnote">721</a></sup></p>
+<p>Something<sup id="fnref:722"><a class="footnote-ref" href="#fn:722" rel="footnote">722</a></sup></p>
+<p>Something<sup id="fnref:723"><a class="footnote-ref" href="#fn:723" rel="footnote">723</a></sup></p>
+<p>Something<sup id="fnref:724"><a class="footnote-ref" href="#fn:724" rel="footnote">724</a></sup></p>
+<p>Something<sup id="fnref:725"><a class="footnote-ref" href="#fn:725" rel="footnote">725</a></sup></p>
+<p>Something<sup id="fnref:726"><a class="footnote-ref" href="#fn:726" rel="footnote">726</a></sup></p>
+<p>Something<sup id="fnref:727"><a class="footnote-ref" href="#fn:727" rel="footnote">727</a></sup></p>
+<p>Something<sup id="fnref:728"><a class="footnote-ref" href="#fn:728" rel="footnote">728</a></sup></p>
+<p>Something<sup id="fnref:729"><a class="footnote-ref" href="#fn:729" rel="footnote">729</a></sup></p>
+<p>Something<sup id="fnref:730"><a class="footnote-ref" href="#fn:730" rel="footnote">730</a></sup></p>
+<p>Something<sup id="fnref:731"><a class="footnote-ref" href="#fn:731" rel="footnote">731</a></sup></p>
+<p>Something<sup id="fnref:732"><a class="footnote-ref" href="#fn:732" rel="footnote">732</a></sup></p>
+<p>Something<sup id="fnref:733"><a class="footnote-ref" href="#fn:733" rel="footnote">733</a></sup></p>
+<p>Something<sup id="fnref:734"><a class="footnote-ref" href="#fn:734" rel="footnote">734</a></sup></p>
+<p>Something<sup id="fnref:735"><a class="footnote-ref" href="#fn:735" rel="footnote">735</a></sup></p>
+<p>Something<sup id="fnref:736"><a class="footnote-ref" href="#fn:736" rel="footnote">736</a></sup></p>
+<p>Something<sup id="fnref:737"><a class="footnote-ref" href="#fn:737" rel="footnote">737</a></sup></p>
+<p>Something<sup id="fnref:738"><a class="footnote-ref" href="#fn:738" rel="footnote">738</a></sup></p>
+<p>Something<sup id="fnref:739"><a class="footnote-ref" href="#fn:739" rel="footnote">739</a></sup></p>
+<p>Something<sup id="fnref:740"><a class="footnote-ref" href="#fn:740" rel="footnote">740</a></sup></p>
+<p>Something<sup id="fnref:741"><a class="footnote-ref" href="#fn:741" rel="footnote">741</a></sup></p>
+<p>Something<sup id="fnref:742"><a class="footnote-ref" href="#fn:742" rel="footnote">742</a></sup></p>
+<p>Something<sup id="fnref:743"><a class="footnote-ref" href="#fn:743" rel="footnote">743</a></sup></p>
+<p>Something<sup id="fnref:744"><a class="footnote-ref" href="#fn:744" rel="footnote">744</a></sup></p>
+<p>Something<sup id="fnref:745"><a class="footnote-ref" href="#fn:745" rel="footnote">745</a></sup></p>
+<p>Something<sup id="fnref:746"><a class="footnote-ref" href="#fn:746" rel="footnote">746</a></sup></p>
+<p>Something<sup id="fnref:747"><a class="footnote-ref" href="#fn:747" rel="footnote">747</a></sup></p>
+<p>Something<sup id="fnref:748"><a class="footnote-ref" href="#fn:748" rel="footnote">748</a></sup></p>
+<p>Something<sup id="fnref:749"><a class="footnote-ref" href="#fn:749" rel="footnote">749</a></sup></p>
+<p>Something<sup id="fnref:750"><a class="footnote-ref" href="#fn:750" rel="footnote">750</a></sup></p>
+<p>Something<sup id="fnref:751"><a class="footnote-ref" href="#fn:751" rel="footnote">751</a></sup></p>
+<p>Something<sup id="fnref:752"><a class="footnote-ref" href="#fn:752" rel="footnote">752</a></sup></p>
+<p>Something<sup id="fnref:753"><a class="footnote-ref" href="#fn:753" rel="footnote">753</a></sup></p>
+<p>Something<sup id="fnref:754"><a class="footnote-ref" href="#fn:754" rel="footnote">754</a></sup></p>
+<p>Something<sup id="fnref:755"><a class="footnote-ref" href="#fn:755" rel="footnote">755</a></sup></p>
+<p>Something<sup id="fnref:756"><a class="footnote-ref" href="#fn:756" rel="footnote">756</a></sup></p>
+<p>Something<sup id="fnref:757"><a class="footnote-ref" href="#fn:757" rel="footnote">757</a></sup></p>
+<p>Something<sup id="fnref:758"><a class="footnote-ref" href="#fn:758" rel="footnote">758</a></sup></p>
+<p>Something<sup id="fnref:759"><a class="footnote-ref" href="#fn:759" rel="footnote">759</a></sup></p>
+<p>Something<sup id="fnref:760"><a class="footnote-ref" href="#fn:760" rel="footnote">760</a></sup></p>
+<p>Something<sup id="fnref:761"><a class="footnote-ref" href="#fn:761" rel="footnote">761</a></sup></p>
+<p>Something<sup id="fnref:762"><a class="footnote-ref" href="#fn:762" rel="footnote">762</a></sup></p>
+<p>Something<sup id="fnref:763"><a class="footnote-ref" href="#fn:763" rel="footnote">763</a></sup></p>
+<p>Something<sup id="fnref:764"><a class="footnote-ref" href="#fn:764" rel="footnote">764</a></sup></p>
+<p>Something<sup id="fnref:765"><a class="footnote-ref" href="#fn:765" rel="footnote">765</a></sup></p>
+<p>Something<sup id="fnref:766"><a class="footnote-ref" href="#fn:766" rel="footnote">766</a></sup></p>
+<p>Something<sup id="fnref:767"><a class="footnote-ref" href="#fn:767" rel="footnote">767</a></sup></p>
+<p>Something<sup id="fnref:768"><a class="footnote-ref" href="#fn:768" rel="footnote">768</a></sup></p>
+<p>Something<sup id="fnref:769"><a class="footnote-ref" href="#fn:769" rel="footnote">769</a></sup></p>
+<p>Something<sup id="fnref:770"><a class="footnote-ref" href="#fn:770" rel="footnote">770</a></sup></p>
+<p>Something<sup id="fnref:771"><a class="footnote-ref" href="#fn:771" rel="footnote">771</a></sup></p>
+<p>Something<sup id="fnref:772"><a class="footnote-ref" href="#fn:772" rel="footnote">772</a></sup></p>
+<p>Something<sup id="fnref:773"><a class="footnote-ref" href="#fn:773" rel="footnote">773</a></sup></p>
+<p>Something<sup id="fnref:774"><a class="footnote-ref" href="#fn:774" rel="footnote">774</a></sup></p>
+<p>Something<sup id="fnref:775"><a class="footnote-ref" href="#fn:775" rel="footnote">775</a></sup></p>
+<p>Something<sup id="fnref:776"><a class="footnote-ref" href="#fn:776" rel="footnote">776</a></sup></p>
+<p>Something<sup id="fnref:777"><a class="footnote-ref" href="#fn:777" rel="footnote">777</a></sup></p>
+<p>Something<sup id="fnref:778"><a class="footnote-ref" href="#fn:778" rel="footnote">778</a></sup></p>
+<p>Something<sup id="fnref:779"><a class="footnote-ref" href="#fn:779" rel="footnote">779</a></sup></p>
+<p>Something<sup id="fnref:780"><a class="footnote-ref" href="#fn:780" rel="footnote">780</a></sup></p>
+<p>Something<sup id="fnref:781"><a class="footnote-ref" href="#fn:781" rel="footnote">781</a></sup></p>
+<p>Something<sup id="fnref:782"><a class="footnote-ref" href="#fn:782" rel="footnote">782</a></sup></p>
+<p>Something<sup id="fnref:783"><a class="footnote-ref" href="#fn:783" rel="footnote">783</a></sup></p>
+<p>Something<sup id="fnref:784"><a class="footnote-ref" href="#fn:784" rel="footnote">784</a></sup></p>
+<p>Something<sup id="fnref:785"><a class="footnote-ref" href="#fn:785" rel="footnote">785</a></sup></p>
+<p>Something<sup id="fnref:786"><a class="footnote-ref" href="#fn:786" rel="footnote">786</a></sup></p>
+<p>Something<sup id="fnref:787"><a class="footnote-ref" href="#fn:787" rel="footnote">787</a></sup></p>
+<p>Something<sup id="fnref:788"><a class="footnote-ref" href="#fn:788" rel="footnote">788</a></sup></p>
+<p>Something<sup id="fnref:789"><a class="footnote-ref" href="#fn:789" rel="footnote">789</a></sup></p>
+<p>Something<sup id="fnref:790"><a class="footnote-ref" href="#fn:790" rel="footnote">790</a></sup></p>
+<p>Something<sup id="fnref:791"><a class="footnote-ref" href="#fn:791" rel="footnote">791</a></sup></p>
+<p>Something<sup id="fnref:792"><a class="footnote-ref" href="#fn:792" rel="footnote">792</a></sup></p>
+<p>Something<sup id="fnref:793"><a class="footnote-ref" href="#fn:793" rel="footnote">793</a></sup></p>
+<p>Something<sup id="fnref:794"><a class="footnote-ref" href="#fn:794" rel="footnote">794</a></sup></p>
+<p>Something<sup id="fnref:795"><a class="footnote-ref" href="#fn:795" rel="footnote">795</a></sup></p>
+<p>Something<sup id="fnref:796"><a class="footnote-ref" href="#fn:796" rel="footnote">796</a></sup></p>
+<p>Something<sup id="fnref:797"><a class="footnote-ref" href="#fn:797" rel="footnote">797</a></sup></p>
+<p>Something<sup id="fnref:798"><a class="footnote-ref" href="#fn:798" rel="footnote">798</a></sup></p>
+<p>Something<sup id="fnref:799"><a class="footnote-ref" href="#fn:799" rel="footnote">799</a></sup></p>
+<p>Something<sup id="fnref:800"><a class="footnote-ref" href="#fn:800" rel="footnote">800</a></sup></p>
+<p>Something<sup id="fnref:801"><a class="footnote-ref" href="#fn:801" rel="footnote">801</a></sup></p>
+<p>Something<sup id="fnref:802"><a class="footnote-ref" href="#fn:802" rel="footnote">802</a></sup></p>
+<p>Something<sup id="fnref:803"><a class="footnote-ref" href="#fn:803" rel="footnote">803</a></sup></p>
+<p>Something<sup id="fnref:804"><a class="footnote-ref" href="#fn:804" rel="footnote">804</a></sup></p>
+<p>Something<sup id="fnref:805"><a class="footnote-ref" href="#fn:805" rel="footnote">805</a></sup></p>
+<p>Something<sup id="fnref:806"><a class="footnote-ref" href="#fn:806" rel="footnote">806</a></sup></p>
+<p>Something<sup id="fnref:807"><a class="footnote-ref" href="#fn:807" rel="footnote">807</a></sup></p>
+<p>Something<sup id="fnref:808"><a class="footnote-ref" href="#fn:808" rel="footnote">808</a></sup></p>
+<p>Something<sup id="fnref:809"><a class="footnote-ref" href="#fn:809" rel="footnote">809</a></sup></p>
+<p>Something<sup id="fnref:810"><a class="footnote-ref" href="#fn:810" rel="footnote">810</a></sup></p>
+<p>Something<sup id="fnref:811"><a class="footnote-ref" href="#fn:811" rel="footnote">811</a></sup></p>
+<p>Something<sup id="fnref:812"><a class="footnote-ref" href="#fn:812" rel="footnote">812</a></sup></p>
+<p>Something<sup id="fnref:813"><a class="footnote-ref" href="#fn:813" rel="footnote">813</a></sup></p>
+<p>Something<sup id="fnref:814"><a class="footnote-ref" href="#fn:814" rel="footnote">814</a></sup></p>
+<p>Something<sup id="fnref:815"><a class="footnote-ref" href="#fn:815" rel="footnote">815</a></sup></p>
+<p>Something<sup id="fnref:816"><a class="footnote-ref" href="#fn:816" rel="footnote">816</a></sup></p>
+<p>Something<sup id="fnref:817"><a class="footnote-ref" href="#fn:817" rel="footnote">817</a></sup></p>
+<p>Something<sup id="fnref:818"><a class="footnote-ref" href="#fn:818" rel="footnote">818</a></sup></p>
+<p>Something<sup id="fnref:819"><a class="footnote-ref" href="#fn:819" rel="footnote">819</a></sup></p>
+<p>Something<sup id="fnref:820"><a class="footnote-ref" href="#fn:820" rel="footnote">820</a></sup></p>
+<p>Something<sup id="fnref:821"><a class="footnote-ref" href="#fn:821" rel="footnote">821</a></sup></p>
+<p>Something<sup id="fnref:822"><a class="footnote-ref" href="#fn:822" rel="footnote">822</a></sup></p>
+<p>Something<sup id="fnref:823"><a class="footnote-ref" href="#fn:823" rel="footnote">823</a></sup></p>
+<p>Something<sup id="fnref:824"><a class="footnote-ref" href="#fn:824" rel="footnote">824</a></sup></p>
+<p>Something<sup id="fnref:825"><a class="footnote-ref" href="#fn:825" rel="footnote">825</a></sup></p>
+<p>Something<sup id="fnref:826"><a class="footnote-ref" href="#fn:826" rel="footnote">826</a></sup></p>
+<p>Something<sup id="fnref:827"><a class="footnote-ref" href="#fn:827" rel="footnote">827</a></sup></p>
+<p>Something<sup id="fnref:828"><a class="footnote-ref" href="#fn:828" rel="footnote">828</a></sup></p>
+<p>Something<sup id="fnref:829"><a class="footnote-ref" href="#fn:829" rel="footnote">829</a></sup></p>
+<p>Something<sup id="fnref:830"><a class="footnote-ref" href="#fn:830" rel="footnote">830</a></sup></p>
+<p>Something<sup id="fnref:831"><a class="footnote-ref" href="#fn:831" rel="footnote">831</a></sup></p>
+<p>Something<sup id="fnref:832"><a class="footnote-ref" href="#fn:832" rel="footnote">832</a></sup></p>
+<p>Something<sup id="fnref:833"><a class="footnote-ref" href="#fn:833" rel="footnote">833</a></sup></p>
+<p>Something<sup id="fnref:834"><a class="footnote-ref" href="#fn:834" rel="footnote">834</a></sup></p>
+<p>Something<sup id="fnref:835"><a class="footnote-ref" href="#fn:835" rel="footnote">835</a></sup></p>
+<p>Something<sup id="fnref:836"><a class="footnote-ref" href="#fn:836" rel="footnote">836</a></sup></p>
+<p>Something<sup id="fnref:837"><a class="footnote-ref" href="#fn:837" rel="footnote">837</a></sup></p>
+<p>Something<sup id="fnref:838"><a class="footnote-ref" href="#fn:838" rel="footnote">838</a></sup></p>
+<p>Something<sup id="fnref:839"><a class="footnote-ref" href="#fn:839" rel="footnote">839</a></sup></p>
+<p>Something<sup id="fnref:840"><a class="footnote-ref" href="#fn:840" rel="footnote">840</a></sup></p>
+<p>Something<sup id="fnref:841"><a class="footnote-ref" href="#fn:841" rel="footnote">841</a></sup></p>
+<p>Something<sup id="fnref:842"><a class="footnote-ref" href="#fn:842" rel="footnote">842</a></sup></p>
+<p>Something<sup id="fnref:843"><a class="footnote-ref" href="#fn:843" rel="footnote">843</a></sup></p>
+<p>Something<sup id="fnref:844"><a class="footnote-ref" href="#fn:844" rel="footnote">844</a></sup></p>
+<p>Something<sup id="fnref:845"><a class="footnote-ref" href="#fn:845" rel="footnote">845</a></sup></p>
+<p>Something<sup id="fnref:846"><a class="footnote-ref" href="#fn:846" rel="footnote">846</a></sup></p>
+<p>Something<sup id="fnref:847"><a class="footnote-ref" href="#fn:847" rel="footnote">847</a></sup></p>
+<p>Something<sup id="fnref:848"><a class="footnote-ref" href="#fn:848" rel="footnote">848</a></sup></p>
+<p>Something<sup id="fnref:849"><a class="footnote-ref" href="#fn:849" rel="footnote">849</a></sup></p>
+<p>Something<sup id="fnref:850"><a class="footnote-ref" href="#fn:850" rel="footnote">850</a></sup></p>
+<p>Something<sup id="fnref:851"><a class="footnote-ref" href="#fn:851" rel="footnote">851</a></sup></p>
+<p>Something<sup id="fnref:852"><a class="footnote-ref" href="#fn:852" rel="footnote">852</a></sup></p>
+<p>Something<sup id="fnref:853"><a class="footnote-ref" href="#fn:853" rel="footnote">853</a></sup></p>
+<p>Something<sup id="fnref:854"><a class="footnote-ref" href="#fn:854" rel="footnote">854</a></sup></p>
+<p>Something<sup id="fnref:855"><a class="footnote-ref" href="#fn:855" rel="footnote">855</a></sup></p>
+<p>Something<sup id="fnref:856"><a class="footnote-ref" href="#fn:856" rel="footnote">856</a></sup></p>
+<p>Something<sup id="fnref:857"><a class="footnote-ref" href="#fn:857" rel="footnote">857</a></sup></p>
+<p>Something<sup id="fnref:858"><a class="footnote-ref" href="#fn:858" rel="footnote">858</a></sup></p>
+<p>Something<sup id="fnref:859"><a class="footnote-ref" href="#fn:859" rel="footnote">859</a></sup></p>
+<p>Something<sup id="fnref:860"><a class="footnote-ref" href="#fn:860" rel="footnote">860</a></sup></p>
+<p>Something<sup id="fnref:861"><a class="footnote-ref" href="#fn:861" rel="footnote">861</a></sup></p>
+<p>Something<sup id="fnref:862"><a class="footnote-ref" href="#fn:862" rel="footnote">862</a></sup></p>
+<p>Something<sup id="fnref:863"><a class="footnote-ref" href="#fn:863" rel="footnote">863</a></sup></p>
+<p>Something<sup id="fnref:864"><a class="footnote-ref" href="#fn:864" rel="footnote">864</a></sup></p>
+<p>Something<sup id="fnref:865"><a class="footnote-ref" href="#fn:865" rel="footnote">865</a></sup></p>
+<p>Something<sup id="fnref:866"><a class="footnote-ref" href="#fn:866" rel="footnote">866</a></sup></p>
+<p>Something<sup id="fnref:867"><a class="footnote-ref" href="#fn:867" rel="footnote">867</a></sup></p>
+<p>Something<sup id="fnref:868"><a class="footnote-ref" href="#fn:868" rel="footnote">868</a></sup></p>
+<p>Something<sup id="fnref:869"><a class="footnote-ref" href="#fn:869" rel="footnote">869</a></sup></p>
+<p>Something<sup id="fnref:870"><a class="footnote-ref" href="#fn:870" rel="footnote">870</a></sup></p>
+<p>Something<sup id="fnref:871"><a class="footnote-ref" href="#fn:871" rel="footnote">871</a></sup></p>
+<p>Something<sup id="fnref:872"><a class="footnote-ref" href="#fn:872" rel="footnote">872</a></sup></p>
+<p>Something<sup id="fnref:873"><a class="footnote-ref" href="#fn:873" rel="footnote">873</a></sup></p>
+<p>Something<sup id="fnref:874"><a class="footnote-ref" href="#fn:874" rel="footnote">874</a></sup></p>
+<p>Something<sup id="fnref:875"><a class="footnote-ref" href="#fn:875" rel="footnote">875</a></sup></p>
+<p>Something<sup id="fnref:876"><a class="footnote-ref" href="#fn:876" rel="footnote">876</a></sup></p>
+<p>Something<sup id="fnref:877"><a class="footnote-ref" href="#fn:877" rel="footnote">877</a></sup></p>
+<p>Something<sup id="fnref:878"><a class="footnote-ref" href="#fn:878" rel="footnote">878</a></sup></p>
+<p>Something<sup id="fnref:879"><a class="footnote-ref" href="#fn:879" rel="footnote">879</a></sup></p>
+<p>Something<sup id="fnref:880"><a class="footnote-ref" href="#fn:880" rel="footnote">880</a></sup></p>
+<p>Something<sup id="fnref:881"><a class="footnote-ref" href="#fn:881" rel="footnote">881</a></sup></p>
+<p>Something<sup id="fnref:882"><a class="footnote-ref" href="#fn:882" rel="footnote">882</a></sup></p>
+<p>Something<sup id="fnref:883"><a class="footnote-ref" href="#fn:883" rel="footnote">883</a></sup></p>
+<p>Something<sup id="fnref:884"><a class="footnote-ref" href="#fn:884" rel="footnote">884</a></sup></p>
+<p>Something<sup id="fnref:885"><a class="footnote-ref" href="#fn:885" rel="footnote">885</a></sup></p>
+<p>Something<sup id="fnref:886"><a class="footnote-ref" href="#fn:886" rel="footnote">886</a></sup></p>
+<p>Something<sup id="fnref:887"><a class="footnote-ref" href="#fn:887" rel="footnote">887</a></sup></p>
+<p>Something<sup id="fnref:888"><a class="footnote-ref" href="#fn:888" rel="footnote">888</a></sup></p>
+<p>Something<sup id="fnref:889"><a class="footnote-ref" href="#fn:889" rel="footnote">889</a></sup></p>
+<p>Something<sup id="fnref:890"><a class="footnote-ref" href="#fn:890" rel="footnote">890</a></sup></p>
+<p>Something<sup id="fnref:891"><a class="footnote-ref" href="#fn:891" rel="footnote">891</a></sup></p>
+<p>Something<sup id="fnref:892"><a class="footnote-ref" href="#fn:892" rel="footnote">892</a></sup></p>
+<p>Something<sup id="fnref:893"><a class="footnote-ref" href="#fn:893" rel="footnote">893</a></sup></p>
+<p>Something<sup id="fnref:894"><a class="footnote-ref" href="#fn:894" rel="footnote">894</a></sup></p>
+<p>Something<sup id="fnref:895"><a class="footnote-ref" href="#fn:895" rel="footnote">895</a></sup></p>
+<p>Something<sup id="fnref:896"><a class="footnote-ref" href="#fn:896" rel="footnote">896</a></sup></p>
+<p>Something<sup id="fnref:897"><a class="footnote-ref" href="#fn:897" rel="footnote">897</a></sup></p>
+<p>Something<sup id="fnref:898"><a class="footnote-ref" href="#fn:898" rel="footnote">898</a></sup></p>
+<p>Something<sup id="fnref:899"><a class="footnote-ref" href="#fn:899" rel="footnote">899</a></sup></p>
+<p>Something<sup id="fnref:900"><a class="footnote-ref" href="#fn:900" rel="footnote">900</a></sup></p>
+<p>Something<sup id="fnref:901"><a class="footnote-ref" href="#fn:901" rel="footnote">901</a></sup></p>
+<p>Something<sup id="fnref:902"><a class="footnote-ref" href="#fn:902" rel="footnote">902</a></sup></p>
+<p>Something<sup id="fnref:903"><a class="footnote-ref" href="#fn:903" rel="footnote">903</a></sup></p>
+<p>Something<sup id="fnref:904"><a class="footnote-ref" href="#fn:904" rel="footnote">904</a></sup></p>
+<p>Something<sup id="fnref:905"><a class="footnote-ref" href="#fn:905" rel="footnote">905</a></sup></p>
+<p>Something<sup id="fnref:906"><a class="footnote-ref" href="#fn:906" rel="footnote">906</a></sup></p>
+<p>Something<sup id="fnref:907"><a class="footnote-ref" href="#fn:907" rel="footnote">907</a></sup></p>
+<p>Something<sup id="fnref:908"><a class="footnote-ref" href="#fn:908" rel="footnote">908</a></sup></p>
+<p>Something<sup id="fnref:909"><a class="footnote-ref" href="#fn:909" rel="footnote">909</a></sup></p>
+<p>Something<sup id="fnref:910"><a class="footnote-ref" href="#fn:910" rel="footnote">910</a></sup></p>
+<p>Something<sup id="fnref:911"><a class="footnote-ref" href="#fn:911" rel="footnote">911</a></sup></p>
+<p>Something<sup id="fnref:912"><a class="footnote-ref" href="#fn:912" rel="footnote">912</a></sup></p>
+<p>Something<sup id="fnref:913"><a class="footnote-ref" href="#fn:913" rel="footnote">913</a></sup></p>
+<p>Something<sup id="fnref:914"><a class="footnote-ref" href="#fn:914" rel="footnote">914</a></sup></p>
+<p>Something<sup id="fnref:915"><a class="footnote-ref" href="#fn:915" rel="footnote">915</a></sup></p>
+<p>Something<sup id="fnref:916"><a class="footnote-ref" href="#fn:916" rel="footnote">916</a></sup></p>
+<p>Something<sup id="fnref:917"><a class="footnote-ref" href="#fn:917" rel="footnote">917</a></sup></p>
+<p>Something<sup id="fnref:918"><a class="footnote-ref" href="#fn:918" rel="footnote">918</a></sup></p>
+<p>Something<sup id="fnref:919"><a class="footnote-ref" href="#fn:919" rel="footnote">919</a></sup></p>
+<p>Something<sup id="fnref:920"><a class="footnote-ref" href="#fn:920" rel="footnote">920</a></sup></p>
+<p>Something<sup id="fnref:921"><a class="footnote-ref" href="#fn:921" rel="footnote">921</a></sup></p>
+<p>Something<sup id="fnref:922"><a class="footnote-ref" href="#fn:922" rel="footnote">922</a></sup></p>
+<p>Something<sup id="fnref:923"><a class="footnote-ref" href="#fn:923" rel="footnote">923</a></sup></p>
+<p>Something<sup id="fnref:924"><a class="footnote-ref" href="#fn:924" rel="footnote">924</a></sup></p>
+<p>Something<sup id="fnref:925"><a class="footnote-ref" href="#fn:925" rel="footnote">925</a></sup></p>
+<p>Something<sup id="fnref:926"><a class="footnote-ref" href="#fn:926" rel="footnote">926</a></sup></p>
+<p>Something<sup id="fnref:927"><a class="footnote-ref" href="#fn:927" rel="footnote">927</a></sup></p>
+<p>Something<sup id="fnref:928"><a class="footnote-ref" href="#fn:928" rel="footnote">928</a></sup></p>
+<p>Something<sup id="fnref:929"><a class="footnote-ref" href="#fn:929" rel="footnote">929</a></sup></p>
+<p>Something<sup id="fnref:930"><a class="footnote-ref" href="#fn:930" rel="footnote">930</a></sup></p>
+<p>Something<sup id="fnref:931"><a class="footnote-ref" href="#fn:931" rel="footnote">931</a></sup></p>
+<p>Something<sup id="fnref:932"><a class="footnote-ref" href="#fn:932" rel="footnote">932</a></sup></p>
+<p>Something<sup id="fnref:933"><a class="footnote-ref" href="#fn:933" rel="footnote">933</a></sup></p>
+<p>Something<sup id="fnref:934"><a class="footnote-ref" href="#fn:934" rel="footnote">934</a></sup></p>
+<p>Something<sup id="fnref:935"><a class="footnote-ref" href="#fn:935" rel="footnote">935</a></sup></p>
+<p>Something<sup id="fnref:936"><a class="footnote-ref" href="#fn:936" rel="footnote">936</a></sup></p>
+<p>Something<sup id="fnref:937"><a class="footnote-ref" href="#fn:937" rel="footnote">937</a></sup></p>
+<p>Something<sup id="fnref:938"><a class="footnote-ref" href="#fn:938" rel="footnote">938</a></sup></p>
+<p>Something<sup id="fnref:939"><a class="footnote-ref" href="#fn:939" rel="footnote">939</a></sup></p>
+<p>Something<sup id="fnref:940"><a class="footnote-ref" href="#fn:940" rel="footnote">940</a></sup></p>
+<p>Something<sup id="fnref:941"><a class="footnote-ref" href="#fn:941" rel="footnote">941</a></sup></p>
+<p>Something<sup id="fnref:942"><a class="footnote-ref" href="#fn:942" rel="footnote">942</a></sup></p>
+<p>Something<sup id="fnref:943"><a class="footnote-ref" href="#fn:943" rel="footnote">943</a></sup></p>
+<p>Something<sup id="fnref:944"><a class="footnote-ref" href="#fn:944" rel="footnote">944</a></sup></p>
+<p>Something<sup id="fnref:945"><a class="footnote-ref" href="#fn:945" rel="footnote">945</a></sup></p>
+<p>Something<sup id="fnref:946"><a class="footnote-ref" href="#fn:946" rel="footnote">946</a></sup></p>
+<p>Something<sup id="fnref:947"><a class="footnote-ref" href="#fn:947" rel="footnote">947</a></sup></p>
+<p>Something<sup id="fnref:948"><a class="footnote-ref" href="#fn:948" rel="footnote">948</a></sup></p>
+<p>Something<sup id="fnref:949"><a class="footnote-ref" href="#fn:949" rel="footnote">949</a></sup></p>
+<p>Something<sup id="fnref:950"><a class="footnote-ref" href="#fn:950" rel="footnote">950</a></sup></p>
+<p>Something<sup id="fnref:951"><a class="footnote-ref" href="#fn:951" rel="footnote">951</a></sup></p>
+<p>Something<sup id="fnref:952"><a class="footnote-ref" href="#fn:952" rel="footnote">952</a></sup></p>
+<p>Something<sup id="fnref:953"><a class="footnote-ref" href="#fn:953" rel="footnote">953</a></sup></p>
+<p>Something<sup id="fnref:954"><a class="footnote-ref" href="#fn:954" rel="footnote">954</a></sup></p>
+<p>Something<sup id="fnref:955"><a class="footnote-ref" href="#fn:955" rel="footnote">955</a></sup></p>
+<p>Something<sup id="fnref:956"><a class="footnote-ref" href="#fn:956" rel="footnote">956</a></sup></p>
+<p>Something<sup id="fnref:957"><a class="footnote-ref" href="#fn:957" rel="footnote">957</a></sup></p>
+<p>Something<sup id="fnref:958"><a class="footnote-ref" href="#fn:958" rel="footnote">958</a></sup></p>
+<p>Something<sup id="fnref:959"><a class="footnote-ref" href="#fn:959" rel="footnote">959</a></sup></p>
+<p>Something<sup id="fnref:960"><a class="footnote-ref" href="#fn:960" rel="footnote">960</a></sup></p>
+<p>Something<sup id="fnref:961"><a class="footnote-ref" href="#fn:961" rel="footnote">961</a></sup></p>
+<p>Something<sup id="fnref:962"><a class="footnote-ref" href="#fn:962" rel="footnote">962</a></sup></p>
+<p>Something<sup id="fnref:963"><a class="footnote-ref" href="#fn:963" rel="footnote">963</a></sup></p>
+<p>Something<sup id="fnref:964"><a class="footnote-ref" href="#fn:964" rel="footnote">964</a></sup></p>
+<p>Something<sup id="fnref:965"><a class="footnote-ref" href="#fn:965" rel="footnote">965</a></sup></p>
+<p>Something<sup id="fnref:966"><a class="footnote-ref" href="#fn:966" rel="footnote">966</a></sup></p>
+<p>Something<sup id="fnref:967"><a class="footnote-ref" href="#fn:967" rel="footnote">967</a></sup></p>
+<p>Something<sup id="fnref:968"><a class="footnote-ref" href="#fn:968" rel="footnote">968</a></sup></p>
+<p>Something<sup id="fnref:969"><a class="footnote-ref" href="#fn:969" rel="footnote">969</a></sup></p>
+<p>Something<sup id="fnref:970"><a class="footnote-ref" href="#fn:970" rel="footnote">970</a></sup></p>
+<p>Something<sup id="fnref:971"><a class="footnote-ref" href="#fn:971" rel="footnote">971</a></sup></p>
+<p>Something<sup id="fnref:972"><a class="footnote-ref" href="#fn:972" rel="footnote">972</a></sup></p>
+<p>Something<sup id="fnref:973"><a class="footnote-ref" href="#fn:973" rel="footnote">973</a></sup></p>
+<p>Something<sup id="fnref:974"><a class="footnote-ref" href="#fn:974" rel="footnote">974</a></sup></p>
+<p>Something<sup id="fnref:975"><a class="footnote-ref" href="#fn:975" rel="footnote">975</a></sup></p>
+<p>Something<sup id="fnref:976"><a class="footnote-ref" href="#fn:976" rel="footnote">976</a></sup></p>
+<p>Something<sup id="fnref:977"><a class="footnote-ref" href="#fn:977" rel="footnote">977</a></sup></p>
+<p>Something<sup id="fnref:978"><a class="footnote-ref" href="#fn:978" rel="footnote">978</a></sup></p>
+<p>Something<sup id="fnref:979"><a class="footnote-ref" href="#fn:979" rel="footnote">979</a></sup></p>
+<p>Something<sup id="fnref:980"><a class="footnote-ref" href="#fn:980" rel="footnote">980</a></sup></p>
+<p>Something<sup id="fnref:981"><a class="footnote-ref" href="#fn:981" rel="footnote">981</a></sup></p>
+<p>Something<sup id="fnref:982"><a class="footnote-ref" href="#fn:982" rel="footnote">982</a></sup></p>
+<p>Something<sup id="fnref:983"><a class="footnote-ref" href="#fn:983" rel="footnote">983</a></sup></p>
+<p>Something<sup id="fnref:984"><a class="footnote-ref" href="#fn:984" rel="footnote">984</a></sup></p>
+<p>Something<sup id="fnref:985"><a class="footnote-ref" href="#fn:985" rel="footnote">985</a></sup></p>
+<p>Something<sup id="fnref:986"><a class="footnote-ref" href="#fn:986" rel="footnote">986</a></sup></p>
+<p>Something<sup id="fnref:987"><a class="footnote-ref" href="#fn:987" rel="footnote">987</a></sup></p>
+<p>Something<sup id="fnref:988"><a class="footnote-ref" href="#fn:988" rel="footnote">988</a></sup></p>
+<p>Something<sup id="fnref:989"><a class="footnote-ref" href="#fn:989" rel="footnote">989</a></sup></p>
+<p>Something<sup id="fnref:990"><a class="footnote-ref" href="#fn:990" rel="footnote">990</a></sup></p>
+<p>Something<sup id="fnref:991"><a class="footnote-ref" href="#fn:991" rel="footnote">991</a></sup></p>
+<p>Something<sup id="fnref:992"><a class="footnote-ref" href="#fn:992" rel="footnote">992</a></sup></p>
+<p>Something<sup id="fnref:993"><a class="footnote-ref" href="#fn:993" rel="footnote">993</a></sup></p>
+<p>Something<sup id="fnref:994"><a class="footnote-ref" href="#fn:994" rel="footnote">994</a></sup></p>
+<p>Something<sup id="fnref:995"><a class="footnote-ref" href="#fn:995" rel="footnote">995</a></sup></p>
+<p>Something<sup id="fnref:996"><a class="footnote-ref" href="#fn:996" rel="footnote">996</a></sup></p>
+<p>Something<sup id="fnref:997"><a class="footnote-ref" href="#fn:997" rel="footnote">997</a></sup></p>
+<p>Something<sup id="fnref:998"><a class="footnote-ref" href="#fn:998" rel="footnote">998</a></sup></p>
+<p>Something<sup id="fnref:999"><a class="footnote-ref" href="#fn:999" rel="footnote">999</a></sup></p>
+<p>Something<sup id="fnref:1000"><a class="footnote-ref" href="#fn:1000" rel="footnote">1000</a></sup></p>
+<p>Something<sup id="fnref:1001"><a class="footnote-ref" href="#fn:1001" rel="footnote">1001</a></sup></p>
+<p>Something<sup id="fnref:1002"><a class="footnote-ref" href="#fn:1002" rel="footnote">1002</a></sup></p>
+<p>Something<sup id="fnref:1003"><a class="footnote-ref" href="#fn:1003" rel="footnote">1003</a></sup></p>
+<p>Something<sup id="fnref:1004"><a class="footnote-ref" href="#fn:1004" rel="footnote">1004</a></sup></p>
+<p>Something<sup id="fnref:1005"><a class="footnote-ref" href="#fn:1005" rel="footnote">1005</a></sup></p>
+<p>Something<sup id="fnref:1006"><a class="footnote-ref" href="#fn:1006" rel="footnote">1006</a></sup></p>
+<p>Something<sup id="fnref:1007"><a class="footnote-ref" href="#fn:1007" rel="footnote">1007</a></sup></p>
+<p>Something<sup id="fnref:1008"><a class="footnote-ref" href="#fn:1008" rel="footnote">1008</a></sup></p>
+<p>Something<sup id="fnref:1009"><a class="footnote-ref" href="#fn:1009" rel="footnote">1009</a></sup></p>
+<p>Something<sup id="fnref:1010"><a class="footnote-ref" href="#fn:1010" rel="footnote">1010</a></sup></p>
+<p>Something<sup id="fnref:1011"><a class="footnote-ref" href="#fn:1011" rel="footnote">1011</a></sup></p>
+<p>Something<sup id="fnref:1012"><a class="footnote-ref" href="#fn:1012" rel="footnote">1012</a></sup></p>
+<p>Something<sup id="fnref:1013"><a class="footnote-ref" href="#fn:1013" rel="footnote">1013</a></sup></p>
+<p>Something<sup id="fnref:1014"><a class="footnote-ref" href="#fn:1014" rel="footnote">1014</a></sup></p>
+<p>Something<sup id="fnref:1015"><a class="footnote-ref" href="#fn:1015" rel="footnote">1015</a></sup></p>
+<p>Something<sup id="fnref:1016"><a class="footnote-ref" href="#fn:1016" rel="footnote">1016</a></sup></p>
+<p>Something<sup id="fnref:1017"><a class="footnote-ref" href="#fn:1017" rel="footnote">1017</a></sup></p>
+<p>Something<sup id="fnref:1018"><a class="footnote-ref" href="#fn:1018" rel="footnote">1018</a></sup></p>
+<p>Something<sup id="fnref:1019"><a class="footnote-ref" href="#fn:1019" rel="footnote">1019</a></sup></p>
+<p>Something<sup id="fnref:1020"><a class="footnote-ref" href="#fn:1020" rel="footnote">1020</a></sup></p>
+<p>Something<sup id="fnref:1021"><a class="footnote-ref" href="#fn:1021" rel="footnote">1021</a></sup></p>
+<p>Something<sup id="fnref:1022"><a class="footnote-ref" href="#fn:1022" rel="footnote">1022</a></sup></p>
+<p>Something<sup id="fnref:1023"><a class="footnote-ref" href="#fn:1023" rel="footnote">1023</a></sup></p>
+<p>Something<sup id="fnref:1024"><a class="footnote-ref" href="#fn:1024" rel="footnote">1024</a></sup></p>
+<p>Something<sup id="fnref:1025"><a class="footnote-ref" href="#fn:1025" rel="footnote">1025</a></sup></p>
+<p>Something<sup id="fnref:1026"><a class="footnote-ref" href="#fn:1026" rel="footnote">1026</a></sup></p>
+<p>Something<sup id="fnref:1027"><a class="footnote-ref" href="#fn:1027" rel="footnote">1027</a></sup></p>
+<p>Something<sup id="fnref:1028"><a class="footnote-ref" href="#fn:1028" rel="footnote">1028</a></sup></p>
+<p>Something<sup id="fnref:1029"><a class="footnote-ref" href="#fn:1029" rel="footnote">1029</a></sup></p>
+<p>Something<sup id="fnref:1030"><a class="footnote-ref" href="#fn:1030" rel="footnote">1030</a></sup></p>
+<p>Something<sup id="fnref:1031"><a class="footnote-ref" href="#fn:1031" rel="footnote">1031</a></sup></p>
+<p>Something<sup id="fnref:1032"><a class="footnote-ref" href="#fn:1032" rel="footnote">1032</a></sup></p>
+<p>Something<sup id="fnref:1033"><a class="footnote-ref" href="#fn:1033" rel="footnote">1033</a></sup></p>
+<p>Something<sup id="fnref:1034"><a class="footnote-ref" href="#fn:1034" rel="footnote">1034</a></sup></p>
+<p>Something<sup id="fnref:1035"><a class="footnote-ref" href="#fn:1035" rel="footnote">1035</a></sup></p>
+<p>Something<sup id="fnref:1036"><a class="footnote-ref" href="#fn:1036" rel="footnote">1036</a></sup></p>
+<p>Something<sup id="fnref:1037"><a class="footnote-ref" href="#fn:1037" rel="footnote">1037</a></sup></p>
+<p>Something<sup id="fnref:1038"><a class="footnote-ref" href="#fn:1038" rel="footnote">1038</a></sup></p>
+<p>Something<sup id="fnref:1039"><a class="footnote-ref" href="#fn:1039" rel="footnote">1039</a></sup></p>
+<p>Something<sup id="fnref:1040"><a class="footnote-ref" href="#fn:1040" rel="footnote">1040</a></sup></p>
+<p>Something<sup id="fnref:1041"><a class="footnote-ref" href="#fn:1041" rel="footnote">1041</a></sup></p>
+<p>Something<sup id="fnref:1042"><a class="footnote-ref" href="#fn:1042" rel="footnote">1042</a></sup></p>
+<p>Something<sup id="fnref:1043"><a class="footnote-ref" href="#fn:1043" rel="footnote">1043</a></sup></p>
+<p>Something<sup id="fnref:1044"><a class="footnote-ref" href="#fn:1044" rel="footnote">1044</a></sup></p>
+<p>Something<sup id="fnref:1045"><a class="footnote-ref" href="#fn:1045" rel="footnote">1045</a></sup></p>
+<p>Something<sup id="fnref:1046"><a class="footnote-ref" href="#fn:1046" rel="footnote">1046</a></sup></p>
+<p>Something<sup id="fnref:1047"><a class="footnote-ref" href="#fn:1047" rel="footnote">1047</a></sup></p>
+<p>Something<sup id="fnref:1048"><a class="footnote-ref" href="#fn:1048" rel="footnote">1048</a></sup></p>
+<p>Something<sup id="fnref:1049"><a class="footnote-ref" href="#fn:1049" rel="footnote">1049</a></sup></p>
+<p>Something<sup id="fnref:1050"><a class="footnote-ref" href="#fn:1050" rel="footnote">1050</a></sup></p>
+<p>Something<sup id="fnref:1051"><a class="footnote-ref" href="#fn:1051" rel="footnote">1051</a></sup></p>
+<p>Something<sup id="fnref:1052"><a class="footnote-ref" href="#fn:1052" rel="footnote">1052</a></sup></p>
+<p>Something<sup id="fnref:1053"><a class="footnote-ref" href="#fn:1053" rel="footnote">1053</a></sup></p>
+<p>Something<sup id="fnref:1054"><a class="footnote-ref" href="#fn:1054" rel="footnote">1054</a></sup></p>
+<p>Something<sup id="fnref:1055"><a class="footnote-ref" href="#fn:1055" rel="footnote">1055</a></sup></p>
+<p>Something<sup id="fnref:1056"><a class="footnote-ref" href="#fn:1056" rel="footnote">1056</a></sup></p>
+<p>Something<sup id="fnref:1057"><a class="footnote-ref" href="#fn:1057" rel="footnote">1057</a></sup></p>
+<p>Something<sup id="fnref:1058"><a class="footnote-ref" href="#fn:1058" rel="footnote">1058</a></sup></p>
+<p>Something<sup id="fnref:1059"><a class="footnote-ref" href="#fn:1059" rel="footnote">1059</a></sup></p>
+<p>Something<sup id="fnref:1060"><a class="footnote-ref" href="#fn:1060" rel="footnote">1060</a></sup></p>
+<p>Something<sup id="fnref:1061"><a class="footnote-ref" href="#fn:1061" rel="footnote">1061</a></sup></p>
+<p>Something<sup id="fnref:1062"><a class="footnote-ref" href="#fn:1062" rel="footnote">1062</a></sup></p>
+<p>Something<sup id="fnref:1063"><a class="footnote-ref" href="#fn:1063" rel="footnote">1063</a></sup></p>
+<p>Something<sup id="fnref:1064"><a class="footnote-ref" href="#fn:1064" rel="footnote">1064</a></sup></p>
+<p>Something<sup id="fnref:1065"><a class="footnote-ref" href="#fn:1065" rel="footnote">1065</a></sup></p>
+<p>Something<sup id="fnref:1066"><a class="footnote-ref" href="#fn:1066" rel="footnote">1066</a></sup></p>
+<p>Something<sup id="fnref:1067"><a class="footnote-ref" href="#fn:1067" rel="footnote">1067</a></sup></p>
+<p>Something<sup id="fnref:1068"><a class="footnote-ref" href="#fn:1068" rel="footnote">1068</a></sup></p>
+<p>Something<sup id="fnref:1069"><a class="footnote-ref" href="#fn:1069" rel="footnote">1069</a></sup></p>
+<p>Something<sup id="fnref:1070"><a class="footnote-ref" href="#fn:1070" rel="footnote">1070</a></sup></p>
+<p>Something<sup id="fnref:1071"><a class="footnote-ref" href="#fn:1071" rel="footnote">1071</a></sup></p>
+<p>Something<sup id="fnref:1072"><a class="footnote-ref" href="#fn:1072" rel="footnote">1072</a></sup></p>
+<p>Something<sup id="fnref:1073"><a class="footnote-ref" href="#fn:1073" rel="footnote">1073</a></sup></p>
+<p>Something<sup id="fnref:1074"><a class="footnote-ref" href="#fn:1074" rel="footnote">1074</a></sup></p>
+<p>Something<sup id="fnref:1075"><a class="footnote-ref" href="#fn:1075" rel="footnote">1075</a></sup></p>
+<p>Something<sup id="fnref:1076"><a class="footnote-ref" href="#fn:1076" rel="footnote">1076</a></sup></p>
+<p>Something<sup id="fnref:1077"><a class="footnote-ref" href="#fn:1077" rel="footnote">1077</a></sup></p>
+<p>Something<sup id="fnref:1078"><a class="footnote-ref" href="#fn:1078" rel="footnote">1078</a></sup></p>
+<p>Something<sup id="fnref:1079"><a class="footnote-ref" href="#fn:1079" rel="footnote">1079</a></sup></p>
+<p>Something<sup id="fnref:1080"><a class="footnote-ref" href="#fn:1080" rel="footnote">1080</a></sup></p>
+<p>Something<sup id="fnref:1081"><a class="footnote-ref" href="#fn:1081" rel="footnote">1081</a></sup></p>
+<p>Something<sup id="fnref:1082"><a class="footnote-ref" href="#fn:1082" rel="footnote">1082</a></sup></p>
+<p>Something<sup id="fnref:1083"><a class="footnote-ref" href="#fn:1083" rel="footnote">1083</a></sup></p>
+<p>Something<sup id="fnref:1084"><a class="footnote-ref" href="#fn:1084" rel="footnote">1084</a></sup></p>
+<p>Something<sup id="fnref:1085"><a class="footnote-ref" href="#fn:1085" rel="footnote">1085</a></sup></p>
+<p>Something<sup id="fnref:1086"><a class="footnote-ref" href="#fn:1086" rel="footnote">1086</a></sup></p>
+<p>Something<sup id="fnref:1087"><a class="footnote-ref" href="#fn:1087" rel="footnote">1087</a></sup></p>
+<p>Something<sup id="fnref:1088"><a class="footnote-ref" href="#fn:1088" rel="footnote">1088</a></sup></p>
+<p>Something<sup id="fnref:1089"><a class="footnote-ref" href="#fn:1089" rel="footnote">1089</a></sup></p>
+<p>Something<sup id="fnref:1090"><a class="footnote-ref" href="#fn:1090" rel="footnote">1090</a></sup></p>
+<p>Something<sup id="fnref:1091"><a class="footnote-ref" href="#fn:1091" rel="footnote">1091</a></sup></p>
+<p>Something<sup id="fnref:1092"><a class="footnote-ref" href="#fn:1092" rel="footnote">1092</a></sup></p>
+<p>Something<sup id="fnref:1093"><a class="footnote-ref" href="#fn:1093" rel="footnote">1093</a></sup></p>
+<p>Something<sup id="fnref:1094"><a class="footnote-ref" href="#fn:1094" rel="footnote">1094</a></sup></p>
+<p>Something<sup id="fnref:1095"><a class="footnote-ref" href="#fn:1095" rel="footnote">1095</a></sup></p>
+<p>Something<sup id="fnref:1096"><a class="footnote-ref" href="#fn:1096" rel="footnote">1096</a></sup></p>
+<p>Something<sup id="fnref:1097"><a class="footnote-ref" href="#fn:1097" rel="footnote">1097</a></sup></p>
+<p>Something<sup id="fnref:1098"><a class="footnote-ref" href="#fn:1098" rel="footnote">1098</a></sup></p>
+<p>Something<sup id="fnref:1099"><a class="footnote-ref" href="#fn:1099" rel="footnote">1099</a></sup></p>
+<p>Something<sup id="fnref:1100"><a class="footnote-ref" href="#fn:1100" rel="footnote">1100</a></sup></p>
+<p>Something<sup id="fnref:1101"><a class="footnote-ref" href="#fn:1101" rel="footnote">1101</a></sup></p>
+<p>Something<sup id="fnref:1102"><a class="footnote-ref" href="#fn:1102" rel="footnote">1102</a></sup></p>
+<p>Something<sup id="fnref:1103"><a class="footnote-ref" href="#fn:1103" rel="footnote">1103</a></sup></p>
+<p>Something<sup id="fnref:1104"><a class="footnote-ref" href="#fn:1104" rel="footnote">1104</a></sup></p>
+<p>Something<sup id="fnref:1105"><a class="footnote-ref" href="#fn:1105" rel="footnote">1105</a></sup></p>
+<p>Something<sup id="fnref:1106"><a class="footnote-ref" href="#fn:1106" rel="footnote">1106</a></sup></p>
+<p>Something<sup id="fnref:1107"><a class="footnote-ref" href="#fn:1107" rel="footnote">1107</a></sup></p>
+<p>Something<sup id="fnref:1108"><a class="footnote-ref" href="#fn:1108" rel="footnote">1108</a></sup></p>
+<p>Something<sup id="fnref:1109"><a class="footnote-ref" href="#fn:1109" rel="footnote">1109</a></sup></p>
+<p>Something<sup id="fnref:1110"><a class="footnote-ref" href="#fn:1110" rel="footnote">1110</a></sup></p>
+<p>Something<sup id="fnref:1111"><a class="footnote-ref" href="#fn:1111" rel="footnote">1111</a></sup></p>
+<p>Something<sup id="fnref:1112"><a class="footnote-ref" href="#fn:1112" rel="footnote">1112</a></sup></p>
+<p>Something<sup id="fnref:1113"><a class="footnote-ref" href="#fn:1113" rel="footnote">1113</a></sup></p>
+<p>Something<sup id="fnref:1114"><a class="footnote-ref" href="#fn:1114" rel="footnote">1114</a></sup></p>
+<p>Something<sup id="fnref:1115"><a class="footnote-ref" href="#fn:1115" rel="footnote">1115</a></sup></p>
+<p>Something<sup id="fnref:1116"><a class="footnote-ref" href="#fn:1116" rel="footnote">1116</a></sup></p>
+<p>Something<sup id="fnref:1117"><a class="footnote-ref" href="#fn:1117" rel="footnote">1117</a></sup></p>
+<p>Something<sup id="fnref:1118"><a class="footnote-ref" href="#fn:1118" rel="footnote">1118</a></sup></p>
+<p>Something<sup id="fnref:1119"><a class="footnote-ref" href="#fn:1119" rel="footnote">1119</a></sup></p>
+<p>Something<sup id="fnref:1120"><a class="footnote-ref" href="#fn:1120" rel="footnote">1120</a></sup></p>
+<p>Something<sup id="fnref:1121"><a class="footnote-ref" href="#fn:1121" rel="footnote">1121</a></sup></p>
+<p>Something<sup id="fnref:1122"><a class="footnote-ref" href="#fn:1122" rel="footnote">1122</a></sup></p>
+<p>Something<sup id="fnref:1123"><a class="footnote-ref" href="#fn:1123" rel="footnote">1123</a></sup></p>
+<p>Something<sup id="fnref:1124"><a class="footnote-ref" href="#fn:1124" rel="footnote">1124</a></sup></p>
+<p>Something<sup id="fnref:1125"><a class="footnote-ref" href="#fn:1125" rel="footnote">1125</a></sup></p>
+<p>Something<sup id="fnref:1126"><a class="footnote-ref" href="#fn:1126" rel="footnote">1126</a></sup></p>
+<p>Something<sup id="fnref:1127"><a class="footnote-ref" href="#fn:1127" rel="footnote">1127</a></sup></p>
+<p>Something<sup id="fnref:1128"><a class="footnote-ref" href="#fn:1128" rel="footnote">1128</a></sup></p>
+<p>Something<sup id="fnref:1129"><a class="footnote-ref" href="#fn:1129" rel="footnote">1129</a></sup></p>
+<p>Something<sup id="fnref:1130"><a class="footnote-ref" href="#fn:1130" rel="footnote">1130</a></sup></p>
+<p>Something<sup id="fnref:1131"><a class="footnote-ref" href="#fn:1131" rel="footnote">1131</a></sup></p>
+<p>Something<sup id="fnref:1132"><a class="footnote-ref" href="#fn:1132" rel="footnote">1132</a></sup></p>
+<p>Something<sup id="fnref:1133"><a class="footnote-ref" href="#fn:1133" rel="footnote">1133</a></sup></p>
+<p>Something<sup id="fnref:1134"><a class="footnote-ref" href="#fn:1134" rel="footnote">1134</a></sup></p>
+<p>Something<sup id="fnref:1135"><a class="footnote-ref" href="#fn:1135" rel="footnote">1135</a></sup></p>
+<p>Something<sup id="fnref:1136"><a class="footnote-ref" href="#fn:1136" rel="footnote">1136</a></sup></p>
+<p>Something<sup id="fnref:1137"><a class="footnote-ref" href="#fn:1137" rel="footnote">1137</a></sup></p>
+<p>Something<sup id="fnref:1138"><a class="footnote-ref" href="#fn:1138" rel="footnote">1138</a></sup></p>
+<p>Something<sup id="fnref:1139"><a class="footnote-ref" href="#fn:1139" rel="footnote">1139</a></sup></p>
+<p>Something<sup id="fnref:1140"><a class="footnote-ref" href="#fn:1140" rel="footnote">1140</a></sup></p>
+<p>Something<sup id="fnref:1141"><a class="footnote-ref" href="#fn:1141" rel="footnote">1141</a></sup></p>
+<p>Something<sup id="fnref:1142"><a class="footnote-ref" href="#fn:1142" rel="footnote">1142</a></sup></p>
+<p>Something<sup id="fnref:1143"><a class="footnote-ref" href="#fn:1143" rel="footnote">1143</a></sup></p>
+<p>Something<sup id="fnref:1144"><a class="footnote-ref" href="#fn:1144" rel="footnote">1144</a></sup></p>
+<p>Something<sup id="fnref:1145"><a class="footnote-ref" href="#fn:1145" rel="footnote">1145</a></sup></p>
+<p>Something<sup id="fnref:1146"><a class="footnote-ref" href="#fn:1146" rel="footnote">1146</a></sup></p>
+<p>Something<sup id="fnref:1147"><a class="footnote-ref" href="#fn:1147" rel="footnote">1147</a></sup></p>
+<p>Something<sup id="fnref:1148"><a class="footnote-ref" href="#fn:1148" rel="footnote">1148</a></sup></p>
+<p>Something<sup id="fnref:1149"><a class="footnote-ref" href="#fn:1149" rel="footnote">1149</a></sup></p>
+<p>Something<sup id="fnref:1150"><a class="footnote-ref" href="#fn:1150" rel="footnote">1150</a></sup></p>
+<p>Something<sup id="fnref:1151"><a class="footnote-ref" href="#fn:1151" rel="footnote">1151</a></sup></p>
+<p>Something<sup id="fnref:1152"><a class="footnote-ref" href="#fn:1152" rel="footnote">1152</a></sup></p>
+<p>Something<sup id="fnref:1153"><a class="footnote-ref" href="#fn:1153" rel="footnote">1153</a></sup></p>
+<p>Something<sup id="fnref:1154"><a class="footnote-ref" href="#fn:1154" rel="footnote">1154</a></sup></p>
+<p>Something<sup id="fnref:1155"><a class="footnote-ref" href="#fn:1155" rel="footnote">1155</a></sup></p>
+<p>Something<sup id="fnref:1156"><a class="footnote-ref" href="#fn:1156" rel="footnote">1156</a></sup></p>
+<p>Something<sup id="fnref:1157"><a class="footnote-ref" href="#fn:1157" rel="footnote">1157</a></sup></p>
+<p>Something<sup id="fnref:1158"><a class="footnote-ref" href="#fn:1158" rel="footnote">1158</a></sup></p>
+<p>Something<sup id="fnref:1159"><a class="footnote-ref" href="#fn:1159" rel="footnote">1159</a></sup></p>
+<p>Something<sup id="fnref:1160"><a class="footnote-ref" href="#fn:1160" rel="footnote">1160</a></sup></p>
+<p>Something<sup id="fnref:1161"><a class="footnote-ref" href="#fn:1161" rel="footnote">1161</a></sup></p>
+<p>Something<sup id="fnref:1162"><a class="footnote-ref" href="#fn:1162" rel="footnote">1162</a></sup></p>
+<p>Something<sup id="fnref:1163"><a class="footnote-ref" href="#fn:1163" rel="footnote">1163</a></sup></p>
+<p>Something<sup id="fnref:1164"><a class="footnote-ref" href="#fn:1164" rel="footnote">1164</a></sup></p>
+<p>Something<sup id="fnref:1165"><a class="footnote-ref" href="#fn:1165" rel="footnote">1165</a></sup></p>
+<p>Something<sup id="fnref:1166"><a class="footnote-ref" href="#fn:1166" rel="footnote">1166</a></sup></p>
+<p>Something<sup id="fnref:1167"><a class="footnote-ref" href="#fn:1167" rel="footnote">1167</a></sup></p>
+<p>Something<sup id="fnref:1168"><a class="footnote-ref" href="#fn:1168" rel="footnote">1168</a></sup></p>
+<p>Something<sup id="fnref:1169"><a class="footnote-ref" href="#fn:1169" rel="footnote">1169</a></sup></p>
+<p>Something<sup id="fnref:1170"><a class="footnote-ref" href="#fn:1170" rel="footnote">1170</a></sup></p>
+<p>Something<sup id="fnref:1171"><a class="footnote-ref" href="#fn:1171" rel="footnote">1171</a></sup></p>
+<p>Something<sup id="fnref:1172"><a class="footnote-ref" href="#fn:1172" rel="footnote">1172</a></sup></p>
+<p>Something<sup id="fnref:1173"><a class="footnote-ref" href="#fn:1173" rel="footnote">1173</a></sup></p>
+<p>Something<sup id="fnref:1174"><a class="footnote-ref" href="#fn:1174" rel="footnote">1174</a></sup></p>
+<p>Something<sup id="fnref:1175"><a class="footnote-ref" href="#fn:1175" rel="footnote">1175</a></sup></p>
+<p>Something<sup id="fnref:1176"><a class="footnote-ref" href="#fn:1176" rel="footnote">1176</a></sup></p>
+<p>Something<sup id="fnref:1177"><a class="footnote-ref" href="#fn:1177" rel="footnote">1177</a></sup></p>
+<p>Something<sup id="fnref:1178"><a class="footnote-ref" href="#fn:1178" rel="footnote">1178</a></sup></p>
+<p>Something<sup id="fnref:1179"><a class="footnote-ref" href="#fn:1179" rel="footnote">1179</a></sup></p>
+<p>Something<sup id="fnref:1180"><a class="footnote-ref" href="#fn:1180" rel="footnote">1180</a></sup></p>
+<p>Something<sup id="fnref:1181"><a class="footnote-ref" href="#fn:1181" rel="footnote">1181</a></sup></p>
+<p>Something<sup id="fnref:1182"><a class="footnote-ref" href="#fn:1182" rel="footnote">1182</a></sup></p>
+<p>Something<sup id="fnref:1183"><a class="footnote-ref" href="#fn:1183" rel="footnote">1183</a></sup></p>
+<p>Something<sup id="fnref:1184"><a class="footnote-ref" href="#fn:1184" rel="footnote">1184</a></sup></p>
+<p>Something<sup id="fnref:1185"><a class="footnote-ref" href="#fn:1185" rel="footnote">1185</a></sup></p>
+<p>Something<sup id="fnref:1186"><a class="footnote-ref" href="#fn:1186" rel="footnote">1186</a></sup></p>
+<p>Something<sup id="fnref:1187"><a class="footnote-ref" href="#fn:1187" rel="footnote">1187</a></sup></p>
+<p>Something<sup id="fnref:1188"><a class="footnote-ref" href="#fn:1188" rel="footnote">1188</a></sup></p>
+<p>Something<sup id="fnref:1189"><a class="footnote-ref" href="#fn:1189" rel="footnote">1189</a></sup></p>
+<p>Something<sup id="fnref:1190"><a class="footnote-ref" href="#fn:1190" rel="footnote">1190</a></sup></p>
+<p>Something<sup id="fnref:1191"><a class="footnote-ref" href="#fn:1191" rel="footnote">1191</a></sup></p>
+<p>Something<sup id="fnref:1192"><a class="footnote-ref" href="#fn:1192" rel="footnote">1192</a></sup></p>
+<p>Something<sup id="fnref:1193"><a class="footnote-ref" href="#fn:1193" rel="footnote">1193</a></sup></p>
+<p>Something<sup id="fnref:1194"><a class="footnote-ref" href="#fn:1194" rel="footnote">1194</a></sup></p>
+<p>Something<sup id="fnref:1195"><a class="footnote-ref" href="#fn:1195" rel="footnote">1195</a></sup></p>
+<p>Something<sup id="fnref:1196"><a class="footnote-ref" href="#fn:1196" rel="footnote">1196</a></sup></p>
+<p>Something<sup id="fnref:1197"><a class="footnote-ref" href="#fn:1197" rel="footnote">1197</a></sup></p>
+<p>Something<sup id="fnref:1198"><a class="footnote-ref" href="#fn:1198" rel="footnote">1198</a></sup></p>
+<p>Something<sup id="fnref:1199"><a class="footnote-ref" href="#fn:1199" rel="footnote">1199</a></sup></p>
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:1">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+<li id="fn:2">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>
+</li>
+<li id="fn:3">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text">&#8617;</a></p>
+</li>
+<li id="fn:4">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:4" rev="footnote" title="Jump back to footnote 4 in the text">&#8617;</a></p>
+</li>
+<li id="fn:5">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:5" rev="footnote" title="Jump back to footnote 5 in the text">&#8617;</a></p>
+</li>
+<li id="fn:6">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:6" rev="footnote" title="Jump back to footnote 6 in the text">&#8617;</a></p>
+</li>
+<li id="fn:7">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:7" rev="footnote" title="Jump back to footnote 7 in the text">&#8617;</a></p>
+</li>
+<li id="fn:8">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:8" rev="footnote" title="Jump back to footnote 8 in the text">&#8617;</a></p>
+</li>
+<li id="fn:9">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:9" rev="footnote" title="Jump back to footnote 9 in the text">&#8617;</a></p>
+</li>
+<li id="fn:10">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:10" rev="footnote" title="Jump back to footnote 10 in the text">&#8617;</a></p>
+</li>
+<li id="fn:11">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:11" rev="footnote" title="Jump back to footnote 11 in the text">&#8617;</a></p>
+</li>
+<li id="fn:12">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:12" rev="footnote" title="Jump back to footnote 12 in the text">&#8617;</a></p>
+</li>
+<li id="fn:13">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:13" rev="footnote" title="Jump back to footnote 13 in the text">&#8617;</a></p>
+</li>
+<li id="fn:14">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:14" rev="footnote" title="Jump back to footnote 14 in the text">&#8617;</a></p>
+</li>
+<li id="fn:15">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:15" rev="footnote" title="Jump back to footnote 15 in the text">&#8617;</a></p>
+</li>
+<li id="fn:16">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:16" rev="footnote" title="Jump back to footnote 16 in the text">&#8617;</a></p>
+</li>
+<li id="fn:17">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:17" rev="footnote" title="Jump back to footnote 17 in the text">&#8617;</a></p>
+</li>
+<li id="fn:18">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:18" rev="footnote" title="Jump back to footnote 18 in the text">&#8617;</a></p>
+</li>
+<li id="fn:19">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:19" rev="footnote" title="Jump back to footnote 19 in the text">&#8617;</a></p>
+</li>
+<li id="fn:20">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:20" rev="footnote" title="Jump back to footnote 20 in the text">&#8617;</a></p>
+</li>
+<li id="fn:21">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:21" rev="footnote" title="Jump back to footnote 21 in the text">&#8617;</a></p>
+</li>
+<li id="fn:22">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:22" rev="footnote" title="Jump back to footnote 22 in the text">&#8617;</a></p>
+</li>
+<li id="fn:23">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:23" rev="footnote" title="Jump back to footnote 23 in the text">&#8617;</a></p>
+</li>
+<li id="fn:24">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:24" rev="footnote" title="Jump back to footnote 24 in the text">&#8617;</a></p>
+</li>
+<li id="fn:25">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:25" rev="footnote" title="Jump back to footnote 25 in the text">&#8617;</a></p>
+</li>
+<li id="fn:26">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:26" rev="footnote" title="Jump back to footnote 26 in the text">&#8617;</a></p>
+</li>
+<li id="fn:27">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:27" rev="footnote" title="Jump back to footnote 27 in the text">&#8617;</a></p>
+</li>
+<li id="fn:28">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:28" rev="footnote" title="Jump back to footnote 28 in the text">&#8617;</a></p>
+</li>
+<li id="fn:29">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:29" rev="footnote" title="Jump back to footnote 29 in the text">&#8617;</a></p>
+</li>
+<li id="fn:30">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:30" rev="footnote" title="Jump back to footnote 30 in the text">&#8617;</a></p>
+</li>
+<li id="fn:31">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:31" rev="footnote" title="Jump back to footnote 31 in the text">&#8617;</a></p>
+</li>
+<li id="fn:32">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:32" rev="footnote" title="Jump back to footnote 32 in the text">&#8617;</a></p>
+</li>
+<li id="fn:33">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:33" rev="footnote" title="Jump back to footnote 33 in the text">&#8617;</a></p>
+</li>
+<li id="fn:34">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:34" rev="footnote" title="Jump back to footnote 34 in the text">&#8617;</a></p>
+</li>
+<li id="fn:35">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:35" rev="footnote" title="Jump back to footnote 35 in the text">&#8617;</a></p>
+</li>
+<li id="fn:36">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:36" rev="footnote" title="Jump back to footnote 36 in the text">&#8617;</a></p>
+</li>
+<li id="fn:37">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:37" rev="footnote" title="Jump back to footnote 37 in the text">&#8617;</a></p>
+</li>
+<li id="fn:38">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:38" rev="footnote" title="Jump back to footnote 38 in the text">&#8617;</a></p>
+</li>
+<li id="fn:39">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:39" rev="footnote" title="Jump back to footnote 39 in the text">&#8617;</a></p>
+</li>
+<li id="fn:40">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:40" rev="footnote" title="Jump back to footnote 40 in the text">&#8617;</a></p>
+</li>
+<li id="fn:41">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:41" rev="footnote" title="Jump back to footnote 41 in the text">&#8617;</a></p>
+</li>
+<li id="fn:42">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:42" rev="footnote" title="Jump back to footnote 42 in the text">&#8617;</a></p>
+</li>
+<li id="fn:43">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:43" rev="footnote" title="Jump back to footnote 43 in the text">&#8617;</a></p>
+</li>
+<li id="fn:44">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:44" rev="footnote" title="Jump back to footnote 44 in the text">&#8617;</a></p>
+</li>
+<li id="fn:45">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:45" rev="footnote" title="Jump back to footnote 45 in the text">&#8617;</a></p>
+</li>
+<li id="fn:46">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:46" rev="footnote" title="Jump back to footnote 46 in the text">&#8617;</a></p>
+</li>
+<li id="fn:47">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:47" rev="footnote" title="Jump back to footnote 47 in the text">&#8617;</a></p>
+</li>
+<li id="fn:48">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:48" rev="footnote" title="Jump back to footnote 48 in the text">&#8617;</a></p>
+</li>
+<li id="fn:49">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:49" rev="footnote" title="Jump back to footnote 49 in the text">&#8617;</a></p>
+</li>
+<li id="fn:50">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:50" rev="footnote" title="Jump back to footnote 50 in the text">&#8617;</a></p>
+</li>
+<li id="fn:51">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:51" rev="footnote" title="Jump back to footnote 51 in the text">&#8617;</a></p>
+</li>
+<li id="fn:52">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:52" rev="footnote" title="Jump back to footnote 52 in the text">&#8617;</a></p>
+</li>
+<li id="fn:53">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:53" rev="footnote" title="Jump back to footnote 53 in the text">&#8617;</a></p>
+</li>
+<li id="fn:54">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:54" rev="footnote" title="Jump back to footnote 54 in the text">&#8617;</a></p>
+</li>
+<li id="fn:55">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:55" rev="footnote" title="Jump back to footnote 55 in the text">&#8617;</a></p>
+</li>
+<li id="fn:56">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:56" rev="footnote" title="Jump back to footnote 56 in the text">&#8617;</a></p>
+</li>
+<li id="fn:57">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:57" rev="footnote" title="Jump back to footnote 57 in the text">&#8617;</a></p>
+</li>
+<li id="fn:58">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:58" rev="footnote" title="Jump back to footnote 58 in the text">&#8617;</a></p>
+</li>
+<li id="fn:59">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:59" rev="footnote" title="Jump back to footnote 59 in the text">&#8617;</a></p>
+</li>
+<li id="fn:60">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:60" rev="footnote" title="Jump back to footnote 60 in the text">&#8617;</a></p>
+</li>
+<li id="fn:61">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:61" rev="footnote" title="Jump back to footnote 61 in the text">&#8617;</a></p>
+</li>
+<li id="fn:62">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:62" rev="footnote" title="Jump back to footnote 62 in the text">&#8617;</a></p>
+</li>
+<li id="fn:63">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:63" rev="footnote" title="Jump back to footnote 63 in the text">&#8617;</a></p>
+</li>
+<li id="fn:64">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:64" rev="footnote" title="Jump back to footnote 64 in the text">&#8617;</a></p>
+</li>
+<li id="fn:65">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:65" rev="footnote" title="Jump back to footnote 65 in the text">&#8617;</a></p>
+</li>
+<li id="fn:66">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:66" rev="footnote" title="Jump back to footnote 66 in the text">&#8617;</a></p>
+</li>
+<li id="fn:67">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:67" rev="footnote" title="Jump back to footnote 67 in the text">&#8617;</a></p>
+</li>
+<li id="fn:68">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:68" rev="footnote" title="Jump back to footnote 68 in the text">&#8617;</a></p>
+</li>
+<li id="fn:69">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:69" rev="footnote" title="Jump back to footnote 69 in the text">&#8617;</a></p>
+</li>
+<li id="fn:70">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:70" rev="footnote" title="Jump back to footnote 70 in the text">&#8617;</a></p>
+</li>
+<li id="fn:71">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:71" rev="footnote" title="Jump back to footnote 71 in the text">&#8617;</a></p>
+</li>
+<li id="fn:72">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:72" rev="footnote" title="Jump back to footnote 72 in the text">&#8617;</a></p>
+</li>
+<li id="fn:73">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:73" rev="footnote" title="Jump back to footnote 73 in the text">&#8617;</a></p>
+</li>
+<li id="fn:74">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:74" rev="footnote" title="Jump back to footnote 74 in the text">&#8617;</a></p>
+</li>
+<li id="fn:75">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:75" rev="footnote" title="Jump back to footnote 75 in the text">&#8617;</a></p>
+</li>
+<li id="fn:76">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:76" rev="footnote" title="Jump back to footnote 76 in the text">&#8617;</a></p>
+</li>
+<li id="fn:77">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:77" rev="footnote" title="Jump back to footnote 77 in the text">&#8617;</a></p>
+</li>
+<li id="fn:78">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:78" rev="footnote" title="Jump back to footnote 78 in the text">&#8617;</a></p>
+</li>
+<li id="fn:79">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:79" rev="footnote" title="Jump back to footnote 79 in the text">&#8617;</a></p>
+</li>
+<li id="fn:80">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:80" rev="footnote" title="Jump back to footnote 80 in the text">&#8617;</a></p>
+</li>
+<li id="fn:81">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:81" rev="footnote" title="Jump back to footnote 81 in the text">&#8617;</a></p>
+</li>
+<li id="fn:82">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:82" rev="footnote" title="Jump back to footnote 82 in the text">&#8617;</a></p>
+</li>
+<li id="fn:83">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:83" rev="footnote" title="Jump back to footnote 83 in the text">&#8617;</a></p>
+</li>
+<li id="fn:84">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:84" rev="footnote" title="Jump back to footnote 84 in the text">&#8617;</a></p>
+</li>
+<li id="fn:85">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:85" rev="footnote" title="Jump back to footnote 85 in the text">&#8617;</a></p>
+</li>
+<li id="fn:86">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:86" rev="footnote" title="Jump back to footnote 86 in the text">&#8617;</a></p>
+</li>
+<li id="fn:87">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:87" rev="footnote" title="Jump back to footnote 87 in the text">&#8617;</a></p>
+</li>
+<li id="fn:88">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:88" rev="footnote" title="Jump back to footnote 88 in the text">&#8617;</a></p>
+</li>
+<li id="fn:89">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:89" rev="footnote" title="Jump back to footnote 89 in the text">&#8617;</a></p>
+</li>
+<li id="fn:90">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:90" rev="footnote" title="Jump back to footnote 90 in the text">&#8617;</a></p>
+</li>
+<li id="fn:91">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:91" rev="footnote" title="Jump back to footnote 91 in the text">&#8617;</a></p>
+</li>
+<li id="fn:92">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:92" rev="footnote" title="Jump back to footnote 92 in the text">&#8617;</a></p>
+</li>
+<li id="fn:93">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:93" rev="footnote" title="Jump back to footnote 93 in the text">&#8617;</a></p>
+</li>
+<li id="fn:94">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:94" rev="footnote" title="Jump back to footnote 94 in the text">&#8617;</a></p>
+</li>
+<li id="fn:95">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:95" rev="footnote" title="Jump back to footnote 95 in the text">&#8617;</a></p>
+</li>
+<li id="fn:96">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:96" rev="footnote" title="Jump back to footnote 96 in the text">&#8617;</a></p>
+</li>
+<li id="fn:97">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:97" rev="footnote" title="Jump back to footnote 97 in the text">&#8617;</a></p>
+</li>
+<li id="fn:98">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:98" rev="footnote" title="Jump back to footnote 98 in the text">&#8617;</a></p>
+</li>
+<li id="fn:99">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:99" rev="footnote" title="Jump back to footnote 99 in the text">&#8617;</a></p>
+</li>
+<li id="fn:100">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:100" rev="footnote" title="Jump back to footnote 100 in the text">&#8617;</a></p>
+</li>
+<li id="fn:101">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:101" rev="footnote" title="Jump back to footnote 101 in the text">&#8617;</a></p>
+</li>
+<li id="fn:102">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:102" rev="footnote" title="Jump back to footnote 102 in the text">&#8617;</a></p>
+</li>
+<li id="fn:103">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:103" rev="footnote" title="Jump back to footnote 103 in the text">&#8617;</a></p>
+</li>
+<li id="fn:104">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:104" rev="footnote" title="Jump back to footnote 104 in the text">&#8617;</a></p>
+</li>
+<li id="fn:105">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:105" rev="footnote" title="Jump back to footnote 105 in the text">&#8617;</a></p>
+</li>
+<li id="fn:106">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:106" rev="footnote" title="Jump back to footnote 106 in the text">&#8617;</a></p>
+</li>
+<li id="fn:107">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:107" rev="footnote" title="Jump back to footnote 107 in the text">&#8617;</a></p>
+</li>
+<li id="fn:108">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:108" rev="footnote" title="Jump back to footnote 108 in the text">&#8617;</a></p>
+</li>
+<li id="fn:109">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:109" rev="footnote" title="Jump back to footnote 109 in the text">&#8617;</a></p>
+</li>
+<li id="fn:110">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:110" rev="footnote" title="Jump back to footnote 110 in the text">&#8617;</a></p>
+</li>
+<li id="fn:111">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:111" rev="footnote" title="Jump back to footnote 111 in the text">&#8617;</a></p>
+</li>
+<li id="fn:112">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:112" rev="footnote" title="Jump back to footnote 112 in the text">&#8617;</a></p>
+</li>
+<li id="fn:113">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:113" rev="footnote" title="Jump back to footnote 113 in the text">&#8617;</a></p>
+</li>
+<li id="fn:114">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:114" rev="footnote" title="Jump back to footnote 114 in the text">&#8617;</a></p>
+</li>
+<li id="fn:115">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:115" rev="footnote" title="Jump back to footnote 115 in the text">&#8617;</a></p>
+</li>
+<li id="fn:116">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:116" rev="footnote" title="Jump back to footnote 116 in the text">&#8617;</a></p>
+</li>
+<li id="fn:117">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:117" rev="footnote" title="Jump back to footnote 117 in the text">&#8617;</a></p>
+</li>
+<li id="fn:118">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:118" rev="footnote" title="Jump back to footnote 118 in the text">&#8617;</a></p>
+</li>
+<li id="fn:119">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:119" rev="footnote" title="Jump back to footnote 119 in the text">&#8617;</a></p>
+</li>
+<li id="fn:120">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:120" rev="footnote" title="Jump back to footnote 120 in the text">&#8617;</a></p>
+</li>
+<li id="fn:121">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:121" rev="footnote" title="Jump back to footnote 121 in the text">&#8617;</a></p>
+</li>
+<li id="fn:122">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:122" rev="footnote" title="Jump back to footnote 122 in the text">&#8617;</a></p>
+</li>
+<li id="fn:123">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:123" rev="footnote" title="Jump back to footnote 123 in the text">&#8617;</a></p>
+</li>
+<li id="fn:124">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:124" rev="footnote" title="Jump back to footnote 124 in the text">&#8617;</a></p>
+</li>
+<li id="fn:125">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:125" rev="footnote" title="Jump back to footnote 125 in the text">&#8617;</a></p>
+</li>
+<li id="fn:126">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:126" rev="footnote" title="Jump back to footnote 126 in the text">&#8617;</a></p>
+</li>
+<li id="fn:127">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:127" rev="footnote" title="Jump back to footnote 127 in the text">&#8617;</a></p>
+</li>
+<li id="fn:128">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:128" rev="footnote" title="Jump back to footnote 128 in the text">&#8617;</a></p>
+</li>
+<li id="fn:129">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:129" rev="footnote" title="Jump back to footnote 129 in the text">&#8617;</a></p>
+</li>
+<li id="fn:130">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:130" rev="footnote" title="Jump back to footnote 130 in the text">&#8617;</a></p>
+</li>
+<li id="fn:131">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:131" rev="footnote" title="Jump back to footnote 131 in the text">&#8617;</a></p>
+</li>
+<li id="fn:132">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:132" rev="footnote" title="Jump back to footnote 132 in the text">&#8617;</a></p>
+</li>
+<li id="fn:133">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:133" rev="footnote" title="Jump back to footnote 133 in the text">&#8617;</a></p>
+</li>
+<li id="fn:134">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:134" rev="footnote" title="Jump back to footnote 134 in the text">&#8617;</a></p>
+</li>
+<li id="fn:135">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:135" rev="footnote" title="Jump back to footnote 135 in the text">&#8617;</a></p>
+</li>
+<li id="fn:136">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:136" rev="footnote" title="Jump back to footnote 136 in the text">&#8617;</a></p>
+</li>
+<li id="fn:137">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:137" rev="footnote" title="Jump back to footnote 137 in the text">&#8617;</a></p>
+</li>
+<li id="fn:138">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:138" rev="footnote" title="Jump back to footnote 138 in the text">&#8617;</a></p>
+</li>
+<li id="fn:139">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:139" rev="footnote" title="Jump back to footnote 139 in the text">&#8617;</a></p>
+</li>
+<li id="fn:140">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:140" rev="footnote" title="Jump back to footnote 140 in the text">&#8617;</a></p>
+</li>
+<li id="fn:141">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:141" rev="footnote" title="Jump back to footnote 141 in the text">&#8617;</a></p>
+</li>
+<li id="fn:142">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:142" rev="footnote" title="Jump back to footnote 142 in the text">&#8617;</a></p>
+</li>
+<li id="fn:143">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:143" rev="footnote" title="Jump back to footnote 143 in the text">&#8617;</a></p>
+</li>
+<li id="fn:144">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:144" rev="footnote" title="Jump back to footnote 144 in the text">&#8617;</a></p>
+</li>
+<li id="fn:145">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:145" rev="footnote" title="Jump back to footnote 145 in the text">&#8617;</a></p>
+</li>
+<li id="fn:146">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:146" rev="footnote" title="Jump back to footnote 146 in the text">&#8617;</a></p>
+</li>
+<li id="fn:147">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:147" rev="footnote" title="Jump back to footnote 147 in the text">&#8617;</a></p>
+</li>
+<li id="fn:148">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:148" rev="footnote" title="Jump back to footnote 148 in the text">&#8617;</a></p>
+</li>
+<li id="fn:149">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:149" rev="footnote" title="Jump back to footnote 149 in the text">&#8617;</a></p>
+</li>
+<li id="fn:150">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:150" rev="footnote" title="Jump back to footnote 150 in the text">&#8617;</a></p>
+</li>
+<li id="fn:151">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:151" rev="footnote" title="Jump back to footnote 151 in the text">&#8617;</a></p>
+</li>
+<li id="fn:152">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:152" rev="footnote" title="Jump back to footnote 152 in the text">&#8617;</a></p>
+</li>
+<li id="fn:153">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:153" rev="footnote" title="Jump back to footnote 153 in the text">&#8617;</a></p>
+</li>
+<li id="fn:154">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:154" rev="footnote" title="Jump back to footnote 154 in the text">&#8617;</a></p>
+</li>
+<li id="fn:155">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:155" rev="footnote" title="Jump back to footnote 155 in the text">&#8617;</a></p>
+</li>
+<li id="fn:156">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:156" rev="footnote" title="Jump back to footnote 156 in the text">&#8617;</a></p>
+</li>
+<li id="fn:157">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:157" rev="footnote" title="Jump back to footnote 157 in the text">&#8617;</a></p>
+</li>
+<li id="fn:158">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:158" rev="footnote" title="Jump back to footnote 158 in the text">&#8617;</a></p>
+</li>
+<li id="fn:159">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:159" rev="footnote" title="Jump back to footnote 159 in the text">&#8617;</a></p>
+</li>
+<li id="fn:160">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:160" rev="footnote" title="Jump back to footnote 160 in the text">&#8617;</a></p>
+</li>
+<li id="fn:161">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:161" rev="footnote" title="Jump back to footnote 161 in the text">&#8617;</a></p>
+</li>
+<li id="fn:162">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:162" rev="footnote" title="Jump back to footnote 162 in the text">&#8617;</a></p>
+</li>
+<li id="fn:163">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:163" rev="footnote" title="Jump back to footnote 163 in the text">&#8617;</a></p>
+</li>
+<li id="fn:164">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:164" rev="footnote" title="Jump back to footnote 164 in the text">&#8617;</a></p>
+</li>
+<li id="fn:165">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:165" rev="footnote" title="Jump back to footnote 165 in the text">&#8617;</a></p>
+</li>
+<li id="fn:166">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:166" rev="footnote" title="Jump back to footnote 166 in the text">&#8617;</a></p>
+</li>
+<li id="fn:167">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:167" rev="footnote" title="Jump back to footnote 167 in the text">&#8617;</a></p>
+</li>
+<li id="fn:168">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:168" rev="footnote" title="Jump back to footnote 168 in the text">&#8617;</a></p>
+</li>
+<li id="fn:169">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:169" rev="footnote" title="Jump back to footnote 169 in the text">&#8617;</a></p>
+</li>
+<li id="fn:170">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:170" rev="footnote" title="Jump back to footnote 170 in the text">&#8617;</a></p>
+</li>
+<li id="fn:171">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:171" rev="footnote" title="Jump back to footnote 171 in the text">&#8617;</a></p>
+</li>
+<li id="fn:172">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:172" rev="footnote" title="Jump back to footnote 172 in the text">&#8617;</a></p>
+</li>
+<li id="fn:173">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:173" rev="footnote" title="Jump back to footnote 173 in the text">&#8617;</a></p>
+</li>
+<li id="fn:174">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:174" rev="footnote" title="Jump back to footnote 174 in the text">&#8617;</a></p>
+</li>
+<li id="fn:175">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:175" rev="footnote" title="Jump back to footnote 175 in the text">&#8617;</a></p>
+</li>
+<li id="fn:176">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:176" rev="footnote" title="Jump back to footnote 176 in the text">&#8617;</a></p>
+</li>
+<li id="fn:177">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:177" rev="footnote" title="Jump back to footnote 177 in the text">&#8617;</a></p>
+</li>
+<li id="fn:178">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:178" rev="footnote" title="Jump back to footnote 178 in the text">&#8617;</a></p>
+</li>
+<li id="fn:179">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:179" rev="footnote" title="Jump back to footnote 179 in the text">&#8617;</a></p>
+</li>
+<li id="fn:180">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:180" rev="footnote" title="Jump back to footnote 180 in the text">&#8617;</a></p>
+</li>
+<li id="fn:181">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:181" rev="footnote" title="Jump back to footnote 181 in the text">&#8617;</a></p>
+</li>
+<li id="fn:182">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:182" rev="footnote" title="Jump back to footnote 182 in the text">&#8617;</a></p>
+</li>
+<li id="fn:183">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:183" rev="footnote" title="Jump back to footnote 183 in the text">&#8617;</a></p>
+</li>
+<li id="fn:184">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:184" rev="footnote" title="Jump back to footnote 184 in the text">&#8617;</a></p>
+</li>
+<li id="fn:185">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:185" rev="footnote" title="Jump back to footnote 185 in the text">&#8617;</a></p>
+</li>
+<li id="fn:186">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:186" rev="footnote" title="Jump back to footnote 186 in the text">&#8617;</a></p>
+</li>
+<li id="fn:187">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:187" rev="footnote" title="Jump back to footnote 187 in the text">&#8617;</a></p>
+</li>
+<li id="fn:188">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:188" rev="footnote" title="Jump back to footnote 188 in the text">&#8617;</a></p>
+</li>
+<li id="fn:189">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:189" rev="footnote" title="Jump back to footnote 189 in the text">&#8617;</a></p>
+</li>
+<li id="fn:190">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:190" rev="footnote" title="Jump back to footnote 190 in the text">&#8617;</a></p>
+</li>
+<li id="fn:191">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:191" rev="footnote" title="Jump back to footnote 191 in the text">&#8617;</a></p>
+</li>
+<li id="fn:192">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:192" rev="footnote" title="Jump back to footnote 192 in the text">&#8617;</a></p>
+</li>
+<li id="fn:193">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:193" rev="footnote" title="Jump back to footnote 193 in the text">&#8617;</a></p>
+</li>
+<li id="fn:194">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:194" rev="footnote" title="Jump back to footnote 194 in the text">&#8617;</a></p>
+</li>
+<li id="fn:195">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:195" rev="footnote" title="Jump back to footnote 195 in the text">&#8617;</a></p>
+</li>
+<li id="fn:196">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:196" rev="footnote" title="Jump back to footnote 196 in the text">&#8617;</a></p>
+</li>
+<li id="fn:197">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:197" rev="footnote" title="Jump back to footnote 197 in the text">&#8617;</a></p>
+</li>
+<li id="fn:198">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:198" rev="footnote" title="Jump back to footnote 198 in the text">&#8617;</a></p>
+</li>
+<li id="fn:199">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:199" rev="footnote" title="Jump back to footnote 199 in the text">&#8617;</a></p>
+</li>
+<li id="fn:200">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:200" rev="footnote" title="Jump back to footnote 200 in the text">&#8617;</a></p>
+</li>
+<li id="fn:201">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:201" rev="footnote" title="Jump back to footnote 201 in the text">&#8617;</a></p>
+</li>
+<li id="fn:202">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:202" rev="footnote" title="Jump back to footnote 202 in the text">&#8617;</a></p>
+</li>
+<li id="fn:203">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:203" rev="footnote" title="Jump back to footnote 203 in the text">&#8617;</a></p>
+</li>
+<li id="fn:204">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:204" rev="footnote" title="Jump back to footnote 204 in the text">&#8617;</a></p>
+</li>
+<li id="fn:205">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:205" rev="footnote" title="Jump back to footnote 205 in the text">&#8617;</a></p>
+</li>
+<li id="fn:206">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:206" rev="footnote" title="Jump back to footnote 206 in the text">&#8617;</a></p>
+</li>
+<li id="fn:207">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:207" rev="footnote" title="Jump back to footnote 207 in the text">&#8617;</a></p>
+</li>
+<li id="fn:208">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:208" rev="footnote" title="Jump back to footnote 208 in the text">&#8617;</a></p>
+</li>
+<li id="fn:209">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:209" rev="footnote" title="Jump back to footnote 209 in the text">&#8617;</a></p>
+</li>
+<li id="fn:210">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:210" rev="footnote" title="Jump back to footnote 210 in the text">&#8617;</a></p>
+</li>
+<li id="fn:211">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:211" rev="footnote" title="Jump back to footnote 211 in the text">&#8617;</a></p>
+</li>
+<li id="fn:212">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:212" rev="footnote" title="Jump back to footnote 212 in the text">&#8617;</a></p>
+</li>
+<li id="fn:213">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:213" rev="footnote" title="Jump back to footnote 213 in the text">&#8617;</a></p>
+</li>
+<li id="fn:214">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:214" rev="footnote" title="Jump back to footnote 214 in the text">&#8617;</a></p>
+</li>
+<li id="fn:215">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:215" rev="footnote" title="Jump back to footnote 215 in the text">&#8617;</a></p>
+</li>
+<li id="fn:216">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:216" rev="footnote" title="Jump back to footnote 216 in the text">&#8617;</a></p>
+</li>
+<li id="fn:217">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:217" rev="footnote" title="Jump back to footnote 217 in the text">&#8617;</a></p>
+</li>
+<li id="fn:218">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:218" rev="footnote" title="Jump back to footnote 218 in the text">&#8617;</a></p>
+</li>
+<li id="fn:219">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:219" rev="footnote" title="Jump back to footnote 219 in the text">&#8617;</a></p>
+</li>
+<li id="fn:220">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:220" rev="footnote" title="Jump back to footnote 220 in the text">&#8617;</a></p>
+</li>
+<li id="fn:221">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:221" rev="footnote" title="Jump back to footnote 221 in the text">&#8617;</a></p>
+</li>
+<li id="fn:222">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:222" rev="footnote" title="Jump back to footnote 222 in the text">&#8617;</a></p>
+</li>
+<li id="fn:223">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:223" rev="footnote" title="Jump back to footnote 223 in the text">&#8617;</a></p>
+</li>
+<li id="fn:224">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:224" rev="footnote" title="Jump back to footnote 224 in the text">&#8617;</a></p>
+</li>
+<li id="fn:225">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:225" rev="footnote" title="Jump back to footnote 225 in the text">&#8617;</a></p>
+</li>
+<li id="fn:226">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:226" rev="footnote" title="Jump back to footnote 226 in the text">&#8617;</a></p>
+</li>
+<li id="fn:227">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:227" rev="footnote" title="Jump back to footnote 227 in the text">&#8617;</a></p>
+</li>
+<li id="fn:228">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:228" rev="footnote" title="Jump back to footnote 228 in the text">&#8617;</a></p>
+</li>
+<li id="fn:229">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:229" rev="footnote" title="Jump back to footnote 229 in the text">&#8617;</a></p>
+</li>
+<li id="fn:230">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:230" rev="footnote" title="Jump back to footnote 230 in the text">&#8617;</a></p>
+</li>
+<li id="fn:231">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:231" rev="footnote" title="Jump back to footnote 231 in the text">&#8617;</a></p>
+</li>
+<li id="fn:232">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:232" rev="footnote" title="Jump back to footnote 232 in the text">&#8617;</a></p>
+</li>
+<li id="fn:233">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:233" rev="footnote" title="Jump back to footnote 233 in the text">&#8617;</a></p>
+</li>
+<li id="fn:234">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:234" rev="footnote" title="Jump back to footnote 234 in the text">&#8617;</a></p>
+</li>
+<li id="fn:235">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:235" rev="footnote" title="Jump back to footnote 235 in the text">&#8617;</a></p>
+</li>
+<li id="fn:236">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:236" rev="footnote" title="Jump back to footnote 236 in the text">&#8617;</a></p>
+</li>
+<li id="fn:237">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:237" rev="footnote" title="Jump back to footnote 237 in the text">&#8617;</a></p>
+</li>
+<li id="fn:238">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:238" rev="footnote" title="Jump back to footnote 238 in the text">&#8617;</a></p>
+</li>
+<li id="fn:239">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:239" rev="footnote" title="Jump back to footnote 239 in the text">&#8617;</a></p>
+</li>
+<li id="fn:240">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:240" rev="footnote" title="Jump back to footnote 240 in the text">&#8617;</a></p>
+</li>
+<li id="fn:241">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:241" rev="footnote" title="Jump back to footnote 241 in the text">&#8617;</a></p>
+</li>
+<li id="fn:242">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:242" rev="footnote" title="Jump back to footnote 242 in the text">&#8617;</a></p>
+</li>
+<li id="fn:243">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:243" rev="footnote" title="Jump back to footnote 243 in the text">&#8617;</a></p>
+</li>
+<li id="fn:244">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:244" rev="footnote" title="Jump back to footnote 244 in the text">&#8617;</a></p>
+</li>
+<li id="fn:245">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:245" rev="footnote" title="Jump back to footnote 245 in the text">&#8617;</a></p>
+</li>
+<li id="fn:246">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:246" rev="footnote" title="Jump back to footnote 246 in the text">&#8617;</a></p>
+</li>
+<li id="fn:247">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:247" rev="footnote" title="Jump back to footnote 247 in the text">&#8617;</a></p>
+</li>
+<li id="fn:248">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:248" rev="footnote" title="Jump back to footnote 248 in the text">&#8617;</a></p>
+</li>
+<li id="fn:249">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:249" rev="footnote" title="Jump back to footnote 249 in the text">&#8617;</a></p>
+</li>
+<li id="fn:250">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:250" rev="footnote" title="Jump back to footnote 250 in the text">&#8617;</a></p>
+</li>
+<li id="fn:251">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:251" rev="footnote" title="Jump back to footnote 251 in the text">&#8617;</a></p>
+</li>
+<li id="fn:252">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:252" rev="footnote" title="Jump back to footnote 252 in the text">&#8617;</a></p>
+</li>
+<li id="fn:253">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:253" rev="footnote" title="Jump back to footnote 253 in the text">&#8617;</a></p>
+</li>
+<li id="fn:254">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:254" rev="footnote" title="Jump back to footnote 254 in the text">&#8617;</a></p>
+</li>
+<li id="fn:255">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:255" rev="footnote" title="Jump back to footnote 255 in the text">&#8617;</a></p>
+</li>
+<li id="fn:256">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:256" rev="footnote" title="Jump back to footnote 256 in the text">&#8617;</a></p>
+</li>
+<li id="fn:257">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:257" rev="footnote" title="Jump back to footnote 257 in the text">&#8617;</a></p>
+</li>
+<li id="fn:258">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:258" rev="footnote" title="Jump back to footnote 258 in the text">&#8617;</a></p>
+</li>
+<li id="fn:259">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:259" rev="footnote" title="Jump back to footnote 259 in the text">&#8617;</a></p>
+</li>
+<li id="fn:260">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:260" rev="footnote" title="Jump back to footnote 260 in the text">&#8617;</a></p>
+</li>
+<li id="fn:261">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:261" rev="footnote" title="Jump back to footnote 261 in the text">&#8617;</a></p>
+</li>
+<li id="fn:262">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:262" rev="footnote" title="Jump back to footnote 262 in the text">&#8617;</a></p>
+</li>
+<li id="fn:263">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:263" rev="footnote" title="Jump back to footnote 263 in the text">&#8617;</a></p>
+</li>
+<li id="fn:264">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:264" rev="footnote" title="Jump back to footnote 264 in the text">&#8617;</a></p>
+</li>
+<li id="fn:265">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:265" rev="footnote" title="Jump back to footnote 265 in the text">&#8617;</a></p>
+</li>
+<li id="fn:266">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:266" rev="footnote" title="Jump back to footnote 266 in the text">&#8617;</a></p>
+</li>
+<li id="fn:267">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:267" rev="footnote" title="Jump back to footnote 267 in the text">&#8617;</a></p>
+</li>
+<li id="fn:268">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:268" rev="footnote" title="Jump back to footnote 268 in the text">&#8617;</a></p>
+</li>
+<li id="fn:269">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:269" rev="footnote" title="Jump back to footnote 269 in the text">&#8617;</a></p>
+</li>
+<li id="fn:270">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:270" rev="footnote" title="Jump back to footnote 270 in the text">&#8617;</a></p>
+</li>
+<li id="fn:271">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:271" rev="footnote" title="Jump back to footnote 271 in the text">&#8617;</a></p>
+</li>
+<li id="fn:272">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:272" rev="footnote" title="Jump back to footnote 272 in the text">&#8617;</a></p>
+</li>
+<li id="fn:273">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:273" rev="footnote" title="Jump back to footnote 273 in the text">&#8617;</a></p>
+</li>
+<li id="fn:274">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:274" rev="footnote" title="Jump back to footnote 274 in the text">&#8617;</a></p>
+</li>
+<li id="fn:275">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:275" rev="footnote" title="Jump back to footnote 275 in the text">&#8617;</a></p>
+</li>
+<li id="fn:276">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:276" rev="footnote" title="Jump back to footnote 276 in the text">&#8617;</a></p>
+</li>
+<li id="fn:277">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:277" rev="footnote" title="Jump back to footnote 277 in the text">&#8617;</a></p>
+</li>
+<li id="fn:278">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:278" rev="footnote" title="Jump back to footnote 278 in the text">&#8617;</a></p>
+</li>
+<li id="fn:279">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:279" rev="footnote" title="Jump back to footnote 279 in the text">&#8617;</a></p>
+</li>
+<li id="fn:280">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:280" rev="footnote" title="Jump back to footnote 280 in the text">&#8617;</a></p>
+</li>
+<li id="fn:281">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:281" rev="footnote" title="Jump back to footnote 281 in the text">&#8617;</a></p>
+</li>
+<li id="fn:282">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:282" rev="footnote" title="Jump back to footnote 282 in the text">&#8617;</a></p>
+</li>
+<li id="fn:283">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:283" rev="footnote" title="Jump back to footnote 283 in the text">&#8617;</a></p>
+</li>
+<li id="fn:284">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:284" rev="footnote" title="Jump back to footnote 284 in the text">&#8617;</a></p>
+</li>
+<li id="fn:285">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:285" rev="footnote" title="Jump back to footnote 285 in the text">&#8617;</a></p>
+</li>
+<li id="fn:286">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:286" rev="footnote" title="Jump back to footnote 286 in the text">&#8617;</a></p>
+</li>
+<li id="fn:287">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:287" rev="footnote" title="Jump back to footnote 287 in the text">&#8617;</a></p>
+</li>
+<li id="fn:288">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:288" rev="footnote" title="Jump back to footnote 288 in the text">&#8617;</a></p>
+</li>
+<li id="fn:289">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:289" rev="footnote" title="Jump back to footnote 289 in the text">&#8617;</a></p>
+</li>
+<li id="fn:290">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:290" rev="footnote" title="Jump back to footnote 290 in the text">&#8617;</a></p>
+</li>
+<li id="fn:291">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:291" rev="footnote" title="Jump back to footnote 291 in the text">&#8617;</a></p>
+</li>
+<li id="fn:292">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:292" rev="footnote" title="Jump back to footnote 292 in the text">&#8617;</a></p>
+</li>
+<li id="fn:293">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:293" rev="footnote" title="Jump back to footnote 293 in the text">&#8617;</a></p>
+</li>
+<li id="fn:294">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:294" rev="footnote" title="Jump back to footnote 294 in the text">&#8617;</a></p>
+</li>
+<li id="fn:295">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:295" rev="footnote" title="Jump back to footnote 295 in the text">&#8617;</a></p>
+</li>
+<li id="fn:296">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:296" rev="footnote" title="Jump back to footnote 296 in the text">&#8617;</a></p>
+</li>
+<li id="fn:297">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:297" rev="footnote" title="Jump back to footnote 297 in the text">&#8617;</a></p>
+</li>
+<li id="fn:298">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:298" rev="footnote" title="Jump back to footnote 298 in the text">&#8617;</a></p>
+</li>
+<li id="fn:299">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:299" rev="footnote" title="Jump back to footnote 299 in the text">&#8617;</a></p>
+</li>
+<li id="fn:300">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:300" rev="footnote" title="Jump back to footnote 300 in the text">&#8617;</a></p>
+</li>
+<li id="fn:301">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:301" rev="footnote" title="Jump back to footnote 301 in the text">&#8617;</a></p>
+</li>
+<li id="fn:302">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:302" rev="footnote" title="Jump back to footnote 302 in the text">&#8617;</a></p>
+</li>
+<li id="fn:303">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:303" rev="footnote" title="Jump back to footnote 303 in the text">&#8617;</a></p>
+</li>
+<li id="fn:304">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:304" rev="footnote" title="Jump back to footnote 304 in the text">&#8617;</a></p>
+</li>
+<li id="fn:305">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:305" rev="footnote" title="Jump back to footnote 305 in the text">&#8617;</a></p>
+</li>
+<li id="fn:306">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:306" rev="footnote" title="Jump back to footnote 306 in the text">&#8617;</a></p>
+</li>
+<li id="fn:307">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:307" rev="footnote" title="Jump back to footnote 307 in the text">&#8617;</a></p>
+</li>
+<li id="fn:308">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:308" rev="footnote" title="Jump back to footnote 308 in the text">&#8617;</a></p>
+</li>
+<li id="fn:309">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:309" rev="footnote" title="Jump back to footnote 309 in the text">&#8617;</a></p>
+</li>
+<li id="fn:310">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:310" rev="footnote" title="Jump back to footnote 310 in the text">&#8617;</a></p>
+</li>
+<li id="fn:311">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:311" rev="footnote" title="Jump back to footnote 311 in the text">&#8617;</a></p>
+</li>
+<li id="fn:312">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:312" rev="footnote" title="Jump back to footnote 312 in the text">&#8617;</a></p>
+</li>
+<li id="fn:313">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:313" rev="footnote" title="Jump back to footnote 313 in the text">&#8617;</a></p>
+</li>
+<li id="fn:314">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:314" rev="footnote" title="Jump back to footnote 314 in the text">&#8617;</a></p>
+</li>
+<li id="fn:315">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:315" rev="footnote" title="Jump back to footnote 315 in the text">&#8617;</a></p>
+</li>
+<li id="fn:316">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:316" rev="footnote" title="Jump back to footnote 316 in the text">&#8617;</a></p>
+</li>
+<li id="fn:317">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:317" rev="footnote" title="Jump back to footnote 317 in the text">&#8617;</a></p>
+</li>
+<li id="fn:318">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:318" rev="footnote" title="Jump back to footnote 318 in the text">&#8617;</a></p>
+</li>
+<li id="fn:319">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:319" rev="footnote" title="Jump back to footnote 319 in the text">&#8617;</a></p>
+</li>
+<li id="fn:320">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:320" rev="footnote" title="Jump back to footnote 320 in the text">&#8617;</a></p>
+</li>
+<li id="fn:321">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:321" rev="footnote" title="Jump back to footnote 321 in the text">&#8617;</a></p>
+</li>
+<li id="fn:322">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:322" rev="footnote" title="Jump back to footnote 322 in the text">&#8617;</a></p>
+</li>
+<li id="fn:323">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:323" rev="footnote" title="Jump back to footnote 323 in the text">&#8617;</a></p>
+</li>
+<li id="fn:324">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:324" rev="footnote" title="Jump back to footnote 324 in the text">&#8617;</a></p>
+</li>
+<li id="fn:325">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:325" rev="footnote" title="Jump back to footnote 325 in the text">&#8617;</a></p>
+</li>
+<li id="fn:326">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:326" rev="footnote" title="Jump back to footnote 326 in the text">&#8617;</a></p>
+</li>
+<li id="fn:327">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:327" rev="footnote" title="Jump back to footnote 327 in the text">&#8617;</a></p>
+</li>
+<li id="fn:328">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:328" rev="footnote" title="Jump back to footnote 328 in the text">&#8617;</a></p>
+</li>
+<li id="fn:329">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:329" rev="footnote" title="Jump back to footnote 329 in the text">&#8617;</a></p>
+</li>
+<li id="fn:330">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:330" rev="footnote" title="Jump back to footnote 330 in the text">&#8617;</a></p>
+</li>
+<li id="fn:331">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:331" rev="footnote" title="Jump back to footnote 331 in the text">&#8617;</a></p>
+</li>
+<li id="fn:332">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:332" rev="footnote" title="Jump back to footnote 332 in the text">&#8617;</a></p>
+</li>
+<li id="fn:333">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:333" rev="footnote" title="Jump back to footnote 333 in the text">&#8617;</a></p>
+</li>
+<li id="fn:334">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:334" rev="footnote" title="Jump back to footnote 334 in the text">&#8617;</a></p>
+</li>
+<li id="fn:335">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:335" rev="footnote" title="Jump back to footnote 335 in the text">&#8617;</a></p>
+</li>
+<li id="fn:336">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:336" rev="footnote" title="Jump back to footnote 336 in the text">&#8617;</a></p>
+</li>
+<li id="fn:337">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:337" rev="footnote" title="Jump back to footnote 337 in the text">&#8617;</a></p>
+</li>
+<li id="fn:338">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:338" rev="footnote" title="Jump back to footnote 338 in the text">&#8617;</a></p>
+</li>
+<li id="fn:339">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:339" rev="footnote" title="Jump back to footnote 339 in the text">&#8617;</a></p>
+</li>
+<li id="fn:340">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:340" rev="footnote" title="Jump back to footnote 340 in the text">&#8617;</a></p>
+</li>
+<li id="fn:341">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:341" rev="footnote" title="Jump back to footnote 341 in the text">&#8617;</a></p>
+</li>
+<li id="fn:342">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:342" rev="footnote" title="Jump back to footnote 342 in the text">&#8617;</a></p>
+</li>
+<li id="fn:343">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:343" rev="footnote" title="Jump back to footnote 343 in the text">&#8617;</a></p>
+</li>
+<li id="fn:344">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:344" rev="footnote" title="Jump back to footnote 344 in the text">&#8617;</a></p>
+</li>
+<li id="fn:345">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:345" rev="footnote" title="Jump back to footnote 345 in the text">&#8617;</a></p>
+</li>
+<li id="fn:346">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:346" rev="footnote" title="Jump back to footnote 346 in the text">&#8617;</a></p>
+</li>
+<li id="fn:347">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:347" rev="footnote" title="Jump back to footnote 347 in the text">&#8617;</a></p>
+</li>
+<li id="fn:348">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:348" rev="footnote" title="Jump back to footnote 348 in the text">&#8617;</a></p>
+</li>
+<li id="fn:349">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:349" rev="footnote" title="Jump back to footnote 349 in the text">&#8617;</a></p>
+</li>
+<li id="fn:350">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:350" rev="footnote" title="Jump back to footnote 350 in the text">&#8617;</a></p>
+</li>
+<li id="fn:351">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:351" rev="footnote" title="Jump back to footnote 351 in the text">&#8617;</a></p>
+</li>
+<li id="fn:352">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:352" rev="footnote" title="Jump back to footnote 352 in the text">&#8617;</a></p>
+</li>
+<li id="fn:353">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:353" rev="footnote" title="Jump back to footnote 353 in the text">&#8617;</a></p>
+</li>
+<li id="fn:354">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:354" rev="footnote" title="Jump back to footnote 354 in the text">&#8617;</a></p>
+</li>
+<li id="fn:355">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:355" rev="footnote" title="Jump back to footnote 355 in the text">&#8617;</a></p>
+</li>
+<li id="fn:356">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:356" rev="footnote" title="Jump back to footnote 356 in the text">&#8617;</a></p>
+</li>
+<li id="fn:357">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:357" rev="footnote" title="Jump back to footnote 357 in the text">&#8617;</a></p>
+</li>
+<li id="fn:358">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:358" rev="footnote" title="Jump back to footnote 358 in the text">&#8617;</a></p>
+</li>
+<li id="fn:359">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:359" rev="footnote" title="Jump back to footnote 359 in the text">&#8617;</a></p>
+</li>
+<li id="fn:360">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:360" rev="footnote" title="Jump back to footnote 360 in the text">&#8617;</a></p>
+</li>
+<li id="fn:361">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:361" rev="footnote" title="Jump back to footnote 361 in the text">&#8617;</a></p>
+</li>
+<li id="fn:362">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:362" rev="footnote" title="Jump back to footnote 362 in the text">&#8617;</a></p>
+</li>
+<li id="fn:363">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:363" rev="footnote" title="Jump back to footnote 363 in the text">&#8617;</a></p>
+</li>
+<li id="fn:364">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:364" rev="footnote" title="Jump back to footnote 364 in the text">&#8617;</a></p>
+</li>
+<li id="fn:365">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:365" rev="footnote" title="Jump back to footnote 365 in the text">&#8617;</a></p>
+</li>
+<li id="fn:366">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:366" rev="footnote" title="Jump back to footnote 366 in the text">&#8617;</a></p>
+</li>
+<li id="fn:367">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:367" rev="footnote" title="Jump back to footnote 367 in the text">&#8617;</a></p>
+</li>
+<li id="fn:368">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:368" rev="footnote" title="Jump back to footnote 368 in the text">&#8617;</a></p>
+</li>
+<li id="fn:369">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:369" rev="footnote" title="Jump back to footnote 369 in the text">&#8617;</a></p>
+</li>
+<li id="fn:370">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:370" rev="footnote" title="Jump back to footnote 370 in the text">&#8617;</a></p>
+</li>
+<li id="fn:371">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:371" rev="footnote" title="Jump back to footnote 371 in the text">&#8617;</a></p>
+</li>
+<li id="fn:372">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:372" rev="footnote" title="Jump back to footnote 372 in the text">&#8617;</a></p>
+</li>
+<li id="fn:373">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:373" rev="footnote" title="Jump back to footnote 373 in the text">&#8617;</a></p>
+</li>
+<li id="fn:374">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:374" rev="footnote" title="Jump back to footnote 374 in the text">&#8617;</a></p>
+</li>
+<li id="fn:375">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:375" rev="footnote" title="Jump back to footnote 375 in the text">&#8617;</a></p>
+</li>
+<li id="fn:376">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:376" rev="footnote" title="Jump back to footnote 376 in the text">&#8617;</a></p>
+</li>
+<li id="fn:377">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:377" rev="footnote" title="Jump back to footnote 377 in the text">&#8617;</a></p>
+</li>
+<li id="fn:378">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:378" rev="footnote" title="Jump back to footnote 378 in the text">&#8617;</a></p>
+</li>
+<li id="fn:379">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:379" rev="footnote" title="Jump back to footnote 379 in the text">&#8617;</a></p>
+</li>
+<li id="fn:380">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:380" rev="footnote" title="Jump back to footnote 380 in the text">&#8617;</a></p>
+</li>
+<li id="fn:381">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:381" rev="footnote" title="Jump back to footnote 381 in the text">&#8617;</a></p>
+</li>
+<li id="fn:382">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:382" rev="footnote" title="Jump back to footnote 382 in the text">&#8617;</a></p>
+</li>
+<li id="fn:383">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:383" rev="footnote" title="Jump back to footnote 383 in the text">&#8617;</a></p>
+</li>
+<li id="fn:384">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:384" rev="footnote" title="Jump back to footnote 384 in the text">&#8617;</a></p>
+</li>
+<li id="fn:385">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:385" rev="footnote" title="Jump back to footnote 385 in the text">&#8617;</a></p>
+</li>
+<li id="fn:386">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:386" rev="footnote" title="Jump back to footnote 386 in the text">&#8617;</a></p>
+</li>
+<li id="fn:387">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:387" rev="footnote" title="Jump back to footnote 387 in the text">&#8617;</a></p>
+</li>
+<li id="fn:388">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:388" rev="footnote" title="Jump back to footnote 388 in the text">&#8617;</a></p>
+</li>
+<li id="fn:389">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:389" rev="footnote" title="Jump back to footnote 389 in the text">&#8617;</a></p>
+</li>
+<li id="fn:390">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:390" rev="footnote" title="Jump back to footnote 390 in the text">&#8617;</a></p>
+</li>
+<li id="fn:391">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:391" rev="footnote" title="Jump back to footnote 391 in the text">&#8617;</a></p>
+</li>
+<li id="fn:392">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:392" rev="footnote" title="Jump back to footnote 392 in the text">&#8617;</a></p>
+</li>
+<li id="fn:393">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:393" rev="footnote" title="Jump back to footnote 393 in the text">&#8617;</a></p>
+</li>
+<li id="fn:394">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:394" rev="footnote" title="Jump back to footnote 394 in the text">&#8617;</a></p>
+</li>
+<li id="fn:395">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:395" rev="footnote" title="Jump back to footnote 395 in the text">&#8617;</a></p>
+</li>
+<li id="fn:396">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:396" rev="footnote" title="Jump back to footnote 396 in the text">&#8617;</a></p>
+</li>
+<li id="fn:397">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:397" rev="footnote" title="Jump back to footnote 397 in the text">&#8617;</a></p>
+</li>
+<li id="fn:398">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:398" rev="footnote" title="Jump back to footnote 398 in the text">&#8617;</a></p>
+</li>
+<li id="fn:399">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:399" rev="footnote" title="Jump back to footnote 399 in the text">&#8617;</a></p>
+</li>
+<li id="fn:400">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:400" rev="footnote" title="Jump back to footnote 400 in the text">&#8617;</a></p>
+</li>
+<li id="fn:401">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:401" rev="footnote" title="Jump back to footnote 401 in the text">&#8617;</a></p>
+</li>
+<li id="fn:402">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:402" rev="footnote" title="Jump back to footnote 402 in the text">&#8617;</a></p>
+</li>
+<li id="fn:403">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:403" rev="footnote" title="Jump back to footnote 403 in the text">&#8617;</a></p>
+</li>
+<li id="fn:404">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:404" rev="footnote" title="Jump back to footnote 404 in the text">&#8617;</a></p>
+</li>
+<li id="fn:405">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:405" rev="footnote" title="Jump back to footnote 405 in the text">&#8617;</a></p>
+</li>
+<li id="fn:406">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:406" rev="footnote" title="Jump back to footnote 406 in the text">&#8617;</a></p>
+</li>
+<li id="fn:407">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:407" rev="footnote" title="Jump back to footnote 407 in the text">&#8617;</a></p>
+</li>
+<li id="fn:408">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:408" rev="footnote" title="Jump back to footnote 408 in the text">&#8617;</a></p>
+</li>
+<li id="fn:409">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:409" rev="footnote" title="Jump back to footnote 409 in the text">&#8617;</a></p>
+</li>
+<li id="fn:410">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:410" rev="footnote" title="Jump back to footnote 410 in the text">&#8617;</a></p>
+</li>
+<li id="fn:411">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:411" rev="footnote" title="Jump back to footnote 411 in the text">&#8617;</a></p>
+</li>
+<li id="fn:412">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:412" rev="footnote" title="Jump back to footnote 412 in the text">&#8617;</a></p>
+</li>
+<li id="fn:413">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:413" rev="footnote" title="Jump back to footnote 413 in the text">&#8617;</a></p>
+</li>
+<li id="fn:414">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:414" rev="footnote" title="Jump back to footnote 414 in the text">&#8617;</a></p>
+</li>
+<li id="fn:415">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:415" rev="footnote" title="Jump back to footnote 415 in the text">&#8617;</a></p>
+</li>
+<li id="fn:416">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:416" rev="footnote" title="Jump back to footnote 416 in the text">&#8617;</a></p>
+</li>
+<li id="fn:417">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:417" rev="footnote" title="Jump back to footnote 417 in the text">&#8617;</a></p>
+</li>
+<li id="fn:418">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:418" rev="footnote" title="Jump back to footnote 418 in the text">&#8617;</a></p>
+</li>
+<li id="fn:419">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:419" rev="footnote" title="Jump back to footnote 419 in the text">&#8617;</a></p>
+</li>
+<li id="fn:420">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:420" rev="footnote" title="Jump back to footnote 420 in the text">&#8617;</a></p>
+</li>
+<li id="fn:421">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:421" rev="footnote" title="Jump back to footnote 421 in the text">&#8617;</a></p>
+</li>
+<li id="fn:422">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:422" rev="footnote" title="Jump back to footnote 422 in the text">&#8617;</a></p>
+</li>
+<li id="fn:423">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:423" rev="footnote" title="Jump back to footnote 423 in the text">&#8617;</a></p>
+</li>
+<li id="fn:424">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:424" rev="footnote" title="Jump back to footnote 424 in the text">&#8617;</a></p>
+</li>
+<li id="fn:425">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:425" rev="footnote" title="Jump back to footnote 425 in the text">&#8617;</a></p>
+</li>
+<li id="fn:426">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:426" rev="footnote" title="Jump back to footnote 426 in the text">&#8617;</a></p>
+</li>
+<li id="fn:427">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:427" rev="footnote" title="Jump back to footnote 427 in the text">&#8617;</a></p>
+</li>
+<li id="fn:428">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:428" rev="footnote" title="Jump back to footnote 428 in the text">&#8617;</a></p>
+</li>
+<li id="fn:429">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:429" rev="footnote" title="Jump back to footnote 429 in the text">&#8617;</a></p>
+</li>
+<li id="fn:430">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:430" rev="footnote" title="Jump back to footnote 430 in the text">&#8617;</a></p>
+</li>
+<li id="fn:431">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:431" rev="footnote" title="Jump back to footnote 431 in the text">&#8617;</a></p>
+</li>
+<li id="fn:432">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:432" rev="footnote" title="Jump back to footnote 432 in the text">&#8617;</a></p>
+</li>
+<li id="fn:433">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:433" rev="footnote" title="Jump back to footnote 433 in the text">&#8617;</a></p>
+</li>
+<li id="fn:434">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:434" rev="footnote" title="Jump back to footnote 434 in the text">&#8617;</a></p>
+</li>
+<li id="fn:435">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:435" rev="footnote" title="Jump back to footnote 435 in the text">&#8617;</a></p>
+</li>
+<li id="fn:436">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:436" rev="footnote" title="Jump back to footnote 436 in the text">&#8617;</a></p>
+</li>
+<li id="fn:437">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:437" rev="footnote" title="Jump back to footnote 437 in the text">&#8617;</a></p>
+</li>
+<li id="fn:438">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:438" rev="footnote" title="Jump back to footnote 438 in the text">&#8617;</a></p>
+</li>
+<li id="fn:439">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:439" rev="footnote" title="Jump back to footnote 439 in the text">&#8617;</a></p>
+</li>
+<li id="fn:440">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:440" rev="footnote" title="Jump back to footnote 440 in the text">&#8617;</a></p>
+</li>
+<li id="fn:441">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:441" rev="footnote" title="Jump back to footnote 441 in the text">&#8617;</a></p>
+</li>
+<li id="fn:442">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:442" rev="footnote" title="Jump back to footnote 442 in the text">&#8617;</a></p>
+</li>
+<li id="fn:443">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:443" rev="footnote" title="Jump back to footnote 443 in the text">&#8617;</a></p>
+</li>
+<li id="fn:444">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:444" rev="footnote" title="Jump back to footnote 444 in the text">&#8617;</a></p>
+</li>
+<li id="fn:445">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:445" rev="footnote" title="Jump back to footnote 445 in the text">&#8617;</a></p>
+</li>
+<li id="fn:446">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:446" rev="footnote" title="Jump back to footnote 446 in the text">&#8617;</a></p>
+</li>
+<li id="fn:447">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:447" rev="footnote" title="Jump back to footnote 447 in the text">&#8617;</a></p>
+</li>
+<li id="fn:448">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:448" rev="footnote" title="Jump back to footnote 448 in the text">&#8617;</a></p>
+</li>
+<li id="fn:449">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:449" rev="footnote" title="Jump back to footnote 449 in the text">&#8617;</a></p>
+</li>
+<li id="fn:450">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:450" rev="footnote" title="Jump back to footnote 450 in the text">&#8617;</a></p>
+</li>
+<li id="fn:451">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:451" rev="footnote" title="Jump back to footnote 451 in the text">&#8617;</a></p>
+</li>
+<li id="fn:452">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:452" rev="footnote" title="Jump back to footnote 452 in the text">&#8617;</a></p>
+</li>
+<li id="fn:453">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:453" rev="footnote" title="Jump back to footnote 453 in the text">&#8617;</a></p>
+</li>
+<li id="fn:454">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:454" rev="footnote" title="Jump back to footnote 454 in the text">&#8617;</a></p>
+</li>
+<li id="fn:455">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:455" rev="footnote" title="Jump back to footnote 455 in the text">&#8617;</a></p>
+</li>
+<li id="fn:456">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:456" rev="footnote" title="Jump back to footnote 456 in the text">&#8617;</a></p>
+</li>
+<li id="fn:457">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:457" rev="footnote" title="Jump back to footnote 457 in the text">&#8617;</a></p>
+</li>
+<li id="fn:458">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:458" rev="footnote" title="Jump back to footnote 458 in the text">&#8617;</a></p>
+</li>
+<li id="fn:459">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:459" rev="footnote" title="Jump back to footnote 459 in the text">&#8617;</a></p>
+</li>
+<li id="fn:460">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:460" rev="footnote" title="Jump back to footnote 460 in the text">&#8617;</a></p>
+</li>
+<li id="fn:461">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:461" rev="footnote" title="Jump back to footnote 461 in the text">&#8617;</a></p>
+</li>
+<li id="fn:462">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:462" rev="footnote" title="Jump back to footnote 462 in the text">&#8617;</a></p>
+</li>
+<li id="fn:463">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:463" rev="footnote" title="Jump back to footnote 463 in the text">&#8617;</a></p>
+</li>
+<li id="fn:464">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:464" rev="footnote" title="Jump back to footnote 464 in the text">&#8617;</a></p>
+</li>
+<li id="fn:465">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:465" rev="footnote" title="Jump back to footnote 465 in the text">&#8617;</a></p>
+</li>
+<li id="fn:466">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:466" rev="footnote" title="Jump back to footnote 466 in the text">&#8617;</a></p>
+</li>
+<li id="fn:467">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:467" rev="footnote" title="Jump back to footnote 467 in the text">&#8617;</a></p>
+</li>
+<li id="fn:468">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:468" rev="footnote" title="Jump back to footnote 468 in the text">&#8617;</a></p>
+</li>
+<li id="fn:469">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:469" rev="footnote" title="Jump back to footnote 469 in the text">&#8617;</a></p>
+</li>
+<li id="fn:470">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:470" rev="footnote" title="Jump back to footnote 470 in the text">&#8617;</a></p>
+</li>
+<li id="fn:471">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:471" rev="footnote" title="Jump back to footnote 471 in the text">&#8617;</a></p>
+</li>
+<li id="fn:472">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:472" rev="footnote" title="Jump back to footnote 472 in the text">&#8617;</a></p>
+</li>
+<li id="fn:473">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:473" rev="footnote" title="Jump back to footnote 473 in the text">&#8617;</a></p>
+</li>
+<li id="fn:474">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:474" rev="footnote" title="Jump back to footnote 474 in the text">&#8617;</a></p>
+</li>
+<li id="fn:475">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:475" rev="footnote" title="Jump back to footnote 475 in the text">&#8617;</a></p>
+</li>
+<li id="fn:476">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:476" rev="footnote" title="Jump back to footnote 476 in the text">&#8617;</a></p>
+</li>
+<li id="fn:477">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:477" rev="footnote" title="Jump back to footnote 477 in the text">&#8617;</a></p>
+</li>
+<li id="fn:478">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:478" rev="footnote" title="Jump back to footnote 478 in the text">&#8617;</a></p>
+</li>
+<li id="fn:479">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:479" rev="footnote" title="Jump back to footnote 479 in the text">&#8617;</a></p>
+</li>
+<li id="fn:480">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:480" rev="footnote" title="Jump back to footnote 480 in the text">&#8617;</a></p>
+</li>
+<li id="fn:481">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:481" rev="footnote" title="Jump back to footnote 481 in the text">&#8617;</a></p>
+</li>
+<li id="fn:482">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:482" rev="footnote" title="Jump back to footnote 482 in the text">&#8617;</a></p>
+</li>
+<li id="fn:483">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:483" rev="footnote" title="Jump back to footnote 483 in the text">&#8617;</a></p>
+</li>
+<li id="fn:484">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:484" rev="footnote" title="Jump back to footnote 484 in the text">&#8617;</a></p>
+</li>
+<li id="fn:485">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:485" rev="footnote" title="Jump back to footnote 485 in the text">&#8617;</a></p>
+</li>
+<li id="fn:486">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:486" rev="footnote" title="Jump back to footnote 486 in the text">&#8617;</a></p>
+</li>
+<li id="fn:487">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:487" rev="footnote" title="Jump back to footnote 487 in the text">&#8617;</a></p>
+</li>
+<li id="fn:488">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:488" rev="footnote" title="Jump back to footnote 488 in the text">&#8617;</a></p>
+</li>
+<li id="fn:489">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:489" rev="footnote" title="Jump back to footnote 489 in the text">&#8617;</a></p>
+</li>
+<li id="fn:490">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:490" rev="footnote" title="Jump back to footnote 490 in the text">&#8617;</a></p>
+</li>
+<li id="fn:491">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:491" rev="footnote" title="Jump back to footnote 491 in the text">&#8617;</a></p>
+</li>
+<li id="fn:492">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:492" rev="footnote" title="Jump back to footnote 492 in the text">&#8617;</a></p>
+</li>
+<li id="fn:493">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:493" rev="footnote" title="Jump back to footnote 493 in the text">&#8617;</a></p>
+</li>
+<li id="fn:494">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:494" rev="footnote" title="Jump back to footnote 494 in the text">&#8617;</a></p>
+</li>
+<li id="fn:495">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:495" rev="footnote" title="Jump back to footnote 495 in the text">&#8617;</a></p>
+</li>
+<li id="fn:496">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:496" rev="footnote" title="Jump back to footnote 496 in the text">&#8617;</a></p>
+</li>
+<li id="fn:497">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:497" rev="footnote" title="Jump back to footnote 497 in the text">&#8617;</a></p>
+</li>
+<li id="fn:498">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:498" rev="footnote" title="Jump back to footnote 498 in the text">&#8617;</a></p>
+</li>
+<li id="fn:499">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:499" rev="footnote" title="Jump back to footnote 499 in the text">&#8617;</a></p>
+</li>
+<li id="fn:500">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:500" rev="footnote" title="Jump back to footnote 500 in the text">&#8617;</a></p>
+</li>
+<li id="fn:501">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:501" rev="footnote" title="Jump back to footnote 501 in the text">&#8617;</a></p>
+</li>
+<li id="fn:502">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:502" rev="footnote" title="Jump back to footnote 502 in the text">&#8617;</a></p>
+</li>
+<li id="fn:503">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:503" rev="footnote" title="Jump back to footnote 503 in the text">&#8617;</a></p>
+</li>
+<li id="fn:504">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:504" rev="footnote" title="Jump back to footnote 504 in the text">&#8617;</a></p>
+</li>
+<li id="fn:505">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:505" rev="footnote" title="Jump back to footnote 505 in the text">&#8617;</a></p>
+</li>
+<li id="fn:506">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:506" rev="footnote" title="Jump back to footnote 506 in the text">&#8617;</a></p>
+</li>
+<li id="fn:507">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:507" rev="footnote" title="Jump back to footnote 507 in the text">&#8617;</a></p>
+</li>
+<li id="fn:508">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:508" rev="footnote" title="Jump back to footnote 508 in the text">&#8617;</a></p>
+</li>
+<li id="fn:509">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:509" rev="footnote" title="Jump back to footnote 509 in the text">&#8617;</a></p>
+</li>
+<li id="fn:510">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:510" rev="footnote" title="Jump back to footnote 510 in the text">&#8617;</a></p>
+</li>
+<li id="fn:511">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:511" rev="footnote" title="Jump back to footnote 511 in the text">&#8617;</a></p>
+</li>
+<li id="fn:512">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:512" rev="footnote" title="Jump back to footnote 512 in the text">&#8617;</a></p>
+</li>
+<li id="fn:513">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:513" rev="footnote" title="Jump back to footnote 513 in the text">&#8617;</a></p>
+</li>
+<li id="fn:514">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:514" rev="footnote" title="Jump back to footnote 514 in the text">&#8617;</a></p>
+</li>
+<li id="fn:515">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:515" rev="footnote" title="Jump back to footnote 515 in the text">&#8617;</a></p>
+</li>
+<li id="fn:516">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:516" rev="footnote" title="Jump back to footnote 516 in the text">&#8617;</a></p>
+</li>
+<li id="fn:517">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:517" rev="footnote" title="Jump back to footnote 517 in the text">&#8617;</a></p>
+</li>
+<li id="fn:518">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:518" rev="footnote" title="Jump back to footnote 518 in the text">&#8617;</a></p>
+</li>
+<li id="fn:519">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:519" rev="footnote" title="Jump back to footnote 519 in the text">&#8617;</a></p>
+</li>
+<li id="fn:520">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:520" rev="footnote" title="Jump back to footnote 520 in the text">&#8617;</a></p>
+</li>
+<li id="fn:521">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:521" rev="footnote" title="Jump back to footnote 521 in the text">&#8617;</a></p>
+</li>
+<li id="fn:522">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:522" rev="footnote" title="Jump back to footnote 522 in the text">&#8617;</a></p>
+</li>
+<li id="fn:523">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:523" rev="footnote" title="Jump back to footnote 523 in the text">&#8617;</a></p>
+</li>
+<li id="fn:524">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:524" rev="footnote" title="Jump back to footnote 524 in the text">&#8617;</a></p>
+</li>
+<li id="fn:525">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:525" rev="footnote" title="Jump back to footnote 525 in the text">&#8617;</a></p>
+</li>
+<li id="fn:526">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:526" rev="footnote" title="Jump back to footnote 526 in the text">&#8617;</a></p>
+</li>
+<li id="fn:527">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:527" rev="footnote" title="Jump back to footnote 527 in the text">&#8617;</a></p>
+</li>
+<li id="fn:528">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:528" rev="footnote" title="Jump back to footnote 528 in the text">&#8617;</a></p>
+</li>
+<li id="fn:529">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:529" rev="footnote" title="Jump back to footnote 529 in the text">&#8617;</a></p>
+</li>
+<li id="fn:530">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:530" rev="footnote" title="Jump back to footnote 530 in the text">&#8617;</a></p>
+</li>
+<li id="fn:531">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:531" rev="footnote" title="Jump back to footnote 531 in the text">&#8617;</a></p>
+</li>
+<li id="fn:532">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:532" rev="footnote" title="Jump back to footnote 532 in the text">&#8617;</a></p>
+</li>
+<li id="fn:533">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:533" rev="footnote" title="Jump back to footnote 533 in the text">&#8617;</a></p>
+</li>
+<li id="fn:534">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:534" rev="footnote" title="Jump back to footnote 534 in the text">&#8617;</a></p>
+</li>
+<li id="fn:535">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:535" rev="footnote" title="Jump back to footnote 535 in the text">&#8617;</a></p>
+</li>
+<li id="fn:536">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:536" rev="footnote" title="Jump back to footnote 536 in the text">&#8617;</a></p>
+</li>
+<li id="fn:537">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:537" rev="footnote" title="Jump back to footnote 537 in the text">&#8617;</a></p>
+</li>
+<li id="fn:538">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:538" rev="footnote" title="Jump back to footnote 538 in the text">&#8617;</a></p>
+</li>
+<li id="fn:539">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:539" rev="footnote" title="Jump back to footnote 539 in the text">&#8617;</a></p>
+</li>
+<li id="fn:540">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:540" rev="footnote" title="Jump back to footnote 540 in the text">&#8617;</a></p>
+</li>
+<li id="fn:541">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:541" rev="footnote" title="Jump back to footnote 541 in the text">&#8617;</a></p>
+</li>
+<li id="fn:542">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:542" rev="footnote" title="Jump back to footnote 542 in the text">&#8617;</a></p>
+</li>
+<li id="fn:543">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:543" rev="footnote" title="Jump back to footnote 543 in the text">&#8617;</a></p>
+</li>
+<li id="fn:544">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:544" rev="footnote" title="Jump back to footnote 544 in the text">&#8617;</a></p>
+</li>
+<li id="fn:545">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:545" rev="footnote" title="Jump back to footnote 545 in the text">&#8617;</a></p>
+</li>
+<li id="fn:546">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:546" rev="footnote" title="Jump back to footnote 546 in the text">&#8617;</a></p>
+</li>
+<li id="fn:547">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:547" rev="footnote" title="Jump back to footnote 547 in the text">&#8617;</a></p>
+</li>
+<li id="fn:548">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:548" rev="footnote" title="Jump back to footnote 548 in the text">&#8617;</a></p>
+</li>
+<li id="fn:549">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:549" rev="footnote" title="Jump back to footnote 549 in the text">&#8617;</a></p>
+</li>
+<li id="fn:550">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:550" rev="footnote" title="Jump back to footnote 550 in the text">&#8617;</a></p>
+</li>
+<li id="fn:551">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:551" rev="footnote" title="Jump back to footnote 551 in the text">&#8617;</a></p>
+</li>
+<li id="fn:552">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:552" rev="footnote" title="Jump back to footnote 552 in the text">&#8617;</a></p>
+</li>
+<li id="fn:553">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:553" rev="footnote" title="Jump back to footnote 553 in the text">&#8617;</a></p>
+</li>
+<li id="fn:554">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:554" rev="footnote" title="Jump back to footnote 554 in the text">&#8617;</a></p>
+</li>
+<li id="fn:555">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:555" rev="footnote" title="Jump back to footnote 555 in the text">&#8617;</a></p>
+</li>
+<li id="fn:556">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:556" rev="footnote" title="Jump back to footnote 556 in the text">&#8617;</a></p>
+</li>
+<li id="fn:557">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:557" rev="footnote" title="Jump back to footnote 557 in the text">&#8617;</a></p>
+</li>
+<li id="fn:558">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:558" rev="footnote" title="Jump back to footnote 558 in the text">&#8617;</a></p>
+</li>
+<li id="fn:559">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:559" rev="footnote" title="Jump back to footnote 559 in the text">&#8617;</a></p>
+</li>
+<li id="fn:560">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:560" rev="footnote" title="Jump back to footnote 560 in the text">&#8617;</a></p>
+</li>
+<li id="fn:561">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:561" rev="footnote" title="Jump back to footnote 561 in the text">&#8617;</a></p>
+</li>
+<li id="fn:562">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:562" rev="footnote" title="Jump back to footnote 562 in the text">&#8617;</a></p>
+</li>
+<li id="fn:563">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:563" rev="footnote" title="Jump back to footnote 563 in the text">&#8617;</a></p>
+</li>
+<li id="fn:564">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:564" rev="footnote" title="Jump back to footnote 564 in the text">&#8617;</a></p>
+</li>
+<li id="fn:565">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:565" rev="footnote" title="Jump back to footnote 565 in the text">&#8617;</a></p>
+</li>
+<li id="fn:566">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:566" rev="footnote" title="Jump back to footnote 566 in the text">&#8617;</a></p>
+</li>
+<li id="fn:567">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:567" rev="footnote" title="Jump back to footnote 567 in the text">&#8617;</a></p>
+</li>
+<li id="fn:568">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:568" rev="footnote" title="Jump back to footnote 568 in the text">&#8617;</a></p>
+</li>
+<li id="fn:569">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:569" rev="footnote" title="Jump back to footnote 569 in the text">&#8617;</a></p>
+</li>
+<li id="fn:570">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:570" rev="footnote" title="Jump back to footnote 570 in the text">&#8617;</a></p>
+</li>
+<li id="fn:571">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:571" rev="footnote" title="Jump back to footnote 571 in the text">&#8617;</a></p>
+</li>
+<li id="fn:572">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:572" rev="footnote" title="Jump back to footnote 572 in the text">&#8617;</a></p>
+</li>
+<li id="fn:573">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:573" rev="footnote" title="Jump back to footnote 573 in the text">&#8617;</a></p>
+</li>
+<li id="fn:574">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:574" rev="footnote" title="Jump back to footnote 574 in the text">&#8617;</a></p>
+</li>
+<li id="fn:575">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:575" rev="footnote" title="Jump back to footnote 575 in the text">&#8617;</a></p>
+</li>
+<li id="fn:576">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:576" rev="footnote" title="Jump back to footnote 576 in the text">&#8617;</a></p>
+</li>
+<li id="fn:577">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:577" rev="footnote" title="Jump back to footnote 577 in the text">&#8617;</a></p>
+</li>
+<li id="fn:578">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:578" rev="footnote" title="Jump back to footnote 578 in the text">&#8617;</a></p>
+</li>
+<li id="fn:579">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:579" rev="footnote" title="Jump back to footnote 579 in the text">&#8617;</a></p>
+</li>
+<li id="fn:580">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:580" rev="footnote" title="Jump back to footnote 580 in the text">&#8617;</a></p>
+</li>
+<li id="fn:581">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:581" rev="footnote" title="Jump back to footnote 581 in the text">&#8617;</a></p>
+</li>
+<li id="fn:582">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:582" rev="footnote" title="Jump back to footnote 582 in the text">&#8617;</a></p>
+</li>
+<li id="fn:583">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:583" rev="footnote" title="Jump back to footnote 583 in the text">&#8617;</a></p>
+</li>
+<li id="fn:584">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:584" rev="footnote" title="Jump back to footnote 584 in the text">&#8617;</a></p>
+</li>
+<li id="fn:585">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:585" rev="footnote" title="Jump back to footnote 585 in the text">&#8617;</a></p>
+</li>
+<li id="fn:586">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:586" rev="footnote" title="Jump back to footnote 586 in the text">&#8617;</a></p>
+</li>
+<li id="fn:587">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:587" rev="footnote" title="Jump back to footnote 587 in the text">&#8617;</a></p>
+</li>
+<li id="fn:588">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:588" rev="footnote" title="Jump back to footnote 588 in the text">&#8617;</a></p>
+</li>
+<li id="fn:589">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:589" rev="footnote" title="Jump back to footnote 589 in the text">&#8617;</a></p>
+</li>
+<li id="fn:590">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:590" rev="footnote" title="Jump back to footnote 590 in the text">&#8617;</a></p>
+</li>
+<li id="fn:591">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:591" rev="footnote" title="Jump back to footnote 591 in the text">&#8617;</a></p>
+</li>
+<li id="fn:592">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:592" rev="footnote" title="Jump back to footnote 592 in the text">&#8617;</a></p>
+</li>
+<li id="fn:593">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:593" rev="footnote" title="Jump back to footnote 593 in the text">&#8617;</a></p>
+</li>
+<li id="fn:594">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:594" rev="footnote" title="Jump back to footnote 594 in the text">&#8617;</a></p>
+</li>
+<li id="fn:595">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:595" rev="footnote" title="Jump back to footnote 595 in the text">&#8617;</a></p>
+</li>
+<li id="fn:596">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:596" rev="footnote" title="Jump back to footnote 596 in the text">&#8617;</a></p>
+</li>
+<li id="fn:597">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:597" rev="footnote" title="Jump back to footnote 597 in the text">&#8617;</a></p>
+</li>
+<li id="fn:598">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:598" rev="footnote" title="Jump back to footnote 598 in the text">&#8617;</a></p>
+</li>
+<li id="fn:599">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:599" rev="footnote" title="Jump back to footnote 599 in the text">&#8617;</a></p>
+</li>
+<li id="fn:600">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:600" rev="footnote" title="Jump back to footnote 600 in the text">&#8617;</a></p>
+</li>
+<li id="fn:601">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:601" rev="footnote" title="Jump back to footnote 601 in the text">&#8617;</a></p>
+</li>
+<li id="fn:602">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:602" rev="footnote" title="Jump back to footnote 602 in the text">&#8617;</a></p>
+</li>
+<li id="fn:603">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:603" rev="footnote" title="Jump back to footnote 603 in the text">&#8617;</a></p>
+</li>
+<li id="fn:604">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:604" rev="footnote" title="Jump back to footnote 604 in the text">&#8617;</a></p>
+</li>
+<li id="fn:605">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:605" rev="footnote" title="Jump back to footnote 605 in the text">&#8617;</a></p>
+</li>
+<li id="fn:606">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:606" rev="footnote" title="Jump back to footnote 606 in the text">&#8617;</a></p>
+</li>
+<li id="fn:607">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:607" rev="footnote" title="Jump back to footnote 607 in the text">&#8617;</a></p>
+</li>
+<li id="fn:608">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:608" rev="footnote" title="Jump back to footnote 608 in the text">&#8617;</a></p>
+</li>
+<li id="fn:609">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:609" rev="footnote" title="Jump back to footnote 609 in the text">&#8617;</a></p>
+</li>
+<li id="fn:610">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:610" rev="footnote" title="Jump back to footnote 610 in the text">&#8617;</a></p>
+</li>
+<li id="fn:611">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:611" rev="footnote" title="Jump back to footnote 611 in the text">&#8617;</a></p>
+</li>
+<li id="fn:612">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:612" rev="footnote" title="Jump back to footnote 612 in the text">&#8617;</a></p>
+</li>
+<li id="fn:613">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:613" rev="footnote" title="Jump back to footnote 613 in the text">&#8617;</a></p>
+</li>
+<li id="fn:614">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:614" rev="footnote" title="Jump back to footnote 614 in the text">&#8617;</a></p>
+</li>
+<li id="fn:615">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:615" rev="footnote" title="Jump back to footnote 615 in the text">&#8617;</a></p>
+</li>
+<li id="fn:616">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:616" rev="footnote" title="Jump back to footnote 616 in the text">&#8617;</a></p>
+</li>
+<li id="fn:617">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:617" rev="footnote" title="Jump back to footnote 617 in the text">&#8617;</a></p>
+</li>
+<li id="fn:618">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:618" rev="footnote" title="Jump back to footnote 618 in the text">&#8617;</a></p>
+</li>
+<li id="fn:619">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:619" rev="footnote" title="Jump back to footnote 619 in the text">&#8617;</a></p>
+</li>
+<li id="fn:620">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:620" rev="footnote" title="Jump back to footnote 620 in the text">&#8617;</a></p>
+</li>
+<li id="fn:621">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:621" rev="footnote" title="Jump back to footnote 621 in the text">&#8617;</a></p>
+</li>
+<li id="fn:622">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:622" rev="footnote" title="Jump back to footnote 622 in the text">&#8617;</a></p>
+</li>
+<li id="fn:623">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:623" rev="footnote" title="Jump back to footnote 623 in the text">&#8617;</a></p>
+</li>
+<li id="fn:624">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:624" rev="footnote" title="Jump back to footnote 624 in the text">&#8617;</a></p>
+</li>
+<li id="fn:625">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:625" rev="footnote" title="Jump back to footnote 625 in the text">&#8617;</a></p>
+</li>
+<li id="fn:626">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:626" rev="footnote" title="Jump back to footnote 626 in the text">&#8617;</a></p>
+</li>
+<li id="fn:627">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:627" rev="footnote" title="Jump back to footnote 627 in the text">&#8617;</a></p>
+</li>
+<li id="fn:628">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:628" rev="footnote" title="Jump back to footnote 628 in the text">&#8617;</a></p>
+</li>
+<li id="fn:629">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:629" rev="footnote" title="Jump back to footnote 629 in the text">&#8617;</a></p>
+</li>
+<li id="fn:630">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:630" rev="footnote" title="Jump back to footnote 630 in the text">&#8617;</a></p>
+</li>
+<li id="fn:631">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:631" rev="footnote" title="Jump back to footnote 631 in the text">&#8617;</a></p>
+</li>
+<li id="fn:632">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:632" rev="footnote" title="Jump back to footnote 632 in the text">&#8617;</a></p>
+</li>
+<li id="fn:633">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:633" rev="footnote" title="Jump back to footnote 633 in the text">&#8617;</a></p>
+</li>
+<li id="fn:634">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:634" rev="footnote" title="Jump back to footnote 634 in the text">&#8617;</a></p>
+</li>
+<li id="fn:635">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:635" rev="footnote" title="Jump back to footnote 635 in the text">&#8617;</a></p>
+</li>
+<li id="fn:636">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:636" rev="footnote" title="Jump back to footnote 636 in the text">&#8617;</a></p>
+</li>
+<li id="fn:637">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:637" rev="footnote" title="Jump back to footnote 637 in the text">&#8617;</a></p>
+</li>
+<li id="fn:638">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:638" rev="footnote" title="Jump back to footnote 638 in the text">&#8617;</a></p>
+</li>
+<li id="fn:639">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:639" rev="footnote" title="Jump back to footnote 639 in the text">&#8617;</a></p>
+</li>
+<li id="fn:640">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:640" rev="footnote" title="Jump back to footnote 640 in the text">&#8617;</a></p>
+</li>
+<li id="fn:641">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:641" rev="footnote" title="Jump back to footnote 641 in the text">&#8617;</a></p>
+</li>
+<li id="fn:642">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:642" rev="footnote" title="Jump back to footnote 642 in the text">&#8617;</a></p>
+</li>
+<li id="fn:643">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:643" rev="footnote" title="Jump back to footnote 643 in the text">&#8617;</a></p>
+</li>
+<li id="fn:644">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:644" rev="footnote" title="Jump back to footnote 644 in the text">&#8617;</a></p>
+</li>
+<li id="fn:645">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:645" rev="footnote" title="Jump back to footnote 645 in the text">&#8617;</a></p>
+</li>
+<li id="fn:646">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:646" rev="footnote" title="Jump back to footnote 646 in the text">&#8617;</a></p>
+</li>
+<li id="fn:647">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:647" rev="footnote" title="Jump back to footnote 647 in the text">&#8617;</a></p>
+</li>
+<li id="fn:648">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:648" rev="footnote" title="Jump back to footnote 648 in the text">&#8617;</a></p>
+</li>
+<li id="fn:649">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:649" rev="footnote" title="Jump back to footnote 649 in the text">&#8617;</a></p>
+</li>
+<li id="fn:650">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:650" rev="footnote" title="Jump back to footnote 650 in the text">&#8617;</a></p>
+</li>
+<li id="fn:651">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:651" rev="footnote" title="Jump back to footnote 651 in the text">&#8617;</a></p>
+</li>
+<li id="fn:652">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:652" rev="footnote" title="Jump back to footnote 652 in the text">&#8617;</a></p>
+</li>
+<li id="fn:653">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:653" rev="footnote" title="Jump back to footnote 653 in the text">&#8617;</a></p>
+</li>
+<li id="fn:654">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:654" rev="footnote" title="Jump back to footnote 654 in the text">&#8617;</a></p>
+</li>
+<li id="fn:655">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:655" rev="footnote" title="Jump back to footnote 655 in the text">&#8617;</a></p>
+</li>
+<li id="fn:656">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:656" rev="footnote" title="Jump back to footnote 656 in the text">&#8617;</a></p>
+</li>
+<li id="fn:657">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:657" rev="footnote" title="Jump back to footnote 657 in the text">&#8617;</a></p>
+</li>
+<li id="fn:658">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:658" rev="footnote" title="Jump back to footnote 658 in the text">&#8617;</a></p>
+</li>
+<li id="fn:659">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:659" rev="footnote" title="Jump back to footnote 659 in the text">&#8617;</a></p>
+</li>
+<li id="fn:660">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:660" rev="footnote" title="Jump back to footnote 660 in the text">&#8617;</a></p>
+</li>
+<li id="fn:661">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:661" rev="footnote" title="Jump back to footnote 661 in the text">&#8617;</a></p>
+</li>
+<li id="fn:662">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:662" rev="footnote" title="Jump back to footnote 662 in the text">&#8617;</a></p>
+</li>
+<li id="fn:663">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:663" rev="footnote" title="Jump back to footnote 663 in the text">&#8617;</a></p>
+</li>
+<li id="fn:664">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:664" rev="footnote" title="Jump back to footnote 664 in the text">&#8617;</a></p>
+</li>
+<li id="fn:665">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:665" rev="footnote" title="Jump back to footnote 665 in the text">&#8617;</a></p>
+</li>
+<li id="fn:666">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:666" rev="footnote" title="Jump back to footnote 666 in the text">&#8617;</a></p>
+</li>
+<li id="fn:667">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:667" rev="footnote" title="Jump back to footnote 667 in the text">&#8617;</a></p>
+</li>
+<li id="fn:668">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:668" rev="footnote" title="Jump back to footnote 668 in the text">&#8617;</a></p>
+</li>
+<li id="fn:669">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:669" rev="footnote" title="Jump back to footnote 669 in the text">&#8617;</a></p>
+</li>
+<li id="fn:670">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:670" rev="footnote" title="Jump back to footnote 670 in the text">&#8617;</a></p>
+</li>
+<li id="fn:671">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:671" rev="footnote" title="Jump back to footnote 671 in the text">&#8617;</a></p>
+</li>
+<li id="fn:672">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:672" rev="footnote" title="Jump back to footnote 672 in the text">&#8617;</a></p>
+</li>
+<li id="fn:673">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:673" rev="footnote" title="Jump back to footnote 673 in the text">&#8617;</a></p>
+</li>
+<li id="fn:674">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:674" rev="footnote" title="Jump back to footnote 674 in the text">&#8617;</a></p>
+</li>
+<li id="fn:675">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:675" rev="footnote" title="Jump back to footnote 675 in the text">&#8617;</a></p>
+</li>
+<li id="fn:676">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:676" rev="footnote" title="Jump back to footnote 676 in the text">&#8617;</a></p>
+</li>
+<li id="fn:677">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:677" rev="footnote" title="Jump back to footnote 677 in the text">&#8617;</a></p>
+</li>
+<li id="fn:678">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:678" rev="footnote" title="Jump back to footnote 678 in the text">&#8617;</a></p>
+</li>
+<li id="fn:679">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:679" rev="footnote" title="Jump back to footnote 679 in the text">&#8617;</a></p>
+</li>
+<li id="fn:680">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:680" rev="footnote" title="Jump back to footnote 680 in the text">&#8617;</a></p>
+</li>
+<li id="fn:681">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:681" rev="footnote" title="Jump back to footnote 681 in the text">&#8617;</a></p>
+</li>
+<li id="fn:682">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:682" rev="footnote" title="Jump back to footnote 682 in the text">&#8617;</a></p>
+</li>
+<li id="fn:683">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:683" rev="footnote" title="Jump back to footnote 683 in the text">&#8617;</a></p>
+</li>
+<li id="fn:684">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:684" rev="footnote" title="Jump back to footnote 684 in the text">&#8617;</a></p>
+</li>
+<li id="fn:685">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:685" rev="footnote" title="Jump back to footnote 685 in the text">&#8617;</a></p>
+</li>
+<li id="fn:686">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:686" rev="footnote" title="Jump back to footnote 686 in the text">&#8617;</a></p>
+</li>
+<li id="fn:687">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:687" rev="footnote" title="Jump back to footnote 687 in the text">&#8617;</a></p>
+</li>
+<li id="fn:688">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:688" rev="footnote" title="Jump back to footnote 688 in the text">&#8617;</a></p>
+</li>
+<li id="fn:689">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:689" rev="footnote" title="Jump back to footnote 689 in the text">&#8617;</a></p>
+</li>
+<li id="fn:690">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:690" rev="footnote" title="Jump back to footnote 690 in the text">&#8617;</a></p>
+</li>
+<li id="fn:691">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:691" rev="footnote" title="Jump back to footnote 691 in the text">&#8617;</a></p>
+</li>
+<li id="fn:692">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:692" rev="footnote" title="Jump back to footnote 692 in the text">&#8617;</a></p>
+</li>
+<li id="fn:693">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:693" rev="footnote" title="Jump back to footnote 693 in the text">&#8617;</a></p>
+</li>
+<li id="fn:694">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:694" rev="footnote" title="Jump back to footnote 694 in the text">&#8617;</a></p>
+</li>
+<li id="fn:695">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:695" rev="footnote" title="Jump back to footnote 695 in the text">&#8617;</a></p>
+</li>
+<li id="fn:696">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:696" rev="footnote" title="Jump back to footnote 696 in the text">&#8617;</a></p>
+</li>
+<li id="fn:697">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:697" rev="footnote" title="Jump back to footnote 697 in the text">&#8617;</a></p>
+</li>
+<li id="fn:698">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:698" rev="footnote" title="Jump back to footnote 698 in the text">&#8617;</a></p>
+</li>
+<li id="fn:699">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:699" rev="footnote" title="Jump back to footnote 699 in the text">&#8617;</a></p>
+</li>
+<li id="fn:700">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:700" rev="footnote" title="Jump back to footnote 700 in the text">&#8617;</a></p>
+</li>
+<li id="fn:701">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:701" rev="footnote" title="Jump back to footnote 701 in the text">&#8617;</a></p>
+</li>
+<li id="fn:702">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:702" rev="footnote" title="Jump back to footnote 702 in the text">&#8617;</a></p>
+</li>
+<li id="fn:703">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:703" rev="footnote" title="Jump back to footnote 703 in the text">&#8617;</a></p>
+</li>
+<li id="fn:704">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:704" rev="footnote" title="Jump back to footnote 704 in the text">&#8617;</a></p>
+</li>
+<li id="fn:705">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:705" rev="footnote" title="Jump back to footnote 705 in the text">&#8617;</a></p>
+</li>
+<li id="fn:706">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:706" rev="footnote" title="Jump back to footnote 706 in the text">&#8617;</a></p>
+</li>
+<li id="fn:707">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:707" rev="footnote" title="Jump back to footnote 707 in the text">&#8617;</a></p>
+</li>
+<li id="fn:708">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:708" rev="footnote" title="Jump back to footnote 708 in the text">&#8617;</a></p>
+</li>
+<li id="fn:709">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:709" rev="footnote" title="Jump back to footnote 709 in the text">&#8617;</a></p>
+</li>
+<li id="fn:710">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:710" rev="footnote" title="Jump back to footnote 710 in the text">&#8617;</a></p>
+</li>
+<li id="fn:711">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:711" rev="footnote" title="Jump back to footnote 711 in the text">&#8617;</a></p>
+</li>
+<li id="fn:712">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:712" rev="footnote" title="Jump back to footnote 712 in the text">&#8617;</a></p>
+</li>
+<li id="fn:713">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:713" rev="footnote" title="Jump back to footnote 713 in the text">&#8617;</a></p>
+</li>
+<li id="fn:714">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:714" rev="footnote" title="Jump back to footnote 714 in the text">&#8617;</a></p>
+</li>
+<li id="fn:715">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:715" rev="footnote" title="Jump back to footnote 715 in the text">&#8617;</a></p>
+</li>
+<li id="fn:716">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:716" rev="footnote" title="Jump back to footnote 716 in the text">&#8617;</a></p>
+</li>
+<li id="fn:717">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:717" rev="footnote" title="Jump back to footnote 717 in the text">&#8617;</a></p>
+</li>
+<li id="fn:718">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:718" rev="footnote" title="Jump back to footnote 718 in the text">&#8617;</a></p>
+</li>
+<li id="fn:719">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:719" rev="footnote" title="Jump back to footnote 719 in the text">&#8617;</a></p>
+</li>
+<li id="fn:720">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:720" rev="footnote" title="Jump back to footnote 720 in the text">&#8617;</a></p>
+</li>
+<li id="fn:721">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:721" rev="footnote" title="Jump back to footnote 721 in the text">&#8617;</a></p>
+</li>
+<li id="fn:722">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:722" rev="footnote" title="Jump back to footnote 722 in the text">&#8617;</a></p>
+</li>
+<li id="fn:723">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:723" rev="footnote" title="Jump back to footnote 723 in the text">&#8617;</a></p>
+</li>
+<li id="fn:724">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:724" rev="footnote" title="Jump back to footnote 724 in the text">&#8617;</a></p>
+</li>
+<li id="fn:725">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:725" rev="footnote" title="Jump back to footnote 725 in the text">&#8617;</a></p>
+</li>
+<li id="fn:726">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:726" rev="footnote" title="Jump back to footnote 726 in the text">&#8617;</a></p>
+</li>
+<li id="fn:727">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:727" rev="footnote" title="Jump back to footnote 727 in the text">&#8617;</a></p>
+</li>
+<li id="fn:728">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:728" rev="footnote" title="Jump back to footnote 728 in the text">&#8617;</a></p>
+</li>
+<li id="fn:729">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:729" rev="footnote" title="Jump back to footnote 729 in the text">&#8617;</a></p>
+</li>
+<li id="fn:730">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:730" rev="footnote" title="Jump back to footnote 730 in the text">&#8617;</a></p>
+</li>
+<li id="fn:731">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:731" rev="footnote" title="Jump back to footnote 731 in the text">&#8617;</a></p>
+</li>
+<li id="fn:732">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:732" rev="footnote" title="Jump back to footnote 732 in the text">&#8617;</a></p>
+</li>
+<li id="fn:733">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:733" rev="footnote" title="Jump back to footnote 733 in the text">&#8617;</a></p>
+</li>
+<li id="fn:734">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:734" rev="footnote" title="Jump back to footnote 734 in the text">&#8617;</a></p>
+</li>
+<li id="fn:735">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:735" rev="footnote" title="Jump back to footnote 735 in the text">&#8617;</a></p>
+</li>
+<li id="fn:736">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:736" rev="footnote" title="Jump back to footnote 736 in the text">&#8617;</a></p>
+</li>
+<li id="fn:737">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:737" rev="footnote" title="Jump back to footnote 737 in the text">&#8617;</a></p>
+</li>
+<li id="fn:738">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:738" rev="footnote" title="Jump back to footnote 738 in the text">&#8617;</a></p>
+</li>
+<li id="fn:739">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:739" rev="footnote" title="Jump back to footnote 739 in the text">&#8617;</a></p>
+</li>
+<li id="fn:740">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:740" rev="footnote" title="Jump back to footnote 740 in the text">&#8617;</a></p>
+</li>
+<li id="fn:741">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:741" rev="footnote" title="Jump back to footnote 741 in the text">&#8617;</a></p>
+</li>
+<li id="fn:742">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:742" rev="footnote" title="Jump back to footnote 742 in the text">&#8617;</a></p>
+</li>
+<li id="fn:743">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:743" rev="footnote" title="Jump back to footnote 743 in the text">&#8617;</a></p>
+</li>
+<li id="fn:744">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:744" rev="footnote" title="Jump back to footnote 744 in the text">&#8617;</a></p>
+</li>
+<li id="fn:745">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:745" rev="footnote" title="Jump back to footnote 745 in the text">&#8617;</a></p>
+</li>
+<li id="fn:746">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:746" rev="footnote" title="Jump back to footnote 746 in the text">&#8617;</a></p>
+</li>
+<li id="fn:747">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:747" rev="footnote" title="Jump back to footnote 747 in the text">&#8617;</a></p>
+</li>
+<li id="fn:748">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:748" rev="footnote" title="Jump back to footnote 748 in the text">&#8617;</a></p>
+</li>
+<li id="fn:749">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:749" rev="footnote" title="Jump back to footnote 749 in the text">&#8617;</a></p>
+</li>
+<li id="fn:750">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:750" rev="footnote" title="Jump back to footnote 750 in the text">&#8617;</a></p>
+</li>
+<li id="fn:751">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:751" rev="footnote" title="Jump back to footnote 751 in the text">&#8617;</a></p>
+</li>
+<li id="fn:752">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:752" rev="footnote" title="Jump back to footnote 752 in the text">&#8617;</a></p>
+</li>
+<li id="fn:753">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:753" rev="footnote" title="Jump back to footnote 753 in the text">&#8617;</a></p>
+</li>
+<li id="fn:754">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:754" rev="footnote" title="Jump back to footnote 754 in the text">&#8617;</a></p>
+</li>
+<li id="fn:755">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:755" rev="footnote" title="Jump back to footnote 755 in the text">&#8617;</a></p>
+</li>
+<li id="fn:756">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:756" rev="footnote" title="Jump back to footnote 756 in the text">&#8617;</a></p>
+</li>
+<li id="fn:757">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:757" rev="footnote" title="Jump back to footnote 757 in the text">&#8617;</a></p>
+</li>
+<li id="fn:758">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:758" rev="footnote" title="Jump back to footnote 758 in the text">&#8617;</a></p>
+</li>
+<li id="fn:759">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:759" rev="footnote" title="Jump back to footnote 759 in the text">&#8617;</a></p>
+</li>
+<li id="fn:760">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:760" rev="footnote" title="Jump back to footnote 760 in the text">&#8617;</a></p>
+</li>
+<li id="fn:761">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:761" rev="footnote" title="Jump back to footnote 761 in the text">&#8617;</a></p>
+</li>
+<li id="fn:762">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:762" rev="footnote" title="Jump back to footnote 762 in the text">&#8617;</a></p>
+</li>
+<li id="fn:763">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:763" rev="footnote" title="Jump back to footnote 763 in the text">&#8617;</a></p>
+</li>
+<li id="fn:764">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:764" rev="footnote" title="Jump back to footnote 764 in the text">&#8617;</a></p>
+</li>
+<li id="fn:765">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:765" rev="footnote" title="Jump back to footnote 765 in the text">&#8617;</a></p>
+</li>
+<li id="fn:766">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:766" rev="footnote" title="Jump back to footnote 766 in the text">&#8617;</a></p>
+</li>
+<li id="fn:767">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:767" rev="footnote" title="Jump back to footnote 767 in the text">&#8617;</a></p>
+</li>
+<li id="fn:768">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:768" rev="footnote" title="Jump back to footnote 768 in the text">&#8617;</a></p>
+</li>
+<li id="fn:769">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:769" rev="footnote" title="Jump back to footnote 769 in the text">&#8617;</a></p>
+</li>
+<li id="fn:770">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:770" rev="footnote" title="Jump back to footnote 770 in the text">&#8617;</a></p>
+</li>
+<li id="fn:771">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:771" rev="footnote" title="Jump back to footnote 771 in the text">&#8617;</a></p>
+</li>
+<li id="fn:772">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:772" rev="footnote" title="Jump back to footnote 772 in the text">&#8617;</a></p>
+</li>
+<li id="fn:773">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:773" rev="footnote" title="Jump back to footnote 773 in the text">&#8617;</a></p>
+</li>
+<li id="fn:774">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:774" rev="footnote" title="Jump back to footnote 774 in the text">&#8617;</a></p>
+</li>
+<li id="fn:775">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:775" rev="footnote" title="Jump back to footnote 775 in the text">&#8617;</a></p>
+</li>
+<li id="fn:776">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:776" rev="footnote" title="Jump back to footnote 776 in the text">&#8617;</a></p>
+</li>
+<li id="fn:777">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:777" rev="footnote" title="Jump back to footnote 777 in the text">&#8617;</a></p>
+</li>
+<li id="fn:778">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:778" rev="footnote" title="Jump back to footnote 778 in the text">&#8617;</a></p>
+</li>
+<li id="fn:779">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:779" rev="footnote" title="Jump back to footnote 779 in the text">&#8617;</a></p>
+</li>
+<li id="fn:780">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:780" rev="footnote" title="Jump back to footnote 780 in the text">&#8617;</a></p>
+</li>
+<li id="fn:781">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:781" rev="footnote" title="Jump back to footnote 781 in the text">&#8617;</a></p>
+</li>
+<li id="fn:782">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:782" rev="footnote" title="Jump back to footnote 782 in the text">&#8617;</a></p>
+</li>
+<li id="fn:783">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:783" rev="footnote" title="Jump back to footnote 783 in the text">&#8617;</a></p>
+</li>
+<li id="fn:784">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:784" rev="footnote" title="Jump back to footnote 784 in the text">&#8617;</a></p>
+</li>
+<li id="fn:785">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:785" rev="footnote" title="Jump back to footnote 785 in the text">&#8617;</a></p>
+</li>
+<li id="fn:786">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:786" rev="footnote" title="Jump back to footnote 786 in the text">&#8617;</a></p>
+</li>
+<li id="fn:787">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:787" rev="footnote" title="Jump back to footnote 787 in the text">&#8617;</a></p>
+</li>
+<li id="fn:788">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:788" rev="footnote" title="Jump back to footnote 788 in the text">&#8617;</a></p>
+</li>
+<li id="fn:789">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:789" rev="footnote" title="Jump back to footnote 789 in the text">&#8617;</a></p>
+</li>
+<li id="fn:790">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:790" rev="footnote" title="Jump back to footnote 790 in the text">&#8617;</a></p>
+</li>
+<li id="fn:791">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:791" rev="footnote" title="Jump back to footnote 791 in the text">&#8617;</a></p>
+</li>
+<li id="fn:792">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:792" rev="footnote" title="Jump back to footnote 792 in the text">&#8617;</a></p>
+</li>
+<li id="fn:793">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:793" rev="footnote" title="Jump back to footnote 793 in the text">&#8617;</a></p>
+</li>
+<li id="fn:794">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:794" rev="footnote" title="Jump back to footnote 794 in the text">&#8617;</a></p>
+</li>
+<li id="fn:795">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:795" rev="footnote" title="Jump back to footnote 795 in the text">&#8617;</a></p>
+</li>
+<li id="fn:796">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:796" rev="footnote" title="Jump back to footnote 796 in the text">&#8617;</a></p>
+</li>
+<li id="fn:797">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:797" rev="footnote" title="Jump back to footnote 797 in the text">&#8617;</a></p>
+</li>
+<li id="fn:798">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:798" rev="footnote" title="Jump back to footnote 798 in the text">&#8617;</a></p>
+</li>
+<li id="fn:799">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:799" rev="footnote" title="Jump back to footnote 799 in the text">&#8617;</a></p>
+</li>
+<li id="fn:800">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:800" rev="footnote" title="Jump back to footnote 800 in the text">&#8617;</a></p>
+</li>
+<li id="fn:801">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:801" rev="footnote" title="Jump back to footnote 801 in the text">&#8617;</a></p>
+</li>
+<li id="fn:802">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:802" rev="footnote" title="Jump back to footnote 802 in the text">&#8617;</a></p>
+</li>
+<li id="fn:803">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:803" rev="footnote" title="Jump back to footnote 803 in the text">&#8617;</a></p>
+</li>
+<li id="fn:804">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:804" rev="footnote" title="Jump back to footnote 804 in the text">&#8617;</a></p>
+</li>
+<li id="fn:805">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:805" rev="footnote" title="Jump back to footnote 805 in the text">&#8617;</a></p>
+</li>
+<li id="fn:806">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:806" rev="footnote" title="Jump back to footnote 806 in the text">&#8617;</a></p>
+</li>
+<li id="fn:807">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:807" rev="footnote" title="Jump back to footnote 807 in the text">&#8617;</a></p>
+</li>
+<li id="fn:808">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:808" rev="footnote" title="Jump back to footnote 808 in the text">&#8617;</a></p>
+</li>
+<li id="fn:809">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:809" rev="footnote" title="Jump back to footnote 809 in the text">&#8617;</a></p>
+</li>
+<li id="fn:810">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:810" rev="footnote" title="Jump back to footnote 810 in the text">&#8617;</a></p>
+</li>
+<li id="fn:811">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:811" rev="footnote" title="Jump back to footnote 811 in the text">&#8617;</a></p>
+</li>
+<li id="fn:812">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:812" rev="footnote" title="Jump back to footnote 812 in the text">&#8617;</a></p>
+</li>
+<li id="fn:813">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:813" rev="footnote" title="Jump back to footnote 813 in the text">&#8617;</a></p>
+</li>
+<li id="fn:814">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:814" rev="footnote" title="Jump back to footnote 814 in the text">&#8617;</a></p>
+</li>
+<li id="fn:815">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:815" rev="footnote" title="Jump back to footnote 815 in the text">&#8617;</a></p>
+</li>
+<li id="fn:816">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:816" rev="footnote" title="Jump back to footnote 816 in the text">&#8617;</a></p>
+</li>
+<li id="fn:817">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:817" rev="footnote" title="Jump back to footnote 817 in the text">&#8617;</a></p>
+</li>
+<li id="fn:818">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:818" rev="footnote" title="Jump back to footnote 818 in the text">&#8617;</a></p>
+</li>
+<li id="fn:819">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:819" rev="footnote" title="Jump back to footnote 819 in the text">&#8617;</a></p>
+</li>
+<li id="fn:820">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:820" rev="footnote" title="Jump back to footnote 820 in the text">&#8617;</a></p>
+</li>
+<li id="fn:821">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:821" rev="footnote" title="Jump back to footnote 821 in the text">&#8617;</a></p>
+</li>
+<li id="fn:822">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:822" rev="footnote" title="Jump back to footnote 822 in the text">&#8617;</a></p>
+</li>
+<li id="fn:823">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:823" rev="footnote" title="Jump back to footnote 823 in the text">&#8617;</a></p>
+</li>
+<li id="fn:824">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:824" rev="footnote" title="Jump back to footnote 824 in the text">&#8617;</a></p>
+</li>
+<li id="fn:825">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:825" rev="footnote" title="Jump back to footnote 825 in the text">&#8617;</a></p>
+</li>
+<li id="fn:826">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:826" rev="footnote" title="Jump back to footnote 826 in the text">&#8617;</a></p>
+</li>
+<li id="fn:827">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:827" rev="footnote" title="Jump back to footnote 827 in the text">&#8617;</a></p>
+</li>
+<li id="fn:828">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:828" rev="footnote" title="Jump back to footnote 828 in the text">&#8617;</a></p>
+</li>
+<li id="fn:829">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:829" rev="footnote" title="Jump back to footnote 829 in the text">&#8617;</a></p>
+</li>
+<li id="fn:830">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:830" rev="footnote" title="Jump back to footnote 830 in the text">&#8617;</a></p>
+</li>
+<li id="fn:831">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:831" rev="footnote" title="Jump back to footnote 831 in the text">&#8617;</a></p>
+</li>
+<li id="fn:832">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:832" rev="footnote" title="Jump back to footnote 832 in the text">&#8617;</a></p>
+</li>
+<li id="fn:833">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:833" rev="footnote" title="Jump back to footnote 833 in the text">&#8617;</a></p>
+</li>
+<li id="fn:834">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:834" rev="footnote" title="Jump back to footnote 834 in the text">&#8617;</a></p>
+</li>
+<li id="fn:835">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:835" rev="footnote" title="Jump back to footnote 835 in the text">&#8617;</a></p>
+</li>
+<li id="fn:836">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:836" rev="footnote" title="Jump back to footnote 836 in the text">&#8617;</a></p>
+</li>
+<li id="fn:837">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:837" rev="footnote" title="Jump back to footnote 837 in the text">&#8617;</a></p>
+</li>
+<li id="fn:838">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:838" rev="footnote" title="Jump back to footnote 838 in the text">&#8617;</a></p>
+</li>
+<li id="fn:839">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:839" rev="footnote" title="Jump back to footnote 839 in the text">&#8617;</a></p>
+</li>
+<li id="fn:840">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:840" rev="footnote" title="Jump back to footnote 840 in the text">&#8617;</a></p>
+</li>
+<li id="fn:841">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:841" rev="footnote" title="Jump back to footnote 841 in the text">&#8617;</a></p>
+</li>
+<li id="fn:842">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:842" rev="footnote" title="Jump back to footnote 842 in the text">&#8617;</a></p>
+</li>
+<li id="fn:843">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:843" rev="footnote" title="Jump back to footnote 843 in the text">&#8617;</a></p>
+</li>
+<li id="fn:844">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:844" rev="footnote" title="Jump back to footnote 844 in the text">&#8617;</a></p>
+</li>
+<li id="fn:845">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:845" rev="footnote" title="Jump back to footnote 845 in the text">&#8617;</a></p>
+</li>
+<li id="fn:846">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:846" rev="footnote" title="Jump back to footnote 846 in the text">&#8617;</a></p>
+</li>
+<li id="fn:847">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:847" rev="footnote" title="Jump back to footnote 847 in the text">&#8617;</a></p>
+</li>
+<li id="fn:848">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:848" rev="footnote" title="Jump back to footnote 848 in the text">&#8617;</a></p>
+</li>
+<li id="fn:849">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:849" rev="footnote" title="Jump back to footnote 849 in the text">&#8617;</a></p>
+</li>
+<li id="fn:850">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:850" rev="footnote" title="Jump back to footnote 850 in the text">&#8617;</a></p>
+</li>
+<li id="fn:851">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:851" rev="footnote" title="Jump back to footnote 851 in the text">&#8617;</a></p>
+</li>
+<li id="fn:852">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:852" rev="footnote" title="Jump back to footnote 852 in the text">&#8617;</a></p>
+</li>
+<li id="fn:853">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:853" rev="footnote" title="Jump back to footnote 853 in the text">&#8617;</a></p>
+</li>
+<li id="fn:854">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:854" rev="footnote" title="Jump back to footnote 854 in the text">&#8617;</a></p>
+</li>
+<li id="fn:855">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:855" rev="footnote" title="Jump back to footnote 855 in the text">&#8617;</a></p>
+</li>
+<li id="fn:856">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:856" rev="footnote" title="Jump back to footnote 856 in the text">&#8617;</a></p>
+</li>
+<li id="fn:857">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:857" rev="footnote" title="Jump back to footnote 857 in the text">&#8617;</a></p>
+</li>
+<li id="fn:858">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:858" rev="footnote" title="Jump back to footnote 858 in the text">&#8617;</a></p>
+</li>
+<li id="fn:859">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:859" rev="footnote" title="Jump back to footnote 859 in the text">&#8617;</a></p>
+</li>
+<li id="fn:860">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:860" rev="footnote" title="Jump back to footnote 860 in the text">&#8617;</a></p>
+</li>
+<li id="fn:861">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:861" rev="footnote" title="Jump back to footnote 861 in the text">&#8617;</a></p>
+</li>
+<li id="fn:862">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:862" rev="footnote" title="Jump back to footnote 862 in the text">&#8617;</a></p>
+</li>
+<li id="fn:863">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:863" rev="footnote" title="Jump back to footnote 863 in the text">&#8617;</a></p>
+</li>
+<li id="fn:864">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:864" rev="footnote" title="Jump back to footnote 864 in the text">&#8617;</a></p>
+</li>
+<li id="fn:865">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:865" rev="footnote" title="Jump back to footnote 865 in the text">&#8617;</a></p>
+</li>
+<li id="fn:866">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:866" rev="footnote" title="Jump back to footnote 866 in the text">&#8617;</a></p>
+</li>
+<li id="fn:867">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:867" rev="footnote" title="Jump back to footnote 867 in the text">&#8617;</a></p>
+</li>
+<li id="fn:868">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:868" rev="footnote" title="Jump back to footnote 868 in the text">&#8617;</a></p>
+</li>
+<li id="fn:869">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:869" rev="footnote" title="Jump back to footnote 869 in the text">&#8617;</a></p>
+</li>
+<li id="fn:870">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:870" rev="footnote" title="Jump back to footnote 870 in the text">&#8617;</a></p>
+</li>
+<li id="fn:871">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:871" rev="footnote" title="Jump back to footnote 871 in the text">&#8617;</a></p>
+</li>
+<li id="fn:872">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:872" rev="footnote" title="Jump back to footnote 872 in the text">&#8617;</a></p>
+</li>
+<li id="fn:873">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:873" rev="footnote" title="Jump back to footnote 873 in the text">&#8617;</a></p>
+</li>
+<li id="fn:874">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:874" rev="footnote" title="Jump back to footnote 874 in the text">&#8617;</a></p>
+</li>
+<li id="fn:875">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:875" rev="footnote" title="Jump back to footnote 875 in the text">&#8617;</a></p>
+</li>
+<li id="fn:876">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:876" rev="footnote" title="Jump back to footnote 876 in the text">&#8617;</a></p>
+</li>
+<li id="fn:877">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:877" rev="footnote" title="Jump back to footnote 877 in the text">&#8617;</a></p>
+</li>
+<li id="fn:878">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:878" rev="footnote" title="Jump back to footnote 878 in the text">&#8617;</a></p>
+</li>
+<li id="fn:879">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:879" rev="footnote" title="Jump back to footnote 879 in the text">&#8617;</a></p>
+</li>
+<li id="fn:880">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:880" rev="footnote" title="Jump back to footnote 880 in the text">&#8617;</a></p>
+</li>
+<li id="fn:881">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:881" rev="footnote" title="Jump back to footnote 881 in the text">&#8617;</a></p>
+</li>
+<li id="fn:882">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:882" rev="footnote" title="Jump back to footnote 882 in the text">&#8617;</a></p>
+</li>
+<li id="fn:883">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:883" rev="footnote" title="Jump back to footnote 883 in the text">&#8617;</a></p>
+</li>
+<li id="fn:884">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:884" rev="footnote" title="Jump back to footnote 884 in the text">&#8617;</a></p>
+</li>
+<li id="fn:885">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:885" rev="footnote" title="Jump back to footnote 885 in the text">&#8617;</a></p>
+</li>
+<li id="fn:886">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:886" rev="footnote" title="Jump back to footnote 886 in the text">&#8617;</a></p>
+</li>
+<li id="fn:887">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:887" rev="footnote" title="Jump back to footnote 887 in the text">&#8617;</a></p>
+</li>
+<li id="fn:888">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:888" rev="footnote" title="Jump back to footnote 888 in the text">&#8617;</a></p>
+</li>
+<li id="fn:889">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:889" rev="footnote" title="Jump back to footnote 889 in the text">&#8617;</a></p>
+</li>
+<li id="fn:890">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:890" rev="footnote" title="Jump back to footnote 890 in the text">&#8617;</a></p>
+</li>
+<li id="fn:891">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:891" rev="footnote" title="Jump back to footnote 891 in the text">&#8617;</a></p>
+</li>
+<li id="fn:892">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:892" rev="footnote" title="Jump back to footnote 892 in the text">&#8617;</a></p>
+</li>
+<li id="fn:893">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:893" rev="footnote" title="Jump back to footnote 893 in the text">&#8617;</a></p>
+</li>
+<li id="fn:894">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:894" rev="footnote" title="Jump back to footnote 894 in the text">&#8617;</a></p>
+</li>
+<li id="fn:895">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:895" rev="footnote" title="Jump back to footnote 895 in the text">&#8617;</a></p>
+</li>
+<li id="fn:896">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:896" rev="footnote" title="Jump back to footnote 896 in the text">&#8617;</a></p>
+</li>
+<li id="fn:897">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:897" rev="footnote" title="Jump back to footnote 897 in the text">&#8617;</a></p>
+</li>
+<li id="fn:898">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:898" rev="footnote" title="Jump back to footnote 898 in the text">&#8617;</a></p>
+</li>
+<li id="fn:899">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:899" rev="footnote" title="Jump back to footnote 899 in the text">&#8617;</a></p>
+</li>
+<li id="fn:900">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:900" rev="footnote" title="Jump back to footnote 900 in the text">&#8617;</a></p>
+</li>
+<li id="fn:901">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:901" rev="footnote" title="Jump back to footnote 901 in the text">&#8617;</a></p>
+</li>
+<li id="fn:902">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:902" rev="footnote" title="Jump back to footnote 902 in the text">&#8617;</a></p>
+</li>
+<li id="fn:903">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:903" rev="footnote" title="Jump back to footnote 903 in the text">&#8617;</a></p>
+</li>
+<li id="fn:904">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:904" rev="footnote" title="Jump back to footnote 904 in the text">&#8617;</a></p>
+</li>
+<li id="fn:905">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:905" rev="footnote" title="Jump back to footnote 905 in the text">&#8617;</a></p>
+</li>
+<li id="fn:906">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:906" rev="footnote" title="Jump back to footnote 906 in the text">&#8617;</a></p>
+</li>
+<li id="fn:907">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:907" rev="footnote" title="Jump back to footnote 907 in the text">&#8617;</a></p>
+</li>
+<li id="fn:908">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:908" rev="footnote" title="Jump back to footnote 908 in the text">&#8617;</a></p>
+</li>
+<li id="fn:909">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:909" rev="footnote" title="Jump back to footnote 909 in the text">&#8617;</a></p>
+</li>
+<li id="fn:910">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:910" rev="footnote" title="Jump back to footnote 910 in the text">&#8617;</a></p>
+</li>
+<li id="fn:911">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:911" rev="footnote" title="Jump back to footnote 911 in the text">&#8617;</a></p>
+</li>
+<li id="fn:912">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:912" rev="footnote" title="Jump back to footnote 912 in the text">&#8617;</a></p>
+</li>
+<li id="fn:913">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:913" rev="footnote" title="Jump back to footnote 913 in the text">&#8617;</a></p>
+</li>
+<li id="fn:914">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:914" rev="footnote" title="Jump back to footnote 914 in the text">&#8617;</a></p>
+</li>
+<li id="fn:915">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:915" rev="footnote" title="Jump back to footnote 915 in the text">&#8617;</a></p>
+</li>
+<li id="fn:916">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:916" rev="footnote" title="Jump back to footnote 916 in the text">&#8617;</a></p>
+</li>
+<li id="fn:917">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:917" rev="footnote" title="Jump back to footnote 917 in the text">&#8617;</a></p>
+</li>
+<li id="fn:918">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:918" rev="footnote" title="Jump back to footnote 918 in the text">&#8617;</a></p>
+</li>
+<li id="fn:919">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:919" rev="footnote" title="Jump back to footnote 919 in the text">&#8617;</a></p>
+</li>
+<li id="fn:920">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:920" rev="footnote" title="Jump back to footnote 920 in the text">&#8617;</a></p>
+</li>
+<li id="fn:921">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:921" rev="footnote" title="Jump back to footnote 921 in the text">&#8617;</a></p>
+</li>
+<li id="fn:922">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:922" rev="footnote" title="Jump back to footnote 922 in the text">&#8617;</a></p>
+</li>
+<li id="fn:923">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:923" rev="footnote" title="Jump back to footnote 923 in the text">&#8617;</a></p>
+</li>
+<li id="fn:924">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:924" rev="footnote" title="Jump back to footnote 924 in the text">&#8617;</a></p>
+</li>
+<li id="fn:925">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:925" rev="footnote" title="Jump back to footnote 925 in the text">&#8617;</a></p>
+</li>
+<li id="fn:926">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:926" rev="footnote" title="Jump back to footnote 926 in the text">&#8617;</a></p>
+</li>
+<li id="fn:927">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:927" rev="footnote" title="Jump back to footnote 927 in the text">&#8617;</a></p>
+</li>
+<li id="fn:928">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:928" rev="footnote" title="Jump back to footnote 928 in the text">&#8617;</a></p>
+</li>
+<li id="fn:929">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:929" rev="footnote" title="Jump back to footnote 929 in the text">&#8617;</a></p>
+</li>
+<li id="fn:930">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:930" rev="footnote" title="Jump back to footnote 930 in the text">&#8617;</a></p>
+</li>
+<li id="fn:931">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:931" rev="footnote" title="Jump back to footnote 931 in the text">&#8617;</a></p>
+</li>
+<li id="fn:932">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:932" rev="footnote" title="Jump back to footnote 932 in the text">&#8617;</a></p>
+</li>
+<li id="fn:933">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:933" rev="footnote" title="Jump back to footnote 933 in the text">&#8617;</a></p>
+</li>
+<li id="fn:934">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:934" rev="footnote" title="Jump back to footnote 934 in the text">&#8617;</a></p>
+</li>
+<li id="fn:935">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:935" rev="footnote" title="Jump back to footnote 935 in the text">&#8617;</a></p>
+</li>
+<li id="fn:936">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:936" rev="footnote" title="Jump back to footnote 936 in the text">&#8617;</a></p>
+</li>
+<li id="fn:937">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:937" rev="footnote" title="Jump back to footnote 937 in the text">&#8617;</a></p>
+</li>
+<li id="fn:938">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:938" rev="footnote" title="Jump back to footnote 938 in the text">&#8617;</a></p>
+</li>
+<li id="fn:939">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:939" rev="footnote" title="Jump back to footnote 939 in the text">&#8617;</a></p>
+</li>
+<li id="fn:940">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:940" rev="footnote" title="Jump back to footnote 940 in the text">&#8617;</a></p>
+</li>
+<li id="fn:941">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:941" rev="footnote" title="Jump back to footnote 941 in the text">&#8617;</a></p>
+</li>
+<li id="fn:942">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:942" rev="footnote" title="Jump back to footnote 942 in the text">&#8617;</a></p>
+</li>
+<li id="fn:943">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:943" rev="footnote" title="Jump back to footnote 943 in the text">&#8617;</a></p>
+</li>
+<li id="fn:944">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:944" rev="footnote" title="Jump back to footnote 944 in the text">&#8617;</a></p>
+</li>
+<li id="fn:945">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:945" rev="footnote" title="Jump back to footnote 945 in the text">&#8617;</a></p>
+</li>
+<li id="fn:946">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:946" rev="footnote" title="Jump back to footnote 946 in the text">&#8617;</a></p>
+</li>
+<li id="fn:947">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:947" rev="footnote" title="Jump back to footnote 947 in the text">&#8617;</a></p>
+</li>
+<li id="fn:948">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:948" rev="footnote" title="Jump back to footnote 948 in the text">&#8617;</a></p>
+</li>
+<li id="fn:949">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:949" rev="footnote" title="Jump back to footnote 949 in the text">&#8617;</a></p>
+</li>
+<li id="fn:950">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:950" rev="footnote" title="Jump back to footnote 950 in the text">&#8617;</a></p>
+</li>
+<li id="fn:951">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:951" rev="footnote" title="Jump back to footnote 951 in the text">&#8617;</a></p>
+</li>
+<li id="fn:952">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:952" rev="footnote" title="Jump back to footnote 952 in the text">&#8617;</a></p>
+</li>
+<li id="fn:953">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:953" rev="footnote" title="Jump back to footnote 953 in the text">&#8617;</a></p>
+</li>
+<li id="fn:954">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:954" rev="footnote" title="Jump back to footnote 954 in the text">&#8617;</a></p>
+</li>
+<li id="fn:955">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:955" rev="footnote" title="Jump back to footnote 955 in the text">&#8617;</a></p>
+</li>
+<li id="fn:956">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:956" rev="footnote" title="Jump back to footnote 956 in the text">&#8617;</a></p>
+</li>
+<li id="fn:957">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:957" rev="footnote" title="Jump back to footnote 957 in the text">&#8617;</a></p>
+</li>
+<li id="fn:958">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:958" rev="footnote" title="Jump back to footnote 958 in the text">&#8617;</a></p>
+</li>
+<li id="fn:959">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:959" rev="footnote" title="Jump back to footnote 959 in the text">&#8617;</a></p>
+</li>
+<li id="fn:960">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:960" rev="footnote" title="Jump back to footnote 960 in the text">&#8617;</a></p>
+</li>
+<li id="fn:961">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:961" rev="footnote" title="Jump back to footnote 961 in the text">&#8617;</a></p>
+</li>
+<li id="fn:962">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:962" rev="footnote" title="Jump back to footnote 962 in the text">&#8617;</a></p>
+</li>
+<li id="fn:963">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:963" rev="footnote" title="Jump back to footnote 963 in the text">&#8617;</a></p>
+</li>
+<li id="fn:964">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:964" rev="footnote" title="Jump back to footnote 964 in the text">&#8617;</a></p>
+</li>
+<li id="fn:965">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:965" rev="footnote" title="Jump back to footnote 965 in the text">&#8617;</a></p>
+</li>
+<li id="fn:966">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:966" rev="footnote" title="Jump back to footnote 966 in the text">&#8617;</a></p>
+</li>
+<li id="fn:967">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:967" rev="footnote" title="Jump back to footnote 967 in the text">&#8617;</a></p>
+</li>
+<li id="fn:968">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:968" rev="footnote" title="Jump back to footnote 968 in the text">&#8617;</a></p>
+</li>
+<li id="fn:969">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:969" rev="footnote" title="Jump back to footnote 969 in the text">&#8617;</a></p>
+</li>
+<li id="fn:970">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:970" rev="footnote" title="Jump back to footnote 970 in the text">&#8617;</a></p>
+</li>
+<li id="fn:971">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:971" rev="footnote" title="Jump back to footnote 971 in the text">&#8617;</a></p>
+</li>
+<li id="fn:972">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:972" rev="footnote" title="Jump back to footnote 972 in the text">&#8617;</a></p>
+</li>
+<li id="fn:973">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:973" rev="footnote" title="Jump back to footnote 973 in the text">&#8617;</a></p>
+</li>
+<li id="fn:974">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:974" rev="footnote" title="Jump back to footnote 974 in the text">&#8617;</a></p>
+</li>
+<li id="fn:975">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:975" rev="footnote" title="Jump back to footnote 975 in the text">&#8617;</a></p>
+</li>
+<li id="fn:976">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:976" rev="footnote" title="Jump back to footnote 976 in the text">&#8617;</a></p>
+</li>
+<li id="fn:977">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:977" rev="footnote" title="Jump back to footnote 977 in the text">&#8617;</a></p>
+</li>
+<li id="fn:978">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:978" rev="footnote" title="Jump back to footnote 978 in the text">&#8617;</a></p>
+</li>
+<li id="fn:979">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:979" rev="footnote" title="Jump back to footnote 979 in the text">&#8617;</a></p>
+</li>
+<li id="fn:980">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:980" rev="footnote" title="Jump back to footnote 980 in the text">&#8617;</a></p>
+</li>
+<li id="fn:981">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:981" rev="footnote" title="Jump back to footnote 981 in the text">&#8617;</a></p>
+</li>
+<li id="fn:982">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:982" rev="footnote" title="Jump back to footnote 982 in the text">&#8617;</a></p>
+</li>
+<li id="fn:983">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:983" rev="footnote" title="Jump back to footnote 983 in the text">&#8617;</a></p>
+</li>
+<li id="fn:984">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:984" rev="footnote" title="Jump back to footnote 984 in the text">&#8617;</a></p>
+</li>
+<li id="fn:985">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:985" rev="footnote" title="Jump back to footnote 985 in the text">&#8617;</a></p>
+</li>
+<li id="fn:986">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:986" rev="footnote" title="Jump back to footnote 986 in the text">&#8617;</a></p>
+</li>
+<li id="fn:987">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:987" rev="footnote" title="Jump back to footnote 987 in the text">&#8617;</a></p>
+</li>
+<li id="fn:988">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:988" rev="footnote" title="Jump back to footnote 988 in the text">&#8617;</a></p>
+</li>
+<li id="fn:989">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:989" rev="footnote" title="Jump back to footnote 989 in the text">&#8617;</a></p>
+</li>
+<li id="fn:990">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:990" rev="footnote" title="Jump back to footnote 990 in the text">&#8617;</a></p>
+</li>
+<li id="fn:991">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:991" rev="footnote" title="Jump back to footnote 991 in the text">&#8617;</a></p>
+</li>
+<li id="fn:992">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:992" rev="footnote" title="Jump back to footnote 992 in the text">&#8617;</a></p>
+</li>
+<li id="fn:993">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:993" rev="footnote" title="Jump back to footnote 993 in the text">&#8617;</a></p>
+</li>
+<li id="fn:994">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:994" rev="footnote" title="Jump back to footnote 994 in the text">&#8617;</a></p>
+</li>
+<li id="fn:995">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:995" rev="footnote" title="Jump back to footnote 995 in the text">&#8617;</a></p>
+</li>
+<li id="fn:996">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:996" rev="footnote" title="Jump back to footnote 996 in the text">&#8617;</a></p>
+</li>
+<li id="fn:997">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:997" rev="footnote" title="Jump back to footnote 997 in the text">&#8617;</a></p>
+</li>
+<li id="fn:998">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:998" rev="footnote" title="Jump back to footnote 998 in the text">&#8617;</a></p>
+</li>
+<li id="fn:999">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:999" rev="footnote" title="Jump back to footnote 999 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1000">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1000" rev="footnote" title="Jump back to footnote 1000 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1001">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1001" rev="footnote" title="Jump back to footnote 1001 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1002">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1002" rev="footnote" title="Jump back to footnote 1002 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1003">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1003" rev="footnote" title="Jump back to footnote 1003 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1004">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1004" rev="footnote" title="Jump back to footnote 1004 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1005">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1005" rev="footnote" title="Jump back to footnote 1005 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1006">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1006" rev="footnote" title="Jump back to footnote 1006 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1007">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1007" rev="footnote" title="Jump back to footnote 1007 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1008">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1008" rev="footnote" title="Jump back to footnote 1008 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1009">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1009" rev="footnote" title="Jump back to footnote 1009 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1010">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1010" rev="footnote" title="Jump back to footnote 1010 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1011">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1011" rev="footnote" title="Jump back to footnote 1011 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1012">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1012" rev="footnote" title="Jump back to footnote 1012 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1013">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1013" rev="footnote" title="Jump back to footnote 1013 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1014">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1014" rev="footnote" title="Jump back to footnote 1014 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1015">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1015" rev="footnote" title="Jump back to footnote 1015 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1016">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1016" rev="footnote" title="Jump back to footnote 1016 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1017">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1017" rev="footnote" title="Jump back to footnote 1017 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1018">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1018" rev="footnote" title="Jump back to footnote 1018 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1019">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1019" rev="footnote" title="Jump back to footnote 1019 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1020">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1020" rev="footnote" title="Jump back to footnote 1020 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1021">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1021" rev="footnote" title="Jump back to footnote 1021 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1022">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1022" rev="footnote" title="Jump back to footnote 1022 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1023">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1023" rev="footnote" title="Jump back to footnote 1023 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1024">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1024" rev="footnote" title="Jump back to footnote 1024 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1025">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1025" rev="footnote" title="Jump back to footnote 1025 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1026">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1026" rev="footnote" title="Jump back to footnote 1026 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1027">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1027" rev="footnote" title="Jump back to footnote 1027 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1028">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1028" rev="footnote" title="Jump back to footnote 1028 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1029">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1029" rev="footnote" title="Jump back to footnote 1029 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1030">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1030" rev="footnote" title="Jump back to footnote 1030 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1031">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1031" rev="footnote" title="Jump back to footnote 1031 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1032">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1032" rev="footnote" title="Jump back to footnote 1032 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1033">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1033" rev="footnote" title="Jump back to footnote 1033 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1034">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1034" rev="footnote" title="Jump back to footnote 1034 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1035">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1035" rev="footnote" title="Jump back to footnote 1035 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1036">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1036" rev="footnote" title="Jump back to footnote 1036 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1037">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1037" rev="footnote" title="Jump back to footnote 1037 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1038">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1038" rev="footnote" title="Jump back to footnote 1038 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1039">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1039" rev="footnote" title="Jump back to footnote 1039 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1040">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1040" rev="footnote" title="Jump back to footnote 1040 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1041">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1041" rev="footnote" title="Jump back to footnote 1041 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1042">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1042" rev="footnote" title="Jump back to footnote 1042 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1043">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1043" rev="footnote" title="Jump back to footnote 1043 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1044">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1044" rev="footnote" title="Jump back to footnote 1044 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1045">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1045" rev="footnote" title="Jump back to footnote 1045 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1046">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1046" rev="footnote" title="Jump back to footnote 1046 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1047">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1047" rev="footnote" title="Jump back to footnote 1047 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1048">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1048" rev="footnote" title="Jump back to footnote 1048 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1049">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1049" rev="footnote" title="Jump back to footnote 1049 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1050">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1050" rev="footnote" title="Jump back to footnote 1050 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1051">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1051" rev="footnote" title="Jump back to footnote 1051 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1052">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1052" rev="footnote" title="Jump back to footnote 1052 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1053">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1053" rev="footnote" title="Jump back to footnote 1053 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1054">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1054" rev="footnote" title="Jump back to footnote 1054 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1055">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1055" rev="footnote" title="Jump back to footnote 1055 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1056">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1056" rev="footnote" title="Jump back to footnote 1056 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1057">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1057" rev="footnote" title="Jump back to footnote 1057 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1058">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1058" rev="footnote" title="Jump back to footnote 1058 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1059">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1059" rev="footnote" title="Jump back to footnote 1059 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1060">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1060" rev="footnote" title="Jump back to footnote 1060 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1061">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1061" rev="footnote" title="Jump back to footnote 1061 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1062">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1062" rev="footnote" title="Jump back to footnote 1062 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1063">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1063" rev="footnote" title="Jump back to footnote 1063 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1064">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1064" rev="footnote" title="Jump back to footnote 1064 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1065">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1065" rev="footnote" title="Jump back to footnote 1065 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1066">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1066" rev="footnote" title="Jump back to footnote 1066 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1067">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1067" rev="footnote" title="Jump back to footnote 1067 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1068">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1068" rev="footnote" title="Jump back to footnote 1068 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1069">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1069" rev="footnote" title="Jump back to footnote 1069 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1070">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1070" rev="footnote" title="Jump back to footnote 1070 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1071">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1071" rev="footnote" title="Jump back to footnote 1071 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1072">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1072" rev="footnote" title="Jump back to footnote 1072 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1073">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1073" rev="footnote" title="Jump back to footnote 1073 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1074">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1074" rev="footnote" title="Jump back to footnote 1074 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1075">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1075" rev="footnote" title="Jump back to footnote 1075 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1076">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1076" rev="footnote" title="Jump back to footnote 1076 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1077">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1077" rev="footnote" title="Jump back to footnote 1077 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1078">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1078" rev="footnote" title="Jump back to footnote 1078 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1079">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1079" rev="footnote" title="Jump back to footnote 1079 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1080">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1080" rev="footnote" title="Jump back to footnote 1080 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1081">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1081" rev="footnote" title="Jump back to footnote 1081 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1082">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1082" rev="footnote" title="Jump back to footnote 1082 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1083">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1083" rev="footnote" title="Jump back to footnote 1083 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1084">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1084" rev="footnote" title="Jump back to footnote 1084 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1085">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1085" rev="footnote" title="Jump back to footnote 1085 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1086">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1086" rev="footnote" title="Jump back to footnote 1086 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1087">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1087" rev="footnote" title="Jump back to footnote 1087 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1088">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1088" rev="footnote" title="Jump back to footnote 1088 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1089">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1089" rev="footnote" title="Jump back to footnote 1089 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1090">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1090" rev="footnote" title="Jump back to footnote 1090 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1091">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1091" rev="footnote" title="Jump back to footnote 1091 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1092">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1092" rev="footnote" title="Jump back to footnote 1092 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1093">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1093" rev="footnote" title="Jump back to footnote 1093 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1094">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1094" rev="footnote" title="Jump back to footnote 1094 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1095">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1095" rev="footnote" title="Jump back to footnote 1095 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1096">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1096" rev="footnote" title="Jump back to footnote 1096 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1097">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1097" rev="footnote" title="Jump back to footnote 1097 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1098">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1098" rev="footnote" title="Jump back to footnote 1098 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1099">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1099" rev="footnote" title="Jump back to footnote 1099 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1100">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1100" rev="footnote" title="Jump back to footnote 1100 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1101">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1101" rev="footnote" title="Jump back to footnote 1101 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1102">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1102" rev="footnote" title="Jump back to footnote 1102 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1103">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1103" rev="footnote" title="Jump back to footnote 1103 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1104">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1104" rev="footnote" title="Jump back to footnote 1104 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1105">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1105" rev="footnote" title="Jump back to footnote 1105 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1106">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1106" rev="footnote" title="Jump back to footnote 1106 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1107">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1107" rev="footnote" title="Jump back to footnote 1107 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1108">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1108" rev="footnote" title="Jump back to footnote 1108 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1109">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1109" rev="footnote" title="Jump back to footnote 1109 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1110">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1110" rev="footnote" title="Jump back to footnote 1110 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1111">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1111" rev="footnote" title="Jump back to footnote 1111 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1112">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1112" rev="footnote" title="Jump back to footnote 1112 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1113">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1113" rev="footnote" title="Jump back to footnote 1113 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1114">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1114" rev="footnote" title="Jump back to footnote 1114 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1115">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1115" rev="footnote" title="Jump back to footnote 1115 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1116">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1116" rev="footnote" title="Jump back to footnote 1116 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1117">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1117" rev="footnote" title="Jump back to footnote 1117 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1118">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1118" rev="footnote" title="Jump back to footnote 1118 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1119">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1119" rev="footnote" title="Jump back to footnote 1119 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1120">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1120" rev="footnote" title="Jump back to footnote 1120 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1121">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1121" rev="footnote" title="Jump back to footnote 1121 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1122">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1122" rev="footnote" title="Jump back to footnote 1122 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1123">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1123" rev="footnote" title="Jump back to footnote 1123 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1124">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1124" rev="footnote" title="Jump back to footnote 1124 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1125">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1125" rev="footnote" title="Jump back to footnote 1125 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1126">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1126" rev="footnote" title="Jump back to footnote 1126 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1127">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1127" rev="footnote" title="Jump back to footnote 1127 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1128">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1128" rev="footnote" title="Jump back to footnote 1128 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1129">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1129" rev="footnote" title="Jump back to footnote 1129 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1130">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1130" rev="footnote" title="Jump back to footnote 1130 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1131">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1131" rev="footnote" title="Jump back to footnote 1131 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1132">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1132" rev="footnote" title="Jump back to footnote 1132 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1133">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1133" rev="footnote" title="Jump back to footnote 1133 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1134">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1134" rev="footnote" title="Jump back to footnote 1134 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1135">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1135" rev="footnote" title="Jump back to footnote 1135 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1136">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1136" rev="footnote" title="Jump back to footnote 1136 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1137">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1137" rev="footnote" title="Jump back to footnote 1137 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1138">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1138" rev="footnote" title="Jump back to footnote 1138 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1139">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1139" rev="footnote" title="Jump back to footnote 1139 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1140">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1140" rev="footnote" title="Jump back to footnote 1140 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1141">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1141" rev="footnote" title="Jump back to footnote 1141 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1142">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1142" rev="footnote" title="Jump back to footnote 1142 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1143">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1143" rev="footnote" title="Jump back to footnote 1143 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1144">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1144" rev="footnote" title="Jump back to footnote 1144 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1145">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1145" rev="footnote" title="Jump back to footnote 1145 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1146">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1146" rev="footnote" title="Jump back to footnote 1146 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1147">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1147" rev="footnote" title="Jump back to footnote 1147 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1148">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1148" rev="footnote" title="Jump back to footnote 1148 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1149">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1149" rev="footnote" title="Jump back to footnote 1149 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1150">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1150" rev="footnote" title="Jump back to footnote 1150 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1151">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1151" rev="footnote" title="Jump back to footnote 1151 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1152">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1152" rev="footnote" title="Jump back to footnote 1152 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1153">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1153" rev="footnote" title="Jump back to footnote 1153 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1154">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1154" rev="footnote" title="Jump back to footnote 1154 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1155">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1155" rev="footnote" title="Jump back to footnote 1155 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1156">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1156" rev="footnote" title="Jump back to footnote 1156 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1157">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1157" rev="footnote" title="Jump back to footnote 1157 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1158">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1158" rev="footnote" title="Jump back to footnote 1158 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1159">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1159" rev="footnote" title="Jump back to footnote 1159 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1160">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1160" rev="footnote" title="Jump back to footnote 1160 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1161">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1161" rev="footnote" title="Jump back to footnote 1161 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1162">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1162" rev="footnote" title="Jump back to footnote 1162 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1163">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1163" rev="footnote" title="Jump back to footnote 1163 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1164">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1164" rev="footnote" title="Jump back to footnote 1164 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1165">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1165" rev="footnote" title="Jump back to footnote 1165 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1166">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1166" rev="footnote" title="Jump back to footnote 1166 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1167">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1167" rev="footnote" title="Jump back to footnote 1167 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1168">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1168" rev="footnote" title="Jump back to footnote 1168 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1169">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1169" rev="footnote" title="Jump back to footnote 1169 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1170">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1170" rev="footnote" title="Jump back to footnote 1170 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1171">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1171" rev="footnote" title="Jump back to footnote 1171 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1172">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1172" rev="footnote" title="Jump back to footnote 1172 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1173">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1173" rev="footnote" title="Jump back to footnote 1173 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1174">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1174" rev="footnote" title="Jump back to footnote 1174 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1175">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1175" rev="footnote" title="Jump back to footnote 1175 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1176">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1176" rev="footnote" title="Jump back to footnote 1176 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1177">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1177" rev="footnote" title="Jump back to footnote 1177 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1178">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1178" rev="footnote" title="Jump back to footnote 1178 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1179">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1179" rev="footnote" title="Jump back to footnote 1179 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1180">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1180" rev="footnote" title="Jump back to footnote 1180 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1181">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1181" rev="footnote" title="Jump back to footnote 1181 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1182">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1182" rev="footnote" title="Jump back to footnote 1182 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1183">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1183" rev="footnote" title="Jump back to footnote 1183 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1184">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1184" rev="footnote" title="Jump back to footnote 1184 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1185">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1185" rev="footnote" title="Jump back to footnote 1185 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1186">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1186" rev="footnote" title="Jump back to footnote 1186 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1187">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1187" rev="footnote" title="Jump back to footnote 1187 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1188">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1188" rev="footnote" title="Jump back to footnote 1188 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1189">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1189" rev="footnote" title="Jump back to footnote 1189 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1190">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1190" rev="footnote" title="Jump back to footnote 1190 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1191">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1191" rev="footnote" title="Jump back to footnote 1191 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1192">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1192" rev="footnote" title="Jump back to footnote 1192 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1193">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1193" rev="footnote" title="Jump back to footnote 1193 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1194">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1194" rev="footnote" title="Jump back to footnote 1194 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1195">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1195" rev="footnote" title="Jump back to footnote 1195 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1196">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1196" rev="footnote" title="Jump back to footnote 1196 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1197">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1197" rev="footnote" title="Jump back to footnote 1197 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1198">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1198" rev="footnote" title="Jump back to footnote 1198 in the text">&#8617;</a></p>
+</li>
+<li id="fn:1199">
+<p>Another thing&#160;<a class="footnote-backref" href="#fnref:1199" rev="footnote" title="Jump back to footnote 1199 in the text">&#8617;</a></p>
+</li>
+</ol>
 </div>
\ No newline at end of file
index ea85cf5fd35441708be6eeb16846a5ff18658621..cd5ee8d559e2e17d986b64b2d72e9cd0ae3ba8ab 100644 (file)
-Something[^1]\r
-\r
-Something[^2]\r
-\r
-Something[^3]\r
-\r
-Something[^4]\r
-\r
-Something[^5]\r
-\r
-Something[^6]\r
-\r
-Something[^7]\r
-\r
-Something[^8]\r
-\r
-Something[^9]\r
-\r
-Something[^10]\r
-\r
-Something[^11]\r
-\r
-Something[^12]\r
-\r
-Something[^13]\r
-\r
-Something[^14]\r
-\r
-Something[^15]\r
-\r
-Something[^16]\r
-\r
-Something[^17]\r
-\r
-Something[^18]\r
-\r
-Something[^19]\r
-\r
-Something[^20]\r
-\r
-Something[^21]\r
-\r
-Something[^22]\r
-\r
-Something[^23]\r
-\r
-Something[^24]\r
-\r
-Something[^25]\r
-\r
-Something[^26]\r
-\r
-Something[^27]\r
-\r
-Something[^28]\r
-\r
-Something[^29]\r
-\r
-Something[^30]\r
-\r
-Something[^31]\r
-\r
-Something[^32]\r
-\r
-Something[^33]\r
-\r
-Something[^34]\r
-\r
-Something[^35]\r
-\r
-Something[^36]\r
-\r
-Something[^37]\r
-\r
-Something[^38]\r
-\r
-Something[^39]\r
-\r
-Something[^40]\r
-\r
-Something[^41]\r
-\r
-Something[^42]\r
-\r
-Something[^43]\r
-\r
-Something[^44]\r
-\r
-Something[^45]\r
-\r
-Something[^46]\r
-\r
-Something[^47]\r
-\r
-Something[^48]\r
-\r
-Something[^49]\r
-\r
-Something[^50]\r
-\r
-Something[^51]\r
-\r
-Something[^52]\r
-\r
-Something[^53]\r
-\r
-Something[^54]\r
-\r
-Something[^55]\r
-\r
-Something[^56]\r
-\r
-Something[^57]\r
-\r
-Something[^58]\r
-\r
-Something[^59]\r
-\r
-Something[^60]\r
-\r
-Something[^61]\r
-\r
-Something[^62]\r
-\r
-Something[^63]\r
-\r
-Something[^64]\r
-\r
-Something[^65]\r
-\r
-Something[^66]\r
-\r
-Something[^67]\r
-\r
-Something[^68]\r
-\r
-Something[^69]\r
-\r
-Something[^70]\r
-\r
-Something[^71]\r
-\r
-Something[^72]\r
-\r
-Something[^73]\r
-\r
-Something[^74]\r
-\r
-Something[^75]\r
-\r
-Something[^76]\r
-\r
-Something[^77]\r
-\r
-Something[^78]\r
-\r
-Something[^79]\r
-\r
-Something[^80]\r
-\r
-Something[^81]\r
-\r
-Something[^82]\r
-\r
-Something[^83]\r
-\r
-Something[^84]\r
-\r
-Something[^85]\r
-\r
-Something[^86]\r
-\r
-Something[^87]\r
-\r
-Something[^88]\r
-\r
-Something[^89]\r
-\r
-Something[^90]\r
-\r
-Something[^91]\r
-\r
-Something[^92]\r
-\r
-Something[^93]\r
-\r
-Something[^94]\r
-\r
-Something[^95]\r
-\r
-Something[^96]\r
-\r
-Something[^97]\r
-\r
-Something[^98]\r
-\r
-Something[^99]\r
-\r
-Something[^100]\r
-\r
-Something[^101]\r
-\r
-Something[^102]\r
-\r
-Something[^103]\r
-\r
-Something[^104]\r
-\r
-Something[^105]\r
-\r
-Something[^106]\r
-\r
-Something[^107]\r
-\r
-Something[^108]\r
-\r
-Something[^109]\r
-\r
-Something[^110]\r
-\r
-Something[^111]\r
-\r
-Something[^112]\r
-\r
-Something[^113]\r
-\r
-Something[^114]\r
-\r
-Something[^115]\r
-\r
-Something[^116]\r
-\r
-Something[^117]\r
-\r
-Something[^118]\r
-\r
-Something[^119]\r
-\r
-Something[^120]\r
-\r
-Something[^121]\r
-\r
-Something[^122]\r
-\r
-Something[^123]\r
-\r
-Something[^124]\r
-\r
-Something[^125]\r
-\r
-Something[^126]\r
-\r
-Something[^127]\r
-\r
-Something[^128]\r
-\r
-Something[^129]\r
-\r
-Something[^130]\r
-\r
-Something[^131]\r
-\r
-Something[^132]\r
-\r
-Something[^133]\r
-\r
-Something[^134]\r
-\r
-Something[^135]\r
-\r
-Something[^136]\r
-\r
-Something[^137]\r
-\r
-Something[^138]\r
-\r
-Something[^139]\r
-\r
-Something[^140]\r
-\r
-Something[^141]\r
-\r
-Something[^142]\r
-\r
-Something[^143]\r
-\r
-Something[^144]\r
-\r
-Something[^145]\r
-\r
-Something[^146]\r
-\r
-Something[^147]\r
-\r
-Something[^148]\r
-\r
-Something[^149]\r
-\r
-Something[^150]\r
-\r
-Something[^151]\r
-\r
-Something[^152]\r
-\r
-Something[^153]\r
-\r
-Something[^154]\r
-\r
-Something[^155]\r
-\r
-Something[^156]\r
-\r
-Something[^157]\r
-\r
-Something[^158]\r
-\r
-Something[^159]\r
-\r
-Something[^160]\r
-\r
-Something[^161]\r
-\r
-Something[^162]\r
-\r
-Something[^163]\r
-\r
-Something[^164]\r
-\r
-Something[^165]\r
-\r
-Something[^166]\r
-\r
-Something[^167]\r
-\r
-Something[^168]\r
-\r
-Something[^169]\r
-\r
-Something[^170]\r
-\r
-Something[^171]\r
-\r
-Something[^172]\r
-\r
-Something[^173]\r
-\r
-Something[^174]\r
-\r
-Something[^175]\r
-\r
-Something[^176]\r
-\r
-Something[^177]\r
-\r
-Something[^178]\r
-\r
-Something[^179]\r
-\r
-Something[^180]\r
-\r
-Something[^181]\r
-\r
-Something[^182]\r
-\r
-Something[^183]\r
-\r
-Something[^184]\r
-\r
-Something[^185]\r
-\r
-Something[^186]\r
-\r
-Something[^187]\r
-\r
-Something[^188]\r
-\r
-Something[^189]\r
-\r
-Something[^190]\r
-\r
-Something[^191]\r
-\r
-Something[^192]\r
-\r
-Something[^193]\r
-\r
-Something[^194]\r
-\r
-Something[^195]\r
-\r
-Something[^196]\r
-\r
-Something[^197]\r
-\r
-Something[^198]\r
-\r
-Something[^199]\r
-\r
-Something[^200]\r
-\r
-Something[^201]\r
-\r
-Something[^202]\r
-\r
-Something[^203]\r
-\r
-Something[^204]\r
-\r
-Something[^205]\r
-\r
-Something[^206]\r
-\r
-Something[^207]\r
-\r
-Something[^208]\r
-\r
-Something[^209]\r
-\r
-Something[^210]\r
-\r
-Something[^211]\r
-\r
-Something[^212]\r
-\r
-Something[^213]\r
-\r
-Something[^214]\r
-\r
-Something[^215]\r
-\r
-Something[^216]\r
-\r
-Something[^217]\r
-\r
-Something[^218]\r
-\r
-Something[^219]\r
-\r
-Something[^220]\r
-\r
-Something[^221]\r
-\r
-Something[^222]\r
-\r
-Something[^223]\r
-\r
-Something[^224]\r
-\r
-Something[^225]\r
-\r
-Something[^226]\r
-\r
-Something[^227]\r
-\r
-Something[^228]\r
-\r
-Something[^229]\r
-\r
-Something[^230]\r
-\r
-Something[^231]\r
-\r
-Something[^232]\r
-\r
-Something[^233]\r
-\r
-Something[^234]\r
-\r
-Something[^235]\r
-\r
-Something[^236]\r
-\r
-Something[^237]\r
-\r
-Something[^238]\r
-\r
-Something[^239]\r
-\r
-Something[^240]\r
-\r
-Something[^241]\r
-\r
-Something[^242]\r
-\r
-Something[^243]\r
-\r
-Something[^244]\r
-\r
-Something[^245]\r
-\r
-Something[^246]\r
-\r
-Something[^247]\r
-\r
-Something[^248]\r
-\r
-Something[^249]\r
-\r
-Something[^250]\r
-\r
-Something[^251]\r
-\r
-Something[^252]\r
-\r
-Something[^253]\r
-\r
-Something[^254]\r
-\r
-Something[^255]\r
-\r
-Something[^256]\r
-\r
-Something[^257]\r
-\r
-Something[^258]\r
-\r
-Something[^259]\r
-\r
-Something[^260]\r
-\r
-Something[^261]\r
-\r
-Something[^262]\r
-\r
-Something[^263]\r
-\r
-Something[^264]\r
-\r
-Something[^265]\r
-\r
-Something[^266]\r
-\r
-Something[^267]\r
-\r
-Something[^268]\r
-\r
-Something[^269]\r
-\r
-Something[^270]\r
-\r
-Something[^271]\r
-\r
-Something[^272]\r
-\r
-Something[^273]\r
-\r
-Something[^274]\r
-\r
-Something[^275]\r
-\r
-Something[^276]\r
-\r
-Something[^277]\r
-\r
-Something[^278]\r
-\r
-Something[^279]\r
-\r
-Something[^280]\r
-\r
-Something[^281]\r
-\r
-Something[^282]\r
-\r
-Something[^283]\r
-\r
-Something[^284]\r
-\r
-Something[^285]\r
-\r
-Something[^286]\r
-\r
-Something[^287]\r
-\r
-Something[^288]\r
-\r
-Something[^289]\r
-\r
-Something[^290]\r
-\r
-Something[^291]\r
-\r
-Something[^292]\r
-\r
-Something[^293]\r
-\r
-Something[^294]\r
-\r
-Something[^295]\r
-\r
-Something[^296]\r
-\r
-Something[^297]\r
-\r
-Something[^298]\r
-\r
-Something[^299]\r
-\r
-Something[^300]\r
-\r
-Something[^301]\r
-\r
-Something[^302]\r
-\r
-Something[^303]\r
-\r
-Something[^304]\r
-\r
-Something[^305]\r
-\r
-Something[^306]\r
-\r
-Something[^307]\r
-\r
-Something[^308]\r
-\r
-Something[^309]\r
-\r
-Something[^310]\r
-\r
-Something[^311]\r
-\r
-Something[^312]\r
-\r
-Something[^313]\r
-\r
-Something[^314]\r
-\r
-Something[^315]\r
-\r
-Something[^316]\r
-\r
-Something[^317]\r
-\r
-Something[^318]\r
-\r
-Something[^319]\r
-\r
-Something[^320]\r
-\r
-Something[^321]\r
-\r
-Something[^322]\r
-\r
-Something[^323]\r
-\r
-Something[^324]\r
-\r
-Something[^325]\r
-\r
-Something[^326]\r
-\r
-Something[^327]\r
-\r
-Something[^328]\r
-\r
-Something[^329]\r
-\r
-Something[^330]\r
-\r
-Something[^331]\r
-\r
-Something[^332]\r
-\r
-Something[^333]\r
-\r
-Something[^334]\r
-\r
-Something[^335]\r
-\r
-Something[^336]\r
-\r
-Something[^337]\r
-\r
-Something[^338]\r
-\r
-Something[^339]\r
-\r
-Something[^340]\r
-\r
-Something[^341]\r
-\r
-Something[^342]\r
-\r
-Something[^343]\r
-\r
-Something[^344]\r
-\r
-Something[^345]\r
-\r
-Something[^346]\r
-\r
-Something[^347]\r
-\r
-Something[^348]\r
-\r
-Something[^349]\r
-\r
-Something[^350]\r
-\r
-Something[^351]\r
-\r
-Something[^352]\r
-\r
-Something[^353]\r
-\r
-Something[^354]\r
-\r
-Something[^355]\r
-\r
-Something[^356]\r
-\r
-Something[^357]\r
-\r
-Something[^358]\r
-\r
-Something[^359]\r
-\r
-Something[^360]\r
-\r
-Something[^361]\r
-\r
-Something[^362]\r
-\r
-Something[^363]\r
-\r
-Something[^364]\r
-\r
-Something[^365]\r
-\r
-Something[^366]\r
-\r
-Something[^367]\r
-\r
-Something[^368]\r
-\r
-Something[^369]\r
-\r
-Something[^370]\r
-\r
-Something[^371]\r
-\r
-Something[^372]\r
-\r
-Something[^373]\r
-\r
-Something[^374]\r
-\r
-Something[^375]\r
-\r
-Something[^376]\r
-\r
-Something[^377]\r
-\r
-Something[^378]\r
-\r
-Something[^379]\r
-\r
-Something[^380]\r
-\r
-Something[^381]\r
-\r
-Something[^382]\r
-\r
-Something[^383]\r
-\r
-Something[^384]\r
-\r
-Something[^385]\r
-\r
-Something[^386]\r
-\r
-Something[^387]\r
-\r
-Something[^388]\r
-\r
-Something[^389]\r
-\r
-Something[^390]\r
-\r
-Something[^391]\r
-\r
-Something[^392]\r
-\r
-Something[^393]\r
-\r
-Something[^394]\r
-\r
-Something[^395]\r
-\r
-Something[^396]\r
-\r
-Something[^397]\r
-\r
-Something[^398]\r
-\r
-Something[^399]\r
-\r
-Something[^400]\r
-\r
-Something[^401]\r
-\r
-Something[^402]\r
-\r
-Something[^403]\r
-\r
-Something[^404]\r
-\r
-Something[^405]\r
-\r
-Something[^406]\r
-\r
-Something[^407]\r
-\r
-Something[^408]\r
-\r
-Something[^409]\r
-\r
-Something[^410]\r
-\r
-Something[^411]\r
-\r
-Something[^412]\r
-\r
-Something[^413]\r
-\r
-Something[^414]\r
-\r
-Something[^415]\r
-\r
-Something[^416]\r
-\r
-Something[^417]\r
-\r
-Something[^418]\r
-\r
-Something[^419]\r
-\r
-Something[^420]\r
-\r
-Something[^421]\r
-\r
-Something[^422]\r
-\r
-Something[^423]\r
-\r
-Something[^424]\r
-\r
-Something[^425]\r
-\r
-Something[^426]\r
-\r
-Something[^427]\r
-\r
-Something[^428]\r
-\r
-Something[^429]\r
-\r
-Something[^430]\r
-\r
-Something[^431]\r
-\r
-Something[^432]\r
-\r
-Something[^433]\r
-\r
-Something[^434]\r
-\r
-Something[^435]\r
-\r
-Something[^436]\r
-\r
-Something[^437]\r
-\r
-Something[^438]\r
-\r
-Something[^439]\r
-\r
-Something[^440]\r
-\r
-Something[^441]\r
-\r
-Something[^442]\r
-\r
-Something[^443]\r
-\r
-Something[^444]\r
-\r
-Something[^445]\r
-\r
-Something[^446]\r
-\r
-Something[^447]\r
-\r
-Something[^448]\r
-\r
-Something[^449]\r
-\r
-Something[^450]\r
-\r
-Something[^451]\r
-\r
-Something[^452]\r
-\r
-Something[^453]\r
-\r
-Something[^454]\r
-\r
-Something[^455]\r
-\r
-Something[^456]\r
-\r
-Something[^457]\r
-\r
-Something[^458]\r
-\r
-Something[^459]\r
-\r
-Something[^460]\r
-\r
-Something[^461]\r
-\r
-Something[^462]\r
-\r
-Something[^463]\r
-\r
-Something[^464]\r
-\r
-Something[^465]\r
-\r
-Something[^466]\r
-\r
-Something[^467]\r
-\r
-Something[^468]\r
-\r
-Something[^469]\r
-\r
-Something[^470]\r
-\r
-Something[^471]\r
-\r
-Something[^472]\r
-\r
-Something[^473]\r
-\r
-Something[^474]\r
-\r
-Something[^475]\r
-\r
-Something[^476]\r
-\r
-Something[^477]\r
-\r
-Something[^478]\r
-\r
-Something[^479]\r
-\r
-Something[^480]\r
-\r
-Something[^481]\r
-\r
-Something[^482]\r
-\r
-Something[^483]\r
-\r
-Something[^484]\r
-\r
-Something[^485]\r
-\r
-Something[^486]\r
-\r
-Something[^487]\r
-\r
-Something[^488]\r
-\r
-Something[^489]\r
-\r
-Something[^490]\r
-\r
-Something[^491]\r
-\r
-Something[^492]\r
-\r
-Something[^493]\r
-\r
-Something[^494]\r
-\r
-Something[^495]\r
-\r
-Something[^496]\r
-\r
-Something[^497]\r
-\r
-Something[^498]\r
-\r
-Something[^499]\r
-\r
-Something[^500]\r
-\r
-Something[^501]\r
-\r
-Something[^502]\r
-\r
-Something[^503]\r
-\r
-Something[^504]\r
-\r
-Something[^505]\r
-\r
-Something[^506]\r
-\r
-Something[^507]\r
-\r
-Something[^508]\r
-\r
-Something[^509]\r
-\r
-Something[^510]\r
-\r
-Something[^511]\r
-\r
-Something[^512]\r
-\r
-Something[^513]\r
-\r
-Something[^514]\r
-\r
-Something[^515]\r
-\r
-Something[^516]\r
-\r
-Something[^517]\r
-\r
-Something[^518]\r
-\r
-Something[^519]\r
-\r
-Something[^520]\r
-\r
-Something[^521]\r
-\r
-Something[^522]\r
-\r
-Something[^523]\r
-\r
-Something[^524]\r
-\r
-Something[^525]\r
-\r
-Something[^526]\r
-\r
-Something[^527]\r
-\r
-Something[^528]\r
-\r
-Something[^529]\r
-\r
-Something[^530]\r
-\r
-Something[^531]\r
-\r
-Something[^532]\r
-\r
-Something[^533]\r
-\r
-Something[^534]\r
-\r
-Something[^535]\r
-\r
-Something[^536]\r
-\r
-Something[^537]\r
-\r
-Something[^538]\r
-\r
-Something[^539]\r
-\r
-Something[^540]\r
-\r
-Something[^541]\r
-\r
-Something[^542]\r
-\r
-Something[^543]\r
-\r
-Something[^544]\r
-\r
-Something[^545]\r
-\r
-Something[^546]\r
-\r
-Something[^547]\r
-\r
-Something[^548]\r
-\r
-Something[^549]\r
-\r
-Something[^550]\r
-\r
-Something[^551]\r
-\r
-Something[^552]\r
-\r
-Something[^553]\r
-\r
-Something[^554]\r
-\r
-Something[^555]\r
-\r
-Something[^556]\r
-\r
-Something[^557]\r
-\r
-Something[^558]\r
-\r
-Something[^559]\r
-\r
-Something[^560]\r
-\r
-Something[^561]\r
-\r
-Something[^562]\r
-\r
-Something[^563]\r
-\r
-Something[^564]\r
-\r
-Something[^565]\r
-\r
-Something[^566]\r
-\r
-Something[^567]\r
-\r
-Something[^568]\r
-\r
-Something[^569]\r
-\r
-Something[^570]\r
-\r
-Something[^571]\r
-\r
-Something[^572]\r
-\r
-Something[^573]\r
-\r
-Something[^574]\r
-\r
-Something[^575]\r
-\r
-Something[^576]\r
-\r
-Something[^577]\r
-\r
-Something[^578]\r
-\r
-Something[^579]\r
-\r
-Something[^580]\r
-\r
-Something[^581]\r
-\r
-Something[^582]\r
-\r
-Something[^583]\r
-\r
-Something[^584]\r
-\r
-Something[^585]\r
-\r
-Something[^586]\r
-\r
-Something[^587]\r
-\r
-Something[^588]\r
-\r
-Something[^589]\r
-\r
-Something[^590]\r
-\r
-Something[^591]\r
-\r
-Something[^592]\r
-\r
-Something[^593]\r
-\r
-Something[^594]\r
-\r
-Something[^595]\r
-\r
-Something[^596]\r
-\r
-Something[^597]\r
-\r
-Something[^598]\r
-\r
-Something[^599]\r
-\r
-Something[^600]\r
-\r
-Something[^601]\r
-\r
-Something[^602]\r
-\r
-Something[^603]\r
-\r
-Something[^604]\r
-\r
-Something[^605]\r
-\r
-Something[^606]\r
-\r
-Something[^607]\r
-\r
-Something[^608]\r
-\r
-Something[^609]\r
-\r
-Something[^610]\r
-\r
-Something[^611]\r
-\r
-Something[^612]\r
-\r
-Something[^613]\r
-\r
-Something[^614]\r
-\r
-Something[^615]\r
-\r
-Something[^616]\r
-\r
-Something[^617]\r
-\r
-Something[^618]\r
-\r
-Something[^619]\r
-\r
-Something[^620]\r
-\r
-Something[^621]\r
-\r
-Something[^622]\r
-\r
-Something[^623]\r
-\r
-Something[^624]\r
-\r
-Something[^625]\r
-\r
-Something[^626]\r
-\r
-Something[^627]\r
-\r
-Something[^628]\r
-\r
-Something[^629]\r
-\r
-Something[^630]\r
-\r
-Something[^631]\r
-\r
-Something[^632]\r
-\r
-Something[^633]\r
-\r
-Something[^634]\r
-\r
-Something[^635]\r
-\r
-Something[^636]\r
-\r
-Something[^637]\r
-\r
-Something[^638]\r
-\r
-Something[^639]\r
-\r
-Something[^640]\r
-\r
-Something[^641]\r
-\r
-Something[^642]\r
-\r
-Something[^643]\r
-\r
-Something[^644]\r
-\r
-Something[^645]\r
-\r
-Something[^646]\r
-\r
-Something[^647]\r
-\r
-Something[^648]\r
-\r
-Something[^649]\r
-\r
-Something[^650]\r
-\r
-Something[^651]\r
-\r
-Something[^652]\r
-\r
-Something[^653]\r
-\r
-Something[^654]\r
-\r
-Something[^655]\r
-\r
-Something[^656]\r
-\r
-Something[^657]\r
-\r
-Something[^658]\r
-\r
-Something[^659]\r
-\r
-Something[^660]\r
-\r
-Something[^661]\r
-\r
-Something[^662]\r
-\r
-Something[^663]\r
-\r
-Something[^664]\r
-\r
-Something[^665]\r
-\r
-Something[^666]\r
-\r
-Something[^667]\r
-\r
-Something[^668]\r
-\r
-Something[^669]\r
-\r
-Something[^670]\r
-\r
-Something[^671]\r
-\r
-Something[^672]\r
-\r
-Something[^673]\r
-\r
-Something[^674]\r
-\r
-Something[^675]\r
-\r
-Something[^676]\r
-\r
-Something[^677]\r
-\r
-Something[^678]\r
-\r
-Something[^679]\r
-\r
-Something[^680]\r
-\r
-Something[^681]\r
-\r
-Something[^682]\r
-\r
-Something[^683]\r
-\r
-Something[^684]\r
-\r
-Something[^685]\r
-\r
-Something[^686]\r
-\r
-Something[^687]\r
-\r
-Something[^688]\r
-\r
-Something[^689]\r
-\r
-Something[^690]\r
-\r
-Something[^691]\r
-\r
-Something[^692]\r
-\r
-Something[^693]\r
-\r
-Something[^694]\r
-\r
-Something[^695]\r
-\r
-Something[^696]\r
-\r
-Something[^697]\r
-\r
-Something[^698]\r
-\r
-Something[^699]\r
-\r
-Something[^700]\r
-\r
-Something[^701]\r
-\r
-Something[^702]\r
-\r
-Something[^703]\r
-\r
-Something[^704]\r
-\r
-Something[^705]\r
-\r
-Something[^706]\r
-\r
-Something[^707]\r
-\r
-Something[^708]\r
-\r
-Something[^709]\r
-\r
-Something[^710]\r
-\r
-Something[^711]\r
-\r
-Something[^712]\r
-\r
-Something[^713]\r
-\r
-Something[^714]\r
-\r
-Something[^715]\r
-\r
-Something[^716]\r
-\r
-Something[^717]\r
-\r
-Something[^718]\r
-\r
-Something[^719]\r
-\r
-Something[^720]\r
-\r
-Something[^721]\r
-\r
-Something[^722]\r
-\r
-Something[^723]\r
-\r
-Something[^724]\r
-\r
-Something[^725]\r
-\r
-Something[^726]\r
-\r
-Something[^727]\r
-\r
-Something[^728]\r
-\r
-Something[^729]\r
-\r
-Something[^730]\r
-\r
-Something[^731]\r
-\r
-Something[^732]\r
-\r
-Something[^733]\r
-\r
-Something[^734]\r
-\r
-Something[^735]\r
-\r
-Something[^736]\r
-\r
-Something[^737]\r
-\r
-Something[^738]\r
-\r
-Something[^739]\r
-\r
-Something[^740]\r
-\r
-Something[^741]\r
-\r
-Something[^742]\r
-\r
-Something[^743]\r
-\r
-Something[^744]\r
-\r
-Something[^745]\r
-\r
-Something[^746]\r
-\r
-Something[^747]\r
-\r
-Something[^748]\r
-\r
-Something[^749]\r
-\r
-Something[^750]\r
-\r
-Something[^751]\r
-\r
-Something[^752]\r
-\r
-Something[^753]\r
-\r
-Something[^754]\r
-\r
-Something[^755]\r
-\r
-Something[^756]\r
-\r
-Something[^757]\r
-\r
-Something[^758]\r
-\r
-Something[^759]\r
-\r
-Something[^760]\r
-\r
-Something[^761]\r
-\r
-Something[^762]\r
-\r
-Something[^763]\r
-\r
-Something[^764]\r
-\r
-Something[^765]\r
-\r
-Something[^766]\r
-\r
-Something[^767]\r
-\r
-Something[^768]\r
-\r
-Something[^769]\r
-\r
-Something[^770]\r
-\r
-Something[^771]\r
-\r
-Something[^772]\r
-\r
-Something[^773]\r
-\r
-Something[^774]\r
-\r
-Something[^775]\r
-\r
-Something[^776]\r
-\r
-Something[^777]\r
-\r
-Something[^778]\r
-\r
-Something[^779]\r
-\r
-Something[^780]\r
-\r
-Something[^781]\r
-\r
-Something[^782]\r
-\r
-Something[^783]\r
-\r
-Something[^784]\r
-\r
-Something[^785]\r
-\r
-Something[^786]\r
-\r
-Something[^787]\r
-\r
-Something[^788]\r
-\r
-Something[^789]\r
-\r
-Something[^790]\r
-\r
-Something[^791]\r
-\r
-Something[^792]\r
-\r
-Something[^793]\r
-\r
-Something[^794]\r
-\r
-Something[^795]\r
-\r
-Something[^796]\r
-\r
-Something[^797]\r
-\r
-Something[^798]\r
-\r
-Something[^799]\r
-\r
-Something[^800]\r
-\r
-Something[^801]\r
-\r
-Something[^802]\r
-\r
-Something[^803]\r
-\r
-Something[^804]\r
-\r
-Something[^805]\r
-\r
-Something[^806]\r
-\r
-Something[^807]\r
-\r
-Something[^808]\r
-\r
-Something[^809]\r
-\r
-Something[^810]\r
-\r
-Something[^811]\r
-\r
-Something[^812]\r
-\r
-Something[^813]\r
-\r
-Something[^814]\r
-\r
-Something[^815]\r
-\r
-Something[^816]\r
-\r
-Something[^817]\r
-\r
-Something[^818]\r
-\r
-Something[^819]\r
-\r
-Something[^820]\r
-\r
-Something[^821]\r
-\r
-Something[^822]\r
-\r
-Something[^823]\r
-\r
-Something[^824]\r
-\r
-Something[^825]\r
-\r
-Something[^826]\r
-\r
-Something[^827]\r
-\r
-Something[^828]\r
-\r
-Something[^829]\r
-\r
-Something[^830]\r
-\r
-Something[^831]\r
-\r
-Something[^832]\r
-\r
-Something[^833]\r
-\r
-Something[^834]\r
-\r
-Something[^835]\r
-\r
-Something[^836]\r
-\r
-Something[^837]\r
-\r
-Something[^838]\r
-\r
-Something[^839]\r
-\r
-Something[^840]\r
-\r
-Something[^841]\r
-\r
-Something[^842]\r
-\r
-Something[^843]\r
-\r
-Something[^844]\r
-\r
-Something[^845]\r
-\r
-Something[^846]\r
-\r
-Something[^847]\r
-\r
-Something[^848]\r
-\r
-Something[^849]\r
-\r
-Something[^850]\r
-\r
-Something[^851]\r
-\r
-Something[^852]\r
-\r
-Something[^853]\r
-\r
-Something[^854]\r
-\r
-Something[^855]\r
-\r
-Something[^856]\r
-\r
-Something[^857]\r
-\r
-Something[^858]\r
-\r
-Something[^859]\r
-\r
-Something[^860]\r
-\r
-Something[^861]\r
-\r
-Something[^862]\r
-\r
-Something[^863]\r
-\r
-Something[^864]\r
-\r
-Something[^865]\r
-\r
-Something[^866]\r
-\r
-Something[^867]\r
-\r
-Something[^868]\r
-\r
-Something[^869]\r
-\r
-Something[^870]\r
-\r
-Something[^871]\r
-\r
-Something[^872]\r
-\r
-Something[^873]\r
-\r
-Something[^874]\r
-\r
-Something[^875]\r
-\r
-Something[^876]\r
-\r
-Something[^877]\r
-\r
-Something[^878]\r
-\r
-Something[^879]\r
-\r
-Something[^880]\r
-\r
-Something[^881]\r
-\r
-Something[^882]\r
-\r
-Something[^883]\r
-\r
-Something[^884]\r
-\r
-Something[^885]\r
-\r
-Something[^886]\r
-\r
-Something[^887]\r
-\r
-Something[^888]\r
-\r
-Something[^889]\r
-\r
-Something[^890]\r
-\r
-Something[^891]\r
-\r
-Something[^892]\r
-\r
-Something[^893]\r
-\r
-Something[^894]\r
-\r
-Something[^895]\r
-\r
-Something[^896]\r
-\r
-Something[^897]\r
-\r
-Something[^898]\r
-\r
-Something[^899]\r
-\r
-Something[^900]\r
-\r
-Something[^901]\r
-\r
-Something[^902]\r
-\r
-Something[^903]\r
-\r
-Something[^904]\r
-\r
-Something[^905]\r
-\r
-Something[^906]\r
-\r
-Something[^907]\r
-\r
-Something[^908]\r
-\r
-Something[^909]\r
-\r
-Something[^910]\r
-\r
-Something[^911]\r
-\r
-Something[^912]\r
-\r
-Something[^913]\r
-\r
-Something[^914]\r
-\r
-Something[^915]\r
-\r
-Something[^916]\r
-\r
-Something[^917]\r
-\r
-Something[^918]\r
-\r
-Something[^919]\r
-\r
-Something[^920]\r
-\r
-Something[^921]\r
-\r
-Something[^922]\r
-\r
-Something[^923]\r
-\r
-Something[^924]\r
-\r
-Something[^925]\r
-\r
-Something[^926]\r
-\r
-Something[^927]\r
-\r
-Something[^928]\r
-\r
-Something[^929]\r
-\r
-Something[^930]\r
-\r
-Something[^931]\r
-\r
-Something[^932]\r
-\r
-Something[^933]\r
-\r
-Something[^934]\r
-\r
-Something[^935]\r
-\r
-Something[^936]\r
-\r
-Something[^937]\r
-\r
-Something[^938]\r
-\r
-Something[^939]\r
-\r
-Something[^940]\r
-\r
-Something[^941]\r
-\r
-Something[^942]\r
-\r
-Something[^943]\r
-\r
-Something[^944]\r
-\r
-Something[^945]\r
-\r
-Something[^946]\r
-\r
-Something[^947]\r
-\r
-Something[^948]\r
-\r
-Something[^949]\r
-\r
-Something[^950]\r
-\r
-Something[^951]\r
-\r
-Something[^952]\r
-\r
-Something[^953]\r
-\r
-Something[^954]\r
-\r
-Something[^955]\r
-\r
-Something[^956]\r
-\r
-Something[^957]\r
-\r
-Something[^958]\r
-\r
-Something[^959]\r
-\r
-Something[^960]\r
-\r
-Something[^961]\r
-\r
-Something[^962]\r
-\r
-Something[^963]\r
-\r
-Something[^964]\r
-\r
-Something[^965]\r
-\r
-Something[^966]\r
-\r
-Something[^967]\r
-\r
-Something[^968]\r
-\r
-Something[^969]\r
-\r
-Something[^970]\r
-\r
-Something[^971]\r
-\r
-Something[^972]\r
-\r
-Something[^973]\r
-\r
-Something[^974]\r
-\r
-Something[^975]\r
-\r
-Something[^976]\r
-\r
-Something[^977]\r
-\r
-Something[^978]\r
-\r
-Something[^979]\r
-\r
-Something[^980]\r
-\r
-Something[^981]\r
-\r
-Something[^982]\r
-\r
-Something[^983]\r
-\r
-Something[^984]\r
-\r
-Something[^985]\r
-\r
-Something[^986]\r
-\r
-Something[^987]\r
-\r
-Something[^988]\r
-\r
-Something[^989]\r
-\r
-Something[^990]\r
-\r
-Something[^991]\r
-\r
-Something[^992]\r
-\r
-Something[^993]\r
-\r
-Something[^994]\r
-\r
-Something[^995]\r
-\r
-Something[^996]\r
-\r
-Something[^997]\r
-\r
-Something[^998]\r
-\r
-Something[^999]\r
-\r
-Something[^1000]\r
-\r
-Something[^1001]\r
-\r
-Something[^1002]\r
-\r
-Something[^1003]\r
-\r
-Something[^1004]\r
-\r
-Something[^1005]\r
-\r
-Something[^1006]\r
-\r
-Something[^1007]\r
-\r
-Something[^1008]\r
-\r
-Something[^1009]\r
-\r
-Something[^1010]\r
-\r
-Something[^1011]\r
-\r
-Something[^1012]\r
-\r
-Something[^1013]\r
-\r
-Something[^1014]\r
-\r
-Something[^1015]\r
-\r
-Something[^1016]\r
-\r
-Something[^1017]\r
-\r
-Something[^1018]\r
-\r
-Something[^1019]\r
-\r
-Something[^1020]\r
-\r
-Something[^1021]\r
-\r
-Something[^1022]\r
-\r
-Something[^1023]\r
-\r
-Something[^1024]\r
-\r
-Something[^1025]\r
-\r
-Something[^1026]\r
-\r
-Something[^1027]\r
-\r
-Something[^1028]\r
-\r
-Something[^1029]\r
-\r
-Something[^1030]\r
-\r
-Something[^1031]\r
-\r
-Something[^1032]\r
-\r
-Something[^1033]\r
-\r
-Something[^1034]\r
-\r
-Something[^1035]\r
-\r
-Something[^1036]\r
-\r
-Something[^1037]\r
-\r
-Something[^1038]\r
-\r
-Something[^1039]\r
-\r
-Something[^1040]\r
-\r
-Something[^1041]\r
-\r
-Something[^1042]\r
-\r
-Something[^1043]\r
-\r
-Something[^1044]\r
-\r
-Something[^1045]\r
-\r
-Something[^1046]\r
-\r
-Something[^1047]\r
-\r
-Something[^1048]\r
-\r
-Something[^1049]\r
-\r
-Something[^1050]\r
-\r
-Something[^1051]\r
-\r
-Something[^1052]\r
-\r
-Something[^1053]\r
-\r
-Something[^1054]\r
-\r
-Something[^1055]\r
-\r
-Something[^1056]\r
-\r
-Something[^1057]\r
-\r
-Something[^1058]\r
-\r
-Something[^1059]\r
-\r
-Something[^1060]\r
-\r
-Something[^1061]\r
-\r
-Something[^1062]\r
-\r
-Something[^1063]\r
-\r
-Something[^1064]\r
-\r
-Something[^1065]\r
-\r
-Something[^1066]\r
-\r
-Something[^1067]\r
-\r
-Something[^1068]\r
-\r
-Something[^1069]\r
-\r
-Something[^1070]\r
-\r
-Something[^1071]\r
-\r
-Something[^1072]\r
-\r
-Something[^1073]\r
-\r
-Something[^1074]\r
-\r
-Something[^1075]\r
-\r
-Something[^1076]\r
-\r
-Something[^1077]\r
-\r
-Something[^1078]\r
-\r
-Something[^1079]\r
-\r
-Something[^1080]\r
-\r
-Something[^1081]\r
-\r
-Something[^1082]\r
-\r
-Something[^1083]\r
-\r
-Something[^1084]\r
-\r
-Something[^1085]\r
-\r
-Something[^1086]\r
-\r
-Something[^1087]\r
-\r
-Something[^1088]\r
-\r
-Something[^1089]\r
-\r
-Something[^1090]\r
-\r
-Something[^1091]\r
-\r
-Something[^1092]\r
-\r
-Something[^1093]\r
-\r
-Something[^1094]\r
-\r
-Something[^1095]\r
-\r
-Something[^1096]\r
-\r
-Something[^1097]\r
-\r
-Something[^1098]\r
-\r
-Something[^1099]\r
-\r
-Something[^1100]\r
-\r
-Something[^1101]\r
-\r
-Something[^1102]\r
-\r
-Something[^1103]\r
-\r
-Something[^1104]\r
-\r
-Something[^1105]\r
-\r
-Something[^1106]\r
-\r
-Something[^1107]\r
-\r
-Something[^1108]\r
-\r
-Something[^1109]\r
-\r
-Something[^1110]\r
-\r
-Something[^1111]\r
-\r
-Something[^1112]\r
-\r
-Something[^1113]\r
-\r
-Something[^1114]\r
-\r
-Something[^1115]\r
-\r
-Something[^1116]\r
-\r
-Something[^1117]\r
-\r
-Something[^1118]\r
-\r
-Something[^1119]\r
-\r
-Something[^1120]\r
-\r
-Something[^1121]\r
-\r
-Something[^1122]\r
-\r
-Something[^1123]\r
-\r
-Something[^1124]\r
-\r
-Something[^1125]\r
-\r
-Something[^1126]\r
-\r
-Something[^1127]\r
-\r
-Something[^1128]\r
-\r
-Something[^1129]\r
-\r
-Something[^1130]\r
-\r
-Something[^1131]\r
-\r
-Something[^1132]\r
-\r
-Something[^1133]\r
-\r
-Something[^1134]\r
-\r
-Something[^1135]\r
-\r
-Something[^1136]\r
-\r
-Something[^1137]\r
-\r
-Something[^1138]\r
-\r
-Something[^1139]\r
-\r
-Something[^1140]\r
-\r
-Something[^1141]\r
-\r
-Something[^1142]\r
-\r
-Something[^1143]\r
-\r
-Something[^1144]\r
-\r
-Something[^1145]\r
-\r
-Something[^1146]\r
-\r
-Something[^1147]\r
-\r
-Something[^1148]\r
-\r
-Something[^1149]\r
-\r
-Something[^1150]\r
-\r
-Something[^1151]\r
-\r
-Something[^1152]\r
-\r
-Something[^1153]\r
-\r
-Something[^1154]\r
-\r
-Something[^1155]\r
-\r
-Something[^1156]\r
-\r
-Something[^1157]\r
-\r
-Something[^1158]\r
-\r
-Something[^1159]\r
-\r
-Something[^1160]\r
-\r
-Something[^1161]\r
-\r
-Something[^1162]\r
-\r
-Something[^1163]\r
-\r
-Something[^1164]\r
-\r
-Something[^1165]\r
-\r
-Something[^1166]\r
-\r
-Something[^1167]\r
-\r
-Something[^1168]\r
-\r
-Something[^1169]\r
-\r
-Something[^1170]\r
-\r
-Something[^1171]\r
-\r
-Something[^1172]\r
-\r
-Something[^1173]\r
-\r
-Something[^1174]\r
-\r
-Something[^1175]\r
-\r
-Something[^1176]\r
-\r
-Something[^1177]\r
-\r
-Something[^1178]\r
-\r
-Something[^1179]\r
-\r
-Something[^1180]\r
-\r
-Something[^1181]\r
-\r
-Something[^1182]\r
-\r
-Something[^1183]\r
-\r
-Something[^1184]\r
-\r
-Something[^1185]\r
-\r
-Something[^1186]\r
-\r
-Something[^1187]\r
-\r
-Something[^1188]\r
-\r
-Something[^1189]\r
-\r
-Something[^1190]\r
-\r
-Something[^1191]\r
-\r
-Something[^1192]\r
-\r
-Something[^1193]\r
-\r
-Something[^1194]\r
-\r
-Something[^1195]\r
-\r
-Something[^1196]\r
-\r
-Something[^1197]\r
-\r
-Something[^1198]\r
-\r
-Something[^1199]\r
-\r
-[^1]: Another thing\r
-\r
-[^2]: Another thing\r
-\r
-[^3]: Another thing\r
-\r
-[^4]: Another thing\r
-\r
-[^5]: Another thing\r
-\r
-[^6]: Another thing\r
-\r
-[^7]: Another thing\r
-\r
-[^8]: Another thing\r
-\r
-[^9]: Another thing\r
-\r
-[^10]: Another thing\r
-\r
-[^11]: Another thing\r
-\r
-[^12]: Another thing\r
-\r
-[^13]: Another thing\r
-\r
-[^14]: Another thing\r
-\r
-[^15]: Another thing\r
-\r
-[^16]: Another thing\r
-\r
-[^17]: Another thing\r
-\r
-[^18]: Another thing\r
-\r
-[^19]: Another thing\r
-\r
-[^20]: Another thing\r
-\r
-[^21]: Another thing\r
-\r
-[^22]: Another thing\r
-\r
-[^23]: Another thing\r
-\r
-[^24]: Another thing\r
-\r
-[^25]: Another thing\r
-\r
-[^26]: Another thing\r
-\r
-[^27]: Another thing\r
-\r
-[^28]: Another thing\r
-\r
-[^29]: Another thing\r
-\r
-[^30]: Another thing\r
-\r
-[^31]: Another thing\r
-\r
-[^32]: Another thing\r
-\r
-[^33]: Another thing\r
-\r
-[^34]: Another thing\r
-\r
-[^35]: Another thing\r
-\r
-[^36]: Another thing\r
-\r
-[^37]: Another thing\r
-\r
-[^38]: Another thing\r
-\r
-[^39]: Another thing\r
-\r
-[^40]: Another thing\r
-\r
-[^41]: Another thing\r
-\r
-[^42]: Another thing\r
-\r
-[^43]: Another thing\r
-\r
-[^44]: Another thing\r
-\r
-[^45]: Another thing\r
-\r
-[^46]: Another thing\r
-\r
-[^47]: Another thing\r
-\r
-[^48]: Another thing\r
-\r
-[^49]: Another thing\r
-\r
-[^50]: Another thing\r
-\r
-[^51]: Another thing\r
-\r
-[^52]: Another thing\r
-\r
-[^53]: Another thing\r
-\r
-[^54]: Another thing\r
-\r
-[^55]: Another thing\r
-\r
-[^56]: Another thing\r
-\r
-[^57]: Another thing\r
-\r
-[^58]: Another thing\r
-\r
-[^59]: Another thing\r
-\r
-[^60]: Another thing\r
-\r
-[^61]: Another thing\r
-\r
-[^62]: Another thing\r
-\r
-[^63]: Another thing\r
-\r
-[^64]: Another thing\r
-\r
-[^65]: Another thing\r
-\r
-[^66]: Another thing\r
-\r
-[^67]: Another thing\r
-\r
-[^68]: Another thing\r
-\r
-[^69]: Another thing\r
-\r
-[^70]: Another thing\r
-\r
-[^71]: Another thing\r
-\r
-[^72]: Another thing\r
-\r
-[^73]: Another thing\r
-\r
-[^74]: Another thing\r
-\r
-[^75]: Another thing\r
-\r
-[^76]: Another thing\r
-\r
-[^77]: Another thing\r
-\r
-[^78]: Another thing\r
-\r
-[^79]: Another thing\r
-\r
-[^80]: Another thing\r
-\r
-[^81]: Another thing\r
-\r
-[^82]: Another thing\r
-\r
-[^83]: Another thing\r
-\r
-[^84]: Another thing\r
-\r
-[^85]: Another thing\r
-\r
-[^86]: Another thing\r
-\r
-[^87]: Another thing\r
-\r
-[^88]: Another thing\r
-\r
-[^89]: Another thing\r
-\r
-[^90]: Another thing\r
-\r
-[^91]: Another thing\r
-\r
-[^92]: Another thing\r
-\r
-[^93]: Another thing\r
-\r
-[^94]: Another thing\r
-\r
-[^95]: Another thing\r
-\r
-[^96]: Another thing\r
-\r
-[^97]: Another thing\r
-\r
-[^98]: Another thing\r
-\r
-[^99]: Another thing\r
-\r
-[^100]: Another thing\r
-\r
-[^101]: Another thing\r
-\r
-[^102]: Another thing\r
-\r
-[^103]: Another thing\r
-\r
-[^104]: Another thing\r
-\r
-[^105]: Another thing\r
-\r
-[^106]: Another thing\r
-\r
-[^107]: Another thing\r
-\r
-[^108]: Another thing\r
-\r
-[^109]: Another thing\r
-\r
-[^110]: Another thing\r
-\r
-[^111]: Another thing\r
-\r
-[^112]: Another thing\r
-\r
-[^113]: Another thing\r
-\r
-[^114]: Another thing\r
-\r
-[^115]: Another thing\r
-\r
-[^116]: Another thing\r
-\r
-[^117]: Another thing\r
-\r
-[^118]: Another thing\r
-\r
-[^119]: Another thing\r
-\r
-[^120]: Another thing\r
-\r
-[^121]: Another thing\r
-\r
-[^122]: Another thing\r
-\r
-[^123]: Another thing\r
-\r
-[^124]: Another thing\r
-\r
-[^125]: Another thing\r
-\r
-[^126]: Another thing\r
-\r
-[^127]: Another thing\r
-\r
-[^128]: Another thing\r
-\r
-[^129]: Another thing\r
-\r
-[^130]: Another thing\r
-\r
-[^131]: Another thing\r
-\r
-[^132]: Another thing\r
-\r
-[^133]: Another thing\r
-\r
-[^134]: Another thing\r
-\r
-[^135]: Another thing\r
-\r
-[^136]: Another thing\r
-\r
-[^137]: Another thing\r
-\r
-[^138]: Another thing\r
-\r
-[^139]: Another thing\r
-\r
-[^140]: Another thing\r
-\r
-[^141]: Another thing\r
-\r
-[^142]: Another thing\r
-\r
-[^143]: Another thing\r
-\r
-[^144]: Another thing\r
-\r
-[^145]: Another thing\r
-\r
-[^146]: Another thing\r
-\r
-[^147]: Another thing\r
-\r
-[^148]: Another thing\r
-\r
-[^149]: Another thing\r
-\r
-[^150]: Another thing\r
-\r
-[^151]: Another thing\r
-\r
-[^152]: Another thing\r
-\r
-[^153]: Another thing\r
-\r
-[^154]: Another thing\r
-\r
-[^155]: Another thing\r
-\r
-[^156]: Another thing\r
-\r
-[^157]: Another thing\r
-\r
-[^158]: Another thing\r
-\r
-[^159]: Another thing\r
-\r
-[^160]: Another thing\r
-\r
-[^161]: Another thing\r
-\r
-[^162]: Another thing\r
-\r
-[^163]: Another thing\r
-\r
-[^164]: Another thing\r
-\r
-[^165]: Another thing\r
-\r
-[^166]: Another thing\r
-\r
-[^167]: Another thing\r
-\r
-[^168]: Another thing\r
-\r
-[^169]: Another thing\r
-\r
-[^170]: Another thing\r
-\r
-[^171]: Another thing\r
-\r
-[^172]: Another thing\r
-\r
-[^173]: Another thing\r
-\r
-[^174]: Another thing\r
-\r
-[^175]: Another thing\r
-\r
-[^176]: Another thing\r
-\r
-[^177]: Another thing\r
-\r
-[^178]: Another thing\r
-\r
-[^179]: Another thing\r
-\r
-[^180]: Another thing\r
-\r
-[^181]: Another thing\r
-\r
-[^182]: Another thing\r
-\r
-[^183]: Another thing\r
-\r
-[^184]: Another thing\r
-\r
-[^185]: Another thing\r
-\r
-[^186]: Another thing\r
-\r
-[^187]: Another thing\r
-\r
-[^188]: Another thing\r
-\r
-[^189]: Another thing\r
-\r
-[^190]: Another thing\r
-\r
-[^191]: Another thing\r
-\r
-[^192]: Another thing\r
-\r
-[^193]: Another thing\r
-\r
-[^194]: Another thing\r
-\r
-[^195]: Another thing\r
-\r
-[^196]: Another thing\r
-\r
-[^197]: Another thing\r
-\r
-[^198]: Another thing\r
-\r
-[^199]: Another thing\r
-\r
-[^200]: Another thing\r
-\r
-[^201]: Another thing\r
-\r
-[^202]: Another thing\r
-\r
-[^203]: Another thing\r
-\r
-[^204]: Another thing\r
-\r
-[^205]: Another thing\r
-\r
-[^206]: Another thing\r
-\r
-[^207]: Another thing\r
-\r
-[^208]: Another thing\r
-\r
-[^209]: Another thing\r
-\r
-[^210]: Another thing\r
-\r
-[^211]: Another thing\r
-\r
-[^212]: Another thing\r
-\r
-[^213]: Another thing\r
-\r
-[^214]: Another thing\r
-\r
-[^215]: Another thing\r
-\r
-[^216]: Another thing\r
-\r
-[^217]: Another thing\r
-\r
-[^218]: Another thing\r
-\r
-[^219]: Another thing\r
-\r
-[^220]: Another thing\r
-\r
-[^221]: Another thing\r
-\r
-[^222]: Another thing\r
-\r
-[^223]: Another thing\r
-\r
-[^224]: Another thing\r
-\r
-[^225]: Another thing\r
-\r
-[^226]: Another thing\r
-\r
-[^227]: Another thing\r
-\r
-[^228]: Another thing\r
-\r
-[^229]: Another thing\r
-\r
-[^230]: Another thing\r
-\r
-[^231]: Another thing\r
-\r
-[^232]: Another thing\r
-\r
-[^233]: Another thing\r
-\r
-[^234]: Another thing\r
-\r
-[^235]: Another thing\r
-\r
-[^236]: Another thing\r
-\r
-[^237]: Another thing\r
-\r
-[^238]: Another thing\r
-\r
-[^239]: Another thing\r
-\r
-[^240]: Another thing\r
-\r
-[^241]: Another thing\r
-\r
-[^242]: Another thing\r
-\r
-[^243]: Another thing\r
-\r
-[^244]: Another thing\r
-\r
-[^245]: Another thing\r
-\r
-[^246]: Another thing\r
-\r
-[^247]: Another thing\r
-\r
-[^248]: Another thing\r
-\r
-[^249]: Another thing\r
-\r
-[^250]: Another thing\r
-\r
-[^251]: Another thing\r
-\r
-[^252]: Another thing\r
-\r
-[^253]: Another thing\r
-\r
-[^254]: Another thing\r
-\r
-[^255]: Another thing\r
-\r
-[^256]: Another thing\r
-\r
-[^257]: Another thing\r
-\r
-[^258]: Another thing\r
-\r
-[^259]: Another thing\r
-\r
-[^260]: Another thing\r
-\r
-[^261]: Another thing\r
-\r
-[^262]: Another thing\r
-\r
-[^263]: Another thing\r
-\r
-[^264]: Another thing\r
-\r
-[^265]: Another thing\r
-\r
-[^266]: Another thing\r
-\r
-[^267]: Another thing\r
-\r
-[^268]: Another thing\r
-\r
-[^269]: Another thing\r
-\r
-[^270]: Another thing\r
-\r
-[^271]: Another thing\r
-\r
-[^272]: Another thing\r
-\r
-[^273]: Another thing\r
-\r
-[^274]: Another thing\r
-\r
-[^275]: Another thing\r
-\r
-[^276]: Another thing\r
-\r
-[^277]: Another thing\r
-\r
-[^278]: Another thing\r
-\r
-[^279]: Another thing\r
-\r
-[^280]: Another thing\r
-\r
-[^281]: Another thing\r
-\r
-[^282]: Another thing\r
-\r
-[^283]: Another thing\r
-\r
-[^284]: Another thing\r
-\r
-[^285]: Another thing\r
-\r
-[^286]: Another thing\r
-\r
-[^287]: Another thing\r
-\r
-[^288]: Another thing\r
-\r
-[^289]: Another thing\r
-\r
-[^290]: Another thing\r
-\r
-[^291]: Another thing\r
-\r
-[^292]: Another thing\r
-\r
-[^293]: Another thing\r
-\r
-[^294]: Another thing\r
-\r
-[^295]: Another thing\r
-\r
-[^296]: Another thing\r
-\r
-[^297]: Another thing\r
-\r
-[^298]: Another thing\r
-\r
-[^299]: Another thing\r
-\r
-[^300]: Another thing\r
-\r
-[^301]: Another thing\r
-\r
-[^302]: Another thing\r
-\r
-[^303]: Another thing\r
-\r
-[^304]: Another thing\r
-\r
-[^305]: Another thing\r
-\r
-[^306]: Another thing\r
-\r
-[^307]: Another thing\r
-\r
-[^308]: Another thing\r
-\r
-[^309]: Another thing\r
-\r
-[^310]: Another thing\r
-\r
-[^311]: Another thing\r
-\r
-[^312]: Another thing\r
-\r
-[^313]: Another thing\r
-\r
-[^314]: Another thing\r
-\r
-[^315]: Another thing\r
-\r
-[^316]: Another thing\r
-\r
-[^317]: Another thing\r
-\r
-[^318]: Another thing\r
-\r
-[^319]: Another thing\r
-\r
-[^320]: Another thing\r
-\r
-[^321]: Another thing\r
-\r
-[^322]: Another thing\r
-\r
-[^323]: Another thing\r
-\r
-[^324]: Another thing\r
-\r
-[^325]: Another thing\r
-\r
-[^326]: Another thing\r
-\r
-[^327]: Another thing\r
-\r
-[^328]: Another thing\r
-\r
-[^329]: Another thing\r
-\r
-[^330]: Another thing\r
-\r
-[^331]: Another thing\r
-\r
-[^332]: Another thing\r
-\r
-[^333]: Another thing\r
-\r
-[^334]: Another thing\r
-\r
-[^335]: Another thing\r
-\r
-[^336]: Another thing\r
-\r
-[^337]: Another thing\r
-\r
-[^338]: Another thing\r
-\r
-[^339]: Another thing\r
-\r
-[^340]: Another thing\r
-\r
-[^341]: Another thing\r
-\r
-[^342]: Another thing\r
-\r
-[^343]: Another thing\r
-\r
-[^344]: Another thing\r
-\r
-[^345]: Another thing\r
-\r
-[^346]: Another thing\r
-\r
-[^347]: Another thing\r
-\r
-[^348]: Another thing\r
-\r
-[^349]: Another thing\r
-\r
-[^350]: Another thing\r
-\r
-[^351]: Another thing\r
-\r
-[^352]: Another thing\r
-\r
-[^353]: Another thing\r
-\r
-[^354]: Another thing\r
-\r
-[^355]: Another thing\r
-\r
-[^356]: Another thing\r
-\r
-[^357]: Another thing\r
-\r
-[^358]: Another thing\r
-\r
-[^359]: Another thing\r
-\r
-[^360]: Another thing\r
-\r
-[^361]: Another thing\r
-\r
-[^362]: Another thing\r
-\r
-[^363]: Another thing\r
-\r
-[^364]: Another thing\r
-\r
-[^365]: Another thing\r
-\r
-[^366]: Another thing\r
-\r
-[^367]: Another thing\r
-\r
-[^368]: Another thing\r
-\r
-[^369]: Another thing\r
-\r
-[^370]: Another thing\r
-\r
-[^371]: Another thing\r
-\r
-[^372]: Another thing\r
-\r
-[^373]: Another thing\r
-\r
-[^374]: Another thing\r
-\r
-[^375]: Another thing\r
-\r
-[^376]: Another thing\r
-\r
-[^377]: Another thing\r
-\r
-[^378]: Another thing\r
-\r
-[^379]: Another thing\r
-\r
-[^380]: Another thing\r
-\r
-[^381]: Another thing\r
-\r
-[^382]: Another thing\r
-\r
-[^383]: Another thing\r
-\r
-[^384]: Another thing\r
-\r
-[^385]: Another thing\r
-\r
-[^386]: Another thing\r
-\r
-[^387]: Another thing\r
-\r
-[^388]: Another thing\r
-\r
-[^389]: Another thing\r
-\r
-[^390]: Another thing\r
-\r
-[^391]: Another thing\r
-\r
-[^392]: Another thing\r
-\r
-[^393]: Another thing\r
-\r
-[^394]: Another thing\r
-\r
-[^395]: Another thing\r
-\r
-[^396]: Another thing\r
-\r
-[^397]: Another thing\r
-\r
-[^398]: Another thing\r
-\r
-[^399]: Another thing\r
-\r
-[^400]: Another thing\r
-\r
-[^401]: Another thing\r
-\r
-[^402]: Another thing\r
-\r
-[^403]: Another thing\r
-\r
-[^404]: Another thing\r
-\r
-[^405]: Another thing\r
-\r
-[^406]: Another thing\r
-\r
-[^407]: Another thing\r
-\r
-[^408]: Another thing\r
-\r
-[^409]: Another thing\r
-\r
-[^410]: Another thing\r
-\r
-[^411]: Another thing\r
-\r
-[^412]: Another thing\r
-\r
-[^413]: Another thing\r
-\r
-[^414]: Another thing\r
-\r
-[^415]: Another thing\r
-\r
-[^416]: Another thing\r
-\r
-[^417]: Another thing\r
-\r
-[^418]: Another thing\r
-\r
-[^419]: Another thing\r
-\r
-[^420]: Another thing\r
-\r
-[^421]: Another thing\r
-\r
-[^422]: Another thing\r
-\r
-[^423]: Another thing\r
-\r
-[^424]: Another thing\r
-\r
-[^425]: Another thing\r
-\r
-[^426]: Another thing\r
-\r
-[^427]: Another thing\r
-\r
-[^428]: Another thing\r
-\r
-[^429]: Another thing\r
-\r
-[^430]: Another thing\r
-\r
-[^431]: Another thing\r
-\r
-[^432]: Another thing\r
-\r
-[^433]: Another thing\r
-\r
-[^434]: Another thing\r
-\r
-[^435]: Another thing\r
-\r
-[^436]: Another thing\r
-\r
-[^437]: Another thing\r
-\r
-[^438]: Another thing\r
-\r
-[^439]: Another thing\r
-\r
-[^440]: Another thing\r
-\r
-[^441]: Another thing\r
-\r
-[^442]: Another thing\r
-\r
-[^443]: Another thing\r
-\r
-[^444]: Another thing\r
-\r
-[^445]: Another thing\r
-\r
-[^446]: Another thing\r
-\r
-[^447]: Another thing\r
-\r
-[^448]: Another thing\r
-\r
-[^449]: Another thing\r
-\r
-[^450]: Another thing\r
-\r
-[^451]: Another thing\r
-\r
-[^452]: Another thing\r
-\r
-[^453]: Another thing\r
-\r
-[^454]: Another thing\r
-\r
-[^455]: Another thing\r
-\r
-[^456]: Another thing\r
-\r
-[^457]: Another thing\r
-\r
-[^458]: Another thing\r
-\r
-[^459]: Another thing\r
-\r
-[^460]: Another thing\r
-\r
-[^461]: Another thing\r
-\r
-[^462]: Another thing\r
-\r
-[^463]: Another thing\r
-\r
-[^464]: Another thing\r
-\r
-[^465]: Another thing\r
-\r
-[^466]: Another thing\r
-\r
-[^467]: Another thing\r
-\r
-[^468]: Another thing\r
-\r
-[^469]: Another thing\r
-\r
-[^470]: Another thing\r
-\r
-[^471]: Another thing\r
-\r
-[^472]: Another thing\r
-\r
-[^473]: Another thing\r
-\r
-[^474]: Another thing\r
-\r
-[^475]: Another thing\r
-\r
-[^476]: Another thing\r
-\r
-[^477]: Another thing\r
-\r
-[^478]: Another thing\r
-\r
-[^479]: Another thing\r
-\r
-[^480]: Another thing\r
-\r
-[^481]: Another thing\r
-\r
-[^482]: Another thing\r
-\r
-[^483]: Another thing\r
-\r
-[^484]: Another thing\r
-\r
-[^485]: Another thing\r
-\r
-[^486]: Another thing\r
-\r
-[^487]: Another thing\r
-\r
-[^488]: Another thing\r
-\r
-[^489]: Another thing\r
-\r
-[^490]: Another thing\r
-\r
-[^491]: Another thing\r
-\r
-[^492]: Another thing\r
-\r
-[^493]: Another thing\r
-\r
-[^494]: Another thing\r
-\r
-[^495]: Another thing\r
-\r
-[^496]: Another thing\r
-\r
-[^497]: Another thing\r
-\r
-[^498]: Another thing\r
-\r
-[^499]: Another thing\r
-\r
-[^500]: Another thing\r
-\r
-[^501]: Another thing\r
-\r
-[^502]: Another thing\r
-\r
-[^503]: Another thing\r
-\r
-[^504]: Another thing\r
-\r
-[^505]: Another thing\r
-\r
-[^506]: Another thing\r
-\r
-[^507]: Another thing\r
-\r
-[^508]: Another thing\r
-\r
-[^509]: Another thing\r
-\r
-[^510]: Another thing\r
-\r
-[^511]: Another thing\r
-\r
-[^512]: Another thing\r
-\r
-[^513]: Another thing\r
-\r
-[^514]: Another thing\r
-\r
-[^515]: Another thing\r
-\r
-[^516]: Another thing\r
-\r
-[^517]: Another thing\r
-\r
-[^518]: Another thing\r
-\r
-[^519]: Another thing\r
-\r
-[^520]: Another thing\r
-\r
-[^521]: Another thing\r
-\r
-[^522]: Another thing\r
-\r
-[^523]: Another thing\r
-\r
-[^524]: Another thing\r
-\r
-[^525]: Another thing\r
-\r
-[^526]: Another thing\r
-\r
-[^527]: Another thing\r
-\r
-[^528]: Another thing\r
-\r
-[^529]: Another thing\r
-\r
-[^530]: Another thing\r
-\r
-[^531]: Another thing\r
-\r
-[^532]: Another thing\r
-\r
-[^533]: Another thing\r
-\r
-[^534]: Another thing\r
-\r
-[^535]: Another thing\r
-\r
-[^536]: Another thing\r
-\r
-[^537]: Another thing\r
-\r
-[^538]: Another thing\r
-\r
-[^539]: Another thing\r
-\r
-[^540]: Another thing\r
-\r
-[^541]: Another thing\r
-\r
-[^542]: Another thing\r
-\r
-[^543]: Another thing\r
-\r
-[^544]: Another thing\r
-\r
-[^545]: Another thing\r
-\r
-[^546]: Another thing\r
-\r
-[^547]: Another thing\r
-\r
-[^548]: Another thing\r
-\r
-[^549]: Another thing\r
-\r
-[^550]: Another thing\r
-\r
-[^551]: Another thing\r
-\r
-[^552]: Another thing\r
-\r
-[^553]: Another thing\r
-\r
-[^554]: Another thing\r
-\r
-[^555]: Another thing\r
-\r
-[^556]: Another thing\r
-\r
-[^557]: Another thing\r
-\r
-[^558]: Another thing\r
-\r
-[^559]: Another thing\r
-\r
-[^560]: Another thing\r
-\r
-[^561]: Another thing\r
-\r
-[^562]: Another thing\r
-\r
-[^563]: Another thing\r
-\r
-[^564]: Another thing\r
-\r
-[^565]: Another thing\r
-\r
-[^566]: Another thing\r
-\r
-[^567]: Another thing\r
-\r
-[^568]: Another thing\r
-\r
-[^569]: Another thing\r
-\r
-[^570]: Another thing\r
-\r
-[^571]: Another thing\r
-\r
-[^572]: Another thing\r
-\r
-[^573]: Another thing\r
-\r
-[^574]: Another thing\r
-\r
-[^575]: Another thing\r
-\r
-[^576]: Another thing\r
-\r
-[^577]: Another thing\r
-\r
-[^578]: Another thing\r
-\r
-[^579]: Another thing\r
-\r
-[^580]: Another thing\r
-\r
-[^581]: Another thing\r
-\r
-[^582]: Another thing\r
-\r
-[^583]: Another thing\r
-\r
-[^584]: Another thing\r
-\r
-[^585]: Another thing\r
-\r
-[^586]: Another thing\r
-\r
-[^587]: Another thing\r
-\r
-[^588]: Another thing\r
-\r
-[^589]: Another thing\r
-\r
-[^590]: Another thing\r
-\r
-[^591]: Another thing\r
-\r
-[^592]: Another thing\r
-\r
-[^593]: Another thing\r
-\r
-[^594]: Another thing\r
-\r
-[^595]: Another thing\r
-\r
-[^596]: Another thing\r
-\r
-[^597]: Another thing\r
-\r
-[^598]: Another thing\r
-\r
-[^599]: Another thing\r
-\r
-[^600]: Another thing\r
-\r
-[^601]: Another thing\r
-\r
-[^602]: Another thing\r
-\r
-[^603]: Another thing\r
-\r
-[^604]: Another thing\r
-\r
-[^605]: Another thing\r
-\r
-[^606]: Another thing\r
-\r
-[^607]: Another thing\r
-\r
-[^608]: Another thing\r
-\r
-[^609]: Another thing\r
-\r
-[^610]: Another thing\r
-\r
-[^611]: Another thing\r
-\r
-[^612]: Another thing\r
-\r
-[^613]: Another thing\r
-\r
-[^614]: Another thing\r
-\r
-[^615]: Another thing\r
-\r
-[^616]: Another thing\r
-\r
-[^617]: Another thing\r
-\r
-[^618]: Another thing\r
-\r
-[^619]: Another thing\r
-\r
-[^620]: Another thing\r
-\r
-[^621]: Another thing\r
-\r
-[^622]: Another thing\r
-\r
-[^623]: Another thing\r
-\r
-[^624]: Another thing\r
-\r
-[^625]: Another thing\r
-\r
-[^626]: Another thing\r
-\r
-[^627]: Another thing\r
-\r
-[^628]: Another thing\r
-\r
-[^629]: Another thing\r
-\r
-[^630]: Another thing\r
-\r
-[^631]: Another thing\r
-\r
-[^632]: Another thing\r
-\r
-[^633]: Another thing\r
-\r
-[^634]: Another thing\r
-\r
-[^635]: Another thing\r
-\r
-[^636]: Another thing\r
-\r
-[^637]: Another thing\r
-\r
-[^638]: Another thing\r
-\r
-[^639]: Another thing\r
-\r
-[^640]: Another thing\r
-\r
-[^641]: Another thing\r
-\r
-[^642]: Another thing\r
-\r
-[^643]: Another thing\r
-\r
-[^644]: Another thing\r
-\r
-[^645]: Another thing\r
-\r
-[^646]: Another thing\r
-\r
-[^647]: Another thing\r
-\r
-[^648]: Another thing\r
-\r
-[^649]: Another thing\r
-\r
-[^650]: Another thing\r
-\r
-[^651]: Another thing\r
-\r
-[^652]: Another thing\r
-\r
-[^653]: Another thing\r
-\r
-[^654]: Another thing\r
-\r
-[^655]: Another thing\r
-\r
-[^656]: Another thing\r
-\r
-[^657]: Another thing\r
-\r
-[^658]: Another thing\r
-\r
-[^659]: Another thing\r
-\r
-[^660]: Another thing\r
-\r
-[^661]: Another thing\r
-\r
-[^662]: Another thing\r
-\r
-[^663]: Another thing\r
-\r
-[^664]: Another thing\r
-\r
-[^665]: Another thing\r
-\r
-[^666]: Another thing\r
-\r
-[^667]: Another thing\r
-\r
-[^668]: Another thing\r
-\r
-[^669]: Another thing\r
-\r
-[^670]: Another thing\r
-\r
-[^671]: Another thing\r
-\r
-[^672]: Another thing\r
-\r
-[^673]: Another thing\r
-\r
-[^674]: Another thing\r
-\r
-[^675]: Another thing\r
-\r
-[^676]: Another thing\r
-\r
-[^677]: Another thing\r
-\r
-[^678]: Another thing\r
-\r
-[^679]: Another thing\r
-\r
-[^680]: Another thing\r
-\r
-[^681]: Another thing\r
-\r
-[^682]: Another thing\r
-\r
-[^683]: Another thing\r
-\r
-[^684]: Another thing\r
-\r
-[^685]: Another thing\r
-\r
-[^686]: Another thing\r
-\r
-[^687]: Another thing\r
-\r
-[^688]: Another thing\r
-\r
-[^689]: Another thing\r
-\r
-[^690]: Another thing\r
-\r
-[^691]: Another thing\r
-\r
-[^692]: Another thing\r
-\r
-[^693]: Another thing\r
-\r
-[^694]: Another thing\r
-\r
-[^695]: Another thing\r
-\r
-[^696]: Another thing\r
-\r
-[^697]: Another thing\r
-\r
-[^698]: Another thing\r
-\r
-[^699]: Another thing\r
-\r
-[^700]: Another thing\r
-\r
-[^701]: Another thing\r
-\r
-[^702]: Another thing\r
-\r
-[^703]: Another thing\r
-\r
-[^704]: Another thing\r
-\r
-[^705]: Another thing\r
-\r
-[^706]: Another thing\r
-\r
-[^707]: Another thing\r
-\r
-[^708]: Another thing\r
-\r
-[^709]: Another thing\r
-\r
-[^710]: Another thing\r
-\r
-[^711]: Another thing\r
-\r
-[^712]: Another thing\r
-\r
-[^713]: Another thing\r
-\r
-[^714]: Another thing\r
-\r
-[^715]: Another thing\r
-\r
-[^716]: Another thing\r
-\r
-[^717]: Another thing\r
-\r
-[^718]: Another thing\r
-\r
-[^719]: Another thing\r
-\r
-[^720]: Another thing\r
-\r
-[^721]: Another thing\r
-\r
-[^722]: Another thing\r
-\r
-[^723]: Another thing\r
-\r
-[^724]: Another thing\r
-\r
-[^725]: Another thing\r
-\r
-[^726]: Another thing\r
-\r
-[^727]: Another thing\r
-\r
-[^728]: Another thing\r
-\r
-[^729]: Another thing\r
-\r
-[^730]: Another thing\r
-\r
-[^731]: Another thing\r
-\r
-[^732]: Another thing\r
-\r
-[^733]: Another thing\r
-\r
-[^734]: Another thing\r
-\r
-[^735]: Another thing\r
-\r
-[^736]: Another thing\r
-\r
-[^737]: Another thing\r
-\r
-[^738]: Another thing\r
-\r
-[^739]: Another thing\r
-\r
-[^740]: Another thing\r
-\r
-[^741]: Another thing\r
-\r
-[^742]: Another thing\r
-\r
-[^743]: Another thing\r
-\r
-[^744]: Another thing\r
-\r
-[^745]: Another thing\r
-\r
-[^746]: Another thing\r
-\r
-[^747]: Another thing\r
-\r
-[^748]: Another thing\r
-\r
-[^749]: Another thing\r
-\r
-[^750]: Another thing\r
-\r
-[^751]: Another thing\r
-\r
-[^752]: Another thing\r
-\r
-[^753]: Another thing\r
-\r
-[^754]: Another thing\r
-\r
-[^755]: Another thing\r
-\r
-[^756]: Another thing\r
-\r
-[^757]: Another thing\r
-\r
-[^758]: Another thing\r
-\r
-[^759]: Another thing\r
-\r
-[^760]: Another thing\r
-\r
-[^761]: Another thing\r
-\r
-[^762]: Another thing\r
-\r
-[^763]: Another thing\r
-\r
-[^764]: Another thing\r
-\r
-[^765]: Another thing\r
-\r
-[^766]: Another thing\r
-\r
-[^767]: Another thing\r
-\r
-[^768]: Another thing\r
-\r
-[^769]: Another thing\r
-\r
-[^770]: Another thing\r
-\r
-[^771]: Another thing\r
-\r
-[^772]: Another thing\r
-\r
-[^773]: Another thing\r
-\r
-[^774]: Another thing\r
-\r
-[^775]: Another thing\r
-\r
-[^776]: Another thing\r
-\r
-[^777]: Another thing\r
-\r
-[^778]: Another thing\r
-\r
-[^779]: Another thing\r
-\r
-[^780]: Another thing\r
-\r
-[^781]: Another thing\r
-\r
-[^782]: Another thing\r
-\r
-[^783]: Another thing\r
-\r
-[^784]: Another thing\r
-\r
-[^785]: Another thing\r
-\r
-[^786]: Another thing\r
-\r
-[^787]: Another thing\r
-\r
-[^788]: Another thing\r
-\r
-[^789]: Another thing\r
-\r
-[^790]: Another thing\r
-\r
-[^791]: Another thing\r
-\r
-[^792]: Another thing\r
-\r
-[^793]: Another thing\r
-\r
-[^794]: Another thing\r
-\r
-[^795]: Another thing\r
-\r
-[^796]: Another thing\r
-\r
-[^797]: Another thing\r
-\r
-[^798]: Another thing\r
-\r
-[^799]: Another thing\r
-\r
-[^800]: Another thing\r
-\r
-[^801]: Another thing\r
-\r
-[^802]: Another thing\r
-\r
-[^803]: Another thing\r
-\r
-[^804]: Another thing\r
-\r
-[^805]: Another thing\r
-\r
-[^806]: Another thing\r
-\r
-[^807]: Another thing\r
-\r
-[^808]: Another thing\r
-\r
-[^809]: Another thing\r
-\r
-[^810]: Another thing\r
-\r
-[^811]: Another thing\r
-\r
-[^812]: Another thing\r
-\r
-[^813]: Another thing\r
-\r
-[^814]: Another thing\r
-\r
-[^815]: Another thing\r
-\r
-[^816]: Another thing\r
-\r
-[^817]: Another thing\r
-\r
-[^818]: Another thing\r
-\r
-[^819]: Another thing\r
-\r
-[^820]: Another thing\r
-\r
-[^821]: Another thing\r
-\r
-[^822]: Another thing\r
-\r
-[^823]: Another thing\r
-\r
-[^824]: Another thing\r
-\r
-[^825]: Another thing\r
-\r
-[^826]: Another thing\r
-\r
-[^827]: Another thing\r
-\r
-[^828]: Another thing\r
-\r
-[^829]: Another thing\r
-\r
-[^830]: Another thing\r
-\r
-[^831]: Another thing\r
-\r
-[^832]: Another thing\r
-\r
-[^833]: Another thing\r
-\r
-[^834]: Another thing\r
-\r
-[^835]: Another thing\r
-\r
-[^836]: Another thing\r
-\r
-[^837]: Another thing\r
-\r
-[^838]: Another thing\r
-\r
-[^839]: Another thing\r
-\r
-[^840]: Another thing\r
-\r
-[^841]: Another thing\r
-\r
-[^842]: Another thing\r
-\r
-[^843]: Another thing\r
-\r
-[^844]: Another thing\r
-\r
-[^845]: Another thing\r
-\r
-[^846]: Another thing\r
-\r
-[^847]: Another thing\r
-\r
-[^848]: Another thing\r
-\r
-[^849]: Another thing\r
-\r
-[^850]: Another thing\r
-\r
-[^851]: Another thing\r
-\r
-[^852]: Another thing\r
-\r
-[^853]: Another thing\r
-\r
-[^854]: Another thing\r
-\r
-[^855]: Another thing\r
-\r
-[^856]: Another thing\r
-\r
-[^857]: Another thing\r
-\r
-[^858]: Another thing\r
-\r
-[^859]: Another thing\r
-\r
-[^860]: Another thing\r
-\r
-[^861]: Another thing\r
-\r
-[^862]: Another thing\r
-\r
-[^863]: Another thing\r
-\r
-[^864]: Another thing\r
-\r
-[^865]: Another thing\r
-\r
-[^866]: Another thing\r
-\r
-[^867]: Another thing\r
-\r
-[^868]: Another thing\r
-\r
-[^869]: Another thing\r
-\r
-[^870]: Another thing\r
-\r
-[^871]: Another thing\r
-\r
-[^872]: Another thing\r
-\r
-[^873]: Another thing\r
-\r
-[^874]: Another thing\r
-\r
-[^875]: Another thing\r
-\r
-[^876]: Another thing\r
-\r
-[^877]: Another thing\r
-\r
-[^878]: Another thing\r
-\r
-[^879]: Another thing\r
-\r
-[^880]: Another thing\r
-\r
-[^881]: Another thing\r
-\r
-[^882]: Another thing\r
-\r
-[^883]: Another thing\r
-\r
-[^884]: Another thing\r
-\r
-[^885]: Another thing\r
-\r
-[^886]: Another thing\r
-\r
-[^887]: Another thing\r
-\r
-[^888]: Another thing\r
-\r
-[^889]: Another thing\r
-\r
-[^890]: Another thing\r
-\r
-[^891]: Another thing\r
-\r
-[^892]: Another thing\r
-\r
-[^893]: Another thing\r
-\r
-[^894]: Another thing\r
-\r
-[^895]: Another thing\r
-\r
-[^896]: Another thing\r
-\r
-[^897]: Another thing\r
-\r
-[^898]: Another thing\r
-\r
-[^899]: Another thing\r
-\r
-[^900]: Another thing\r
-\r
-[^901]: Another thing\r
-\r
-[^902]: Another thing\r
-\r
-[^903]: Another thing\r
-\r
-[^904]: Another thing\r
-\r
-[^905]: Another thing\r
-\r
-[^906]: Another thing\r
-\r
-[^907]: Another thing\r
-\r
-[^908]: Another thing\r
-\r
-[^909]: Another thing\r
-\r
-[^910]: Another thing\r
-\r
-[^911]: Another thing\r
-\r
-[^912]: Another thing\r
-\r
-[^913]: Another thing\r
-\r
-[^914]: Another thing\r
-\r
-[^915]: Another thing\r
-\r
-[^916]: Another thing\r
-\r
-[^917]: Another thing\r
-\r
-[^918]: Another thing\r
-\r
-[^919]: Another thing\r
-\r
-[^920]: Another thing\r
-\r
-[^921]: Another thing\r
-\r
-[^922]: Another thing\r
-\r
-[^923]: Another thing\r
-\r
-[^924]: Another thing\r
-\r
-[^925]: Another thing\r
-\r
-[^926]: Another thing\r
-\r
-[^927]: Another thing\r
-\r
-[^928]: Another thing\r
-\r
-[^929]: Another thing\r
-\r
-[^930]: Another thing\r
-\r
-[^931]: Another thing\r
-\r
-[^932]: Another thing\r
-\r
-[^933]: Another thing\r
-\r
-[^934]: Another thing\r
-\r
-[^935]: Another thing\r
-\r
-[^936]: Another thing\r
-\r
-[^937]: Another thing\r
-\r
-[^938]: Another thing\r
-\r
-[^939]: Another thing\r
-\r
-[^940]: Another thing\r
-\r
-[^941]: Another thing\r
-\r
-[^942]: Another thing\r
-\r
-[^943]: Another thing\r
-\r
-[^944]: Another thing\r
-\r
-[^945]: Another thing\r
-\r
-[^946]: Another thing\r
-\r
-[^947]: Another thing\r
-\r
-[^948]: Another thing\r
-\r
-[^949]: Another thing\r
-\r
-[^950]: Another thing\r
-\r
-[^951]: Another thing\r
-\r
-[^952]: Another thing\r
-\r
-[^953]: Another thing\r
-\r
-[^954]: Another thing\r
-\r
-[^955]: Another thing\r
-\r
-[^956]: Another thing\r
-\r
-[^957]: Another thing\r
-\r
-[^958]: Another thing\r
-\r
-[^959]: Another thing\r
-\r
-[^960]: Another thing\r
-\r
-[^961]: Another thing\r
-\r
-[^962]: Another thing\r
-\r
-[^963]: Another thing\r
-\r
-[^964]: Another thing\r
-\r
-[^965]: Another thing\r
-\r
-[^966]: Another thing\r
-\r
-[^967]: Another thing\r
-\r
-[^968]: Another thing\r
-\r
-[^969]: Another thing\r
-\r
-[^970]: Another thing\r
-\r
-[^971]: Another thing\r
-\r
-[^972]: Another thing\r
-\r
-[^973]: Another thing\r
-\r
-[^974]: Another thing\r
-\r
-[^975]: Another thing\r
-\r
-[^976]: Another thing\r
-\r
-[^977]: Another thing\r
-\r
-[^978]: Another thing\r
-\r
-[^979]: Another thing\r
-\r
-[^980]: Another thing\r
-\r
-[^981]: Another thing\r
-\r
-[^982]: Another thing\r
-\r
-[^983]: Another thing\r
-\r
-[^984]: Another thing\r
-\r
-[^985]: Another thing\r
-\r
-[^986]: Another thing\r
-\r
-[^987]: Another thing\r
-\r
-[^988]: Another thing\r
-\r
-[^989]: Another thing\r
-\r
-[^990]: Another thing\r
-\r
-[^991]: Another thing\r
-\r
-[^992]: Another thing\r
-\r
-[^993]: Another thing\r
-\r
-[^994]: Another thing\r
-\r
-[^995]: Another thing\r
-\r
-[^996]: Another thing\r
-\r
-[^997]: Another thing\r
-\r
-[^998]: Another thing\r
-\r
-[^999]: Another thing\r
-\r
-[^1000]: Another thing\r
-\r
-[^1001]: Another thing\r
-\r
-[^1002]: Another thing\r
-\r
-[^1003]: Another thing\r
-\r
-[^1004]: Another thing\r
-\r
-[^1005]: Another thing\r
-\r
-[^1006]: Another thing\r
-\r
-[^1007]: Another thing\r
-\r
-[^1008]: Another thing\r
-\r
-[^1009]: Another thing\r
-\r
-[^1010]: Another thing\r
-\r
-[^1011]: Another thing\r
-\r
-[^1012]: Another thing\r
-\r
-[^1013]: Another thing\r
-\r
-[^1014]: Another thing\r
-\r
-[^1015]: Another thing\r
-\r
-[^1016]: Another thing\r
-\r
-[^1017]: Another thing\r
-\r
-[^1018]: Another thing\r
-\r
-[^1019]: Another thing\r
-\r
-[^1020]: Another thing\r
-\r
-[^1021]: Another thing\r
-\r
-[^1022]: Another thing\r
-\r
-[^1023]: Another thing\r
-\r
-[^1024]: Another thing\r
-\r
-[^1025]: Another thing\r
-\r
-[^1026]: Another thing\r
-\r
-[^1027]: Another thing\r
-\r
-[^1028]: Another thing\r
-\r
-[^1029]: Another thing\r
-\r
-[^1030]: Another thing\r
-\r
-[^1031]: Another thing\r
-\r
-[^1032]: Another thing\r
-\r
-[^1033]: Another thing\r
-\r
-[^1034]: Another thing\r
-\r
-[^1035]: Another thing\r
-\r
-[^1036]: Another thing\r
-\r
-[^1037]: Another thing\r
-\r
-[^1038]: Another thing\r
-\r
-[^1039]: Another thing\r
-\r
-[^1040]: Another thing\r
-\r
-[^1041]: Another thing\r
-\r
-[^1042]: Another thing\r
-\r
-[^1043]: Another thing\r
-\r
-[^1044]: Another thing\r
-\r
-[^1045]: Another thing\r
-\r
-[^1046]: Another thing\r
-\r
-[^1047]: Another thing\r
-\r
-[^1048]: Another thing\r
-\r
-[^1049]: Another thing\r
-\r
-[^1050]: Another thing\r
-\r
-[^1051]: Another thing\r
-\r
-[^1052]: Another thing\r
-\r
-[^1053]: Another thing\r
-\r
-[^1054]: Another thing\r
-\r
-[^1055]: Another thing\r
-\r
-[^1056]: Another thing\r
-\r
-[^1057]: Another thing\r
-\r
-[^1058]: Another thing\r
-\r
-[^1059]: Another thing\r
-\r
-[^1060]: Another thing\r
-\r
-[^1061]: Another thing\r
-\r
-[^1062]: Another thing\r
-\r
-[^1063]: Another thing\r
-\r
-[^1064]: Another thing\r
-\r
-[^1065]: Another thing\r
-\r
-[^1066]: Another thing\r
-\r
-[^1067]: Another thing\r
-\r
-[^1068]: Another thing\r
-\r
-[^1069]: Another thing\r
-\r
-[^1070]: Another thing\r
-\r
-[^1071]: Another thing\r
-\r
-[^1072]: Another thing\r
-\r
-[^1073]: Another thing\r
-\r
-[^1074]: Another thing\r
-\r
-[^1075]: Another thing\r
-\r
-[^1076]: Another thing\r
-\r
-[^1077]: Another thing\r
-\r
-[^1078]: Another thing\r
-\r
-[^1079]: Another thing\r
-\r
-[^1080]: Another thing\r
-\r
-[^1081]: Another thing\r
-\r
-[^1082]: Another thing\r
-\r
-[^1083]: Another thing\r
-\r
-[^1084]: Another thing\r
-\r
-[^1085]: Another thing\r
-\r
-[^1086]: Another thing\r
-\r
-[^1087]: Another thing\r
-\r
-[^1088]: Another thing\r
-\r
-[^1089]: Another thing\r
-\r
-[^1090]: Another thing\r
-\r
-[^1091]: Another thing\r
-\r
-[^1092]: Another thing\r
-\r
-[^1093]: Another thing\r
-\r
-[^1094]: Another thing\r
-\r
-[^1095]: Another thing\r
-\r
-[^1096]: Another thing\r
-\r
-[^1097]: Another thing\r
-\r
-[^1098]: Another thing\r
-\r
-[^1099]: Another thing\r
-\r
-[^1100]: Another thing\r
-\r
-[^1101]: Another thing\r
-\r
-[^1102]: Another thing\r
-\r
-[^1103]: Another thing\r
-\r
-[^1104]: Another thing\r
-\r
-[^1105]: Another thing\r
-\r
-[^1106]: Another thing\r
-\r
-[^1107]: Another thing\r
-\r
-[^1108]: Another thing\r
-\r
-[^1109]: Another thing\r
-\r
-[^1110]: Another thing\r
-\r
-[^1111]: Another thing\r
-\r
-[^1112]: Another thing\r
-\r
-[^1113]: Another thing\r
-\r
-[^1114]: Another thing\r
-\r
-[^1115]: Another thing\r
-\r
-[^1116]: Another thing\r
-\r
-[^1117]: Another thing\r
-\r
-[^1118]: Another thing\r
-\r
-[^1119]: Another thing\r
-\r
-[^1120]: Another thing\r
-\r
-[^1121]: Another thing\r
-\r
-[^1122]: Another thing\r
-\r
-[^1123]: Another thing\r
-\r
-[^1124]: Another thing\r
-\r
-[^1125]: Another thing\r
-\r
-[^1126]: Another thing\r
-\r
-[^1127]: Another thing\r
-\r
-[^1128]: Another thing\r
-\r
-[^1129]: Another thing\r
-\r
-[^1130]: Another thing\r
-\r
-[^1131]: Another thing\r
-\r
-[^1132]: Another thing\r
-\r
-[^1133]: Another thing\r
-\r
-[^1134]: Another thing\r
-\r
-[^1135]: Another thing\r
-\r
-[^1136]: Another thing\r
-\r
-[^1137]: Another thing\r
-\r
-[^1138]: Another thing\r
-\r
-[^1139]: Another thing\r
-\r
-[^1140]: Another thing\r
-\r
-[^1141]: Another thing\r
-\r
-[^1142]: Another thing\r
-\r
-[^1143]: Another thing\r
-\r
-[^1144]: Another thing\r
-\r
-[^1145]: Another thing\r
-\r
-[^1146]: Another thing\r
-\r
-[^1147]: Another thing\r
-\r
-[^1148]: Another thing\r
-\r
-[^1149]: Another thing\r
-\r
-[^1150]: Another thing\r
-\r
-[^1151]: Another thing\r
-\r
-[^1152]: Another thing\r
-\r
-[^1153]: Another thing\r
-\r
-[^1154]: Another thing\r
-\r
-[^1155]: Another thing\r
-\r
-[^1156]: Another thing\r
-\r
-[^1157]: Another thing\r
-\r
-[^1158]: Another thing\r
-\r
-[^1159]: Another thing\r
-\r
-[^1160]: Another thing\r
-\r
-[^1161]: Another thing\r
-\r
-[^1162]: Another thing\r
-\r
-[^1163]: Another thing\r
-\r
-[^1164]: Another thing\r
-\r
-[^1165]: Another thing\r
-\r
-[^1166]: Another thing\r
-\r
-[^1167]: Another thing\r
-\r
-[^1168]: Another thing\r
-\r
-[^1169]: Another thing\r
-\r
-[^1170]: Another thing\r
-\r
-[^1171]: Another thing\r
-\r
-[^1172]: Another thing\r
-\r
-[^1173]: Another thing\r
-\r
-[^1174]: Another thing\r
-\r
-[^1175]: Another thing\r
-\r
-[^1176]: Another thing\r
-\r
-[^1177]: Another thing\r
-\r
-[^1178]: Another thing\r
-\r
-[^1179]: Another thing\r
-\r
-[^1180]: Another thing\r
-\r
-[^1181]: Another thing\r
-\r
-[^1182]: Another thing\r
-\r
-[^1183]: Another thing\r
-\r
-[^1184]: Another thing\r
-\r
-[^1185]: Another thing\r
-\r
-[^1186]: Another thing\r
-\r
-[^1187]: Another thing\r
-\r
-[^1188]: Another thing\r
-\r
-[^1189]: Another thing\r
-\r
-[^1190]: Another thing\r
-\r
-[^1191]: Another thing\r
-\r
-[^1192]: Another thing\r
-\r
-[^1193]: Another thing\r
-\r
-[^1194]: Another thing\r
-\r
-[^1195]: Another thing\r
-\r
-[^1196]: Another thing\r
-\r
-[^1197]: Another thing\r
-\r
-[^1198]: Another thing\r
-\r
-[^1199]: Another thing\r
-\r
+Something[^1]
+
+Something[^2]
+
+Something[^3]
+
+Something[^4]
+
+Something[^5]
+
+Something[^6]
+
+Something[^7]
+
+Something[^8]
+
+Something[^9]
+
+Something[^10]
+
+Something[^11]
+
+Something[^12]
+
+Something[^13]
+
+Something[^14]
+
+Something[^15]
+
+Something[^16]
+
+Something[^17]
+
+Something[^18]
+
+Something[^19]
+
+Something[^20]
+
+Something[^21]
+
+Something[^22]
+
+Something[^23]
+
+Something[^24]
+
+Something[^25]
+
+Something[^26]
+
+Something[^27]
+
+Something[^28]
+
+Something[^29]
+
+Something[^30]
+
+Something[^31]
+
+Something[^32]
+
+Something[^33]
+
+Something[^34]
+
+Something[^35]
+
+Something[^36]
+
+Something[^37]
+
+Something[^38]
+
+Something[^39]
+
+Something[^40]
+
+Something[^41]
+
+Something[^42]
+
+Something[^43]
+
+Something[^44]
+
+Something[^45]
+
+Something[^46]
+
+Something[^47]
+
+Something[^48]
+
+Something[^49]
+
+Something[^50]
+
+Something[^51]
+
+Something[^52]
+
+Something[^53]
+
+Something[^54]
+
+Something[^55]
+
+Something[^56]
+
+Something[^57]
+
+Something[^58]
+
+Something[^59]
+
+Something[^60]
+
+Something[^61]
+
+Something[^62]
+
+Something[^63]
+
+Something[^64]
+
+Something[^65]
+
+Something[^66]
+
+Something[^67]
+
+Something[^68]
+
+Something[^69]
+
+Something[^70]
+
+Something[^71]
+
+Something[^72]
+
+Something[^73]
+
+Something[^74]
+
+Something[^75]
+
+Something[^76]
+
+Something[^77]
+
+Something[^78]
+
+Something[^79]
+
+Something[^80]
+
+Something[^81]
+
+Something[^82]
+
+Something[^83]
+
+Something[^84]
+
+Something[^85]
+
+Something[^86]
+
+Something[^87]
+
+Something[^88]
+
+Something[^89]
+
+Something[^90]
+
+Something[^91]
+
+Something[^92]
+
+Something[^93]
+
+Something[^94]
+
+Something[^95]
+
+Something[^96]
+
+Something[^97]
+
+Something[^98]
+
+Something[^99]
+
+Something[^100]
+
+Something[^101]
+
+Something[^102]
+
+Something[^103]
+
+Something[^104]
+
+Something[^105]
+
+Something[^106]
+
+Something[^107]
+
+Something[^108]
+
+Something[^109]
+
+Something[^110]
+
+Something[^111]
+
+Something[^112]
+
+Something[^113]
+
+Something[^114]
+
+Something[^115]
+
+Something[^116]
+
+Something[^117]
+
+Something[^118]
+
+Something[^119]
+
+Something[^120]
+
+Something[^121]
+
+Something[^122]
+
+Something[^123]
+
+Something[^124]
+
+Something[^125]
+
+Something[^126]
+
+Something[^127]
+
+Something[^128]
+
+Something[^129]
+
+Something[^130]
+
+Something[^131]
+
+Something[^132]
+
+Something[^133]
+
+Something[^134]
+
+Something[^135]
+
+Something[^136]
+
+Something[^137]
+
+Something[^138]
+
+Something[^139]
+
+Something[^140]
+
+Something[^141]
+
+Something[^142]
+
+Something[^143]
+
+Something[^144]
+
+Something[^145]
+
+Something[^146]
+
+Something[^147]
+
+Something[^148]
+
+Something[^149]
+
+Something[^150]
+
+Something[^151]
+
+Something[^152]
+
+Something[^153]
+
+Something[^154]
+
+Something[^155]
+
+Something[^156]
+
+Something[^157]
+
+Something[^158]
+
+Something[^159]
+
+Something[^160]
+
+Something[^161]
+
+Something[^162]
+
+Something[^163]
+
+Something[^164]
+
+Something[^165]
+
+Something[^166]
+
+Something[^167]
+
+Something[^168]
+
+Something[^169]
+
+Something[^170]
+
+Something[^171]
+
+Something[^172]
+
+Something[^173]
+
+Something[^174]
+
+Something[^175]
+
+Something[^176]
+
+Something[^177]
+
+Something[^178]
+
+Something[^179]
+
+Something[^180]
+
+Something[^181]
+
+Something[^182]
+
+Something[^183]
+
+Something[^184]
+
+Something[^185]
+
+Something[^186]
+
+Something[^187]
+
+Something[^188]
+
+Something[^189]
+
+Something[^190]
+
+Something[^191]
+
+Something[^192]
+
+Something[^193]
+
+Something[^194]
+
+Something[^195]
+
+Something[^196]
+
+Something[^197]
+
+Something[^198]
+
+Something[^199]
+
+Something[^200]
+
+Something[^201]
+
+Something[^202]
+
+Something[^203]
+
+Something[^204]
+
+Something[^205]
+
+Something[^206]
+
+Something[^207]
+
+Something[^208]
+
+Something[^209]
+
+Something[^210]
+
+Something[^211]
+
+Something[^212]
+
+Something[^213]
+
+Something[^214]
+
+Something[^215]
+
+Something[^216]
+
+Something[^217]
+
+Something[^218]
+
+Something[^219]
+
+Something[^220]
+
+Something[^221]
+
+Something[^222]
+
+Something[^223]
+
+Something[^224]
+
+Something[^225]
+
+Something[^226]
+
+Something[^227]
+
+Something[^228]
+
+Something[^229]
+
+Something[^230]
+
+Something[^231]
+
+Something[^232]
+
+Something[^233]
+
+Something[^234]
+
+Something[^235]
+
+Something[^236]
+
+Something[^237]
+
+Something[^238]
+
+Something[^239]
+
+Something[^240]
+
+Something[^241]
+
+Something[^242]
+
+Something[^243]
+
+Something[^244]
+
+Something[^245]
+
+Something[^246]
+
+Something[^247]
+
+Something[^248]
+
+Something[^249]
+
+Something[^250]
+
+Something[^251]
+
+Something[^252]
+
+Something[^253]
+
+Something[^254]
+
+Something[^255]
+
+Something[^256]
+
+Something[^257]
+
+Something[^258]
+
+Something[^259]
+
+Something[^260]
+
+Something[^261]
+
+Something[^262]
+
+Something[^263]
+
+Something[^264]
+
+Something[^265]
+
+Something[^266]
+
+Something[^267]
+
+Something[^268]
+
+Something[^269]
+
+Something[^270]
+
+Something[^271]
+
+Something[^272]
+
+Something[^273]
+
+Something[^274]
+
+Something[^275]
+
+Something[^276]
+
+Something[^277]
+
+Something[^278]
+
+Something[^279]
+
+Something[^280]
+
+Something[^281]
+
+Something[^282]
+
+Something[^283]
+
+Something[^284]
+
+Something[^285]
+
+Something[^286]
+
+Something[^287]
+
+Something[^288]
+
+Something[^289]
+
+Something[^290]
+
+Something[^291]
+
+Something[^292]
+
+Something[^293]
+
+Something[^294]
+
+Something[^295]
+
+Something[^296]
+
+Something[^297]
+
+Something[^298]
+
+Something[^299]
+
+Something[^300]
+
+Something[^301]
+
+Something[^302]
+
+Something[^303]
+
+Something[^304]
+
+Something[^305]
+
+Something[^306]
+
+Something[^307]
+
+Something[^308]
+
+Something[^309]
+
+Something[^310]
+
+Something[^311]
+
+Something[^312]
+
+Something[^313]
+
+Something[^314]
+
+Something[^315]
+
+Something[^316]
+
+Something[^317]
+
+Something[^318]
+
+Something[^319]
+
+Something[^320]
+
+Something[^321]
+
+Something[^322]
+
+Something[^323]
+
+Something[^324]
+
+Something[^325]
+
+Something[^326]
+
+Something[^327]
+
+Something[^328]
+
+Something[^329]
+
+Something[^330]
+
+Something[^331]
+
+Something[^332]
+
+Something[^333]
+
+Something[^334]
+
+Something[^335]
+
+Something[^336]
+
+Something[^337]
+
+Something[^338]
+
+Something[^339]
+
+Something[^340]
+
+Something[^341]
+
+Something[^342]
+
+Something[^343]
+
+Something[^344]
+
+Something[^345]
+
+Something[^346]
+
+Something[^347]
+
+Something[^348]
+
+Something[^349]
+
+Something[^350]
+
+Something[^351]
+
+Something[^352]
+
+Something[^353]
+
+Something[^354]
+
+Something[^355]
+
+Something[^356]
+
+Something[^357]
+
+Something[^358]
+
+Something[^359]
+
+Something[^360]
+
+Something[^361]
+
+Something[^362]
+
+Something[^363]
+
+Something[^364]
+
+Something[^365]
+
+Something[^366]
+
+Something[^367]
+
+Something[^368]
+
+Something[^369]
+
+Something[^370]
+
+Something[^371]
+
+Something[^372]
+
+Something[^373]
+
+Something[^374]
+
+Something[^375]
+
+Something[^376]
+
+Something[^377]
+
+Something[^378]
+
+Something[^379]
+
+Something[^380]
+
+Something[^381]
+
+Something[^382]
+
+Something[^383]
+
+Something[^384]
+
+Something[^385]
+
+Something[^386]
+
+Something[^387]
+
+Something[^388]
+
+Something[^389]
+
+Something[^390]
+
+Something[^391]
+
+Something[^392]
+
+Something[^393]
+
+Something[^394]
+
+Something[^395]
+
+Something[^396]
+
+Something[^397]
+
+Something[^398]
+
+Something[^399]
+
+Something[^400]
+
+Something[^401]
+
+Something[^402]
+
+Something[^403]
+
+Something[^404]
+
+Something[^405]
+
+Something[^406]
+
+Something[^407]
+
+Something[^408]
+
+Something[^409]
+
+Something[^410]
+
+Something[^411]
+
+Something[^412]
+
+Something[^413]
+
+Something[^414]
+
+Something[^415]
+
+Something[^416]
+
+Something[^417]
+
+Something[^418]
+
+Something[^419]
+
+Something[^420]
+
+Something[^421]
+
+Something[^422]
+
+Something[^423]
+
+Something[^424]
+
+Something[^425]
+
+Something[^426]
+
+Something[^427]
+
+Something[^428]
+
+Something[^429]
+
+Something[^430]
+
+Something[^431]
+
+Something[^432]
+
+Something[^433]
+
+Something[^434]
+
+Something[^435]
+
+Something[^436]
+
+Something[^437]
+
+Something[^438]
+
+Something[^439]
+
+Something[^440]
+
+Something[^441]
+
+Something[^442]
+
+Something[^443]
+
+Something[^444]
+
+Something[^445]
+
+Something[^446]
+
+Something[^447]
+
+Something[^448]
+
+Something[^449]
+
+Something[^450]
+
+Something[^451]
+
+Something[^452]
+
+Something[^453]
+
+Something[^454]
+
+Something[^455]
+
+Something[^456]
+
+Something[^457]
+
+Something[^458]
+
+Something[^459]
+
+Something[^460]
+
+Something[^461]
+
+Something[^462]
+
+Something[^463]
+
+Something[^464]
+
+Something[^465]
+
+Something[^466]
+
+Something[^467]
+
+Something[^468]
+
+Something[^469]
+
+Something[^470]
+
+Something[^471]
+
+Something[^472]
+
+Something[^473]
+
+Something[^474]
+
+Something[^475]
+
+Something[^476]
+
+Something[^477]
+
+Something[^478]
+
+Something[^479]
+
+Something[^480]
+
+Something[^481]
+
+Something[^482]
+
+Something[^483]
+
+Something[^484]
+
+Something[^485]
+
+Something[^486]
+
+Something[^487]
+
+Something[^488]
+
+Something[^489]
+
+Something[^490]
+
+Something[^491]
+
+Something[^492]
+
+Something[^493]
+
+Something[^494]
+
+Something[^495]
+
+Something[^496]
+
+Something[^497]
+
+Something[^498]
+
+Something[^499]
+
+Something[^500]
+
+Something[^501]
+
+Something[^502]
+
+Something[^503]
+
+Something[^504]
+
+Something[^505]
+
+Something[^506]
+
+Something[^507]
+
+Something[^508]
+
+Something[^509]
+
+Something[^510]
+
+Something[^511]
+
+Something[^512]
+
+Something[^513]
+
+Something[^514]
+
+Something[^515]
+
+Something[^516]
+
+Something[^517]
+
+Something[^518]
+
+Something[^519]
+
+Something[^520]
+
+Something[^521]
+
+Something[^522]
+
+Something[^523]
+
+Something[^524]
+
+Something[^525]
+
+Something[^526]
+
+Something[^527]
+
+Something[^528]
+
+Something[^529]
+
+Something[^530]
+
+Something[^531]
+
+Something[^532]
+
+Something[^533]
+
+Something[^534]
+
+Something[^535]
+
+Something[^536]
+
+Something[^537]
+
+Something[^538]
+
+Something[^539]
+
+Something[^540]
+
+Something[^541]
+
+Something[^542]
+
+Something[^543]
+
+Something[^544]
+
+Something[^545]
+
+Something[^546]
+
+Something[^547]
+
+Something[^548]
+
+Something[^549]
+
+Something[^550]
+
+Something[^551]
+
+Something[^552]
+
+Something[^553]
+
+Something[^554]
+
+Something[^555]
+
+Something[^556]
+
+Something[^557]
+
+Something[^558]
+
+Something[^559]
+
+Something[^560]
+
+Something[^561]
+
+Something[^562]
+
+Something[^563]
+
+Something[^564]
+
+Something[^565]
+
+Something[^566]
+
+Something[^567]
+
+Something[^568]
+
+Something[^569]
+
+Something[^570]
+
+Something[^571]
+
+Something[^572]
+
+Something[^573]
+
+Something[^574]
+
+Something[^575]
+
+Something[^576]
+
+Something[^577]
+
+Something[^578]
+
+Something[^579]
+
+Something[^580]
+
+Something[^581]
+
+Something[^582]
+
+Something[^583]
+
+Something[^584]
+
+Something[^585]
+
+Something[^586]
+
+Something[^587]
+
+Something[^588]
+
+Something[^589]
+
+Something[^590]
+
+Something[^591]
+
+Something[^592]
+
+Something[^593]
+
+Something[^594]
+
+Something[^595]
+
+Something[^596]
+
+Something[^597]
+
+Something[^598]
+
+Something[^599]
+
+Something[^600]
+
+Something[^601]
+
+Something[^602]
+
+Something[^603]
+
+Something[^604]
+
+Something[^605]
+
+Something[^606]
+
+Something[^607]
+
+Something[^608]
+
+Something[^609]
+
+Something[^610]
+
+Something[^611]
+
+Something[^612]
+
+Something[^613]
+
+Something[^614]
+
+Something[^615]
+
+Something[^616]
+
+Something[^617]
+
+Something[^618]
+
+Something[^619]
+
+Something[^620]
+
+Something[^621]
+
+Something[^622]
+
+Something[^623]
+
+Something[^624]
+
+Something[^625]
+
+Something[^626]
+
+Something[^627]
+
+Something[^628]
+
+Something[^629]
+
+Something[^630]
+
+Something[^631]
+
+Something[^632]
+
+Something[^633]
+
+Something[^634]
+
+Something[^635]
+
+Something[^636]
+
+Something[^637]
+
+Something[^638]
+
+Something[^639]
+
+Something[^640]
+
+Something[^641]
+
+Something[^642]
+
+Something[^643]
+
+Something[^644]
+
+Something[^645]
+
+Something[^646]
+
+Something[^647]
+
+Something[^648]
+
+Something[^649]
+
+Something[^650]
+
+Something[^651]
+
+Something[^652]
+
+Something[^653]
+
+Something[^654]
+
+Something[^655]
+
+Something[^656]
+
+Something[^657]
+
+Something[^658]
+
+Something[^659]
+
+Something[^660]
+
+Something[^661]
+
+Something[^662]
+
+Something[^663]
+
+Something[^664]
+
+Something[^665]
+
+Something[^666]
+
+Something[^667]
+
+Something[^668]
+
+Something[^669]
+
+Something[^670]
+
+Something[^671]
+
+Something[^672]
+
+Something[^673]
+
+Something[^674]
+
+Something[^675]
+
+Something[^676]
+
+Something[^677]
+
+Something[^678]
+
+Something[^679]
+
+Something[^680]
+
+Something[^681]
+
+Something[^682]
+
+Something[^683]
+
+Something[^684]
+
+Something[^685]
+
+Something[^686]
+
+Something[^687]
+
+Something[^688]
+
+Something[^689]
+
+Something[^690]
+
+Something[^691]
+
+Something[^692]
+
+Something[^693]
+
+Something[^694]
+
+Something[^695]
+
+Something[^696]
+
+Something[^697]
+
+Something[^698]
+
+Something[^699]
+
+Something[^700]
+
+Something[^701]
+
+Something[^702]
+
+Something[^703]
+
+Something[^704]
+
+Something[^705]
+
+Something[^706]
+
+Something[^707]
+
+Something[^708]
+
+Something[^709]
+
+Something[^710]
+
+Something[^711]
+
+Something[^712]
+
+Something[^713]
+
+Something[^714]
+
+Something[^715]
+
+Something[^716]
+
+Something[^717]
+
+Something[^718]
+
+Something[^719]
+
+Something[^720]
+
+Something[^721]
+
+Something[^722]
+
+Something[^723]
+
+Something[^724]
+
+Something[^725]
+
+Something[^726]
+
+Something[^727]
+
+Something[^728]
+
+Something[^729]
+
+Something[^730]
+
+Something[^731]
+
+Something[^732]
+
+Something[^733]
+
+Something[^734]
+
+Something[^735]
+
+Something[^736]
+
+Something[^737]
+
+Something[^738]
+
+Something[^739]
+
+Something[^740]
+
+Something[^741]
+
+Something[^742]
+
+Something[^743]
+
+Something[^744]
+
+Something[^745]
+
+Something[^746]
+
+Something[^747]
+
+Something[^748]
+
+Something[^749]
+
+Something[^750]
+
+Something[^751]
+
+Something[^752]
+
+Something[^753]
+
+Something[^754]
+
+Something[^755]
+
+Something[^756]
+
+Something[^757]
+
+Something[^758]
+
+Something[^759]
+
+Something[^760]
+
+Something[^761]
+
+Something[^762]
+
+Something[^763]
+
+Something[^764]
+
+Something[^765]
+
+Something[^766]
+
+Something[^767]
+
+Something[^768]
+
+Something[^769]
+
+Something[^770]
+
+Something[^771]
+
+Something[^772]
+
+Something[^773]
+
+Something[^774]
+
+Something[^775]
+
+Something[^776]
+
+Something[^777]
+
+Something[^778]
+
+Something[^779]
+
+Something[^780]
+
+Something[^781]
+
+Something[^782]
+
+Something[^783]
+
+Something[^784]
+
+Something[^785]
+
+Something[^786]
+
+Something[^787]
+
+Something[^788]
+
+Something[^789]
+
+Something[^790]
+
+Something[^791]
+
+Something[^792]
+
+Something[^793]
+
+Something[^794]
+
+Something[^795]
+
+Something[^796]
+
+Something[^797]
+
+Something[^798]
+
+Something[^799]
+
+Something[^800]
+
+Something[^801]
+
+Something[^802]
+
+Something[^803]
+
+Something[^804]
+
+Something[^805]
+
+Something[^806]
+
+Something[^807]
+
+Something[^808]
+
+Something[^809]
+
+Something[^810]
+
+Something[^811]
+
+Something[^812]
+
+Something[^813]
+
+Something[^814]
+
+Something[^815]
+
+Something[^816]
+
+Something[^817]
+
+Something[^818]
+
+Something[^819]
+
+Something[^820]
+
+Something[^821]
+
+Something[^822]
+
+Something[^823]
+
+Something[^824]
+
+Something[^825]
+
+Something[^826]
+
+Something[^827]
+
+Something[^828]
+
+Something[^829]
+
+Something[^830]
+
+Something[^831]
+
+Something[^832]
+
+Something[^833]
+
+Something[^834]
+
+Something[^835]
+
+Something[^836]
+
+Something[^837]
+
+Something[^838]
+
+Something[^839]
+
+Something[^840]
+
+Something[^841]
+
+Something[^842]
+
+Something[^843]
+
+Something[^844]
+
+Something[^845]
+
+Something[^846]
+
+Something[^847]
+
+Something[^848]
+
+Something[^849]
+
+Something[^850]
+
+Something[^851]
+
+Something[^852]
+
+Something[^853]
+
+Something[^854]
+
+Something[^855]
+
+Something[^856]
+
+Something[^857]
+
+Something[^858]
+
+Something[^859]
+
+Something[^860]
+
+Something[^861]
+
+Something[^862]
+
+Something[^863]
+
+Something[^864]
+
+Something[^865]
+
+Something[^866]
+
+Something[^867]
+
+Something[^868]
+
+Something[^869]
+
+Something[^870]
+
+Something[^871]
+
+Something[^872]
+
+Something[^873]
+
+Something[^874]
+
+Something[^875]
+
+Something[^876]
+
+Something[^877]
+
+Something[^878]
+
+Something[^879]
+
+Something[^880]
+
+Something[^881]
+
+Something[^882]
+
+Something[^883]
+
+Something[^884]
+
+Something[^885]
+
+Something[^886]
+
+Something[^887]
+
+Something[^888]
+
+Something[^889]
+
+Something[^890]
+
+Something[^891]
+
+Something[^892]
+
+Something[^893]
+
+Something[^894]
+
+Something[^895]
+
+Something[^896]
+
+Something[^897]
+
+Something[^898]
+
+Something[^899]
+
+Something[^900]
+
+Something[^901]
+
+Something[^902]
+
+Something[^903]
+
+Something[^904]
+
+Something[^905]
+
+Something[^906]
+
+Something[^907]
+
+Something[^908]
+
+Something[^909]
+
+Something[^910]
+
+Something[^911]
+
+Something[^912]
+
+Something[^913]
+
+Something[^914]
+
+Something[^915]
+
+Something[^916]
+
+Something[^917]
+
+Something[^918]
+
+Something[^919]
+
+Something[^920]
+
+Something[^921]
+
+Something[^922]
+
+Something[^923]
+
+Something[^924]
+
+Something[^925]
+
+Something[^926]
+
+Something[^927]
+
+Something[^928]
+
+Something[^929]
+
+Something[^930]
+
+Something[^931]
+
+Something[^932]
+
+Something[^933]
+
+Something[^934]
+
+Something[^935]
+
+Something[^936]
+
+Something[^937]
+
+Something[^938]
+
+Something[^939]
+
+Something[^940]
+
+Something[^941]
+
+Something[^942]
+
+Something[^943]
+
+Something[^944]
+
+Something[^945]
+
+Something[^946]
+
+Something[^947]
+
+Something[^948]
+
+Something[^949]
+
+Something[^950]
+
+Something[^951]
+
+Something[^952]
+
+Something[^953]
+
+Something[^954]
+
+Something[^955]
+
+Something[^956]
+
+Something[^957]
+
+Something[^958]
+
+Something[^959]
+
+Something[^960]
+
+Something[^961]
+
+Something[^962]
+
+Something[^963]
+
+Something[^964]
+
+Something[^965]
+
+Something[^966]
+
+Something[^967]
+
+Something[^968]
+
+Something[^969]
+
+Something[^970]
+
+Something[^971]
+
+Something[^972]
+
+Something[^973]
+
+Something[^974]
+
+Something[^975]
+
+Something[^976]
+
+Something[^977]
+
+Something[^978]
+
+Something[^979]
+
+Something[^980]
+
+Something[^981]
+
+Something[^982]
+
+Something[^983]
+
+Something[^984]
+
+Something[^985]
+
+Something[^986]
+
+Something[^987]
+
+Something[^988]
+
+Something[^989]
+
+Something[^990]
+
+Something[^991]
+
+Something[^992]
+
+Something[^993]
+
+Something[^994]
+
+Something[^995]
+
+Something[^996]
+
+Something[^997]
+
+Something[^998]
+
+Something[^999]
+
+Something[^1000]
+
+Something[^1001]
+
+Something[^1002]
+
+Something[^1003]
+
+Something[^1004]
+
+Something[^1005]
+
+Something[^1006]
+
+Something[^1007]
+
+Something[^1008]
+
+Something[^1009]
+
+Something[^1010]
+
+Something[^1011]
+
+Something[^1012]
+
+Something[^1013]
+
+Something[^1014]
+
+Something[^1015]
+
+Something[^1016]
+
+Something[^1017]
+
+Something[^1018]
+
+Something[^1019]
+
+Something[^1020]
+
+Something[^1021]
+
+Something[^1022]
+
+Something[^1023]
+
+Something[^1024]
+
+Something[^1025]
+
+Something[^1026]
+
+Something[^1027]
+
+Something[^1028]
+
+Something[^1029]
+
+Something[^1030]
+
+Something[^1031]
+
+Something[^1032]
+
+Something[^1033]
+
+Something[^1034]
+
+Something[^1035]
+
+Something[^1036]
+
+Something[^1037]
+
+Something[^1038]
+
+Something[^1039]
+
+Something[^1040]
+
+Something[^1041]
+
+Something[^1042]
+
+Something[^1043]
+
+Something[^1044]
+
+Something[^1045]
+
+Something[^1046]
+
+Something[^1047]
+
+Something[^1048]
+
+Something[^1049]
+
+Something[^1050]
+
+Something[^1051]
+
+Something[^1052]
+
+Something[^1053]
+
+Something[^1054]
+
+Something[^1055]
+
+Something[^1056]
+
+Something[^1057]
+
+Something[^1058]
+
+Something[^1059]
+
+Something[^1060]
+
+Something[^1061]
+
+Something[^1062]
+
+Something[^1063]
+
+Something[^1064]
+
+Something[^1065]
+
+Something[^1066]
+
+Something[^1067]
+
+Something[^1068]
+
+Something[^1069]
+
+Something[^1070]
+
+Something[^1071]
+
+Something[^1072]
+
+Something[^1073]
+
+Something[^1074]
+
+Something[^1075]
+
+Something[^1076]
+
+Something[^1077]
+
+Something[^1078]
+
+Something[^1079]
+
+Something[^1080]
+
+Something[^1081]
+
+Something[^1082]
+
+Something[^1083]
+
+Something[^1084]
+
+Something[^1085]
+
+Something[^1086]
+
+Something[^1087]
+
+Something[^1088]
+
+Something[^1089]
+
+Something[^1090]
+
+Something[^1091]
+
+Something[^1092]
+
+Something[^1093]
+
+Something[^1094]
+
+Something[^1095]
+
+Something[^1096]
+
+Something[^1097]
+
+Something[^1098]
+
+Something[^1099]
+
+Something[^1100]
+
+Something[^1101]
+
+Something[^1102]
+
+Something[^1103]
+
+Something[^1104]
+
+Something[^1105]
+
+Something[^1106]
+
+Something[^1107]
+
+Something[^1108]
+
+Something[^1109]
+
+Something[^1110]
+
+Something[^1111]
+
+Something[^1112]
+
+Something[^1113]
+
+Something[^1114]
+
+Something[^1115]
+
+Something[^1116]
+
+Something[^1117]
+
+Something[^1118]
+
+Something[^1119]
+
+Something[^1120]
+
+Something[^1121]
+
+Something[^1122]
+
+Something[^1123]
+
+Something[^1124]
+
+Something[^1125]
+
+Something[^1126]
+
+Something[^1127]
+
+Something[^1128]
+
+Something[^1129]
+
+Something[^1130]
+
+Something[^1131]
+
+Something[^1132]
+
+Something[^1133]
+
+Something[^1134]
+
+Something[^1135]
+
+Something[^1136]
+
+Something[^1137]
+
+Something[^1138]
+
+Something[^1139]
+
+Something[^1140]
+
+Something[^1141]
+
+Something[^1142]
+
+Something[^1143]
+
+Something[^1144]
+
+Something[^1145]
+
+Something[^1146]
+
+Something[^1147]
+
+Something[^1148]
+
+Something[^1149]
+
+Something[^1150]
+
+Something[^1151]
+
+Something[^1152]
+
+Something[^1153]
+
+Something[^1154]
+
+Something[^1155]
+
+Something[^1156]
+
+Something[^1157]
+
+Something[^1158]
+
+Something[^1159]
+
+Something[^1160]
+
+Something[^1161]
+
+Something[^1162]
+
+Something[^1163]
+
+Something[^1164]
+
+Something[^1165]
+
+Something[^1166]
+
+Something[^1167]
+
+Something[^1168]
+
+Something[^1169]
+
+Something[^1170]
+
+Something[^1171]
+
+Something[^1172]
+
+Something[^1173]
+
+Something[^1174]
+
+Something[^1175]
+
+Something[^1176]
+
+Something[^1177]
+
+Something[^1178]
+
+Something[^1179]
+
+Something[^1180]
+
+Something[^1181]
+
+Something[^1182]
+
+Something[^1183]
+
+Something[^1184]
+
+Something[^1185]
+
+Something[^1186]
+
+Something[^1187]
+
+Something[^1188]
+
+Something[^1189]
+
+Something[^1190]
+
+Something[^1191]
+
+Something[^1192]
+
+Something[^1193]
+
+Something[^1194]
+
+Something[^1195]
+
+Something[^1196]
+
+Something[^1197]
+
+Something[^1198]
+
+Something[^1199]
+
+[^1]: Another thing
+
+[^2]: Another thing
+
+[^3]: Another thing
+
+[^4]: Another thing
+
+[^5]: Another thing
+
+[^6]: Another thing
+
+[^7]: Another thing
+
+[^8]: Another thing
+
+[^9]: Another thing
+
+[^10]: Another thing
+
+[^11]: Another thing
+
+[^12]: Another thing
+
+[^13]: Another thing
+
+[^14]: Another thing
+
+[^15]: Another thing
+
+[^16]: Another thing
+
+[^17]: Another thing
+
+[^18]: Another thing
+
+[^19]: Another thing
+
+[^20]: Another thing
+
+[^21]: Another thing
+
+[^22]: Another thing
+
+[^23]: Another thing
+
+[^24]: Another thing
+
+[^25]: Another thing
+
+[^26]: Another thing
+
+[^27]: Another thing
+
+[^28]: Another thing
+
+[^29]: Another thing
+
+[^30]: Another thing
+
+[^31]: Another thing
+
+[^32]: Another thing
+
+[^33]: Another thing
+
+[^34]: Another thing
+
+[^35]: Another thing
+
+[^36]: Another thing
+
+[^37]: Another thing
+
+[^38]: Another thing
+
+[^39]: Another thing
+
+[^40]: Another thing
+
+[^41]: Another thing
+
+[^42]: Another thing
+
+[^43]: Another thing
+
+[^44]: Another thing
+
+[^45]: Another thing
+
+[^46]: Another thing
+
+[^47]: Another thing
+
+[^48]: Another thing
+
+[^49]: Another thing
+
+[^50]: Another thing
+
+[^51]: Another thing
+
+[^52]: Another thing
+
+[^53]: Another thing
+
+[^54]: Another thing
+
+[^55]: Another thing
+
+[^56]: Another thing
+
+[^57]: Another thing
+
+[^58]: Another thing
+
+[^59]: Another thing
+
+[^60]: Another thing
+
+[^61]: Another thing
+
+[^62]: Another thing
+
+[^63]: Another thing
+
+[^64]: Another thing
+
+[^65]: Another thing
+
+[^66]: Another thing
+
+[^67]: Another thing
+
+[^68]: Another thing
+
+[^69]: Another thing
+
+[^70]: Another thing
+
+[^71]: Another thing
+
+[^72]: Another thing
+
+[^73]: Another thing
+
+[^74]: Another thing
+
+[^75]: Another thing
+
+[^76]: Another thing
+
+[^77]: Another thing
+
+[^78]: Another thing
+
+[^79]: Another thing
+
+[^80]: Another thing
+
+[^81]: Another thing
+
+[^82]: Another thing
+
+[^83]: Another thing
+
+[^84]: Another thing
+
+[^85]: Another thing
+
+[^86]: Another thing
+
+[^87]: Another thing
+
+[^88]: Another thing
+
+[^89]: Another thing
+
+[^90]: Another thing
+
+[^91]: Another thing
+
+[^92]: Another thing
+
+[^93]: Another thing
+
+[^94]: Another thing
+
+[^95]: Another thing
+
+[^96]: Another thing
+
+[^97]: Another thing
+
+[^98]: Another thing
+
+[^99]: Another thing
+
+[^100]: Another thing
+
+[^101]: Another thing
+
+[^102]: Another thing
+
+[^103]: Another thing
+
+[^104]: Another thing
+
+[^105]: Another thing
+
+[^106]: Another thing
+
+[^107]: Another thing
+
+[^108]: Another thing
+
+[^109]: Another thing
+
+[^110]: Another thing
+
+[^111]: Another thing
+
+[^112]: Another thing
+
+[^113]: Another thing
+
+[^114]: Another thing
+
+[^115]: Another thing
+
+[^116]: Another thing
+
+[^117]: Another thing
+
+[^118]: Another thing
+
+[^119]: Another thing
+
+[^120]: Another thing
+
+[^121]: Another thing
+
+[^122]: Another thing
+
+[^123]: Another thing
+
+[^124]: Another thing
+
+[^125]: Another thing
+
+[^126]: Another thing
+
+[^127]: Another thing
+
+[^128]: Another thing
+
+[^129]: Another thing
+
+[^130]: Another thing
+
+[^131]: Another thing
+
+[^132]: Another thing
+
+[^133]: Another thing
+
+[^134]: Another thing
+
+[^135]: Another thing
+
+[^136]: Another thing
+
+[^137]: Another thing
+
+[^138]: Another thing
+
+[^139]: Another thing
+
+[^140]: Another thing
+
+[^141]: Another thing
+
+[^142]: Another thing
+
+[^143]: Another thing
+
+[^144]: Another thing
+
+[^145]: Another thing
+
+[^146]: Another thing
+
+[^147]: Another thing
+
+[^148]: Another thing
+
+[^149]: Another thing
+
+[^150]: Another thing
+
+[^151]: Another thing
+
+[^152]: Another thing
+
+[^153]: Another thing
+
+[^154]: Another thing
+
+[^155]: Another thing
+
+[^156]: Another thing
+
+[^157]: Another thing
+
+[^158]: Another thing
+
+[^159]: Another thing
+
+[^160]: Another thing
+
+[^161]: Another thing
+
+[^162]: Another thing
+
+[^163]: Another thing
+
+[^164]: Another thing
+
+[^165]: Another thing
+
+[^166]: Another thing
+
+[^167]: Another thing
+
+[^168]: Another thing
+
+[^169]: Another thing
+
+[^170]: Another thing
+
+[^171]: Another thing
+
+[^172]: Another thing
+
+[^173]: Another thing
+
+[^174]: Another thing
+
+[^175]: Another thing
+
+[^176]: Another thing
+
+[^177]: Another thing
+
+[^178]: Another thing
+
+[^179]: Another thing
+
+[^180]: Another thing
+
+[^181]: Another thing
+
+[^182]: Another thing
+
+[^183]: Another thing
+
+[^184]: Another thing
+
+[^185]: Another thing
+
+[^186]: Another thing
+
+[^187]: Another thing
+
+[^188]: Another thing
+
+[^189]: Another thing
+
+[^190]: Another thing
+
+[^191]: Another thing
+
+[^192]: Another thing
+
+[^193]: Another thing
+
+[^194]: Another thing
+
+[^195]: Another thing
+
+[^196]: Another thing
+
+[^197]: Another thing
+
+[^198]: Another thing
+
+[^199]: Another thing
+
+[^200]: Another thing
+
+[^201]: Another thing
+
+[^202]: Another thing
+
+[^203]: Another thing
+
+[^204]: Another thing
+
+[^205]: Another thing
+
+[^206]: Another thing
+
+[^207]: Another thing
+
+[^208]: Another thing
+
+[^209]: Another thing
+
+[^210]: Another thing
+
+[^211]: Another thing
+
+[^212]: Another thing
+
+[^213]: Another thing
+
+[^214]: Another thing
+
+[^215]: Another thing
+
+[^216]: Another thing
+
+[^217]: Another thing
+
+[^218]: Another thing
+
+[^219]: Another thing
+
+[^220]: Another thing
+
+[^221]: Another thing
+
+[^222]: Another thing
+
+[^223]: Another thing
+
+[^224]: Another thing
+
+[^225]: Another thing
+
+[^226]: Another thing
+
+[^227]: Another thing
+
+[^228]: Another thing
+
+[^229]: Another thing
+
+[^230]: Another thing
+
+[^231]: Another thing
+
+[^232]: Another thing
+
+[^233]: Another thing
+
+[^234]: Another thing
+
+[^235]: Another thing
+
+[^236]: Another thing
+
+[^237]: Another thing
+
+[^238]: Another thing
+
+[^239]: Another thing
+
+[^240]: Another thing
+
+[^241]: Another thing
+
+[^242]: Another thing
+
+[^243]: Another thing
+
+[^244]: Another thing
+
+[^245]: Another thing
+
+[^246]: Another thing
+
+[^247]: Another thing
+
+[^248]: Another thing
+
+[^249]: Another thing
+
+[^250]: Another thing
+
+[^251]: Another thing
+
+[^252]: Another thing
+
+[^253]: Another thing
+
+[^254]: Another thing
+
+[^255]: Another thing
+
+[^256]: Another thing
+
+[^257]: Another thing
+
+[^258]: Another thing
+
+[^259]: Another thing
+
+[^260]: Another thing
+
+[^261]: Another thing
+
+[^262]: Another thing
+
+[^263]: Another thing
+
+[^264]: Another thing
+
+[^265]: Another thing
+
+[^266]: Another thing
+
+[^267]: Another thing
+
+[^268]: Another thing
+
+[^269]: Another thing
+
+[^270]: Another thing
+
+[^271]: Another thing
+
+[^272]: Another thing
+
+[^273]: Another thing
+
+[^274]: Another thing
+
+[^275]: Another thing
+
+[^276]: Another thing
+
+[^277]: Another thing
+
+[^278]: Another thing
+
+[^279]: Another thing
+
+[^280]: Another thing
+
+[^281]: Another thing
+
+[^282]: Another thing
+
+[^283]: Another thing
+
+[^284]: Another thing
+
+[^285]: Another thing
+
+[^286]: Another thing
+
+[^287]: Another thing
+
+[^288]: Another thing
+
+[^289]: Another thing
+
+[^290]: Another thing
+
+[^291]: Another thing
+
+[^292]: Another thing
+
+[^293]: Another thing
+
+[^294]: Another thing
+
+[^295]: Another thing
+
+[^296]: Another thing
+
+[^297]: Another thing
+
+[^298]: Another thing
+
+[^299]: Another thing
+
+[^300]: Another thing
+
+[^301]: Another thing
+
+[^302]: Another thing
+
+[^303]: Another thing
+
+[^304]: Another thing
+
+[^305]: Another thing
+
+[^306]: Another thing
+
+[^307]: Another thing
+
+[^308]: Another thing
+
+[^309]: Another thing
+
+[^310]: Another thing
+
+[^311]: Another thing
+
+[^312]: Another thing
+
+[^313]: Another thing
+
+[^314]: Another thing
+
+[^315]: Another thing
+
+[^316]: Another thing
+
+[^317]: Another thing
+
+[^318]: Another thing
+
+[^319]: Another thing
+
+[^320]: Another thing
+
+[^321]: Another thing
+
+[^322]: Another thing
+
+[^323]: Another thing
+
+[^324]: Another thing
+
+[^325]: Another thing
+
+[^326]: Another thing
+
+[^327]: Another thing
+
+[^328]: Another thing
+
+[^329]: Another thing
+
+[^330]: Another thing
+
+[^331]: Another thing
+
+[^332]: Another thing
+
+[^333]: Another thing
+
+[^334]: Another thing
+
+[^335]: Another thing
+
+[^336]: Another thing
+
+[^337]: Another thing
+
+[^338]: Another thing
+
+[^339]: Another thing
+
+[^340]: Another thing
+
+[^341]: Another thing
+
+[^342]: Another thing
+
+[^343]: Another thing
+
+[^344]: Another thing
+
+[^345]: Another thing
+
+[^346]: Another thing
+
+[^347]: Another thing
+
+[^348]: Another thing
+
+[^349]: Another thing
+
+[^350]: Another thing
+
+[^351]: Another thing
+
+[^352]: Another thing
+
+[^353]: Another thing
+
+[^354]: Another thing
+
+[^355]: Another thing
+
+[^356]: Another thing
+
+[^357]: Another thing
+
+[^358]: Another thing
+
+[^359]: Another thing
+
+[^360]: Another thing
+
+[^361]: Another thing
+
+[^362]: Another thing
+
+[^363]: Another thing
+
+[^364]: Another thing
+
+[^365]: Another thing
+
+[^366]: Another thing
+
+[^367]: Another thing
+
+[^368]: Another thing
+
+[^369]: Another thing
+
+[^370]: Another thing
+
+[^371]: Another thing
+
+[^372]: Another thing
+
+[^373]: Another thing
+
+[^374]: Another thing
+
+[^375]: Another thing
+
+[^376]: Another thing
+
+[^377]: Another thing
+
+[^378]: Another thing
+
+[^379]: Another thing
+
+[^380]: Another thing
+
+[^381]: Another thing
+
+[^382]: Another thing
+
+[^383]: Another thing
+
+[^384]: Another thing
+
+[^385]: Another thing
+
+[^386]: Another thing
+
+[^387]: Another thing
+
+[^388]: Another thing
+
+[^389]: Another thing
+
+[^390]: Another thing
+
+[^391]: Another thing
+
+[^392]: Another thing
+
+[^393]: Another thing
+
+[^394]: Another thing
+
+[^395]: Another thing
+
+[^396]: Another thing
+
+[^397]: Another thing
+
+[^398]: Another thing
+
+[^399]: Another thing
+
+[^400]: Another thing
+
+[^401]: Another thing
+
+[^402]: Another thing
+
+[^403]: Another thing
+
+[^404]: Another thing
+
+[^405]: Another thing
+
+[^406]: Another thing
+
+[^407]: Another thing
+
+[^408]: Another thing
+
+[^409]: Another thing
+
+[^410]: Another thing
+
+[^411]: Another thing
+
+[^412]: Another thing
+
+[^413]: Another thing
+
+[^414]: Another thing
+
+[^415]: Another thing
+
+[^416]: Another thing
+
+[^417]: Another thing
+
+[^418]: Another thing
+
+[^419]: Another thing
+
+[^420]: Another thing
+
+[^421]: Another thing
+
+[^422]: Another thing
+
+[^423]: Another thing
+
+[^424]: Another thing
+
+[^425]: Another thing
+
+[^426]: Another thing
+
+[^427]: Another thing
+
+[^428]: Another thing
+
+[^429]: Another thing
+
+[^430]: Another thing
+
+[^431]: Another thing
+
+[^432]: Another thing
+
+[^433]: Another thing
+
+[^434]: Another thing
+
+[^435]: Another thing
+
+[^436]: Another thing
+
+[^437]: Another thing
+
+[^438]: Another thing
+
+[^439]: Another thing
+
+[^440]: Another thing
+
+[^441]: Another thing
+
+[^442]: Another thing
+
+[^443]: Another thing
+
+[^444]: Another thing
+
+[^445]: Another thing
+
+[^446]: Another thing
+
+[^447]: Another thing
+
+[^448]: Another thing
+
+[^449]: Another thing
+
+[^450]: Another thing
+
+[^451]: Another thing
+
+[^452]: Another thing
+
+[^453]: Another thing
+
+[^454]: Another thing
+
+[^455]: Another thing
+
+[^456]: Another thing
+
+[^457]: Another thing
+
+[^458]: Another thing
+
+[^459]: Another thing
+
+[^460]: Another thing
+
+[^461]: Another thing
+
+[^462]: Another thing
+
+[^463]: Another thing
+
+[^464]: Another thing
+
+[^465]: Another thing
+
+[^466]: Another thing
+
+[^467]: Another thing
+
+[^468]: Another thing
+
+[^469]: Another thing
+
+[^470]: Another thing
+
+[^471]: Another thing
+
+[^472]: Another thing
+
+[^473]: Another thing
+
+[^474]: Another thing
+
+[^475]: Another thing
+
+[^476]: Another thing
+
+[^477]: Another thing
+
+[^478]: Another thing
+
+[^479]: Another thing
+
+[^480]: Another thing
+
+[^481]: Another thing
+
+[^482]: Another thing
+
+[^483]: Another thing
+
+[^484]: Another thing
+
+[^485]: Another thing
+
+[^486]: Another thing
+
+[^487]: Another thing
+
+[^488]: Another thing
+
+[^489]: Another thing
+
+[^490]: Another thing
+
+[^491]: Another thing
+
+[^492]: Another thing
+
+[^493]: Another thing
+
+[^494]: Another thing
+
+[^495]: Another thing
+
+[^496]: Another thing
+
+[^497]: Another thing
+
+[^498]: Another thing
+
+[^499]: Another thing
+
+[^500]: Another thing
+
+[^501]: Another thing
+
+[^502]: Another thing
+
+[^503]: Another thing
+
+[^504]: Another thing
+
+[^505]: Another thing
+
+[^506]: Another thing
+
+[^507]: Another thing
+
+[^508]: Another thing
+
+[^509]: Another thing
+
+[^510]: Another thing
+
+[^511]: Another thing
+
+[^512]: Another thing
+
+[^513]: Another thing
+
+[^514]: Another thing
+
+[^515]: Another thing
+
+[^516]: Another thing
+
+[^517]: Another thing
+
+[^518]: Another thing
+
+[^519]: Another thing
+
+[^520]: Another thing
+
+[^521]: Another thing
+
+[^522]: Another thing
+
+[^523]: Another thing
+
+[^524]: Another thing
+
+[^525]: Another thing
+
+[^526]: Another thing
+
+[^527]: Another thing
+
+[^528]: Another thing
+
+[^529]: Another thing
+
+[^530]: Another thing
+
+[^531]: Another thing
+
+[^532]: Another thing
+
+[^533]: Another thing
+
+[^534]: Another thing
+
+[^535]: Another thing
+
+[^536]: Another thing
+
+[^537]: Another thing
+
+[^538]: Another thing
+
+[^539]: Another thing
+
+[^540]: Another thing
+
+[^541]: Another thing
+
+[^542]: Another thing
+
+[^543]: Another thing
+
+[^544]: Another thing
+
+[^545]: Another thing
+
+[^546]: Another thing
+
+[^547]: Another thing
+
+[^548]: Another thing
+
+[^549]: Another thing
+
+[^550]: Another thing
+
+[^551]: Another thing
+
+[^552]: Another thing
+
+[^553]: Another thing
+
+[^554]: Another thing
+
+[^555]: Another thing
+
+[^556]: Another thing
+
+[^557]: Another thing
+
+[^558]: Another thing
+
+[^559]: Another thing
+
+[^560]: Another thing
+
+[^561]: Another thing
+
+[^562]: Another thing
+
+[^563]: Another thing
+
+[^564]: Another thing
+
+[^565]: Another thing
+
+[^566]: Another thing
+
+[^567]: Another thing
+
+[^568]: Another thing
+
+[^569]: Another thing
+
+[^570]: Another thing
+
+[^571]: Another thing
+
+[^572]: Another thing
+
+[^573]: Another thing
+
+[^574]: Another thing
+
+[^575]: Another thing
+
+[^576]: Another thing
+
+[^577]: Another thing
+
+[^578]: Another thing
+
+[^579]: Another thing
+
+[^580]: Another thing
+
+[^581]: Another thing
+
+[^582]: Another thing
+
+[^583]: Another thing
+
+[^584]: Another thing
+
+[^585]: Another thing
+
+[^586]: Another thing
+
+[^587]: Another thing
+
+[^588]: Another thing
+
+[^589]: Another thing
+
+[^590]: Another thing
+
+[^591]: Another thing
+
+[^592]: Another thing
+
+[^593]: Another thing
+
+[^594]: Another thing
+
+[^595]: Another thing
+
+[^596]: Another thing
+
+[^597]: Another thing
+
+[^598]: Another thing
+
+[^599]: Another thing
+
+[^600]: Another thing
+
+[^601]: Another thing
+
+[^602]: Another thing
+
+[^603]: Another thing
+
+[^604]: Another thing
+
+[^605]: Another thing
+
+[^606]: Another thing
+
+[^607]: Another thing
+
+[^608]: Another thing
+
+[^609]: Another thing
+
+[^610]: Another thing
+
+[^611]: Another thing
+
+[^612]: Another thing
+
+[^613]: Another thing
+
+[^614]: Another thing
+
+[^615]: Another thing
+
+[^616]: Another thing
+
+[^617]: Another thing
+
+[^618]: Another thing
+
+[^619]: Another thing
+
+[^620]: Another thing
+
+[^621]: Another thing
+
+[^622]: Another thing
+
+[^623]: Another thing
+
+[^624]: Another thing
+
+[^625]: Another thing
+
+[^626]: Another thing
+
+[^627]: Another thing
+
+[^628]: Another thing
+
+[^629]: Another thing
+
+[^630]: Another thing
+
+[^631]: Another thing
+
+[^632]: Another thing
+
+[^633]: Another thing
+
+[^634]: Another thing
+
+[^635]: Another thing
+
+[^636]: Another thing
+
+[^637]: Another thing
+
+[^638]: Another thing
+
+[^639]: Another thing
+
+[^640]: Another thing
+
+[^641]: Another thing
+
+[^642]: Another thing
+
+[^643]: Another thing
+
+[^644]: Another thing
+
+[^645]: Another thing
+
+[^646]: Another thing
+
+[^647]: Another thing
+
+[^648]: Another thing
+
+[^649]: Another thing
+
+[^650]: Another thing
+
+[^651]: Another thing
+
+[^652]: Another thing
+
+[^653]: Another thing
+
+[^654]: Another thing
+
+[^655]: Another thing
+
+[^656]: Another thing
+
+[^657]: Another thing
+
+[^658]: Another thing
+
+[^659]: Another thing
+
+[^660]: Another thing
+
+[^661]: Another thing
+
+[^662]: Another thing
+
+[^663]: Another thing
+
+[^664]: Another thing
+
+[^665]: Another thing
+
+[^666]: Another thing
+
+[^667]: Another thing
+
+[^668]: Another thing
+
+[^669]: Another thing
+
+[^670]: Another thing
+
+[^671]: Another thing
+
+[^672]: Another thing
+
+[^673]: Another thing
+
+[^674]: Another thing
+
+[^675]: Another thing
+
+[^676]: Another thing
+
+[^677]: Another thing
+
+[^678]: Another thing
+
+[^679]: Another thing
+
+[^680]: Another thing
+
+[^681]: Another thing
+
+[^682]: Another thing
+
+[^683]: Another thing
+
+[^684]: Another thing
+
+[^685]: Another thing
+
+[^686]: Another thing
+
+[^687]: Another thing
+
+[^688]: Another thing
+
+[^689]: Another thing
+
+[^690]: Another thing
+
+[^691]: Another thing
+
+[^692]: Another thing
+
+[^693]: Another thing
+
+[^694]: Another thing
+
+[^695]: Another thing
+
+[^696]: Another thing
+
+[^697]: Another thing
+
+[^698]: Another thing
+
+[^699]: Another thing
+
+[^700]: Another thing
+
+[^701]: Another thing
+
+[^702]: Another thing
+
+[^703]: Another thing
+
+[^704]: Another thing
+
+[^705]: Another thing
+
+[^706]: Another thing
+
+[^707]: Another thing
+
+[^708]: Another thing
+
+[^709]: Another thing
+
+[^710]: Another thing
+
+[^711]: Another thing
+
+[^712]: Another thing
+
+[^713]: Another thing
+
+[^714]: Another thing
+
+[^715]: Another thing
+
+[^716]: Another thing
+
+[^717]: Another thing
+
+[^718]: Another thing
+
+[^719]: Another thing
+
+[^720]: Another thing
+
+[^721]: Another thing
+
+[^722]: Another thing
+
+[^723]: Another thing
+
+[^724]: Another thing
+
+[^725]: Another thing
+
+[^726]: Another thing
+
+[^727]: Another thing
+
+[^728]: Another thing
+
+[^729]: Another thing
+
+[^730]: Another thing
+
+[^731]: Another thing
+
+[^732]: Another thing
+
+[^733]: Another thing
+
+[^734]: Another thing
+
+[^735]: Another thing
+
+[^736]: Another thing
+
+[^737]: Another thing
+
+[^738]: Another thing
+
+[^739]: Another thing
+
+[^740]: Another thing
+
+[^741]: Another thing
+
+[^742]: Another thing
+
+[^743]: Another thing
+
+[^744]: Another thing
+
+[^745]: Another thing
+
+[^746]: Another thing
+
+[^747]: Another thing
+
+[^748]: Another thing
+
+[^749]: Another thing
+
+[^750]: Another thing
+
+[^751]: Another thing
+
+[^752]: Another thing
+
+[^753]: Another thing
+
+[^754]: Another thing
+
+[^755]: Another thing
+
+[^756]: Another thing
+
+[^757]: Another thing
+
+[^758]: Another thing
+
+[^759]: Another thing
+
+[^760]: Another thing
+
+[^761]: Another thing
+
+[^762]: Another thing
+
+[^763]: Another thing
+
+[^764]: Another thing
+
+[^765]: Another thing
+
+[^766]: Another thing
+
+[^767]: Another thing
+
+[^768]: Another thing
+
+[^769]: Another thing
+
+[^770]: Another thing
+
+[^771]: Another thing
+
+[^772]: Another thing
+
+[^773]: Another thing
+
+[^774]: Another thing
+
+[^775]: Another thing
+
+[^776]: Another thing
+
+[^777]: Another thing
+
+[^778]: Another thing
+
+[^779]: Another thing
+
+[^780]: Another thing
+
+[^781]: Another thing
+
+[^782]: Another thing
+
+[^783]: Another thing
+
+[^784]: Another thing
+
+[^785]: Another thing
+
+[^786]: Another thing
+
+[^787]: Another thing
+
+[^788]: Another thing
+
+[^789]: Another thing
+
+[^790]: Another thing
+
+[^791]: Another thing
+
+[^792]: Another thing
+
+[^793]: Another thing
+
+[^794]: Another thing
+
+[^795]: Another thing
+
+[^796]: Another thing
+
+[^797]: Another thing
+
+[^798]: Another thing
+
+[^799]: Another thing
+
+[^800]: Another thing
+
+[^801]: Another thing
+
+[^802]: Another thing
+
+[^803]: Another thing
+
+[^804]: Another thing
+
+[^805]: Another thing
+
+[^806]: Another thing
+
+[^807]: Another thing
+
+[^808]: Another thing
+
+[^809]: Another thing
+
+[^810]: Another thing
+
+[^811]: Another thing
+
+[^812]: Another thing
+
+[^813]: Another thing
+
+[^814]: Another thing
+
+[^815]: Another thing
+
+[^816]: Another thing
+
+[^817]: Another thing
+
+[^818]: Another thing
+
+[^819]: Another thing
+
+[^820]: Another thing
+
+[^821]: Another thing
+
+[^822]: Another thing
+
+[^823]: Another thing
+
+[^824]: Another thing
+
+[^825]: Another thing
+
+[^826]: Another thing
+
+[^827]: Another thing
+
+[^828]: Another thing
+
+[^829]: Another thing
+
+[^830]: Another thing
+
+[^831]: Another thing
+
+[^832]: Another thing
+
+[^833]: Another thing
+
+[^834]: Another thing
+
+[^835]: Another thing
+
+[^836]: Another thing
+
+[^837]: Another thing
+
+[^838]: Another thing
+
+[^839]: Another thing
+
+[^840]: Another thing
+
+[^841]: Another thing
+
+[^842]: Another thing
+
+[^843]: Another thing
+
+[^844]: Another thing
+
+[^845]: Another thing
+
+[^846]: Another thing
+
+[^847]: Another thing
+
+[^848]: Another thing
+
+[^849]: Another thing
+
+[^850]: Another thing
+
+[^851]: Another thing
+
+[^852]: Another thing
+
+[^853]: Another thing
+
+[^854]: Another thing
+
+[^855]: Another thing
+
+[^856]: Another thing
+
+[^857]: Another thing
+
+[^858]: Another thing
+
+[^859]: Another thing
+
+[^860]: Another thing
+
+[^861]: Another thing
+
+[^862]: Another thing
+
+[^863]: Another thing
+
+[^864]: Another thing
+
+[^865]: Another thing
+
+[^866]: Another thing
+
+[^867]: Another thing
+
+[^868]: Another thing
+
+[^869]: Another thing
+
+[^870]: Another thing
+
+[^871]: Another thing
+
+[^872]: Another thing
+
+[^873]: Another thing
+
+[^874]: Another thing
+
+[^875]: Another thing
+
+[^876]: Another thing
+
+[^877]: Another thing
+
+[^878]: Another thing
+
+[^879]: Another thing
+
+[^880]: Another thing
+
+[^881]: Another thing
+
+[^882]: Another thing
+
+[^883]: Another thing
+
+[^884]: Another thing
+
+[^885]: Another thing
+
+[^886]: Another thing
+
+[^887]: Another thing
+
+[^888]: Another thing
+
+[^889]: Another thing
+
+[^890]: Another thing
+
+[^891]: Another thing
+
+[^892]: Another thing
+
+[^893]: Another thing
+
+[^894]: Another thing
+
+[^895]: Another thing
+
+[^896]: Another thing
+
+[^897]: Another thing
+
+[^898]: Another thing
+
+[^899]: Another thing
+
+[^900]: Another thing
+
+[^901]: Another thing
+
+[^902]: Another thing
+
+[^903]: Another thing
+
+[^904]: Another thing
+
+[^905]: Another thing
+
+[^906]: Another thing
+
+[^907]: Another thing
+
+[^908]: Another thing
+
+[^909]: Another thing
+
+[^910]: Another thing
+
+[^911]: Another thing
+
+[^912]: Another thing
+
+[^913]: Another thing
+
+[^914]: Another thing
+
+[^915]: Another thing
+
+[^916]: Another thing
+
+[^917]: Another thing
+
+[^918]: Another thing
+
+[^919]: Another thing
+
+[^920]: Another thing
+
+[^921]: Another thing
+
+[^922]: Another thing
+
+[^923]: Another thing
+
+[^924]: Another thing
+
+[^925]: Another thing
+
+[^926]: Another thing
+
+[^927]: Another thing
+
+[^928]: Another thing
+
+[^929]: Another thing
+
+[^930]: Another thing
+
+[^931]: Another thing
+
+[^932]: Another thing
+
+[^933]: Another thing
+
+[^934]: Another thing
+
+[^935]: Another thing
+
+[^936]: Another thing
+
+[^937]: Another thing
+
+[^938]: Another thing
+
+[^939]: Another thing
+
+[^940]: Another thing
+
+[^941]: Another thing
+
+[^942]: Another thing
+
+[^943]: Another thing
+
+[^944]: Another thing
+
+[^945]: Another thing
+
+[^946]: Another thing
+
+[^947]: Another thing
+
+[^948]: Another thing
+
+[^949]: Another thing
+
+[^950]: Another thing
+
+[^951]: Another thing
+
+[^952]: Another thing
+
+[^953]: Another thing
+
+[^954]: Another thing
+
+[^955]: Another thing
+
+[^956]: Another thing
+
+[^957]: Another thing
+
+[^958]: Another thing
+
+[^959]: Another thing
+
+[^960]: Another thing
+
+[^961]: Another thing
+
+[^962]: Another thing
+
+[^963]: Another thing
+
+[^964]: Another thing
+
+[^965]: Another thing
+
+[^966]: Another thing
+
+[^967]: Another thing
+
+[^968]: Another thing
+
+[^969]: Another thing
+
+[^970]: Another thing
+
+[^971]: Another thing
+
+[^972]: Another thing
+
+[^973]: Another thing
+
+[^974]: Another thing
+
+[^975]: Another thing
+
+[^976]: Another thing
+
+[^977]: Another thing
+
+[^978]: Another thing
+
+[^979]: Another thing
+
+[^980]: Another thing
+
+[^981]: Another thing
+
+[^982]: Another thing
+
+[^983]: Another thing
+
+[^984]: Another thing
+
+[^985]: Another thing
+
+[^986]: Another thing
+
+[^987]: Another thing
+
+[^988]: Another thing
+
+[^989]: Another thing
+
+[^990]: Another thing
+
+[^991]: Another thing
+
+[^992]: Another thing
+
+[^993]: Another thing
+
+[^994]: Another thing
+
+[^995]: Another thing
+
+[^996]: Another thing
+
+[^997]: Another thing
+
+[^998]: Another thing
+
+[^999]: Another thing
+
+[^1000]: Another thing
+
+[^1001]: Another thing
+
+[^1002]: Another thing
+
+[^1003]: Another thing
+
+[^1004]: Another thing
+
+[^1005]: Another thing
+
+[^1006]: Another thing
+
+[^1007]: Another thing
+
+[^1008]: Another thing
+
+[^1009]: Another thing
+
+[^1010]: Another thing
+
+[^1011]: Another thing
+
+[^1012]: Another thing
+
+[^1013]: Another thing
+
+[^1014]: Another thing
+
+[^1015]: Another thing
+
+[^1016]: Another thing
+
+[^1017]: Another thing
+
+[^1018]: Another thing
+
+[^1019]: Another thing
+
+[^1020]: Another thing
+
+[^1021]: Another thing
+
+[^1022]: Another thing
+
+[^1023]: Another thing
+
+[^1024]: Another thing
+
+[^1025]: Another thing
+
+[^1026]: Another thing
+
+[^1027]: Another thing
+
+[^1028]: Another thing
+
+[^1029]: Another thing
+
+[^1030]: Another thing
+
+[^1031]: Another thing
+
+[^1032]: Another thing
+
+[^1033]: Another thing
+
+[^1034]: Another thing
+
+[^1035]: Another thing
+
+[^1036]: Another thing
+
+[^1037]: Another thing
+
+[^1038]: Another thing
+
+[^1039]: Another thing
+
+[^1040]: Another thing
+
+[^1041]: Another thing
+
+[^1042]: Another thing
+
+[^1043]: Another thing
+
+[^1044]: Another thing
+
+[^1045]: Another thing
+
+[^1046]: Another thing
+
+[^1047]: Another thing
+
+[^1048]: Another thing
+
+[^1049]: Another thing
+
+[^1050]: Another thing
+
+[^1051]: Another thing
+
+[^1052]: Another thing
+
+[^1053]: Another thing
+
+[^1054]: Another thing
+
+[^1055]: Another thing
+
+[^1056]: Another thing
+
+[^1057]: Another thing
+
+[^1058]: Another thing
+
+[^1059]: Another thing
+
+[^1060]: Another thing
+
+[^1061]: Another thing
+
+[^1062]: Another thing
+
+[^1063]: Another thing
+
+[^1064]: Another thing
+
+[^1065]: Another thing
+
+[^1066]: Another thing
+
+[^1067]: Another thing
+
+[^1068]: Another thing
+
+[^1069]: Another thing
+
+[^1070]: Another thing
+
+[^1071]: Another thing
+
+[^1072]: Another thing
+
+[^1073]: Another thing
+
+[^1074]: Another thing
+
+[^1075]: Another thing
+
+[^1076]: Another thing
+
+[^1077]: Another thing
+
+[^1078]: Another thing
+
+[^1079]: Another thing
+
+[^1080]: Another thing
+
+[^1081]: Another thing
+
+[^1082]: Another thing
+
+[^1083]: Another thing
+
+[^1084]: Another thing
+
+[^1085]: Another thing
+
+[^1086]: Another thing
+
+[^1087]: Another thing
+
+[^1088]: Another thing
+
+[^1089]: Another thing
+
+[^1090]: Another thing
+
+[^1091]: Another thing
+
+[^1092]: Another thing
+
+[^1093]: Another thing
+
+[^1094]: Another thing
+
+[^1095]: Another thing
+
+[^1096]: Another thing
+
+[^1097]: Another thing
+
+[^1098]: Another thing
+
+[^1099]: Another thing
+
+[^1100]: Another thing
+
+[^1101]: Another thing
+
+[^1102]: Another thing
+
+[^1103]: Another thing
+
+[^1104]: Another thing
+
+[^1105]: Another thing
+
+[^1106]: Another thing
+
+[^1107]: Another thing
+
+[^1108]: Another thing
+
+[^1109]: Another thing
+
+[^1110]: Another thing
+
+[^1111]: Another thing
+
+[^1112]: Another thing
+
+[^1113]: Another thing
+
+[^1114]: Another thing
+
+[^1115]: Another thing
+
+[^1116]: Another thing
+
+[^1117]: Another thing
+
+[^1118]: Another thing
+
+[^1119]: Another thing
+
+[^1120]: Another thing
+
+[^1121]: Another thing
+
+[^1122]: Another thing
+
+[^1123]: Another thing
+
+[^1124]: Another thing
+
+[^1125]: Another thing
+
+[^1126]: Another thing
+
+[^1127]: Another thing
+
+[^1128]: Another thing
+
+[^1129]: Another thing
+
+[^1130]: Another thing
+
+[^1131]: Another thing
+
+[^1132]: Another thing
+
+[^1133]: Another thing
+
+[^1134]: Another thing
+
+[^1135]: Another thing
+
+[^1136]: Another thing
+
+[^1137]: Another thing
+
+[^1138]: Another thing
+
+[^1139]: Another thing
+
+[^1140]: Another thing
+
+[^1141]: Another thing
+
+[^1142]: Another thing
+
+[^1143]: Another thing
+
+[^1144]: Another thing
+
+[^1145]: Another thing
+
+[^1146]: Another thing
+
+[^1147]: Another thing
+
+[^1148]: Another thing
+
+[^1149]: Another thing
+
+[^1150]: Another thing
+
+[^1151]: Another thing
+
+[^1152]: Another thing
+
+[^1153]: Another thing
+
+[^1154]: Another thing
+
+[^1155]: Another thing
+
+[^1156]: Another thing
+
+[^1157]: Another thing
+
+[^1158]: Another thing
+
+[^1159]: Another thing
+
+[^1160]: Another thing
+
+[^1161]: Another thing
+
+[^1162]: Another thing
+
+[^1163]: Another thing
+
+[^1164]: Another thing
+
+[^1165]: Another thing
+
+[^1166]: Another thing
+
+[^1167]: Another thing
+
+[^1168]: Another thing
+
+[^1169]: Another thing
+
+[^1170]: Another thing
+
+[^1171]: Another thing
+
+[^1172]: Another thing
+
+[^1173]: Another thing
+
+[^1174]: Another thing
+
+[^1175]: Another thing
+
+[^1176]: Another thing
+
+[^1177]: Another thing
+
+[^1178]: Another thing
+
+[^1179]: Another thing
+
+[^1180]: Another thing
+
+[^1181]: Another thing
+
+[^1182]: Another thing
+
+[^1183]: Another thing
+
+[^1184]: Another thing
+
+[^1185]: Another thing
+
+[^1186]: Another thing
+
+[^1187]: Another thing
+
+[^1188]: Another thing
+
+[^1189]: Another thing
+
+[^1190]: Another thing
+
+[^1191]: Another thing
+
+[^1192]: Another thing
+
+[^1193]: Another thing
+
+[^1194]: Another thing
+
+[^1195]: Another thing
+
+[^1196]: Another thing
+
+[^1197]: Another thing
+
+[^1198]: Another thing
+
+[^1199]: Another thing
+
index 8ed611aa82cf5dd4b29ef32311574a45bddc1a82..0143145e80a7ba65ddfe8516a76b53d607524568 100644 (file)
@@ -1,9 +1,9 @@
-<div class="footnote">\r
-<hr />\r
-<ol>\r
-<li id="fn:1">\r
-<p>A Footnote.&#160;<a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>\r
-</li>\r
-</ol>\r
-</div>\r
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:1">
+<p>A Footnote.&#160;<a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+</ol>
+</div>
 <p>Some text with a footnote<sup id="fnref:1"><a class="footnote-ref" href="#fn:1" rel="footnote">1</a></sup>.</p>
\ No newline at end of file
index 9dea6872ac36673a13a6409cb912df34a8e3803f..0b0af424587fc21738eb626bf434dfbc84698ca7 100644 (file)
@@ -1,5 +1,5 @@
-///Footnotes Go Here///\r
-\r
-Some text with a footnote[^1].\r
-\r
-[^1]: A Footnote.\r
+///Footnotes Go Here///
+
+Some text with a footnote[^1].
+
+[^1]: A Footnote.
index 794e8be35b7b85046ade59ec46ffe1870a5ba9be..0de6eb6b44548f2bf766b9c847238d5eeba6b2fb 100644 (file)
@@ -1,31 +1,31 @@
-<p>some text</p>\r
-<dl>\r
-<dt>term 1</dt>\r
-<dd>\r
-<p>def 1-1</p>\r
-</dd>\r
-<dd>\r
-<p>def 2-2</p>\r
-</dd>\r
-<dt>term 2</dt>\r
-<dt>term 3</dt>\r
-<dd>\r
-<p>def 2-1\r
-line 2 of def 2-1</p>\r
-</dd>\r
-<dd>\r
-<p>def 2-2</p>\r
-<p>par 2 of def2-2</p>\r
-</dd>\r
-</dl>\r
-<p>more text</p>\r
-<dl>\r
-<dt>term 4</dt>\r
-<dd>not loose</dd>\r
-<dt>term 5</dt>\r
-<dd>\r
-<p>loose</p>\r
-</dd>\r
-<dt>term 6</dt>\r
-<dd>also not loose</dd>\r
+<p>some text</p>
+<dl>
+<dt>term 1</dt>
+<dd>
+<p>def 1-1</p>
+</dd>
+<dd>
+<p>def 2-2</p>
+</dd>
+<dt>term 2</dt>
+<dt>term 3</dt>
+<dd>
+<p>def 2-1
+line 2 of def 2-1</p>
+</dd>
+<dd>
+<p>def 2-2</p>
+<p>par 2 of def2-2</p>
+</dd>
+</dl>
+<p>more text</p>
+<dl>
+<dt>term 4</dt>
+<dd>not loose</dd>
+<dt>term 5</dt>
+<dd>
+<p>loose</p>
+</dd>
+<dt>term 6</dt>
+<dd>also not loose</dd>
 </dl>
\ No newline at end of file
index 76a2bbe54153fe5bcac72e831835628642ea3a7f..909d12bee8c0728f77fc1450105a9dbf287c02c6 100644 (file)
@@ -1,31 +1,31 @@
-some text\r
-\r
-term 1\r
-\r
-:   def 1-1\r
-\r
-:   def 2-2\r
-\r
-term 2\r
-term 3\r
-\r
-:   def 2-1\r
-    line 2 of def 2-1\r
-\r
-:   def 2-2\r
-\r
-    par 2 of def2-2\r
-\r
-more text\r
-\r
-term 4\r
-:   not loose\r
-\r
-\r
-term 5\r
-\r
-:   loose\r
-\r
-term 6\r
-:   also not loose\r
-\r
+some text
+
+term 1
+
+:   def 1-1
+
+:   def 2-2
+
+term 2
+term 3
+
+:   def 2-1
+    line 2 of def 2-1
+
+:   def 2-2
+
+    par 2 of def2-2
+
+more text
+
+term 4
+:   not loose
+
+
+term 5
+
+:   loose
+
+term 6
+:   also not loose
+
index 64fde7296dc55ef3a22f1e448361e434f01a5e7f..038c9d14fdf9f96abbbc016626d94f37fb9890bf 100644 (file)
-<h1>Markdown: Syntax</h1>\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>\r
-    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-<ul>\r
-<li><a href="#overview">Overview</a><ul>\r
-<li><a href="#philosophy">Philosophy</a></li>\r
-<li><a href="#html">Inline HTML</a></li>\r
-<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#block">Block Elements</a><ul>\r
-<li><a href="#p">Paragraphs and Line Breaks</a></li>\r
-<li><a href="#header">Headers</a></li>\r
-<li><a href="#blockquote">Blockquotes</a></li>\r
-<li><a href="#list">Lists</a></li>\r
-<li><a href="#precode">Code Blocks</a></li>\r
-<li><a href="#hr">Horizontal Rules</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#span">Span Elements</a><ul>\r
-<li><a href="#link">Links</a></li>\r
-<li><a href="#em">Emphasis</a></li>\r
-<li><a href="#code">Code</a></li>\r
-<li><a href="#img">Images</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#misc">Miscellaneous</a><ul>\r
-<li><a href="#backslash">Backslash Escapes</a></li>\r
-<li><a href="#autolink">Automatic Links</a></li>\r
-</ul>\r
-</li>\r
-</ul>\r
-<p><strong>Note:</strong> This document is itself written using Markdown; you\r
-can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>\r
-<hr />\r
-<h2 id="overview">Overview</h2>\r
-\r
-<h3 id="philosophy">Philosophy</h3>\r
-\r
-<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>\r
-<p>Readability, however, is emphasized above all else. A Markdown-formatted\r
-document should be publishable as-is, as plain text, without looking\r
-like it's been marked up with tags or formatting instructions. While\r
-Markdown's syntax has been influenced by several existing text-to-HTML\r
-filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,\r
-<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of\r
-inspiration for Markdown's syntax is the format of plain text email.</p>\r
-<p>To this end, Markdown's syntax is comprised entirely of punctuation\r
-characters, which punctuation characters have been carefully chosen so\r
-as to look like what they mean. E.g., asterisks around a word actually\r
-look like *emphasis*. Markdown lists look like, well, lists. Even\r
-blockquotes look like quoted passages of text, assuming you've ever\r
-used email.</p>\r
-<h3 id="html">Inline HTML</h3>\r
-\r
-<p>Markdown's syntax is intended for one purpose: to be used as a\r
-format for <em>writing</em> for the web.</p>\r
-<p>Markdown is not a replacement for HTML, or even close to it. Its\r
-syntax is very small, corresponding only to a very small subset of\r
-HTML tags. The idea is <em>not</em> to create a syntax that makes it easier\r
-to insert HTML tags. In my opinion, HTML tags are already easy to\r
-insert. The idea for Markdown is to make it easy to read, write, and\r
-edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>\r
-format. Thus, Markdown's formatting syntax only addresses issues that\r
-can be conveyed in plain text.</p>\r
-<p>For any markup that is not covered by Markdown's syntax, you simply\r
-use HTML itself. There's no need to preface it or delimit it to\r
-indicate that you're switching from Markdown to HTML; you just use\r
-the tags.</p>\r
-<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,\r
-<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding\r
-content by blank lines, and the start and end tags of the block should\r
-not be indented with tabs or spaces. Markdown is smart enough not\r
-to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>\r
-<p>For example, to add an HTML table to a Markdown article:</p>\r
-<pre><code>This is a regular paragraph.\r
-\r
-&lt;table&gt;\r
-    &lt;tr&gt;\r
-        &lt;td&gt;Foo&lt;/td&gt;\r
-    &lt;/tr&gt;\r
-&lt;/table&gt;\r
-\r
-This is another regular paragraph.\r
-</code></pre>\r
-<p>Note that Markdown formatting syntax is not processed within block-level\r
-HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an\r
-HTML block.</p>\r
-<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be\r
-used anywhere in a Markdown paragraph, list item, or header. If you\r
-want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
-you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's\r
-link or image syntax, go right ahead.</p>\r
-<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within\r
-span-level tags.</p>\r
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>\r
-\r
-<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>\r
-and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are\r
-used to denote HTML entities. If you want to use them as literal\r
-characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and\r
-<code>&amp;amp;</code>.</p>\r
-<p>Ampersands in particular are bedeviling for web writers. If you want to\r
-write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to\r
-escape ampersands within URLs. Thus, if you want to link to:</p>\r
-<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird\r
-</code></pre>\r
-<p>you need to encode the URL as:</p>\r
-<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird\r
-</code></pre>\r
-<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to\r
-forget, and is probably the single most common source of HTML validation\r
-errors in otherwise well-marked-up web sites.</p>\r
-<p>Markdown allows you to use these characters naturally, taking care of\r
-all the necessary escaping for you. If you use an ampersand as part of\r
-an HTML entity, it remains unchanged; otherwise it will be translated\r
-into <code>&amp;amp;</code>.</p>\r
-<p>So, if you want to include a copyright symbol in your article, you can write:</p>\r
-<pre><code>&amp;copy;\r
-</code></pre>\r
-<p>and Markdown will leave it alone. But if you write:</p>\r
-<pre><code>AT&amp;T\r
-</code></pre>\r
-<p>Markdown will translate it to:</p>\r
-<pre><code>AT&amp;amp;T\r
-</code></pre>\r
-<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use\r
-angle brackets as delimiters for HTML tags, Markdown will treat them as\r
-such. But if you write:</p>\r
-<pre><code>4 &lt; 5\r
-</code></pre>\r
-<p>Markdown will translate it to:</p>\r
-<pre><code>4 &amp;lt; 5\r
-</code></pre>\r
-<p>However, inside Markdown code spans and blocks, angle brackets and\r
-ampersands are <em>always</em> encoded automatically. This makes it easy to use\r
-Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
-terrible format for writing about HTML syntax, because every single <code>&lt;</code>\r
-and <code>&amp;</code> in your example code needs to be escaped.)</p>\r
-<hr />\r
-<h2 id="block">Block Elements</h2>\r
-\r
-<h3 id="p">Paragraphs and Line Breaks</h3>\r
-\r
-<p>A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing but spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
-<p>The implication of the "one or more consecutive lines of text" rule is\r
-that Markdown supports "hard-wrapped" text paragraphs. This differs\r
-significantly from most other text-to-HTML formatters (including Movable\r
-Type's "Convert Line Breaks" option) which translate every line break\r
-character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>\r
-<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you\r
-end a line with two or more spaces, then type return.</p>\r
-<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic\r
-"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.\r
-Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>\r
-work best -- and look better -- when you format them with hard breaks.</p>\r
-<h3 id="header">Headers</h3>\r
-\r
-<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>\r
-<p>Setext-style headers are "underlined" using equal signs (for first-level\r
-headers) and dashes (for second-level headers). For example:</p>\r
-<pre><code>This is an H1\r
-=============\r
-\r
-This is an H2\r
--------------\r
-</code></pre>\r
-<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>\r
-<p>Atx-style headers use 1-6 hash characters at the start of the line,\r
-corresponding to header levels 1-6. For example:</p>\r
-<pre><code># This is an H1\r
-\r
-## This is an H2\r
-\r
-###### This is an H6\r
-</code></pre>\r
-<p>Optionally, you may "close" atx-style headers. This is purely\r
-cosmetic -- you can use this if you think it looks better. The\r
-closing hashes don't even need to match the number of hashes\r
-used to open the header. (The number of opening hashes\r
-determines the header level.) :</p>\r
-<pre><code># This is an H1 #\r
-\r
-## This is an H2 ##\r
-\r
-### This is an H3 ######\r
-</code></pre>\r
-<h3 id="blockquote">Blockquotes</h3>\r
-\r
-<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're\r
-familiar with quoting passages of text in an email message, then you\r
-know how to create a blockquote in Markdown. It looks best if you hard\r
-wrap the text and put a <code>&gt;</code> before every line:</p>\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-&gt; \r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-&gt; id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first\r
-line of a hard-wrapped paragraph:</p>\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-\r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
-adding additional levels of <code>&gt;</code>:</p>\r
-<pre><code>&gt; This is the first level of quoting.\r
-&gt;\r
-&gt; &gt; This is nested blockquote.\r
-&gt;\r
-&gt; Back to the first level.\r
-</code></pre>\r
-<p>Blockquotes can contain other Markdown elements, including headers, lists,\r
-and code blocks:</p>\r
-<pre><code>&gt; ## This is a header.\r
-&gt; \r
-&gt; 1.   This is the first list item.\r
-&gt; 2.   This is the second list item.\r
-&gt; \r
-&gt; Here's some example code:\r
-&gt; \r
-&gt;     return shell_exec("echo $input | $markdown_script");\r
-</code></pre>\r
-<p>Any decent text editor should make email-style quoting easy. For\r
-example, with BBEdit, you can make a selection and choose Increase\r
-Quote Level from the Text menu.</p>\r
-<h3 id="list">Lists</h3>\r
-\r
-<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>\r
-<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably\r
--- as list markers:</p>\r
-<pre><code>*   Red\r
-*   Green\r
-*   Blue\r
-</code></pre>\r
-<p>is equivalent to:</p>\r
-<pre><code>+   Red\r
-+   Green\r
-+   Blue\r
-</code></pre>\r
-<p>and:</p>\r
-<pre><code>-   Red\r
--   Green\r
--   Blue\r
-</code></pre>\r
-<p>Ordered lists use numbers followed by periods:</p>\r
-<pre><code>1.  Bird\r
-2.  McHale\r
-3.  Parish\r
-</code></pre>\r
-<p>It's important to note that the actual numbers you use to mark the\r
-list have no effect on the HTML output Markdown produces. The HTML\r
-Markdown produces from the above list is:</p>\r
-<pre><code>&lt;ol&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;McHale&lt;/li&gt;\r
-&lt;li&gt;Parish&lt;/li&gt;\r
-&lt;/ol&gt;\r
-</code></pre>\r
-<p>If you instead wrote the list in Markdown like this:</p>\r
-<pre><code>1.  Bird\r
-1.  McHale\r
-1.  Parish\r
-</code></pre>\r
-<p>or even:</p>\r
-<pre><code>3. Bird\r
-1. McHale\r
-8. Parish\r
-</code></pre>\r
-<p>you'd get the exact same HTML output. The point is, if you want to,\r
-you can use ordinal numbers in your ordered Markdown lists, so that\r
-the numbers in your source match the numbers in your published HTML.\r
-But if you want to be lazy, you don't have to.</p>\r
-<p>If you do use lazy list numbering, however, you should still start the\r
-list with the number 1. At some point in the future, Markdown may support\r
-starting ordered lists at an arbitrary number.</p>\r
-<p>List markers typically start at the left margin, but may be indented by\r
-up to three spaces. List markers must be followed by one or more spaces\r
-or a tab.</p>\r
-<p>To make lists look nice, you can wrap items with hanging indents:</p>\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-    viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-    Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>But if you want to be lazy, you don't have to:</p>\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>If list items are separated by blank lines, Markdown will wrap the\r
-items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>\r
-<pre><code>*   Bird\r
-*   Magic\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;Magic&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-<p>But this:</p>\r
-<pre><code>*   Bird\r
-\r
-*   Magic\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;\r
-&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-<p>List items may consist of multiple paragraphs. Each subsequent\r
-paragraph in a list item must be intended by either 4 spaces\r
-or one tab:</p>\r
-<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
-    sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
-    mi posuere lectus.\r
-\r
-    Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
-    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
-    sit amet velit.\r
-\r
-2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>It looks nice if you indent every line of the subsequent\r
-paragraphs, but here again, Markdown will allow you to be\r
-lazy:</p>\r
-<pre><code>*   This is a list item with two paragraphs.\r
-\r
-    This is the second paragraph in the list item. You're\r
-only required to indent the first line. Lorem ipsum dolor\r
-sit amet, consectetuer adipiscing elit.\r
-\r
-*   Another item in the same list.\r
-</code></pre>\r
-<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>\r
-delimiters need to be indented:</p>\r
-<pre><code>*   A list item with a blockquote:\r
-\r
-    &gt; This is a blockquote\r
-    &gt; inside a list item.\r
-</code></pre>\r
-<p>To put a code block within a list item, the code block needs\r
-to be indented <em>twice</em> -- 8 spaces or two tabs:</p>\r
-<pre><code>*   A list item with a code block:\r
-\r
-        &lt;code goes here&gt;\r
-</code></pre>\r
-<p>It's worth noting that it's possible to trigger an ordered list by\r
-accident, by writing something like this:</p>\r
-<pre><code>1986. What a great season.\r
-</code></pre>\r
-<p>In other words, a <em>number-period-space</em> sequence at the beginning of a\r
-line. To avoid this, you can backslash-escape the period:</p>\r
-<pre><code>1986\. What a great season.\r
-</code></pre>\r
-<h3 id="precode">Code Blocks</h3>\r
-\r
-<p>Pre-formatted code blocks are used for writing about programming or\r
-markup source code. Rather than forming normal paragraphs, the lines\r
-of a code block are interpreted literally. Markdown wraps a code block\r
-in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>\r
-<p>To produce a code block in Markdown, simply indent every line of the\r
-block by at least 4 spaces or 1 tab. For example, given this input:</p>\r
-<pre><code>This is a normal paragraph:\r
-\r
-    This is a code block.\r
-</code></pre>\r
-<p>Markdown will generate:</p>\r
-<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;This is a code block.\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each\r
-line of the code block. For example, this:</p>\r
-<pre><code>Here is an example of AppleScript:\r
-\r
-    tell application "Foo"\r
-        beep\r
-    end tell\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;tell application "Foo"\r
-    beep\r
-end tell\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>A code block continues until it reaches a line that is not indented\r
-(or the end of the article).</p>\r
-<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)\r
-are automatically converted into HTML entities. This makes it very\r
-easy to include example HTML source code using Markdown -- just paste\r
-it and indent it, and Markdown will handle the hassle of encoding the\r
-ampersands and angle brackets. For example, this:</p>\r
-<pre><code>    &lt;div class="footer"&gt;\r
-        &amp;copy; 2004 Foo Corporation\r
-    &lt;/div&gt;\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;\r
-    &amp;amp;copy; 2004 Foo Corporation\r
-&amp;lt;/div&amp;gt;\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>Regular Markdown syntax is not processed within code blocks. E.g.,\r
-asterisks are just literal asterisks within a code block. This means\r
-it's also easy to use Markdown to write about Markdown's own syntax.</p>\r
-<h3 id="hr">Horizontal Rules</h3>\r
-\r
-<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or\r
-more hyphens, asterisks, or underscores on a line by themselves. If you\r
-wish, you may use spaces between the hyphens or asterisks. Each of the\r
-following lines will produce a horizontal rule:</p>\r
-<pre><code>* * *\r
-\r
-***\r
-\r
-*****\r
-\r
-- - -\r
-\r
----------------------------------------\r
-\r
-_ _ _\r
-</code></pre>\r
-<hr />\r
-<h2 id="span">Span Elements</h2>\r
-\r
-<h3 id="link">Links</h3>\r
-\r
-<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>\r
-<p>In both styles, the link text is delimited by [square brackets].</p>\r
-<p>To create an inline link, use a set of regular parentheses immediately\r
-after the link text's closing square bracket. Inside the parentheses,\r
-put the URL where you want the link to point, along with an <em>optional</em>\r
-title for the link, surrounded in quotes. For example:</p>\r
-<pre><code>This is [an example](http://example.com/ "Title") inline link.\r
-\r
-[This link](http://example.net/) has no title attribute.\r
-</code></pre>\r
-<p>Will produce:</p>\r
-<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;\r
-an example&lt;/a&gt; inline link.&lt;/p&gt;\r
-\r
-&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no\r
-title attribute.&lt;/p&gt;\r
-</code></pre>\r
-<p>If you're referring to a local resource on the same server, you can\r
-use relative paths:</p>\r
-<pre><code>See my [About](/about/) page for details.\r
-</code></pre>\r
-<p>Reference-style links use a second set of square brackets, inside\r
-which you place a label of your choosing to identify the link:</p>\r
-<pre><code>This is [an example][id] reference-style link.\r
-</code></pre>\r
-<p>You can optionally use a space to separate the sets of brackets:</p>\r
-<pre><code>This is [an example] [id] reference-style link.\r
-</code></pre>\r
-<p>Then, anywhere in the document, you define your link label like this,\r
-on a line by itself:</p>\r
-<pre><code>[id]: http://example.com/  "Optional Title Here"\r
-</code></pre>\r
-<p>That is:</p>\r
-<ul>\r
-<li>Square brackets containing the link identifier (optionally\r
-    indented from the left margin using up to three spaces);</li>\r
-<li>followed by a colon;</li>\r
-<li>followed by one or more spaces (or tabs);</li>\r
-<li>followed by the URL for the link;</li>\r
-<li>optionally followed by a title attribute for the link, enclosed\r
-    in double or single quotes.</li>\r
-</ul>\r
-<p>The link URL may, optionally, be surrounded by angle brackets:</p>\r
-<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"\r
-</code></pre>\r
-<p>You can put the title attribute on the next line and use extra spaces\r
-or tabs for padding, which tends to look better with longer URLs:</p>\r
-<pre><code>[id]: http://example.com/longish/path/to/resource/here\r
-    "Optional Title Here"\r
-</code></pre>\r
-<p>Link definitions are only used for creating links during Markdown\r
-processing, and are stripped from your document in the HTML output.</p>\r
-<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>\r
-<pre><code>[link text][a]\r
-[link text][A]\r
-</code></pre>\r
-<p>are equivalent.</p>\r
-<p>The <em>implicit link name</em> shortcut allows you to omit the name of the\r
-link, in which case the link text itself is used as the name.\r
-Just use an empty set of square brackets -- e.g., to link the word\r
-"Google" to the google.com web site, you could simply write:</p>\r
-<pre><code>[Google][]\r
-</code></pre>\r
-<p>And then define the link:</p>\r
-<pre><code>[Google]: http://google.com/\r
-</code></pre>\r
-<p>Because link names may contain spaces, this shortcut even works for\r
-multiple words in the link text:</p>\r
-<pre><code>Visit [Daring Fireball][] for more information.\r
-</code></pre>\r
-<p>And then define the link:</p>\r
-<pre><code>[Daring Fireball]: http://daringfireball.net/\r
-</code></pre>\r
-<p>Link definitions can be placed anywhere in your Markdown document. I\r
-tend to put them immediately after each paragraph in which they're\r
-used, but if you want, you can put them all at the end of your\r
-document, sort of like footnotes.</p>\r
-<p>Here's an example of reference links in action:</p>\r
-<pre><code>I get 10 times more traffic from [Google] [1] than from\r
-[Yahoo] [2] or [MSN] [3].\r
-\r
-  [1]: http://google.com/        "Google"\r
-  [2]: http://search.yahoo.com/  "Yahoo Search"\r
-  [3]: http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-<p>Using the implicit link name shortcut, you could instead write:</p>\r
-<pre><code>I get 10 times more traffic from [Google][] than from\r
-[Yahoo][] or [MSN][].\r
-\r
-  [google]: http://google.com/        "Google"\r
-  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
-  [msn]:    http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-<p>Both of the above examples will produce the following HTML output:</p>\r
-<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
-title="Google"&gt;Google&lt;/a&gt; than from\r
-&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;\r
-or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<p>For comparison, here is the same paragraph written using\r
-Markdown's inline link style:</p>\r
-<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")\r
-than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
-[MSN](http://search.msn.com/ "MSN Search").\r
-</code></pre>\r
-<p>The point of reference-style links is not that they're easier to\r
-write. The point is that with reference-style links, your document\r
-source is vastly more readable. Compare the above examples: using\r
-reference-style links, the paragraph itself is only 81 characters\r
-long; with inline-style links, it's 176 characters; and as raw HTML,\r
-it's 234 characters. In the raw HTML, there's more markup than there\r
-is text.</p>\r
-<p>With Markdown's reference-style links, a source document much more\r
-closely resembles the final output, as rendered in a browser. By\r
-allowing you to move the markup-related metadata out of the paragraph,\r
-you can add links without interrupting the narrative flow of your\r
-prose.</p>\r
-<h3 id="em">Emphasis</h3>\r
-\r
-<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of\r
-emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an\r
-HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML\r
-<code>&lt;strong&gt;</code> tag. E.g., this input:</p>\r
-<pre><code>*single asterisks*\r
-\r
-_single underscores_\r
-\r
-**double asterisks**\r
-\r
-__double underscores__\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;\r
-\r
-&lt;em&gt;single underscores&lt;/em&gt;\r
-\r
-&lt;strong&gt;double asterisks&lt;/strong&gt;\r
-\r
-&lt;strong&gt;double underscores&lt;/strong&gt;\r
-</code></pre>\r
-<p>You can use whichever style you prefer; the lone restriction is that\r
-the same character must be used to open and close an emphasis span.</p>\r
-<p>Emphasis can be used in the middle of a word:</p>\r
-<pre><code>un*fucking*believable\r
-</code></pre>\r
-<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a\r
-literal asterisk or underscore.</p>\r
-<p>To produce a literal asterisk or underscore at a position where it\r
-would otherwise be used as an emphasis delimiter, you can backslash\r
-escape it:</p>\r
-<pre><code>\*this text is surrounded by literal asterisks\*\r
-</code></pre>\r
-<h3 id="code">Code</h3>\r
-\r
-<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).\r
-Unlike a pre-formatted code block, a code span indicates code within a\r
-normal paragraph. For example:</p>\r
-<pre><code>Use the `printf()` function.\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;\r
-</code></pre>\r
-<p>To include a literal backtick character within a code span, you can use\r
-multiple backticks as the opening and closing delimiters:</p>\r
-<pre><code>``There is a literal backtick (`) here.``\r
-</code></pre>\r
-<p>which will produce this:</p>\r
-<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-<p>The backtick delimiters surrounding a code span may include spaces --\r
-one after the opening, one before the closing. This allows you to place\r
-literal backtick characters at the beginning or end of a code span:</p>\r
-<pre><code>A single backtick in a code span: `` ` ``\r
-\r
-A backtick-delimited string in a code span: `` `foo` ``\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;\r
-\r
-&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-<p>With a code span, ampersands and angle brackets are encoded as HTML\r
-entities automatically, which makes it easy to include example HTML\r
-tags. Markdown will turn this:</p>\r
-<pre><code>Please don't use any `&lt;blink&gt;` tags.\r
-</code></pre>\r
-<p>into:</p>\r
-<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
-</code></pre>\r
-<p>You can write this:</p>\r
-<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.\r
-</code></pre>\r
-<p>to produce:</p>\r
-<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded\r
-equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<h3 id="img">Images</h3>\r
-\r
-<p>Admittedly, it's fairly difficult to devise a "natural" syntax for\r
-placing images into a plain text document format.</p>\r
-<p>Markdown uses an image syntax that is intended to resemble the syntax\r
-for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>\r
-<p>Inline image syntax looks like this:</p>\r
-<pre><code>![Alt text](/path/to/img.jpg)\r
-\r
-![Alt text](/path/to/img.jpg "Optional title")\r
-</code></pre>\r
-<p>That is:</p>\r
-<ul>\r
-<li>An exclamation mark: <code>!</code>;</li>\r
-<li>followed by a set of square brackets, containing the <code>alt</code>\r
-    attribute text for the image;</li>\r
-<li>followed by a set of parentheses, containing the URL or path to\r
-    the image, and an optional <code>title</code> attribute enclosed in double\r
-    or single quotes.</li>\r
-</ul>\r
-<p>Reference-style image syntax looks like this:</p>\r
-<pre><code>![Alt text][id]\r
-</code></pre>\r
-<p>Where "id" is the name of a defined image reference. Image references\r
-are defined using syntax identical to link references:</p>\r
-<pre><code>[id]: url/to/image  "Optional title attribute"\r
-</code></pre>\r
-<p>As of this writing, Markdown has no syntax for specifying the\r
-dimensions of an image; if this is important to you, you can simply\r
-use regular HTML <code>&lt;img&gt;</code> tags.</p>\r
-<hr />\r
-<h2 id="misc">Miscellaneous</h2>\r
-\r
-<h3 id="autolink">Automatic Links</h3>\r
-\r
-<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>\r
-<pre><code>&lt;http://example.com/&gt;\r
-</code></pre>\r
-<p>Markdown will turn this into:</p>\r
-<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;\r
-</code></pre>\r
-<p>Automatic links for email addresses work similarly, except that\r
-Markdown will also perform a bit of randomized decimal and hex\r
-entity-encoding to help obscure your address from address-harvesting\r
-spambots. For example, Markdown will turn this:</p>\r
-<pre><code>&lt;address@example.com&gt;\r
-</code></pre>\r
-<p>into something like this:</p>\r
-<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;\r
-&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;\r
-&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;\r
-&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;\r
-</code></pre>\r
-<p>which will render in a browser as a clickable link to "address@example.com".</p>\r
-<p>(This sort of entity-encoding trick will indeed fool many, if not\r
-most, address-harvesting bots, but it definitely won't fool all of\r
-them. It's better than nothing, but an address published in this way\r
-will probably eventually start receiving spam.)</p>\r
-<h3 id="backslash">Backslash Escapes</h3>\r
-\r
-<p>Markdown allows you to use backslash escapes to generate literal\r
-characters which would otherwise have special meaning in Markdown's\r
-formatting syntax. For example, if you wanted to surround a word with\r
-literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes\r
-before the asterisks, like this:</p>\r
-<pre><code>\*literal asterisks\*\r
-</code></pre>\r
-<p>Markdown provides backslash escapes for the following characters:</p>\r
-<pre><code>\   backslash\r
-`   backtick\r
-*   asterisk\r
-_   underscore\r
-{}  curly braces\r
-[]  square brackets\r
-()  parentheses\r
-#   hash mark\r
-+   plus sign\r
--   minus sign (hyphen)\r
-.   dot\r
-!   exclamation mark\r
+<h1>Markdown: Syntax</h1>
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<ul>
+<li><a href="#overview">Overview</a><ul>
+<li><a href="#philosophy">Philosophy</a></li>
+<li><a href="#html">Inline HTML</a></li>
+<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>
+</ul>
+</li>
+<li><a href="#block">Block Elements</a><ul>
+<li><a href="#p">Paragraphs and Line Breaks</a></li>
+<li><a href="#header">Headers</a></li>
+<li><a href="#blockquote">Blockquotes</a></li>
+<li><a href="#list">Lists</a></li>
+<li><a href="#precode">Code Blocks</a></li>
+<li><a href="#hr">Horizontal Rules</a></li>
+</ul>
+</li>
+<li><a href="#span">Span Elements</a><ul>
+<li><a href="#link">Links</a></li>
+<li><a href="#em">Emphasis</a></li>
+<li><a href="#code">Code</a></li>
+<li><a href="#img">Images</a></li>
+</ul>
+</li>
+<li><a href="#misc">Miscellaneous</a><ul>
+<li><a href="#backslash">Backslash Escapes</a></li>
+<li><a href="#autolink">Automatic Links</a></li>
+</ul>
+</li>
+</ul>
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
+<hr />
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>
+<p>Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
+<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.</p>
+<p>To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like *emphasis*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.</p>
+<h3 id="html">Inline HTML</h3>
+
+<p>Markdown's syntax is intended for one purpose: to be used as a
+format for <em>writing</em> for the web.</p>
+<p>Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is <em>not</em> to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.</p>
+<p>For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.</p>
+<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,
+<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>
+<p>For example, to add an HTML table to a Markdown article:</p>
+<pre><code>This is a regular paragraph.
+
+&lt;table&gt;
+    &lt;tr&gt;
+        &lt;td&gt;Foo&lt;/td&gt;
+    &lt;/tr&gt;
+&lt;/table&gt;
+
+This is another regular paragraph.
+</code></pre>
+<p>Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an
+HTML block.</p>
+<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's
+link or image syntax, go right ahead.</p>
+<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within
+span-level tags.</p>
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>
+and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and
+<code>&amp;amp;</code>.</p>
+<p>Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:</p>
+<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird
+</code></pre>
+<p>you need to encode the URL as:</p>
+<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird
+</code></pre>
+<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.</p>
+<p>Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into <code>&amp;amp;</code>.</p>
+<p>So, if you want to include a copyright symbol in your article, you can write:</p>
+<pre><code>&amp;copy;
+</code></pre>
+<p>and Markdown will leave it alone. But if you write:</p>
+<pre><code>AT&amp;T
+</code></pre>
+<p>Markdown will translate it to:</p>
+<pre><code>AT&amp;amp;T
+</code></pre>
+<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:</p>
+<pre><code>4 &lt; 5
+</code></pre>
+<p>Markdown will translate it to:</p>
+<pre><code>4 &amp;lt; 5
+</code></pre>
+<p>However, inside Markdown code spans and blocks, angle brackets and
+ampersands are <em>always</em> encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single <code>&lt;</code>
+and <code>&amp;</code> in your example code needs to be escaped.)</p>
+<hr />
+<h2 id="block">Block Elements</h2>
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+<p>The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>
+<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you
+end a line with two or more spaces, then type return.</p>
+<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic
+"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.
+Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>
+work best -- and look better -- when you format them with hard breaks.</p>
+<h3 id="header">Headers</h3>
+
+<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
+<p>Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:</p>
+<pre><code>This is an H1
+=============
+
+This is an H2
+-------------
+</code></pre>
+<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>
+<p>Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:</p>
+<pre><code># This is an H1
+
+## This is an H2
+
+###### This is an H6
+</code></pre>
+<p>Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :</p>
+<pre><code># This is an H1 #
+
+## This is an H2 ##
+
+### This is an H3 ######
+</code></pre>
+<h3 id="blockquote">Blockquotes</h3>
+
+<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a <code>&gt;</code> before every line:</p>
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+&gt; 
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+&gt; id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first
+line of a hard-wrapped paragraph:</p>
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of <code>&gt;</code>:</p>
+<pre><code>&gt; This is the first level of quoting.
+&gt;
+&gt; &gt; This is nested blockquote.
+&gt;
+&gt; Back to the first level.
+</code></pre>
+<p>Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:</p>
+<pre><code>&gt; ## This is a header.
+&gt; 
+&gt; 1.   This is the first list item.
+&gt; 2.   This is the second list item.
+&gt; 
+&gt; Here's some example code:
+&gt; 
+&gt;     return shell_exec("echo $input | $markdown_script");
+</code></pre>
+<p>Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.</p>
+<h3 id="list">Lists</h3>
+
+<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>
+<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:</p>
+<pre><code>*   Red
+*   Green
+*   Blue
+</code></pre>
+<p>is equivalent to:</p>
+<pre><code>+   Red
++   Green
++   Blue
+</code></pre>
+<p>and:</p>
+<pre><code>-   Red
+-   Green
+-   Blue
+</code></pre>
+<p>Ordered lists use numbers followed by periods:</p>
+<pre><code>1.  Bird
+2.  McHale
+3.  Parish
+</code></pre>
+<p>It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:</p>
+<pre><code>&lt;ol&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;McHale&lt;/li&gt;
+&lt;li&gt;Parish&lt;/li&gt;
+&lt;/ol&gt;
+</code></pre>
+<p>If you instead wrote the list in Markdown like this:</p>
+<pre><code>1.  Bird
+1.  McHale
+1.  Parish
+</code></pre>
+<p>or even:</p>
+<pre><code>3. Bird
+1. McHale
+8. Parish
+</code></pre>
+<p>you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.</p>
+<p>If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.</p>
+<p>List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.</p>
+<p>To make lists look nice, you can wrap items with hanging indents:</p>
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>But if you want to be lazy, you don't have to:</p>
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>If list items are separated by blank lines, Markdown will wrap the
+items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>
+<pre><code>*   Bird
+*   Magic
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;ul&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;Magic&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+<p>But this:</p>
+<pre><code>*   Bird
+
+*   Magic
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;ul&gt;
+&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;
+&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+<p>List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:</p>
+<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+    mi posuere lectus.
+
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+    sit amet velit.
+
+2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:</p>
+<pre><code>*   This is a list item with two paragraphs.
+
+    This is the second paragraph in the list item. You're
+only required to indent the first line. Lorem ipsum dolor
+sit amet, consectetuer adipiscing elit.
+
+*   Another item in the same list.
+</code></pre>
+<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>
+delimiters need to be indented:</p>
+<pre><code>*   A list item with a blockquote:
+
+    &gt; This is a blockquote
+    &gt; inside a list item.
+</code></pre>
+<p>To put a code block within a list item, the code block needs
+to be indented <em>twice</em> -- 8 spaces or two tabs:</p>
+<pre><code>*   A list item with a code block:
+
+        &lt;code goes here&gt;
+</code></pre>
+<p>It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:</p>
+<pre><code>1986. What a great season.
+</code></pre>
+<p>In other words, a <em>number-period-space</em> sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:</p>
+<pre><code>1986\. What a great season.
+</code></pre>
+<h3 id="precode">Code Blocks</h3>
+
+<p>Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>
+<p>To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:</p>
+<pre><code>This is a normal paragraph:
+
+    This is a code block.
+</code></pre>
+<p>Markdown will generate:</p>
+<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;This is a code block.
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:</p>
+<pre><code>Here is an example of AppleScript:
+
+    tell application "Foo"
+        beep
+    end tell
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;tell application "Foo"
+    beep
+end tell
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>A code block continues until it reaches a line that is not indented
+(or the end of the article).</p>
+<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:</p>
+<pre><code>    &lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;
+    &amp;amp;copy; 2004 Foo Corporation
+&amp;lt;/div&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.</p>
+<h3 id="hr">Horizontal Rules</h3>
+
+<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:</p>
+<pre><code>* * *
+
+***
+
+*****
+
+- - -
+
+---------------------------------------
+
+_ _ _
+</code></pre>
+<hr />
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>
+<p>In both styles, the link text is delimited by [square brackets].</p>
+<p>To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an <em>optional</em>
+title for the link, surrounded in quotes. For example:</p>
+<pre><code>This is [an example](http://example.com/ "Title") inline link.
+
+[This link](http://example.net/) has no title attribute.
+</code></pre>
+<p>Will produce:</p>
+<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;
+an example&lt;/a&gt; inline link.&lt;/p&gt;
+
+&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no
+title attribute.&lt;/p&gt;
+</code></pre>
+<p>If you're referring to a local resource on the same server, you can
+use relative paths:</p>
+<pre><code>See my [About](/about/) page for details.
+</code></pre>
+<p>Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:</p>
+<pre><code>This is [an example][id] reference-style link.
+</code></pre>
+<p>You can optionally use a space to separate the sets of brackets:</p>
+<pre><code>This is [an example] [id] reference-style link.
+</code></pre>
+<p>Then, anywhere in the document, you define your link label like this,
+on a line by itself:</p>
+<pre><code>[id]: http://example.com/  "Optional Title Here"
+</code></pre>
+<p>That is:</p>
+<ul>
+<li>Square brackets containing the link identifier (optionally
+    indented from the left margin using up to three spaces);</li>
+<li>followed by a colon;</li>
+<li>followed by one or more spaces (or tabs);</li>
+<li>followed by the URL for the link;</li>
+<li>optionally followed by a title attribute for the link, enclosed
+    in double or single quotes.</li>
+</ul>
+<p>The link URL may, optionally, be surrounded by angle brackets:</p>
+<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"
+</code></pre>
+<p>You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:</p>
+<pre><code>[id]: http://example.com/longish/path/to/resource/here
+    "Optional Title Here"
+</code></pre>
+<p>Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.</p>
+<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>
+<pre><code>[link text][a]
+[link text][A]
+</code></pre>
+<p>are equivalent.</p>
+<p>The <em>implicit link name</em> shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:</p>
+<pre><code>[Google][]
+</code></pre>
+<p>And then define the link:</p>
+<pre><code>[Google]: http://google.com/
+</code></pre>
+<p>Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:</p>
+<pre><code>Visit [Daring Fireball][] for more information.
+</code></pre>
+<p>And then define the link:</p>
+<pre><code>[Daring Fireball]: http://daringfireball.net/
+</code></pre>
+<p>Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.</p>
+<p>Here's an example of reference links in action:</p>
+<pre><code>I get 10 times more traffic from [Google] [1] than from
+[Yahoo] [2] or [MSN] [3].
+
+  [1]: http://google.com/        "Google"
+  [2]: http://search.yahoo.com/  "Yahoo Search"
+  [3]: http://search.msn.com/    "MSN Search"
+</code></pre>
+<p>Using the implicit link name shortcut, you could instead write:</p>
+<pre><code>I get 10 times more traffic from [Google][] than from
+[Yahoo][] or [MSN][].
+
+  [google]: http://google.com/        "Google"
+  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+  [msn]:    http://search.msn.com/    "MSN Search"
+</code></pre>
+<p>Both of the above examples will produce the following HTML output:</p>
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
+title="Google"&gt;Google&lt;/a&gt; than from
+&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;
+or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+<p>For comparison, here is the same paragraph written using
+Markdown's inline link style:</p>
+<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")
+than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+[MSN](http://search.msn.com/ "MSN Search").
+</code></pre>
+<p>The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.</p>
+<p>With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.</p>
+<h3 id="em">Emphasis</h3>
+
+<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of
+emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an
+HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML
+<code>&lt;strong&gt;</code> tag. E.g., this input:</p>
+<pre><code>*single asterisks*
+
+_single underscores_
+
+**double asterisks**
+
+__double underscores__
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;
+
+&lt;em&gt;single underscores&lt;/em&gt;
+
+&lt;strong&gt;double asterisks&lt;/strong&gt;
+
+&lt;strong&gt;double underscores&lt;/strong&gt;
+</code></pre>
+<p>You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.</p>
+<p>Emphasis can be used in the middle of a word:</p>
+<pre><code>un*fucking*believable
+</code></pre>
+<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a
+literal asterisk or underscore.</p>
+<p>To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:</p>
+<pre><code>\*this text is surrounded by literal asterisks\*
+</code></pre>
+<h3 id="code">Code</h3>
+
+<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:</p>
+<pre><code>Use the `printf()` function.
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;
+</code></pre>
+<p>To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:</p>
+<pre><code>``There is a literal backtick (`) here.``
+</code></pre>
+<p>which will produce this:</p>
+<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+<p>The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:</p>
+<pre><code>A single backtick in a code span: `` ` ``
+
+A backtick-delimited string in a code span: `` `foo` ``
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;
+
+&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+<p>With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:</p>
+<pre><code>Please don't use any `&lt;blink&gt;` tags.
+</code></pre>
+<p>into:</p>
+<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
+</code></pre>
+<p>You can write this:</p>
+<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.
+</code></pre>
+<p>to produce:</p>
+<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded
+equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;
+</code></pre>
+<h3 id="img">Images</h3>
+
+<p>Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.</p>
+<p>Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
+<p>Inline image syntax looks like this:</p>
+<pre><code>![Alt text](/path/to/img.jpg)
+
+![Alt text](/path/to/img.jpg "Optional title")
+</code></pre>
+<p>That is:</p>
+<ul>
+<li>An exclamation mark: <code>!</code>;</li>
+<li>followed by a set of square brackets, containing the <code>alt</code>
+    attribute text for the image;</li>
+<li>followed by a set of parentheses, containing the URL or path to
+    the image, and an optional <code>title</code> attribute enclosed in double
+    or single quotes.</li>
+</ul>
+<p>Reference-style image syntax looks like this:</p>
+<pre><code>![Alt text][id]
+</code></pre>
+<p>Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:</p>
+<pre><code>[id]: url/to/image  "Optional title attribute"
+</code></pre>
+<p>As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML <code>&lt;img&gt;</code> tags.</p>
+<hr />
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>
+<pre><code>&lt;http://example.com/&gt;
+</code></pre>
+<p>Markdown will turn this into:</p>
+<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;
+</code></pre>
+<p>Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:</p>
+<pre><code>&lt;address@example.com&gt;
+</code></pre>
+<p>into something like this:</p>
+<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;
+&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;
+&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;
+&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;
+</code></pre>
+<p>which will render in a browser as a clickable link to "address@example.com".</p>
+<p>(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)</p>
+<h3 id="backslash">Backslash Escapes</h3>
+
+<p>Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes
+before the asterisks, like this:</p>
+<pre><code>\*literal asterisks\*
+</code></pre>
+<p>Markdown provides backslash escapes for the following characters:</p>
+<pre><code>\   backslash
+`   backtick
+*   asterisk
+_   underscore
+{}  curly braces
+[]  square brackets
+()  parentheses
+#   hash mark
++   plus sign
+-   minus sign (hyphen)
+.   dot
+!   exclamation mark
 </code></pre>
\ No newline at end of file
index 99c42e5ea024366968491af2e5c76e73ae5b7bdd..dabd75c0118e68d6f9a5d2fc7d6dc88e511e3ec8 100644 (file)
-Markdown: Syntax\r
-================\r
-\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>\r
-    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-\r
-*   [Overview](#overview)\r
-    *   [Philosophy](#philosophy)\r
-    *   [Inline HTML](#html)\r
-    *   [Automatic Escaping for Special Characters](#autoescape)\r
-*   [Block Elements](#block)\r
-    *   [Paragraphs and Line Breaks](#p)\r
-    *   [Headers](#header)\r
-    *   [Blockquotes](#blockquote)\r
-    *   [Lists](#list)\r
-    *   [Code Blocks](#precode)\r
-    *   [Horizontal Rules](#hr)\r
-*   [Span Elements](#span)\r
-    *   [Links](#link)\r
-    *   [Emphasis](#em)\r
-    *   [Code](#code)\r
-    *   [Images](#img)\r
-*   [Miscellaneous](#misc)\r
-    *   [Backslash Escapes](#backslash)\r
-    *   [Automatic Links](#autolink)\r
-\r
-\r
-**Note:** This document is itself written using Markdown; you\r
-can [see the source for it by adding '.text' to the URL][src].\r
-\r
-  [src]: /projects/markdown/syntax.text\r
-\r
-* * *\r
-\r
-<h2 id="overview">Overview</h2>\r
-\r
-<h3 id="philosophy">Philosophy</h3>\r
-\r
-Markdown is intended to be as easy-to-read and easy-to-write as is feasible.\r
-\r
-Readability, however, is emphasized above all else. A Markdown-formatted\r
-document should be publishable as-is, as plain text, without looking\r
-like it's been marked up with tags or formatting instructions. While\r
-Markdown's syntax has been influenced by several existing text-to-HTML\r
-filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],\r
-[Grutatext] [5], and [EtText] [6] -- the single biggest source of\r
-inspiration for Markdown's syntax is the format of plain text email.\r
-\r
-  [1]: http://docutils.sourceforge.net/mirror/setext.html\r
-  [2]: http://www.aaronsw.com/2002/atx/\r
-  [3]: http://textism.com/tools/textile/\r
-  [4]: http://docutils.sourceforge.net/rst.html\r
-  [5]: http://www.triptico.com/software/grutatxt.html\r
-  [6]: http://ettext.taint.org/doc/\r
-\r
-To this end, Markdown's syntax is comprised entirely of punctuation\r
-characters, which punctuation characters have been carefully chosen so\r
-as to look like what they mean. E.g., asterisks around a word actually\r
-look like \*emphasis\*. Markdown lists look like, well, lists. Even\r
-blockquotes look like quoted passages of text, assuming you've ever\r
-used email.\r
-\r
-\r
-\r
-<h3 id="html">Inline HTML</h3>\r
-\r
-Markdown's syntax is intended for one purpose: to be used as a\r
-format for *writing* for the web.\r
-\r
-Markdown is not a replacement for HTML, or even close to it. Its\r
-syntax is very small, corresponding only to a very small subset of\r
-HTML tags. The idea is *not* to create a syntax that makes it easier\r
-to insert HTML tags. In my opinion, HTML tags are already easy to\r
-insert. The idea for Markdown is to make it easy to read, write, and\r
-edit prose. HTML is a *publishing* format; Markdown is a *writing*\r
-format. Thus, Markdown's formatting syntax only addresses issues that\r
-can be conveyed in plain text.\r
-\r
-For any markup that is not covered by Markdown's syntax, you simply\r
-use HTML itself. There's no need to preface it or delimit it to\r
-indicate that you're switching from Markdown to HTML; you just use\r
-the tags.\r
-\r
-The only restrictions are that block-level HTML elements -- e.g. `<div>`,\r
-`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding\r
-content by blank lines, and the start and end tags of the block should\r
-not be indented with tabs or spaces. Markdown is smart enough not\r
-to add extra (unwanted) `<p>` tags around HTML block-level tags.\r
-\r
-For example, to add an HTML table to a Markdown article:\r
-\r
-    This is a regular paragraph.\r
-\r
-    <table>\r
-        <tr>\r
-            <td>Foo</td>\r
-        </tr>\r
-    </table>\r
-\r
-    This is another regular paragraph.\r
-\r
-Note that Markdown formatting syntax is not processed within block-level\r
-HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an\r
-HTML block.\r
-\r
-Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be\r
-used anywhere in a Markdown paragraph, list item, or header. If you\r
-want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
-you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's\r
-link or image syntax, go right ahead.\r
-\r
-Unlike block-level HTML tags, Markdown syntax *is* processed within\r
-span-level tags.\r
-\r
-\r
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>\r
-\r
-In HTML, there are two characters that demand special treatment: `<`\r
-and `&`. Left angle brackets are used to start tags; ampersands are\r
-used to denote HTML entities. If you want to use them as literal\r
-characters, you must escape them as entities, e.g. `&lt;`, and\r
-`&amp;`.\r
-\r
-Ampersands in particular are bedeviling for web writers. If you want to\r
-write about 'AT&T', you need to write '`AT&amp;T`'. You even need to\r
-escape ampersands within URLs. Thus, if you want to link to:\r
-\r
-    http://images.google.com/images?num=30&q=larry+bird\r
-\r
-you need to encode the URL as:\r
-\r
-    http://images.google.com/images?num=30&amp;q=larry+bird\r
-\r
-in your anchor tag `href` attribute. Needless to say, this is easy to\r
-forget, and is probably the single most common source of HTML validation\r
-errors in otherwise well-marked-up web sites.\r
-\r
-Markdown allows you to use these characters naturally, taking care of\r
-all the necessary escaping for you. If you use an ampersand as part of\r
-an HTML entity, it remains unchanged; otherwise it will be translated\r
-into `&amp;`.\r
-\r
-So, if you want to include a copyright symbol in your article, you can write:\r
-\r
-    &copy;\r
-\r
-and Markdown will leave it alone. But if you write:\r
-\r
-    AT&T\r
-\r
-Markdown will translate it to:\r
-\r
-    AT&amp;T\r
-\r
-Similarly, because Markdown supports [inline HTML](#html), if you use\r
-angle brackets as delimiters for HTML tags, Markdown will treat them as\r
-such. But if you write:\r
-\r
-    4 < 5\r
-\r
-Markdown will translate it to:\r
-\r
-    4 &lt; 5\r
-\r
-However, inside Markdown code spans and blocks, angle brackets and\r
-ampersands are *always* encoded automatically. This makes it easy to use\r
-Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
-terrible format for writing about HTML syntax, because every single `<`\r
-and `&` in your example code needs to be escaped.)\r
-\r
-\r
-* * *\r
-\r
-\r
-<h2 id="block">Block Elements</h2>\r
-\r
-\r
-<h3 id="p">Paragraphs and Line Breaks</h3>\r
-\r
-A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing but spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.\r
-\r
-The implication of the "one or more consecutive lines of text" rule is\r
-that Markdown supports "hard-wrapped" text paragraphs. This differs\r
-significantly from most other text-to-HTML formatters (including Movable\r
-Type's "Convert Line Breaks" option) which translate every line break\r
-character in a paragraph into a `<br />` tag.\r
-\r
-When you *do* want to insert a `<br />` break tag using Markdown, you\r
-end a line with two or more spaces, then type return.\r
-\r
-Yes, this takes a tad more effort to create a `<br />`, but a simplistic\r
-"every line break is a `<br />`" rule wouldn't work for Markdown.\r
-Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]\r
-work best -- and look better -- when you format them with hard breaks.\r
-\r
-  [bq]: #blockquote\r
-  [l]:  #list\r
-\r
-\r
-\r
-<h3 id="header">Headers</h3>\r
-\r
-Markdown supports two styles of headers, [Setext] [1] and [atx] [2].\r
-\r
-Setext-style headers are "underlined" using equal signs (for first-level\r
-headers) and dashes (for second-level headers). For example:\r
-\r
-    This is an H1\r
-    =============\r
-\r
-    This is an H2\r
-    -------------\r
-\r
-Any number of underlining `=`'s or `-`'s will work.\r
-\r
-Atx-style headers use 1-6 hash characters at the start of the line,\r
-corresponding to header levels 1-6. For example:\r
-\r
-    # This is an H1\r
-\r
-    ## This is an H2\r
-\r
-    ###### This is an H6\r
-\r
-Optionally, you may "close" atx-style headers. This is purely\r
-cosmetic -- you can use this if you think it looks better. The\r
-closing hashes don't even need to match the number of hashes\r
-used to open the header. (The number of opening hashes\r
-determines the header level.) :\r
-\r
-    # This is an H1 #\r
-\r
-    ## This is an H2 ##\r
-\r
-    ### This is an H3 ######\r
-\r
-\r
-<h3 id="blockquote">Blockquotes</h3>\r
-\r
-Markdown uses email-style `>` characters for blockquoting. If you're\r
-familiar with quoting passages of text in an email message, then you\r
-know how to create a blockquote in Markdown. It looks best if you hard\r
-wrap the text and put a `>` before every line:\r
-\r
-    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-    > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-    > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-    > \r
-    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-    > id sem consectetuer libero luctus adipiscing.\r
-\r
-Markdown allows you to be lazy and only put the `>` before the first\r
-line of a hard-wrapped paragraph:\r
-\r
-    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-\r
-    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-    id sem consectetuer libero luctus adipiscing.\r
-\r
-Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
-adding additional levels of `>`:\r
-\r
-    > This is the first level of quoting.\r
-    >\r
-    > > This is nested blockquote.\r
-    >\r
-    > Back to the first level.\r
-\r
-Blockquotes can contain other Markdown elements, including headers, lists,\r
-and code blocks:\r
-\r
-       > ## This is a header.\r
-       > \r
-       > 1.   This is the first list item.\r
-       > 2.   This is the second list item.\r
-       > \r
-       > Here's some example code:\r
-       > \r
-       >     return shell_exec("echo $input | $markdown_script");\r
-\r
-Any decent text editor should make email-style quoting easy. For\r
-example, with BBEdit, you can make a selection and choose Increase\r
-Quote Level from the Text menu.\r
-\r
-\r
-<h3 id="list">Lists</h3>\r
-\r
-Markdown supports ordered (numbered) and unordered (bulleted) lists.\r
-\r
-Unordered lists use asterisks, pluses, and hyphens -- interchangably\r
--- as list markers:\r
-\r
-    *   Red\r
-    *   Green\r
-    *   Blue\r
-\r
-is equivalent to:\r
-\r
-    +   Red\r
-    +   Green\r
-    +   Blue\r
-\r
-and:\r
-\r
-    -   Red\r
-    -   Green\r
-    -   Blue\r
-\r
-Ordered lists use numbers followed by periods:\r
-\r
-    1.  Bird\r
-    2.  McHale\r
-    3.  Parish\r
-\r
-It's important to note that the actual numbers you use to mark the\r
-list have no effect on the HTML output Markdown produces. The HTML\r
-Markdown produces from the above list is:\r
-\r
-    <ol>\r
-    <li>Bird</li>\r
-    <li>McHale</li>\r
-    <li>Parish</li>\r
-    </ol>\r
-\r
-If you instead wrote the list in Markdown like this:\r
-\r
-    1.  Bird\r
-    1.  McHale\r
-    1.  Parish\r
-\r
-or even:\r
-\r
-    3. Bird\r
-    1. McHale\r
-    8. Parish\r
-\r
-you'd get the exact same HTML output. The point is, if you want to,\r
-you can use ordinal numbers in your ordered Markdown lists, so that\r
-the numbers in your source match the numbers in your published HTML.\r
-But if you want to be lazy, you don't have to.\r
-\r
-If you do use lazy list numbering, however, you should still start the\r
-list with the number 1. At some point in the future, Markdown may support\r
-starting ordered lists at an arbitrary number.\r
-\r
-List markers typically start at the left margin, but may be indented by\r
-up to three spaces. List markers must be followed by one or more spaces\r
-or a tab.\r
-\r
-To make lists look nice, you can wrap items with hanging indents:\r
-\r
-    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-        viverra nec, fringilla in, laoreet vitae, risus.\r
-    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-        Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-But if you want to be lazy, you don't have to:\r
-\r
-    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-    viverra nec, fringilla in, laoreet vitae, risus.\r
-    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-    Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-If list items are separated by blank lines, Markdown will wrap the\r
-items in `<p>` tags in the HTML output. For example, this input:\r
-\r
-    *   Bird\r
-    *   Magic\r
-\r
-will turn into:\r
-\r
-    <ul>\r
-    <li>Bird</li>\r
-    <li>Magic</li>\r
-    </ul>\r
-\r
-But this:\r
-\r
-    *   Bird\r
-\r
-    *   Magic\r
-\r
-will turn into:\r
-\r
-    <ul>\r
-    <li><p>Bird</p></li>\r
-    <li><p>Magic</p></li>\r
-    </ul>\r
-\r
-List items may consist of multiple paragraphs. Each subsequent\r
-paragraph in a list item must be intended by either 4 spaces\r
-or one tab:\r
-\r
-    1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
-        sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
-        mi posuere lectus.\r
-\r
-        Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
-        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
-        sit amet velit.\r
-\r
-    2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-It looks nice if you indent every line of the subsequent\r
-paragraphs, but here again, Markdown will allow you to be\r
-lazy:\r
-\r
-    *   This is a list item with two paragraphs.\r
-\r
-        This is the second paragraph in the list item. You're\r
-    only required to indent the first line. Lorem ipsum dolor\r
-    sit amet, consectetuer adipiscing elit.\r
-\r
-    *   Another item in the same list.\r
-\r
-To put a blockquote within a list item, the blockquote's `>`\r
-delimiters need to be indented:\r
-\r
-    *   A list item with a blockquote:\r
-\r
-        > This is a blockquote\r
-        > inside a list item.\r
-\r
-To put a code block within a list item, the code block needs\r
-to be indented *twice* -- 8 spaces or two tabs:\r
-\r
-    *   A list item with a code block:\r
-\r
-            <code goes here>\r
-\r
-\r
-It's worth noting that it's possible to trigger an ordered list by\r
-accident, by writing something like this:\r
-\r
-    1986. What a great season.\r
-\r
-In other words, a *number-period-space* sequence at the beginning of a\r
-line. To avoid this, you can backslash-escape the period:\r
-\r
-    1986\. What a great season.\r
-\r
-\r
-\r
-<h3 id="precode">Code Blocks</h3>\r
-\r
-Pre-formatted code blocks are used for writing about programming or\r
-markup source code. Rather than forming normal paragraphs, the lines\r
-of a code block are interpreted literally. Markdown wraps a code block\r
-in both `<pre>` and `<code>` tags.\r
-\r
-To produce a code block in Markdown, simply indent every line of the\r
-block by at least 4 spaces or 1 tab. For example, given this input:\r
-\r
-    This is a normal paragraph:\r
-\r
-        This is a code block.\r
-\r
-Markdown will generate:\r
-\r
-    <p>This is a normal paragraph:</p>\r
-\r
-    <pre><code>This is a code block.\r
-    </code></pre>\r
-\r
-One level of indentation -- 4 spaces or 1 tab -- is removed from each\r
-line of the code block. For example, this:\r
-\r
-    Here is an example of AppleScript:\r
-\r
-        tell application "Foo"\r
-            beep\r
-        end tell\r
-\r
-will turn into:\r
-\r
-    <p>Here is an example of AppleScript:</p>\r
-\r
-    <pre><code>tell application "Foo"\r
-        beep\r
-    end tell\r
-    </code></pre>\r
-\r
-A code block continues until it reaches a line that is not indented\r
-(or the end of the article).\r
-\r
-Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)\r
-are automatically converted into HTML entities. This makes it very\r
-easy to include example HTML source code using Markdown -- just paste\r
-it and indent it, and Markdown will handle the hassle of encoding the\r
-ampersands and angle brackets. For example, this:\r
-\r
-        <div class="footer">\r
-            &copy; 2004 Foo Corporation\r
-        </div>\r
-\r
-will turn into:\r
-\r
-    <pre><code>&lt;div class="footer"&gt;\r
-        &amp;copy; 2004 Foo Corporation\r
-    &lt;/div&gt;\r
-    </code></pre>\r
-\r
-Regular Markdown syntax is not processed within code blocks. E.g.,\r
-asterisks are just literal asterisks within a code block. This means\r
-it's also easy to use Markdown to write about Markdown's own syntax.\r
-\r
-\r
-\r
-<h3 id="hr">Horizontal Rules</h3>\r
-\r
-You can produce a horizontal rule tag (`<hr />`) by placing three or\r
-more hyphens, asterisks, or underscores on a line by themselves. If you\r
-wish, you may use spaces between the hyphens or asterisks. Each of the\r
-following lines will produce a horizontal rule:\r
-\r
-    * * *\r
-\r
-    ***\r
-\r
-    *****\r
-       \r
-    - - -\r
-\r
-    ---------------------------------------\r
-\r
-       _ _ _\r
-\r
-\r
-* * *\r
-\r
-<h2 id="span">Span Elements</h2>\r
-\r
-<h3 id="link">Links</h3>\r
-\r
-Markdown supports two style of links: *inline* and *reference*.\r
-\r
-In both styles, the link text is delimited by [square brackets].\r
-\r
-To create an inline link, use a set of regular parentheses immediately\r
-after the link text's closing square bracket. Inside the parentheses,\r
-put the URL where you want the link to point, along with an *optional*\r
-title for the link, surrounded in quotes. For example:\r
-\r
-    This is [an example](http://example.com/ "Title") inline link.\r
-\r
-    [This link](http://example.net/) has no title attribute.\r
-\r
-Will produce:\r
-\r
-    <p>This is <a href="http://example.com/" title="Title">\r
-    an example</a> inline link.</p>\r
-\r
-    <p><a href="http://example.net/">This link</a> has no\r
-    title attribute.</p>\r
-\r
-If you're referring to a local resource on the same server, you can\r
-use relative paths:\r
-\r
-    See my [About](/about/) page for details.   \r
-\r
-Reference-style links use a second set of square brackets, inside\r
-which you place a label of your choosing to identify the link:\r
-\r
-    This is [an example][id] reference-style link.\r
-\r
-You can optionally use a space to separate the sets of brackets:\r
-\r
-    This is [an example] [id] reference-style link.\r
-\r
-Then, anywhere in the document, you define your link label like this,\r
-on a line by itself:\r
-\r
-    [id]: http://example.com/  "Optional Title Here"\r
-\r
-That is:\r
-\r
-*   Square brackets containing the link identifier (optionally\r
-    indented from the left margin using up to three spaces);\r
-*   followed by a colon;\r
-*   followed by one or more spaces (or tabs);\r
-*   followed by the URL for the link;\r
-*   optionally followed by a title attribute for the link, enclosed\r
-    in double or single quotes.\r
-\r
-The link URL may, optionally, be surrounded by angle brackets:\r
-\r
-    [id]: <http://example.com/>  "Optional Title Here"\r
-\r
-You can put the title attribute on the next line and use extra spaces\r
-or tabs for padding, which tends to look better with longer URLs:\r
-\r
-    [id]: http://example.com/longish/path/to/resource/here\r
-        "Optional Title Here"\r
-\r
-Link definitions are only used for creating links during Markdown\r
-processing, and are stripped from your document in the HTML output.\r
-\r
-Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:\r
-\r
-       [link text][a]\r
-       [link text][A]\r
-\r
-are equivalent.\r
-\r
-The *implicit link name* shortcut allows you to omit the name of the\r
-link, in which case the link text itself is used as the name.\r
-Just use an empty set of square brackets -- e.g., to link the word\r
-"Google" to the google.com web site, you could simply write:\r
-\r
-       [Google][]\r
-\r
-And then define the link:\r
-\r
-       [Google]: http://google.com/\r
-\r
-Because link names may contain spaces, this shortcut even works for\r
-multiple words in the link text:\r
-\r
-       Visit [Daring Fireball][] for more information.\r
-\r
-And then define the link:\r
-       \r
-       [Daring Fireball]: http://daringfireball.net/\r
-\r
-Link definitions can be placed anywhere in your Markdown document. I\r
-tend to put them immediately after each paragraph in which they're\r
-used, but if you want, you can put them all at the end of your\r
-document, sort of like footnotes.\r
-\r
-Here's an example of reference links in action:\r
-\r
-    I get 10 times more traffic from [Google] [1] than from\r
-    [Yahoo] [2] or [MSN] [3].\r
-\r
-      [1]: http://google.com/        "Google"\r
-      [2]: http://search.yahoo.com/  "Yahoo Search"\r
-      [3]: http://search.msn.com/    "MSN Search"\r
-\r
-Using the implicit link name shortcut, you could instead write:\r
-\r
-    I get 10 times more traffic from [Google][] than from\r
-    [Yahoo][] or [MSN][].\r
-\r
-      [google]: http://google.com/        "Google"\r
-      [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
-      [msn]:    http://search.msn.com/    "MSN Search"\r
-\r
-Both of the above examples will produce the following HTML output:\r
-\r
-    <p>I get 10 times more traffic from <a href="http://google.com/"\r
-    title="Google">Google</a> than from\r
-    <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>\r
-    or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>\r
-\r
-For comparison, here is the same paragraph written using\r
-Markdown's inline link style:\r
-\r
-    I get 10 times more traffic from [Google](http://google.com/ "Google")\r
-    than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
-    [MSN](http://search.msn.com/ "MSN Search").\r
-\r
-The point of reference-style links is not that they're easier to\r
-write. The point is that with reference-style links, your document\r
-source is vastly more readable. Compare the above examples: using\r
-reference-style links, the paragraph itself is only 81 characters\r
-long; with inline-style links, it's 176 characters; and as raw HTML,\r
-it's 234 characters. In the raw HTML, there's more markup than there\r
-is text.\r
-\r
-With Markdown's reference-style links, a source document much more\r
-closely resembles the final output, as rendered in a browser. By\r
-allowing you to move the markup-related metadata out of the paragraph,\r
-you can add links without interrupting the narrative flow of your\r
-prose.\r
-\r
-\r
-<h3 id="em">Emphasis</h3>\r
-\r
-Markdown treats asterisks (`*`) and underscores (`_`) as indicators of\r
-emphasis. Text wrapped with one `*` or `_` will be wrapped with an\r
-HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML\r
-`<strong>` tag. E.g., this input:\r
-\r
-    *single asterisks*\r
-\r
-    _single underscores_\r
-\r
-    **double asterisks**\r
-\r
-    __double underscores__\r
-\r
-will produce:\r
-\r
-    <em>single asterisks</em>\r
-\r
-    <em>single underscores</em>\r
-\r
-    <strong>double asterisks</strong>\r
-\r
-    <strong>double underscores</strong>\r
-\r
-You can use whichever style you prefer; the lone restriction is that\r
-the same character must be used to open and close an emphasis span.\r
-\r
-Emphasis can be used in the middle of a word:\r
-\r
-    un*fucking*believable\r
-\r
-But if you surround an `*` or `_` with spaces, it'll be treated as a\r
-literal asterisk or underscore.\r
-\r
-To produce a literal asterisk or underscore at a position where it\r
-would otherwise be used as an emphasis delimiter, you can backslash\r
-escape it:\r
-\r
-    \*this text is surrounded by literal asterisks\*\r
-\r
-\r
-\r
-<h3 id="code">Code</h3>\r
-\r
-To indicate a span of code, wrap it with backtick quotes (`` ` ``).\r
-Unlike a pre-formatted code block, a code span indicates code within a\r
-normal paragraph. For example:\r
-\r
-    Use the `printf()` function.\r
-\r
-will produce:\r
-\r
-    <p>Use the <code>printf()</code> function.</p>\r
-\r
-To include a literal backtick character within a code span, you can use\r
-multiple backticks as the opening and closing delimiters:\r
-\r
-    ``There is a literal backtick (`) here.``\r
-\r
-which will produce this:\r
-\r
-    <p><code>There is a literal backtick (`) here.</code></p>\r
-\r
-The backtick delimiters surrounding a code span may include spaces --\r
-one after the opening, one before the closing. This allows you to place\r
-literal backtick characters at the beginning or end of a code span:\r
-\r
-       A single backtick in a code span: `` ` ``\r
-       \r
-       A backtick-delimited string in a code span: `` `foo` ``\r
-\r
-will produce:\r
-\r
-       <p>A single backtick in a code span: <code>`</code></p>\r
-       \r
-       <p>A backtick-delimited string in a code span: <code>`foo`</code></p>\r
-\r
-With a code span, ampersands and angle brackets are encoded as HTML\r
-entities automatically, which makes it easy to include example HTML\r
-tags. Markdown will turn this:\r
-\r
-    Please don't use any `<blink>` tags.\r
-\r
-into:\r
-\r
-    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>\r
-\r
-You can write this:\r
-\r
-    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.\r
-\r
-to produce:\r
-\r
-    <p><code>&amp;#8212;</code> is the decimal-encoded\r
-    equivalent of <code>&amp;mdash;</code>.</p>\r
-\r
-\r
-\r
-<h3 id="img">Images</h3>\r
-\r
-Admittedly, it's fairly difficult to devise a "natural" syntax for\r
-placing images into a plain text document format.\r
-\r
-Markdown uses an image syntax that is intended to resemble the syntax\r
-for links, allowing for two styles: *inline* and *reference*.\r
-\r
-Inline image syntax looks like this:\r
-\r
-    ![Alt text](/path/to/img.jpg)\r
-\r
-    ![Alt text](/path/to/img.jpg "Optional title")\r
-\r
-That is:\r
-\r
-*   An exclamation mark: `!`;\r
-*   followed by a set of square brackets, containing the `alt`\r
-    attribute text for the image;\r
-*   followed by a set of parentheses, containing the URL or path to\r
-    the image, and an optional `title` attribute enclosed in double\r
-    or single quotes.\r
-\r
-Reference-style image syntax looks like this:\r
-\r
-    ![Alt text][id]\r
-\r
-Where "id" is the name of a defined image reference. Image references\r
-are defined using syntax identical to link references:\r
-\r
-    [id]: url/to/image  "Optional title attribute"\r
-\r
-As of this writing, Markdown has no syntax for specifying the\r
-dimensions of an image; if this is important to you, you can simply\r
-use regular HTML `<img>` tags.\r
-\r
-\r
-* * *\r
-\r
-\r
-<h2 id="misc">Miscellaneous</h2>\r
-\r
-<h3 id="autolink">Automatic Links</h3>\r
-\r
-Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:\r
-\r
-    <http://example.com/>\r
-    \r
-Markdown will turn this into:\r
-\r
-    <a href="http://example.com/">http://example.com/</a>\r
-\r
-Automatic links for email addresses work similarly, except that\r
-Markdown will also perform a bit of randomized decimal and hex\r
-entity-encoding to help obscure your address from address-harvesting\r
-spambots. For example, Markdown will turn this:\r
-\r
-    <address@example.com>\r
-\r
-into something like this:\r
-\r
-    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;\r
-    &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;\r
-    &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;\r
-    &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>\r
-\r
-which will render in a browser as a clickable link to "address@example.com".\r
-\r
-(This sort of entity-encoding trick will indeed fool many, if not\r
-most, address-harvesting bots, but it definitely won't fool all of\r
-them. It's better than nothing, but an address published in this way\r
-will probably eventually start receiving spam.)\r
-\r
-\r
-\r
-<h3 id="backslash">Backslash Escapes</h3>\r
-\r
-Markdown allows you to use backslash escapes to generate literal\r
-characters which would otherwise have special meaning in Markdown's\r
-formatting syntax. For example, if you wanted to surround a word with\r
-literal asterisks (instead of an HTML `<em>` tag), you can backslashes\r
-before the asterisks, like this:\r
-\r
-    \*literal asterisks\*\r
-\r
-Markdown provides backslash escapes for the following characters:\r
-\r
-    \   backslash\r
-    `   backtick\r
-    *   asterisk\r
-    _   underscore\r
-    {}  curly braces\r
-    []  square brackets\r
-    ()  parentheses\r
-    #   hash mark\r
-       +       plus sign\r
-       -       minus sign (hyphen)\r
-    .   dot\r
-    !   exclamation mark\r
-\r
+Markdown: Syntax
+================
+
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+
+*   [Overview](#overview)
+    *   [Philosophy](#philosophy)
+    *   [Inline HTML](#html)
+    *   [Automatic Escaping for Special Characters](#autoescape)
+*   [Block Elements](#block)
+    *   [Paragraphs and Line Breaks](#p)
+    *   [Headers](#header)
+    *   [Blockquotes](#blockquote)
+    *   [Lists](#list)
+    *   [Code Blocks](#precode)
+    *   [Horizontal Rules](#hr)
+*   [Span Elements](#span)
+    *   [Links](#link)
+    *   [Emphasis](#em)
+    *   [Code](#code)
+    *   [Images](#img)
+*   [Miscellaneous](#misc)
+    *   [Backslash Escapes](#backslash)
+    *   [Automatic Links](#autolink)
+
+
+**Note:** This document is itself written using Markdown; you
+can [see the source for it by adding '.text' to the URL][src].
+
+  [src]: /projects/markdown/syntax.text
+
+* * *
+
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+Markdown is intended to be as easy-to-read and easy-to-write as is feasible.
+
+Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],
+[Grutatext] [5], and [EtText] [6] -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.
+
+  [1]: http://docutils.sourceforge.net/mirror/setext.html
+  [2]: http://www.aaronsw.com/2002/atx/
+  [3]: http://textism.com/tools/textile/
+  [4]: http://docutils.sourceforge.net/rst.html
+  [5]: http://www.triptico.com/software/grutatxt.html
+  [6]: http://ettext.taint.org/doc/
+
+To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like \*emphasis\*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.
+
+
+
+<h3 id="html">Inline HTML</h3>
+
+Markdown's syntax is intended for one purpose: to be used as a
+format for *writing* for the web.
+
+Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is *not* to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a *publishing* format; Markdown is a *writing*
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.
+
+For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.
+
+The only restrictions are that block-level HTML elements -- e.g. `<div>`,
+`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) `<p>` tags around HTML block-level tags.
+
+For example, to add an HTML table to a Markdown article:
+
+    This is a regular paragraph.
+
+    <table>
+        <tr>
+            <td>Foo</td>
+        </tr>
+    </table>
+
+    This is another regular paragraph.
+
+Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an
+HTML block.
+
+Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's
+link or image syntax, go right ahead.
+
+Unlike block-level HTML tags, Markdown syntax *is* processed within
+span-level tags.
+
+
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+In HTML, there are two characters that demand special treatment: `<`
+and `&`. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. `&lt;`, and
+`&amp;`.
+
+Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&T', you need to write '`AT&amp;T`'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:
+
+    http://images.google.com/images?num=30&q=larry+bird
+
+you need to encode the URL as:
+
+    http://images.google.com/images?num=30&amp;q=larry+bird
+
+in your anchor tag `href` attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.
+
+Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into `&amp;`.
+
+So, if you want to include a copyright symbol in your article, you can write:
+
+    &copy;
+
+and Markdown will leave it alone. But if you write:
+
+    AT&T
+
+Markdown will translate it to:
+
+    AT&amp;T
+
+Similarly, because Markdown supports [inline HTML](#html), if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:
+
+    4 < 5
+
+Markdown will translate it to:
+
+    4 &lt; 5
+
+However, inside Markdown code spans and blocks, angle brackets and
+ampersands are *always* encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single `<`
+and `&` in your example code needs to be escaped.)
+
+
+* * *
+
+
+<h2 id="block">Block Elements</h2>
+
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.
+
+The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a `<br />` tag.
+
+When you *do* want to insert a `<br />` break tag using Markdown, you
+end a line with two or more spaces, then type return.
+
+Yes, this takes a tad more effort to create a `<br />`, but a simplistic
+"every line break is a `<br />`" rule wouldn't work for Markdown.
+Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]
+work best -- and look better -- when you format them with hard breaks.
+
+  [bq]: #blockquote
+  [l]:  #list
+
+
+
+<h3 id="header">Headers</h3>
+
+Markdown supports two styles of headers, [Setext] [1] and [atx] [2].
+
+Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:
+
+    This is an H1
+    =============
+
+    This is an H2
+    -------------
+
+Any number of underlining `=`'s or `-`'s will work.
+
+Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:
+
+    # This is an H1
+
+    ## This is an H2
+
+    ###### This is an H6
+
+Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :
+
+    # This is an H1 #
+
+    ## This is an H2 ##
+
+    ### This is an H3 ######
+
+
+<h3 id="blockquote">Blockquotes</h3>
+
+Markdown uses email-style `>` characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a `>` before every line:
+
+    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+    > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+    > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+    > 
+    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+    > id sem consectetuer libero luctus adipiscing.
+
+Markdown allows you to be lazy and only put the `>` before the first
+line of a hard-wrapped paragraph:
+
+    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+    id sem consectetuer libero luctus adipiscing.
+
+Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of `>`:
+
+    > This is the first level of quoting.
+    >
+    > > This is nested blockquote.
+    >
+    > Back to the first level.
+
+Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:
+
+       > ## This is a header.
+       > 
+       > 1.   This is the first list item.
+       > 2.   This is the second list item.
+       > 
+       > Here's some example code:
+       > 
+       >     return shell_exec("echo $input | $markdown_script");
+
+Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.
+
+
+<h3 id="list">Lists</h3>
+
+Markdown supports ordered (numbered) and unordered (bulleted) lists.
+
+Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:
+
+    *   Red
+    *   Green
+    *   Blue
+
+is equivalent to:
+
+    +   Red
+    +   Green
+    +   Blue
+
+and:
+
+    -   Red
+    -   Green
+    -   Blue
+
+Ordered lists use numbers followed by periods:
+
+    1.  Bird
+    2.  McHale
+    3.  Parish
+
+It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:
+
+    <ol>
+    <li>Bird</li>
+    <li>McHale</li>
+    <li>Parish</li>
+    </ol>
+
+If you instead wrote the list in Markdown like this:
+
+    1.  Bird
+    1.  McHale
+    1.  Parish
+
+or even:
+
+    3. Bird
+    1. McHale
+    8. Parish
+
+you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.
+
+If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.
+
+List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.
+
+To make lists look nice, you can wrap items with hanging indents:
+
+    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+        viverra nec, fringilla in, laoreet vitae, risus.
+    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+        Suspendisse id sem consectetuer libero luctus adipiscing.
+
+But if you want to be lazy, you don't have to:
+
+    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+
+If list items are separated by blank lines, Markdown will wrap the
+items in `<p>` tags in the HTML output. For example, this input:
+
+    *   Bird
+    *   Magic
+
+will turn into:
+
+    <ul>
+    <li>Bird</li>
+    <li>Magic</li>
+    </ul>
+
+But this:
+
+    *   Bird
+
+    *   Magic
+
+will turn into:
+
+    <ul>
+    <li><p>Bird</p></li>
+    <li><p>Magic</p></li>
+    </ul>
+
+List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:
+
+    1.  This is a list item with two paragraphs. Lorem ipsum dolor
+        sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+        mi posuere lectus.
+
+        Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+        sit amet velit.
+
+    2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+
+It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:
+
+    *   This is a list item with two paragraphs.
+
+        This is the second paragraph in the list item. You're
+    only required to indent the first line. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit.
+
+    *   Another item in the same list.
+
+To put a blockquote within a list item, the blockquote's `>`
+delimiters need to be indented:
+
+    *   A list item with a blockquote:
+
+        > This is a blockquote
+        > inside a list item.
+
+To put a code block within a list item, the code block needs
+to be indented *twice* -- 8 spaces or two tabs:
+
+    *   A list item with a code block:
+
+            <code goes here>
+
+
+It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:
+
+    1986. What a great season.
+
+In other words, a *number-period-space* sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:
+
+    1986\. What a great season.
+
+
+
+<h3 id="precode">Code Blocks</h3>
+
+Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both `<pre>` and `<code>` tags.
+
+To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:
+
+    This is a normal paragraph:
+
+        This is a code block.
+
+Markdown will generate:
+
+    <p>This is a normal paragraph:</p>
+
+    <pre><code>This is a code block.
+    </code></pre>
+
+One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:
+
+    Here is an example of AppleScript:
+
+        tell application "Foo"
+            beep
+        end tell
+
+will turn into:
+
+    <p>Here is an example of AppleScript:</p>
+
+    <pre><code>tell application "Foo"
+        beep
+    end tell
+    </code></pre>
+
+A code block continues until it reaches a line that is not indented
+(or the end of the article).
+
+Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:
+
+        <div class="footer">
+            &copy; 2004 Foo Corporation
+        </div>
+
+will turn into:
+
+    <pre><code>&lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+    </code></pre>
+
+Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.
+
+
+
+<h3 id="hr">Horizontal Rules</h3>
+
+You can produce a horizontal rule tag (`<hr />`) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:
+
+    * * *
+
+    ***
+
+    *****
+       
+    - - -
+
+    ---------------------------------------
+
+       _ _ _
+
+
+* * *
+
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+Markdown supports two style of links: *inline* and *reference*.
+
+In both styles, the link text is delimited by [square brackets].
+
+To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an *optional*
+title for the link, surrounded in quotes. For example:
+
+    This is [an example](http://example.com/ "Title") inline link.
+
+    [This link](http://example.net/) has no title attribute.
+
+Will produce:
+
+    <p>This is <a href="http://example.com/" title="Title">
+    an example</a> inline link.</p>
+
+    <p><a href="http://example.net/">This link</a> has no
+    title attribute.</p>
+
+If you're referring to a local resource on the same server, you can
+use relative paths:
+
+    See my [About](/about/) page for details.   
+
+Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:
+
+    This is [an example][id] reference-style link.
+
+You can optionally use a space to separate the sets of brackets:
+
+    This is [an example] [id] reference-style link.
+
+Then, anywhere in the document, you define your link label like this,
+on a line by itself:
+
+    [id]: http://example.com/  "Optional Title Here"
+
+That is:
+
+*   Square brackets containing the link identifier (optionally
+    indented from the left margin using up to three spaces);
+*   followed by a colon;
+*   followed by one or more spaces (or tabs);
+*   followed by the URL for the link;
+*   optionally followed by a title attribute for the link, enclosed
+    in double or single quotes.
+
+The link URL may, optionally, be surrounded by angle brackets:
+
+    [id]: <http://example.com/>  "Optional Title Here"
+
+You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:
+
+    [id]: http://example.com/longish/path/to/resource/here
+        "Optional Title Here"
+
+Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.
+
+Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:
+
+       [link text][a]
+       [link text][A]
+
+are equivalent.
+
+The *implicit link name* shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:
+
+       [Google][]
+
+And then define the link:
+
+       [Google]: http://google.com/
+
+Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:
+
+       Visit [Daring Fireball][] for more information.
+
+And then define the link:
+       
+       [Daring Fireball]: http://daringfireball.net/
+
+Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.
+
+Here's an example of reference links in action:
+
+    I get 10 times more traffic from [Google] [1] than from
+    [Yahoo] [2] or [MSN] [3].
+
+      [1]: http://google.com/        "Google"
+      [2]: http://search.yahoo.com/  "Yahoo Search"
+      [3]: http://search.msn.com/    "MSN Search"
+
+Using the implicit link name shortcut, you could instead write:
+
+    I get 10 times more traffic from [Google][] than from
+    [Yahoo][] or [MSN][].
+
+      [google]: http://google.com/        "Google"
+      [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+      [msn]:    http://search.msn.com/    "MSN Search"
+
+Both of the above examples will produce the following HTML output:
+
+    <p>I get 10 times more traffic from <a href="http://google.com/"
+    title="Google">Google</a> than from
+    <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
+    or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
+
+For comparison, here is the same paragraph written using
+Markdown's inline link style:
+
+    I get 10 times more traffic from [Google](http://google.com/ "Google")
+    than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+    [MSN](http://search.msn.com/ "MSN Search").
+
+The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.
+
+With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.
+
+
+<h3 id="em">Emphasis</h3>
+
+Markdown treats asterisks (`*`) and underscores (`_`) as indicators of
+emphasis. Text wrapped with one `*` or `_` will be wrapped with an
+HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML
+`<strong>` tag. E.g., this input:
+
+    *single asterisks*
+
+    _single underscores_
+
+    **double asterisks**
+
+    __double underscores__
+
+will produce:
+
+    <em>single asterisks</em>
+
+    <em>single underscores</em>
+
+    <strong>double asterisks</strong>
+
+    <strong>double underscores</strong>
+
+You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.
+
+Emphasis can be used in the middle of a word:
+
+    un*fucking*believable
+
+But if you surround an `*` or `_` with spaces, it'll be treated as a
+literal asterisk or underscore.
+
+To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:
+
+    \*this text is surrounded by literal asterisks\*
+
+
+
+<h3 id="code">Code</h3>
+
+To indicate a span of code, wrap it with backtick quotes (`` ` ``).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:
+
+    Use the `printf()` function.
+
+will produce:
+
+    <p>Use the <code>printf()</code> function.</p>
+
+To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:
+
+    ``There is a literal backtick (`) here.``
+
+which will produce this:
+
+    <p><code>There is a literal backtick (`) here.</code></p>
+
+The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:
+
+       A single backtick in a code span: `` ` ``
+       
+       A backtick-delimited string in a code span: `` `foo` ``
+
+will produce:
+
+       <p>A single backtick in a code span: <code>`</code></p>
+       
+       <p>A backtick-delimited string in a code span: <code>`foo`</code></p>
+
+With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:
+
+    Please don't use any `<blink>` tags.
+
+into:
+
+    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
+
+You can write this:
+
+    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.
+
+to produce:
+
+    <p><code>&amp;#8212;</code> is the decimal-encoded
+    equivalent of <code>&amp;mdash;</code>.</p>
+
+
+
+<h3 id="img">Images</h3>
+
+Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.
+
+Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: *inline* and *reference*.
+
+Inline image syntax looks like this:
+
+    ![Alt text](/path/to/img.jpg)
+
+    ![Alt text](/path/to/img.jpg "Optional title")
+
+That is:
+
+*   An exclamation mark: `!`;
+*   followed by a set of square brackets, containing the `alt`
+    attribute text for the image;
+*   followed by a set of parentheses, containing the URL or path to
+    the image, and an optional `title` attribute enclosed in double
+    or single quotes.
+
+Reference-style image syntax looks like this:
+
+    ![Alt text][id]
+
+Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:
+
+    [id]: url/to/image  "Optional title attribute"
+
+As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML `<img>` tags.
+
+
+* * *
+
+
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:
+
+    <http://example.com/>
+    
+Markdown will turn this into:
+
+    <a href="http://example.com/">http://example.com/</a>
+
+Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:
+
+    <address@example.com>
+
+into something like this:
+
+    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
+    &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
+    &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
+    &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
+
+which will render in a browser as a clickable link to "address@example.com".
+
+(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)
+
+
+
+<h3 id="backslash">Backslash Escapes</h3>
+
+Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML `<em>` tag), you can backslashes
+before the asterisks, like this:
+
+    \*literal asterisks\*
+
+Markdown provides backslash escapes for the following characters:
+
+    \   backslash
+    `   backtick
+    *   asterisk
+    _   underscore
+    {}  curly braces
+    []  square brackets
+    ()  parentheses
+    #   hash mark
+       +       plus sign
+       -       minus sign (hyphen)
+    .   dot
+    !   exclamation mark
+
index 4372214f57c7d336372c28dd6f9ef2864e1174a1..55cea310af71400ec8760ec12368726d38947910 100644 (file)
@@ -1,20 +1,20 @@
-<p>This is the body with footnotes<sup id="fnref:foo"><a class="footnote-ref" href="#fn:foo" rel="footnote">1</a></sup> \r
-that have named<sup id="fnref:bar"><a class="footnote-ref" href="#fn:bar" rel="footnote">2</a></sup> markers and \r
-oddly<sup id="fnref:56"><a class="footnote-ref" href="#fn:56" rel="footnote">3</a></sup>  numbered<sup id="fnref:99"><a class="footnote-ref" href="#fn:99" rel="footnote">4</a></sup> markers.</p>\r
-<div class="footnote">\r
-<hr />\r
-<ol>\r
-<li id="fn:foo">\r
-<p>Footnote marked <code>foo</code>.&#160;<a class="footnote-backref" href="#fnref:foo" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:bar">\r
-<p>This one is marked <em>bar</em>.&#160;<a class="footnote-backref" href="#fnref:bar" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:56">\r
-<p>A <strong>numbered</strong> footnote.&#160;<a class="footnote-backref" href="#fnref:56" rev="footnote" title="Jump back to footnote 3 in the text">&#8617;</a></p>\r
-</li>\r
-<li id="fn:99">\r
-<p>The last one.&#160;<a class="footnote-backref" href="#fnref:99" rev="footnote" title="Jump back to footnote 4 in the text">&#8617;</a></p>\r
-</li>\r
-</ol>\r
+<p>This is the body with footnotes<sup id="fnref:foo"><a class="footnote-ref" href="#fn:foo" rel="footnote">1</a></sup> 
+that have named<sup id="fnref:bar"><a class="footnote-ref" href="#fn:bar" rel="footnote">2</a></sup> markers and 
+oddly<sup id="fnref:56"><a class="footnote-ref" href="#fn:56" rel="footnote">3</a></sup>  numbered<sup id="fnref:99"><a class="footnote-ref" href="#fn:99" rel="footnote">4</a></sup> markers.</p>
+<div class="footnote">
+<hr />
+<ol>
+<li id="fn:foo">
+<p>Footnote marked <code>foo</code>.&#160;<a class="footnote-backref" href="#fnref:foo" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
+</li>
+<li id="fn:bar">
+<p>This one is marked <em>bar</em>.&#160;<a class="footnote-backref" href="#fnref:bar" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>
+</li>
+<li id="fn:56">
+<p>A <strong>numbered</strong> footnote.&#160;<a class="footnote-backref" href="#fnref:56" rev="footnote" title="Jump back to footnote 3 in the text">&#8617;</a></p>
+</li>
+<li id="fn:99">
+<p>The last one.&#160;<a class="footnote-backref" href="#fnref:99" rev="footnote" title="Jump back to footnote 4 in the text">&#8617;</a></p>
+</li>
+</ol>
 </div>
\ No newline at end of file
index 78fc60b90b6b97eed5c9f695dc62cb7ee1c00f60..d246524d6afa917b51f147dcf60d01c7e1263aa8 100644 (file)
@@ -1,9 +1,9 @@
-This is the body with footnotes[^foo] \r
-that have named[^bar] markers and \r
-oddly[^56]  numbered[^99] markers.\r
-\r
-[^foo]: Footnote marked ``foo``.\r
-[^bar]: This one is marked *bar*.\r
-[^56]: A __numbered__ footnote.\r
-[^99]: The last one.\r
-\r
+This is the body with footnotes[^foo] 
+that have named[^bar] markers and 
+oddly[^56]  numbered[^99] markers.
+
+[^foo]: Footnote marked ``foo``.
+[^bar]: This one is marked *bar*.
+[^56]: A __numbered__ footnote.
+[^99]: The last one.
+
index 64846895141ec5988ad463416adf173eaf50aaf7..f8874c388556ec9304436e81e5a1ec9ad01eb0cb 100644 (file)
@@ -1,31 +1,37 @@
-<div>\r
-<p><em>foo</em></p>\r
-</div>\r
-<div class="baz">\r
-<p><em>bar</em></p>\r
-</div>\r
-<div>\r
-<p><em>blah</em></p>\r
-</div>\r
-<div name="Example">\r
-<p>The text of the <code>Example</code> element.</p>\r
-<div name="DefaultBlockMode">\r
-<p>This text gets wrapped in <code>p</code> tags.</p>\r
-</div>\r
-<p>The tail of the <code>DefaultBlockMode</code> subelement.</p>\r
-<p name="DefaultSpanMode">\r
-This text <em>is not</em> wrapped in additional <code>p</code> tags.</p>\r
-<p>The tail of the <code>DefaultSpanMode</code> subelement.</p>\r
-<div name="SpanModeOverride">\r
-This <code>div</code> block is not wrapped in paragraph tags.\r
-Note: Subelements are not required to have tail text.</div>\r
-<p name="BlockModeOverride">\r
-<p>This <code>p</code> block <em>is</em> foolishly wrapped in further paragraph tags.</p>\r
-</p>\r
-<p>The tail of the <code>BlockModeOverride</code> subelement.</p>\r
-<div name="RawHtml">\r
-Raw html blocks may also be nested.\r
-</div>\r
-\r
-</div>\r
-<p>This text is after the markdown in html.</p>
\ No newline at end of file
+<div>
+<p><em>foo</em></p>
+</div>
+<div class="baz">
+<p><em>bar</em></p>
+</div>
+<div>
+<p><em>blah</em></p>
+</div>
+<div name="Example">
+<p>The text of the <code>Example</code> element.</p>
+<div name="DefaultBlockMode">
+<p>This text gets wrapped in <code>p</code> tags.</p>
+</div>
+<p>The tail of the <code>DefaultBlockMode</code> subelement.</p>
+<p name="DefaultSpanMode">
+This text <em>is not</em> wrapped in additional <code>p</code> tags.</p>
+<p>The tail of the <code>DefaultSpanMode</code> subelement.</p>
+<div name="SpanModeOverride">
+This <code>div</code> block is not wrapped in paragraph tags.
+Note: Subelements are not required to have tail text.</div>
+<p name="BlockModeOverride">
+<p>This <code>p</code> block <em>is</em> foolishly wrapped in further paragraph tags.</p>
+</p>
+<p>The tail of the <code>BlockModeOverride</code> subelement.</p>
+<div name="RawHtml">
+Raw html blocks may also be nested.
+</div>
+
+
+
+</div>
+<p>This text is after the markdown in html.</p>
+<div name="issue308">
+<p><span>1</span>
+<span>2</span></p>
+</div>
\ No newline at end of file
index fae2fc78e53c31bcf487c71ff6c4830f15f268bd..0a82ccf70586d7329b77969453dbc4af4b34e6b9 100644 (file)
@@ -1,46 +1,53 @@
-<div markdown="1">_foo_</div>\r
-\r
-<div markdown=1 class="baz">\r
-_bar_\r
-</div>\r
-\r
-<div markdown>\r
-\r
-_blah_\r
-\r
-</div>\r
\r
-<div markdown="1" name="Example">\r
-\r
-The text of the `Example` element.\r
-\r
-<div markdown="1" name="DefaultBlockMode">\r
-This text gets wrapped in `p` tags.\r
-</div>\r
-\r
-The tail of the `DefaultBlockMode` subelement.\r
-\r
-<p markdown="1" name="DefaultSpanMode">\r
-This text *is not* wrapped in additional `p` tags.\r
-</p>\r
-\r
-The tail of the `DefaultSpanMode` subelement.\r
-\r
-<div markdown="span" name="SpanModeOverride">\r
-This `div` block is not wrapped in paragraph tags.\r
-Note: Subelements are not required to have tail text.\r
-</div>\r
-\r
-<p markdown="block" name="BlockModeOverride">\r
-This `p` block *is* foolishly wrapped in further paragraph tags.\r
-</p>\r
-\r
-The tail of the `BlockModeOverride` subelement.\r
-\r
-<div name="RawHtml">\r
-Raw html blocks may also be nested.\r
-</div>\r
-\r
-</div>\r
-\r
-This text is after the markdown in html.\r
+<div markdown="1">_foo_</div>
+
+<div markdown=1 class="baz">
+_bar_
+</div>
+
+<div markdown>
+
+_blah_
+
+</div>
+<div markdown="1" name="Example">
+
+The text of the `Example` element.
+
+<div markdown="1" name="DefaultBlockMode">
+This text gets wrapped in `p` tags.
+</div>
+
+The tail of the `DefaultBlockMode` subelement.
+
+<p markdown="1" name="DefaultSpanMode">
+This text *is not* wrapped in additional `p` tags.
+</p>
+
+The tail of the `DefaultSpanMode` subelement.
+
+<div markdown="span" name="SpanModeOverride">
+This `div` block is not wrapped in paragraph tags.
+Note: Subelements are not required to have tail text.
+</div>
+
+<p markdown="block" name="BlockModeOverride">
+This `p` block *is* foolishly wrapped in further paragraph tags.
+</p>
+
+The tail of the `BlockModeOverride` subelement.
+
+<div name="RawHtml">
+Raw html blocks may also be nested.
+</div>
+
+</div>
+
+This text is after the markdown in html.
+
+<div markdown="1" name="issue308">
+
+<span>1</span>
+<span>2</span>
+
+</div>
index d52ee4d15cce1a88a89b1294b95b33b049e7b144..9448773e20e7e79be83b269599aad2e84c0ad689 100644 (file)
@@ -1,43 +1,43 @@
-<p>Some text</p>\r
-<dl>\r
-<dt>term1</dt>\r
-<dd>Def1</dd>\r
-<dt>term2-1</dt>\r
-<dt>term2-2</dt>\r
-<dd>Def2-1</dd>\r
-<dd>Def2-2</dd>\r
-</dl>\r
-<p>more text</p>\r
-<dl>\r
-<dt>term <em>3</em></dt>\r
-<dd>\r
-<p>def 3\r
-line <strong>2</strong> of def 3</p>\r
-<p>paragraph 2 of def 3.</p>\r
-</dd>\r
-<dd>\r
-<p>def 3-2</p>\r
-<pre><code># A code block in a def\r
-</code></pre>\r
-<blockquote>\r
-<p>a blockquote</p>\r
-</blockquote>\r
-<ul>\r
-<li>\r
-<p>a list item</p>\r
-</li>\r
-<li>\r
-<blockquote>\r
-<p>blockquote in list</p>\r
-</blockquote>\r
-</li>\r
-</ul>\r
-</dd>\r
-</dl>\r
-<p>and more text.</p>\r
-<dl>\r
-<dt>term 4</dt>\r
-<dd>def4\r
-  line 2 of def 4</dd>\r
-</dl>\r
+<p>Some text</p>
+<dl>
+<dt>term1</dt>
+<dd>Def1</dd>
+<dt>term2-1</dt>
+<dt>term2-2</dt>
+<dd>Def2-1</dd>
+<dd>Def2-2</dd>
+</dl>
+<p>more text</p>
+<dl>
+<dt>term <em>3</em></dt>
+<dd>
+<p>def 3
+line <strong>2</strong> of def 3</p>
+<p>paragraph 2 of def 3.</p>
+</dd>
+<dd>
+<p>def 3-2</p>
+<pre><code># A code block in a def
+</code></pre>
+<blockquote>
+<p>a blockquote</p>
+</blockquote>
+<ul>
+<li>
+<p>a list item</p>
+</li>
+<li>
+<blockquote>
+<p>blockquote in list</p>
+</blockquote>
+</li>
+</ul>
+</dd>
+</dl>
+<p>and more text.</p>
+<dl>
+<dt>term 4</dt>
+<dd>def4
+  line 2 of def 4</dd>
+</dl>
 <p>final text.</p>
\ No newline at end of file
index afcf40887a98a9e1fffa8544490793845d3e0d8f..20e9afa74cfbd546c6168b7d4b40dc4b42bde236 100644 (file)
@@ -1,35 +1,35 @@
-Some text\r
-\r
-term1\r
-:   Def1\r
-\r
-term2-1\r
-term2-2\r
-:   Def2-1\r
-:   Def2-2\r
-\r
-more text\r
-\r
-term *3*\r
-:   def 3\r
-    line __2__ of def 3\r
-\r
-    paragraph 2 of def 3.\r
-\r
-:   def 3-2\r
-\r
-        # A code block in a def\r
-\r
-    > a blockquote\r
-\r
-    * a list item\r
-\r
-    * > blockquote in list\r
-\r
-and more text.\r
-\r
-term 4\r
-: def4\r
-  line 2 of def 4\r
-\r
-final text.\r
+Some text
+
+term1
+:   Def1
+
+term2-1
+term2-2
+:   Def2-1
+:   Def2-2
+
+more text
+
+term *3*
+:   def 3
+    line __2__ of def 3
+
+    paragraph 2 of def 3.
+
+:   def 3-2
+
+        # A code block in a def
+
+    > a blockquote
+
+    * a list item
+
+    * > blockquote in list
+
+and more text.
+
+term 4
+: def4
+  line 2 of def 4
+
+final text.
index ca03c0f35643c8cd172e97d917b0113ce804f9f5..64196ecc7a570b111ee80af3b848dd03ee689258 100644 (file)
-<h2>Table Tests</h2>\r
-<table>\r
-<thead>\r
-<tr>\r
-<th>First Header</th>\r
-<th>Second Header</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-<table>\r
-<thead>\r
-<tr>\r
-<th>First Header</th>\r
-<th>Second Header</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-<table>\r
-<thead>\r
-<tr>\r
-<th>Item</th>\r
-<th align="right">Value</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td>Computer</td>\r
-<td align="right">$1600</td>\r
-</tr>\r
-<tr>\r
-<td>Phone</td>\r
-<td align="right">$12</td>\r
-</tr>\r
-<tr>\r
-<td>Pipe</td>\r
-<td align="right">$1</td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-<table>\r
-<thead>\r
-<tr>\r
-<th>Function name</th>\r
-<th>Description</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td><code>help()</code></td>\r
-<td>Display the help window.</td>\r
-</tr>\r
-<tr>\r
-<td><code>destroy()</code></td>\r
-<td><strong>Destroy your computer!</strong></td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-<table>\r
-<thead>\r
-<tr>\r
-<th align="left">foo</th>\r
-<th align="center">bar</th>\r
-<th align="right">baz</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td align="left"></td>\r
-<td align="center">Q</td>\r
-<td align="right"></td>\r
-</tr>\r
-<tr>\r
-<td align="left">W</td>\r
-<td align="center"></td>\r
-<td align="right">W</td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-<table>\r
-<thead>\r
-<tr>\r
-<th>foo</th>\r
-<th>bar</th>\r
-<th>baz</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td></td>\r
-<td>Q</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td>W</td>\r
-<td></td>\r
-<td>W</td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-<p>Three spaces in front of a table:</p>\r
-<table>\r
-<thead>\r
-<tr>\r
-<th>First Header</th>\r
-<th>Second Header</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-<table>\r
-<thead>\r
-<tr>\r
-<th>First Header</th>\r
-<th>Second Header</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-</tbody>\r
-</table>\r
-<p>Four spaces is a code block:</p>\r
-<pre><code>First Header | Second Header\r
------------- | -------------\r
-Content Cell | Content Cell\r
-Content Cell | Content Cell\r
+<h2>Table Tests</h2>
+<table>
+<thead>
+<tr>
+<th>First Header</th>
+<th>Second Header</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Content Cell</td>
+<td>Content Cell</td>
+</tr>
+<tr>
+<td>Content Cell</td>
+<td>Content Cell</td>
+</tr>
+</tbody>
+</table>
+<table>
+<thead>
+<tr>
+<th>First Header</th>
+<th>Second Header</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Content Cell</td>
+<td>Content Cell</td>
+</tr>
+<tr>
+<td>Content Cell</td>
+<td>Content Cell</td>
+</tr>
+</tbody>
+</table>
+<table>
+<thead>
+<tr>
+<th>Item</th>
+<th align="right">Value</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Computer</td>
+<td align="right">$1600</td>
+</tr>
+<tr>
+<td>Phone</td>
+<td align="right">$12</td>
+</tr>
+<tr>
+<td>Pipe</td>
+<td align="right">$1</td>
+</tr>
+</tbody>
+</table>
+<table>
+<thead>
+<tr>
+<th>Function name</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><code>help()</code></td>
+<td>Display the help window.</td>
+</tr>
+<tr>
+<td><code>destroy()</code></td>
+<td><strong>Destroy your computer!</strong></td>
+</tr>
+</tbody>
+</table>
+<table>
+<thead>
+<tr>
+<th align="left">foo</th>
+<th align="center">bar</th>
+<th align="right">baz</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td align="left"></td>
+<td align="center">Q</td>
+<td align="right"></td>
+</tr>
+<tr>
+<td align="left">W</td>
+<td align="center"></td>
+<td align="right">W</td>
+</tr>
+</tbody>
+</table>
+<table>
+<thead>
+<tr>
+<th>foo</th>
+<th>bar</th>
+<th>baz</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td></td>
+<td>Q</td>
+<td></td>
+</tr>
+<tr>
+<td>W</td>
+<td></td>
+<td>W</td>
+</tr>
+</tbody>
+</table>
+<p>Three spaces in front of a table:</p>
+<table>
+<thead>
+<tr>
+<th>First Header</th>
+<th>Second Header</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Content Cell</td>
+<td>Content Cell</td>
+</tr>
+<tr>
+<td>Content Cell</td>
+<td>Content Cell</td>
+</tr>
+</tbody>
+</table>
+<table>
+<thead>
+<tr>
+<th>First Header</th>
+<th>Second Header</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Content Cell</td>
+<td>Content Cell</td>
+</tr>
+<tr>
+<td>Content Cell</td>
+<td>Content Cell</td>
+</tr>
+</tbody>
+</table>
+<p>Four spaces is a code block:</p>
+<pre><code>First Header | Second Header
+------------ | -------------
+Content Cell | Content Cell
+Content Cell | Content Cell
 </code></pre>
\ No newline at end of file
index e5e4ef9d249e51c78b87b073f9d6ee1fcd743975..cf97cb51aeaff90c77a7a0981149088bc3990d67 100644 (file)
@@ -1,52 +1,52 @@
-Table Tests\r
------------\r
-\r
-First Header  | Second Header\r
-------------- | -------------\r
-Content Cell  | Content Cell\r
-Content Cell  | Content Cell\r
-\r
-| First Header  | Second Header |\r
-| ------------- | ------------- |\r
-| Content Cell  | Content Cell  |\r
-| Content Cell  | Content Cell  |\r
-\r
-| Item      | Value |\r
-| :-------- | -----:|\r
-| Computer  | $1600 |\r
-| Phone     |   $12 |\r
-| Pipe      |    $1 |\r
-\r
-| Function name | Description                    |\r
-| ------------- | ------------------------------ |\r
-| `help()`      | Display the help window.       |\r
-| `destroy()`   | **Destroy your computer!**     |\r
-\r
-|foo|bar|baz|\r
-|:--|:-:|--:|\r
-|   | Q |   |\r
-|W  |   |  W|\r
-\r
-foo|bar|baz\r
----|---|---\r
-   | Q |\r
- W |   | W\r
-\r
-Three spaces in front of a table:\r
-\r
-   First Header | Second Header\r
-   ------------ | -------------\r
-   Content Cell | Content Cell\r
-   Content Cell | Content Cell\r
-\r
-   | First Header | Second Header |\r
-   | ------------ | ------------- |\r
-   | Content Cell | Content Cell  |\r
-   | Content Cell | Content Cell  |\r
-\r
-Four spaces is a code block:\r
-   \r
-    First Header | Second Header\r
-    ------------ | -------------\r
-    Content Cell | Content Cell\r
-    Content Cell | Content Cell\r
+Table Tests
+-----------
+
+First Header  | Second Header
+------------- | -------------
+Content Cell  | Content Cell
+Content Cell  | Content Cell
+
+| First Header  | Second Header |
+| ------------- | ------------- |
+| Content Cell  | Content Cell  |
+| Content Cell  | Content Cell  |
+
+| Item      | Value |
+| :-------- | -----:|
+| Computer  | $1600 |
+| Phone     |   $12 |
+| Pipe      |    $1 |
+
+| Function name | Description                    |
+| ------------- | ------------------------------ |
+| `help()`      | Display the help window.       |
+| `destroy()`   | **Destroy your computer!**     |
+
+|foo|bar|baz|
+|:--|:-:|--:|
+|   | Q |   |
+|W  |   |  W|
+
+foo|bar|baz
+---|---|---
+   | Q |
+ W |   | W
+
+Three spaces in front of a table:
+
+   First Header | Second Header
+   ------------ | -------------
+   Content Cell | Content Cell
+   Content Cell | Content Cell
+
+   | First Header | Second Header |
+   | ------------ | ------------- |
+   | Content Cell | Content Cell  |
+   | Content Cell | Content Cell  |
+
+Four spaces is a code block:
+   
+    First Header | Second Header
+    ------------ | -------------
+    Content Cell | Content Cell
+    Content Cell | Content Cell
index d8e550fad78649fddd6f14c5a23795c52e600ee7..1924389599e9cdf9bd94e0e2928ab8eef97ba326 100644 (file)
@@ -1,18 +1,18 @@
-<table>\r
-<thead>\r
-<tr>\r
-<th>First Header</th>\r
-<th>Second Header</th>\r
-</tr>\r
-</thead>\r
-<tbody>\r
-<tr>\r
-<td class="foo bar" title="Some title!">Content Cell</td>\r
-<td>Content Cell</td>\r
-</tr>\r
-<tr>\r
-<td>Content Cell</td>\r
-<td class="foo bar" title="Some title!">Content Cell</td>\r
-</tr>\r
-</tbody>\r
+<table>
+<thead>
+<tr>
+<th>First Header</th>
+<th>Second Header</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="foo bar" title="Some title!">Content Cell</td>
+<td>Content Cell</td>
+</tr>
+<tr>
+<td>Content Cell</td>
+<td class="foo bar" title="Some title!">Content Cell</td>
+</tr>
+</tbody>
 </table>
\ No newline at end of file
index 9aa29aaf1b640203288dc80e18902e02969f9d83..517eeeb254d86707afa0a4e4fccfc802f3cbf7aa 100644 (file)
@@ -1,4 +1,4 @@
-First Header                                           | Second Header\r
------------------------------------------------------- | -------------\r
-Content Cell{: class="foo bar" title="Some title!" }   | Content Cell\r
-Content Cell                                           | Content Cell{: class="foo bar" title="Some title!" }\r
+First Header                                           | Second Header
+------------------------------------------------------ | -------------
+Content Cell{: class="foo bar" title="Some title!" }   | Content Cell
+Content Cell                                           | Content Cell{: class="foo bar" title="Some title!" }
index 8806ce8814829e26459bc2f44be9d90de32efeb4..d956e2a1f0a43e6a6426f566b8fd11fdbcdc1984 100644 (file)
@@ -1,20 +1,36 @@
-[DEFAULT]\r
-extensions=extra\r
-\r
-[loose_def_list]\r
-extensions=def_list\r
-\r
-[simple_def-lists]\r
-extensions=def_list\r
-\r
-[abbr]\r
-extensions=abbr\r
-\r
-[footnotes]\r
-extensions=footnotes\r
-\r
-[tables]\r
-extensions=tables\r
-\r
-[tables_and_attr_list]\r
-extensions=tables,attr_list\r
+DEFAULT:
+    extensions:
+        - markdown.extensions.extra
+
+loose_def_list:
+    extensions:
+        - markdown.extensions.def_list
+
+simple_def-lists:
+    extensions:
+        - markdown.extensions.def_list
+
+abbr:
+    extensions:
+        - markdown.extensions.abbr
+
+footnotes:
+    extensions:
+        - markdown.extensions.footnotes
+
+tables:
+    extensions:
+        - markdown.extensions.tables
+
+tables_and_attr_list:
+    extensions:
+        - markdown.extensions.tables
+        - markdown.extensions.attr_list
+
+extra_config:
+    extensions:
+        - markdown.extensions.extra
+    extension_configs:
+        markdown.extensions.extra:
+            markdown.extensions.footnotes:
+                PLACE_MARKER: ~~~placemarker~~~
index 3af08193731dd66411ac46a0cff937f9f78cb4e1..7b86e79545c73a7914a1ce0c16b11417d962a4b7 100644 (file)
@@ -1,32 +1,32 @@
-<p>index 0000000..6e956a9</p>\r
-<pre><code>--- /dev/null\r
-+++ b/test/data/stripped_text/mike-30-lili\r
-@@ -0,0 +1,27 @@\r
-+Summary:\r
-+ drift_mod.py |    1 +\r
-+ 1 files changed, 1 insertions(+), 0 deletions(-)\r
-+\r
-+commit da4bfb04debdd994683740878d09988b2641513d\r
-+Author: Mike Dirolf &lt;mike@dirolf.com&gt;\r
-+Date:   Tue Jan 17 13:42:28 2012 -0500\r
-+\r
-+```\r
-+minor: just wanted to push something.\r
-+```\r
-+\r
-+diff --git a/drift_mod.py b/drift_mod.py\r
-+index 34dfba6..8a88a69 100644\r
-+\r
-+```\r
-+--- a/drift_mod.py\r
-++++ b/drift_mod.py\r
-+@@ -281,6 +281,7 @@ CONTEXT_DIFF_LINE_PATTERN = re.compile(r'^('\r
-+                                        '|\+ .*'\r
-+                                        '|- .*'\r
-+                                        ')$')\r
-++\r
-+ def wrap_context_diffs(message_text):\r
-+     return _wrap_diff(CONTEXT_DIFF_HEADER_PATTERN,\r
-+                       CONTEXT_DIFF_LINE_PATTERN,\r
-+```\r
+<p>index 0000000..6e956a9</p>
+<pre><code>--- /dev/null
++++ b/test/data/stripped_text/mike-30-lili
+@@ -0,0 +1,27 @@
++Summary:
++ drift_mod.py |    1 +
++ 1 files changed, 1 insertions(+), 0 deletions(-)
++
++commit da4bfb04debdd994683740878d09988b2641513d
++Author: Mike Dirolf &lt;mike@dirolf.com&gt;
++Date:   Tue Jan 17 13:42:28 2012 -0500
++
++```
++minor: just wanted to push something.
++```
++
++diff --git a/drift_mod.py b/drift_mod.py
++index 34dfba6..8a88a69 100644
++
++```
++--- a/drift_mod.py
+++++ b/drift_mod.py
++@@ -281,6 +281,7 @@ CONTEXT_DIFF_LINE_PATTERN = re.compile(r'^('
++                                        '|\+ .*'
++                                        '|- .*'
++                                        ')$')
+++
++ def wrap_context_diffs(message_text):
++     return _wrap_diff(CONTEXT_DIFF_HEADER_PATTERN,
++                       CONTEXT_DIFF_LINE_PATTERN,
++```
 </code></pre>
\ No newline at end of file
index d4a11f22ca96b109dba528ec33f214cd547583a0..73c033743ef5fa66a3a8c0011b6839c68c5692d1 100644 (file)
@@ -1,34 +1,34 @@
-index 0000000..6e956a9\r
-\r
-```\r
---- /dev/null\r
-+++ b/test/data/stripped_text/mike-30-lili\r
-@@ -0,0 +1,27 @@\r
-+Summary:\r
-+ drift_mod.py |    1 +\r
-+ 1 files changed, 1 insertions(+), 0 deletions(-)\r
-+\r
-+commit da4bfb04debdd994683740878d09988b2641513d\r
-+Author: Mike Dirolf <mike@dirolf.com>\r
-+Date:   Tue Jan 17 13:42:28 2012 -0500\r
-+\r
-+```\r
-+minor: just wanted to push something.\r
-+```\r
-+\r
-+diff --git a/drift_mod.py b/drift_mod.py\r
-+index 34dfba6..8a88a69 100644\r
-+\r
-+```\r
-+--- a/drift_mod.py\r
-++++ b/drift_mod.py\r
-+@@ -281,6 +281,7 @@ CONTEXT_DIFF_LINE_PATTERN = re.compile(r'^('\r
-+                                        '|\+ .*'\r
-+                                        '|- .*'\r
-+                                        ')$')\r
-++\r
-+ def wrap_context_diffs(message_text):\r
-+     return _wrap_diff(CONTEXT_DIFF_HEADER_PATTERN,\r
-+                       CONTEXT_DIFF_LINE_PATTERN,\r
-+```\r
-```\r
+index 0000000..6e956a9
+
+```
+--- /dev/null
++++ b/test/data/stripped_text/mike-30-lili
+@@ -0,0 +1,27 @@
++Summary:
++ drift_mod.py |    1 +
++ 1 files changed, 1 insertions(+), 0 deletions(-)
++
++commit da4bfb04debdd994683740878d09988b2641513d
++Author: Mike Dirolf <mike@dirolf.com>
++Date:   Tue Jan 17 13:42:28 2012 -0500
++
++```
++minor: just wanted to push something.
++```
++
++diff --git a/drift_mod.py b/drift_mod.py
++index 34dfba6..8a88a69 100644
++
++```
++--- a/drift_mod.py
+++++ b/drift_mod.py
++@@ -281,6 +281,7 @@ CONTEXT_DIFF_LINE_PATTERN = re.compile(r'^('
++                                        '|\+ .*'
++                                        '|- .*'
++                                        ')$')
+++
++ def wrap_context_diffs(message_text):
++     return _wrap_diff(CONTEXT_DIFF_HEADER_PATTERN,
++                       CONTEXT_DIFF_LINE_PATTERN,
++```
+```
index 8a55a2fa66999aa33c137dd07d890d7a722ff4b4..063303a15ca260ab6a990e1719cb238b0ce0fe1c 100644 (file)
@@ -1,41 +1,41 @@
-<p>index 0000000..6e956a9</p>\r
-<pre><code class="diff">--- /dev/null\r
-+++ b/test/data/stripped_text/mike-30-lili\r
-@@ -0,0 +1,27 @@\r
-+Summary:\r
-+ drift_mod.py |    1 +\r
-+ 1 files changed, 1 insertions(+), 0 deletions(-)\r
-+\r
-+commit da4bfb04debdd994683740878d09988b2641513d\r
-+Author: Mike Dirolf &lt;mike@dirolf.com&gt;\r
-+Date:   Tue Jan 17 13:42:28 2012 -0500\r
-+\r
-+```\r
-+minor: just wanted to push something.\r
-+```\r
-+\r
-+diff --git a/drift_mod.py b/drift_mod.py\r
-+index 34dfba6..8a88a69 100644\r
-+\r
-+```\r
-+--- a/drift_mod.py\r
-++++ b/drift_mod.py\r
-+@@ -281,6 +281,7 @@ CONTEXT_DIFF_LINE_PATTERN = re.compile(r'^('\r
-+                                        '|\+ .*'\r
-+                                        '|- .*'\r
-+                                        ')$')\r
-++\r
-+ def wrap_context_diffs(message_text):\r
-+     return _wrap_diff(CONTEXT_DIFF_HEADER_PATTERN,\r
-+                       CONTEXT_DIFF_LINE_PATTERN,\r
-+```\r
-</code></pre>\r
-\r
-<p>Test support for foo+bar lexer names.</p>\r
-<pre><code class="html+jinja">&lt;title&gt;{% block title %}{% endblock %}&lt;/title&gt;\r
-&lt;ul&gt;\r
-{% for user in users %}\r
-  &lt;li&gt;&lt;a href=&quot;{{ user.url }}&quot;&gt;{{ user.username }}&lt;/a&gt;&lt;/li&gt;\r
-{% endfor %}\r
-&lt;/ul&gt;\r
+<p>index 0000000..6e956a9</p>
+<pre><code class="diff">--- /dev/null
++++ b/test/data/stripped_text/mike-30-lili
+@@ -0,0 +1,27 @@
++Summary:
++ drift_mod.py |    1 +
++ 1 files changed, 1 insertions(+), 0 deletions(-)
++
++commit da4bfb04debdd994683740878d09988b2641513d
++Author: Mike Dirolf &lt;mike@dirolf.com&gt;
++Date:   Tue Jan 17 13:42:28 2012 -0500
++
++```
++minor: just wanted to push something.
++```
++
++diff --git a/drift_mod.py b/drift_mod.py
++index 34dfba6..8a88a69 100644
++
++```
++--- a/drift_mod.py
+++++ b/drift_mod.py
++@@ -281,6 +281,7 @@ CONTEXT_DIFF_LINE_PATTERN = re.compile(r'^('
++                                        '|\+ .*'
++                                        '|- .*'
++                                        ')$')
+++
++ def wrap_context_diffs(message_text):
++     return _wrap_diff(CONTEXT_DIFF_HEADER_PATTERN,
++                       CONTEXT_DIFF_LINE_PATTERN,
++```
+</code></pre>
+
+<p>Test support for foo+bar lexer names.</p>
+<pre><code class="html+jinja">&lt;title&gt;{% block title %}{% endblock %}&lt;/title&gt;
+&lt;ul&gt;
+{% for user in users %}
+  &lt;li&gt;&lt;a href=&quot;{{ user.url }}&quot;&gt;{{ user.username }}&lt;/a&gt;&lt;/li&gt;
+{% endfor %}
+&lt;/ul&gt;
 </code></pre>
\ No newline at end of file
index b3f55b6b378bb5d554dc0792d8c3ab3fe7c77f47..4f362b78c99ef67e127b7e2268c12a0b0077a6d1 100644 (file)
@@ -1,45 +1,45 @@
-index 0000000..6e956a9\r
-\r
-```diff\r
---- /dev/null\r
-+++ b/test/data/stripped_text/mike-30-lili\r
-@@ -0,0 +1,27 @@\r
-+Summary:\r
-+ drift_mod.py |    1 +\r
-+ 1 files changed, 1 insertions(+), 0 deletions(-)\r
-+\r
-+commit da4bfb04debdd994683740878d09988b2641513d\r
-+Author: Mike Dirolf <mike@dirolf.com>\r
-+Date:   Tue Jan 17 13:42:28 2012 -0500\r
-+\r
-+```\r
-+minor: just wanted to push something.\r
-+```\r
-+\r
-+diff --git a/drift_mod.py b/drift_mod.py\r
-+index 34dfba6..8a88a69 100644\r
-+\r
-+```\r
-+--- a/drift_mod.py\r
-++++ b/drift_mod.py\r
-+@@ -281,6 +281,7 @@ CONTEXT_DIFF_LINE_PATTERN = re.compile(r'^('\r
-+                                        '|\+ .*'\r
-+                                        '|- .*'\r
-+                                        ')$')\r
-++\r
-+ def wrap_context_diffs(message_text):\r
-+     return _wrap_diff(CONTEXT_DIFF_HEADER_PATTERN,\r
-+                       CONTEXT_DIFF_LINE_PATTERN,\r
-+```\r
-```\r
-\r
-Test support for foo+bar lexer names.\r
-\r
-```html+jinja\r
-<title>{% block title %}{% endblock %}</title>\r
-<ul>\r
-{% for user in users %}\r
-  <li><a href="{{ user.url }}">{{ user.username }}</a></li>\r
-{% endfor %}\r
-</ul>\r
-```\r
+index 0000000..6e956a9
+
+```diff
+--- /dev/null
++++ b/test/data/stripped_text/mike-30-lili
+@@ -0,0 +1,27 @@
++Summary:
++ drift_mod.py |    1 +
++ 1 files changed, 1 insertions(+), 0 deletions(-)
++
++commit da4bfb04debdd994683740878d09988b2641513d
++Author: Mike Dirolf <mike@dirolf.com>
++Date:   Tue Jan 17 13:42:28 2012 -0500
++
++```
++minor: just wanted to push something.
++```
++
++diff --git a/drift_mod.py b/drift_mod.py
++index 34dfba6..8a88a69 100644
++
++```
++--- a/drift_mod.py
+++++ b/drift_mod.py
++@@ -281,6 +281,7 @@ CONTEXT_DIFF_LINE_PATTERN = re.compile(r'^('
++                                        '|\+ .*'
++                                        '|- .*'
++                                        ')$')
+++
++ def wrap_context_diffs(message_text):
++     return _wrap_diff(CONTEXT_DIFF_HEADER_PATTERN,
++                       CONTEXT_DIFF_LINE_PATTERN,
++```
+```
+
+Test support for foo+bar lexer names.
+
+```html+jinja
+<title>{% block title %}{% endblock %}</title>
+<ul>
+{% for user in users %}
+  <li><a href="{{ user.url }}">{{ user.username }}</a></li>
+{% endfor %}
+</ul>
+```
index 22f645465f5c2b6b3ea7c9bc687980c2ab539e41..4b520b57c796cf878055a354c9257009d2537387 100644 (file)
@@ -1,2 +1,2 @@
-Foo\r
+Foo
 {: #bar}
\ No newline at end of file
index 492656450490f81c6932710368fd6e0e98d72ea1..b9fe007dbe41c92cf25940dab057e77e0d073489 100644 (file)
@@ -1,21 +1,21 @@
-<ol>\r
-<li>Ordered</li>\r
-<li>List</li>\r
-</ol>\r
-<ul>\r
-<li>Unordered</li>\r
-<li>List</li>\r
-</ul>\r
-<ol>\r
-<li>Ordered again</li>\r
-</ol>\r
-<p>Paragraph\r
-* not a list item</p>\r
-<ol>\r
-<li>More ordered\r
-* not a list item</li>\r
-</ol>\r
-<ul>\r
-<li>Unordered again\r
-1. not a list item</li>\r
+<ol>
+<li>Ordered</li>
+<li>List</li>
+</ol>
+<ul>
+<li>Unordered</li>
+<li>List</li>
+</ul>
+<ol>
+<li>Ordered again</li>
+</ol>
+<p>Paragraph
+* not a list item</p>
+<ol>
+<li>More ordered
+* not a list item</li>
+</ol>
+<ul>
+<li>Unordered again
+1. not a list item</li>
 </ul>
\ No newline at end of file
index ac900e21d5d9f8ed34e61a2be550ff7108754f9e..51981b3a34914226430e6ce10c67db8f0a3665af 100644 (file)
@@ -1,16 +1,16 @@
-1. Ordered\r
-2. List\r
-\r
-* Unordered\r
-* List\r
-\r
-1. Ordered again\r
-\r
-Paragraph\r
-* not a list item\r
-\r
-1. More ordered\r
-* not a list item\r
-\r
-* Unordered again\r
-1. not a list item\r
+1. Ordered
+2. List
+
+* Unordered
+* List
+
+1. Ordered again
+
+Paragraph
+* not a list item
+
+1. More ordered
+* not a list item
+
+* Unordered again
+1. not a list item
index bc1b217af99049d2a25347d33288521f4749dbff..630506028276b322900e5f5d6e07238b7d73c243 100644 (file)
@@ -1,21 +1,29 @@
-<p>1440&ndash;80&rsquo;s<br />\r
-1440&ndash;&lsquo;80s<br />\r
-1440&mdash;&lsquo;80s<br />\r
-1960s<br />\r
-1960&rsquo;s<br />\r
-one two &lsquo;60s<br />\r
-&lsquo;60s</p>\r
-<p>It&rsquo;s fun. What&rsquo;s fun?<br />\r
-&ldquo;Isn&rsquo;t this fun&rdquo;? &mdash; she said&hellip;<br />\r
-&ldquo;&lsquo;Quoted&rsquo; words in a larger quote.&rdquo;<br />\r
-&lsquo;Quoted &ldquo;words&rdquo; in a larger quote.&rsquo;<br />\r
-&ldquo;quoted&rdquo; text and <strong>bold &ldquo;quoted&rdquo; text</strong><br />\r
-&lsquo;quoted&rsquo; text and <strong>bold &lsquo;quoted&rsquo; text</strong><br />\r
-em-dashes (&mdash;) and ellipes (&hellip;)<br />\r
-&ldquo;<a href="http://example.com">Link</a>&rdquo; &mdash; she said.</p>\r
-<hr />\r
-<p>Escaped -- ndash<br />\r
-'Escaped' "quotes"<br />\r
-Escaped ellipsis...</p>\r
-<p>&lsquo;Escaped "quotes" in real ones&rsquo;<br />\r
-'&ldquo;Real&rdquo; quotes in escaped ones'</p>
\ No newline at end of file
+<p>&rsquo;.
+1440&ndash;80&rsquo;s<br />
+1440&ndash;&lsquo;80s<br />
+1440&mdash;&lsquo;80s<br />
+1960s<br />
+1960&rsquo;s<br />
+one two &lsquo;60s<br />
+&lsquo;60s</p>
+<p>It&rsquo;s fun. What&rsquo;s fun?<br />
+&ldquo;Isn&rsquo;t this fun&rdquo;? &mdash; she said&hellip;<br />
+&ldquo;&lsquo;Quoted&rsquo; words in a larger quote.&rdquo;<br />
+&lsquo;Quoted &ldquo;words&rdquo; in a larger quote.&rsquo;<br />
+&ldquo;quoted&rdquo; text and <strong>bold &ldquo;quoted&rdquo; text</strong><br />
+&lsquo;quoted&rsquo; text and <strong>bold &lsquo;quoted&rsquo; text</strong><br />
+em-dashes (&mdash;) and ellipes (&hellip;)<br />
+&ldquo;<a href="http://example.com">Link</a>&rdquo; &mdash; she said.</p>
+<p>&ldquo;Ellipsis within quotes&hellip;&rdquo;</p>
+<p>Кавычки-&laquo;ёлочки&raquo;<br />
+Anführungszeichen-&raquo;Chevrons&laquo;</p>
+<hr />
+<p>Escaped -- ndash<br />
+'Escaped' "quotes"<br />
+Escaped ellipsis...</p>
+<p>&lsquo;Escaped "quotes" in real ones&rsquo;<br />
+'&ldquo;Real&rdquo; quotes in escaped ones'</p>
+<p>Skip <code>"code" -- --- 'spans' ...</code>.</p>
+<pre><code>Also skip "code" 'blocks'
+foo -- bar --- baz ...
+</code></pre>
\ No newline at end of file
index 962c54e44632d84073c6fd98c49e1c6fdd3b043d..35fb219605c3809e62dbf3a74edc7bcca14e0715 100644 (file)
@@ -1,25 +1,36 @@
-1440--80's  \r
-1440--'80s  \r
-1440---'80s  \r
-1960s  \r
-1960's  \r
-one two '60s  \r
-'60s\r
-\r
-It's fun. What's fun?  \r
-"Isn't this fun"? --- she said...  \r
-"'Quoted' words in a larger quote."  \r
-'Quoted "words" in a larger quote.'  \r
-"quoted" text and **bold "quoted" text**  \r
-'quoted' text and **bold 'quoted' text**  \r
-em-dashes (---) and ellipes (...)  \r
-"[Link](http://example.com)" --- she said.\r
-\r
---- -- ---\r
-\r
-Escaped \-- ndash  \r
-\'Escaped\' \"quotes\"  \r
-Escaped ellipsis\...\r
-\r
-'Escaped \"quotes\" in real ones'  \r
-\'"Real" quotes in escaped ones\'
\ No newline at end of file
+'.
+1440--80's  
+1440--'80s  
+1440---'80s  
+1960s  
+1960's  
+one two '60s  
+'60s
+
+It's fun. What's fun?  
+"Isn't this fun"? --- she said...  
+"'Quoted' words in a larger quote."  
+'Quoted "words" in a larger quote.'  
+"quoted" text and **bold "quoted" text**  
+'quoted' text and **bold 'quoted' text**  
+em-dashes (---) and ellipes (...)  
+"[Link](http://example.com)" --- she said.
+
+"Ellipsis within quotes..."
+
+Кавычки-<<ёлочки>>  
+Anführungszeichen->>Chevrons<<
+
+--- -- ---
+
+Escaped \-- ndash  
+\'Escaped\' \"quotes\"  
+Escaped ellipsis\...
+
+'Escaped \"quotes\" in real ones'  
+\'"Real" quotes in escaped ones\'
+
+Skip `"code" -- --- 'spans' ...`.
+
+    Also skip "code" 'blocks'
+       foo -- bar --- baz ...
index 1e33458c65d415f98cc7355310e2025de64d1b0b..5605d3f392494a6851b35b5a0686d226218860ee 100644 (file)
@@ -1,43 +1,69 @@
-[attr_list]\r
-extensions=attr_list,def_list\r
-\r
-[codehilite]\r
-extensions=codehilite\r
-# This passes or not based on version of pygments.\r
-skip=1\r
-\r
-[toc]\r
-extensions=toc\r
-\r
-[toc_invalid]\r
-extensions=toc\r
-\r
-[toc_out_of_order]\r
-extensions=toc\r
-\r
-[toc_nested]\r
-extensions=toc(permalink=1)\r
-\r
-[toc_nested2]\r
-extensions=toc(permalink=[link])\r
-\r
-[wikilinks]\r
-extensions=wikilinks\r
-\r
-[fenced_code]\r
-extensions=fenced_code\r
-\r
-[github_flavored]\r
-extensions=fenced_code\r
-\r
-[sane_lists]\r
-extensions=sane_lists\r
-\r
-[nl2br_w_attr_list]\r
-extensions=nl2br,attr_list\r
-\r
-[admonition]\r
-extensions=admonition\r
-\r
-[smarty]\r
-extensions=smarty\r
+attr_list:
+    extensions:
+        - markdown.extensions.attr_list
+        - markdown.extensions.def_list
+        - markdown.extensions.smarty
+
+codehilite:
+    extensions:
+        - markdown.extensions.codehilite
+    # This passes or not based on version of pygments.
+    skip: True
+
+toc:
+    extensions:
+        - markdown.extensions.toc
+
+toc_invalid:
+    extensions:
+        - markdown.extensions.toc
+
+toc_out_of_order:
+    extensions:
+        - markdown.extensions.toc
+
+toc_nested:
+    extensions:
+        - markdown.extensions.toc
+    extension_configs:
+        markdown.extensions.toc:
+            permalink: True
+
+toc_nested2:
+    extensions:
+        - markdown.extensions.toc
+    extension_configs:
+        markdown.extensions.toc:
+            permalink: "[link]"
+
+wikilinks:
+    extensions:
+        - markdown.extensions.wikilinks
+
+fenced_code:
+    extensions:
+        - markdown.extensions.fenced_code
+
+github_flavored:
+     extensions:
+         - markdown.extensions.fenced_code
+
+sane_lists:
+    extensions:
+        - markdown.extensions.sane_lists
+
+nl2br_w_attr_list:
+     extensions:
+         - markdown.extensions.nl2br
+         - markdown.extensions.attr_list
+
+admonition:
+    extensions:
+        - markdown.extensions.admonition
+
+smarty:
+    extensions:
+        - markdown.extensions.smarty
+    extension_configs:
+        markdown.extensions.smarty:
+            smart_angled_quotes: True
index 02bd4b453fa167db3a32054858fedc789b964fe7..3559d454559823d7e68b4efb9468d7437301de8a 100644 (file)
-<div class="toc">\r
-<ul>\r
-<li><a href="#overview">Overview</a><ul>\r
-<li><a href="#philosophy">Philosophy</a></li>\r
-<li><a href="#inline-html">Inline HTML</a></li>\r
-<li><a href="#automatic-escaping-for-special-characters">Automatic Escaping for Special Characters</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#block-elements">Block Elements</a><ul>\r
-<li><a href="#paragraphs-and-line-breaks">Paragraphs and Line Breaks</a></li>\r
-<li><a href="#headers">Headers</a></li>\r
-<li><a href="#blockquotes">Blockquotes</a></li>\r
-<li><a href="#lists">Lists</a></li>\r
-<li><a href="#code-blocks">Code Blocks</a></li>\r
-<li><a href="#horizontal-rules">Horizontal Rules</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#span-elements">Span Elements</a><ul>\r
-<li><a href="#links">Links</a></li>\r
-<li><a href="#emphasis">Emphasis</a></li>\r
-<li><a href="#code">Code</a></li>\r
-<li><a href="#images">Images</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#miscellaneous">Miscellaneous</a><ul>\r
-<li><a href="#automatic-links">Automatic Links</a></li>\r
-<li><a href="#backslash-escapes">Backslash Escapes</a></li>\r
-</ul>\r
-</li>\r
-</ul>\r
-</div>\r
-<h1 id="overview">Overview</h1>\r
-<h2 id="philosophy">Philosophy</h2>\r
-<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>\r
-<p>Readability, however, is emphasized above all else. A Markdown-formatted\r
-document should be publishable as-is, as plain text, without looking\r
-like it's been marked up with tags or formatting instructions. While\r
-Markdown's syntax has been influenced by several existing text-to-HTML\r
-filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,\r
-<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of\r
-inspiration for Markdown's syntax is the format of plain text email.</p>\r
-<p>To this end, Markdown's syntax is comprised entirely of punctuation\r
-characters, which punctuation characters have been carefully chosen so\r
-as to look like what they mean. E.g., asterisks around a word actually\r
-look like *emphasis*. Markdown lists look like, well, lists. Even\r
-blockquotes look like quoted passages of text, assuming you've ever\r
-used email.</p>\r
-<h2 id="inline-html">Inline HTML</h2>\r
-<p>Markdown's syntax is intended for one purpose: to be used as a\r
-format for <em>writing</em> for the web.</p>\r
-<p>Markdown is not a replacement for HTML, or even close to it. Its\r
-syntax is very small, corresponding only to a very small subset of\r
-HTML tags. The idea is <em>not</em> to create a syntax that makes it easier\r
-to insert HTML tags. In my opinion, HTML tags are already easy to\r
-insert. The idea for Markdown is to make it easy to read, write, and\r
-edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>\r
-format. Thus, Markdown's formatting syntax only addresses issues that\r
-can be conveyed in plain text.</p>\r
-<p>For any markup that is not covered by Markdown's syntax, you simply\r
-use HTML itself. There's no need to preface it or delimit it to\r
-indicate that you're switching from Markdown to HTML; you just use\r
-the tags.</p>\r
-<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,\r
-<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding\r
-content by blank lines, and the start and end tags of the block should\r
-not be indented with tabs or spaces. Markdown is smart enough not\r
-to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>\r
-<p>For example, to add an HTML table to a Markdown article:</p>\r
-<pre><code>This is a regular paragraph.\r
-\r
-&lt;table&gt;\r
-    &lt;tr&gt;\r
-        &lt;td&gt;Foo&lt;/td&gt;\r
-    &lt;/tr&gt;\r
-&lt;/table&gt;\r
-\r
-This is another regular paragraph.\r
-</code></pre>\r
-<p>Note that Markdown formatting syntax is not processed within block-level\r
-HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an\r
-HTML block.</p>\r
-<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be\r
-used anywhere in a Markdown paragraph, list item, or header. If you\r
-want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
-you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's\r
-link or image syntax, go right ahead.</p>\r
-<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within\r
-span-level tags.</p>\r
-<h2 id="automatic-escaping-for-special-characters">Automatic Escaping for Special Characters</h2>\r
-<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>\r
-and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are\r
-used to denote HTML entities. If you want to use them as literal\r
-characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and\r
-<code>&amp;amp;</code>.</p>\r
-<p>Ampersands in particular are bedeviling for web writers. If you want to\r
-write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to\r
-escape ampersands within URLs. Thus, if you want to link to:</p>\r
-<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird\r
-</code></pre>\r
-<p>you need to encode the URL as:</p>\r
-<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird\r
-</code></pre>\r
-<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to\r
-forget, and is probably the single most common source of HTML validation\r
-errors in otherwise well-marked-up web sites.</p>\r
-<p>Markdown allows you to use these characters naturally, taking care of\r
-all the necessary escaping for you. If you use an ampersand as part of\r
-an HTML entity, it remains unchanged; otherwise it will be translated\r
-into <code>&amp;amp;</code>.</p>\r
-<p>So, if you want to include a copyright symbol in your article, you can write:</p>\r
-<pre><code>&amp;copy;\r
-</code></pre>\r
-<p>and Markdown will leave it alone. But if you write:</p>\r
-<pre><code>AT&amp;T\r
-</code></pre>\r
-<p>Markdown will translate it to:</p>\r
-<pre><code>AT&amp;amp;T\r
-</code></pre>\r
-<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use\r
-angle brackets as delimiters for HTML tags, Markdown will treat them as\r
-such. But if you write:</p>\r
-<pre><code>4 &lt; 5\r
-</code></pre>\r
-<p>Markdown will translate it to:</p>\r
-<pre><code>4 &amp;lt; 5\r
-</code></pre>\r
-<p>However, inside Markdown code spans and blocks, angle brackets and\r
-ampersands are <em>always</em> encoded automatically. This makes it easy to use\r
-Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
-terrible format for writing about HTML syntax, because every single <code>&lt;</code>\r
-and <code>&amp;</code> in your example code needs to be escaped.)</p>\r
-<hr />\r
-<h1 id="block-elements">Block Elements</h1>\r
-<h2 id="paragraphs-and-line-breaks">Paragraphs and Line Breaks</h2>\r
-<p>A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing but spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
-<p>The implication of the "one or more consecutive lines of text" rule is\r
-that Markdown supports "hard-wrapped" text paragraphs. This differs\r
-significantly from most other text-to-HTML formatters (including Movable\r
-Type's "Convert Line Breaks" option) which translate every line break\r
-character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>\r
-<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you\r
-end a line with two or more spaces, then type return.</p>\r
-<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic\r
-"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.\r
-Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>\r
-work best -- and look better -- when you format them with hard breaks.</p>\r
-<h2 id="headers">Headers</h2>\r
-<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>\r
-<p>Setext-style headers are "underlined" using equal signs (for first-level\r
-headers) and dashes (for second-level headers). For example:</p>\r
-<pre><code>This is an H1\r
-=============\r
-\r
-This is an H2\r
--------------\r
-</code></pre>\r
-<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>\r
-<p>Atx-style headers use 1-6 hash characters at the start of the line,\r
-corresponding to header levels 1-6. For example:</p>\r
-<pre><code># This is an H1\r
-\r
-## This is an H2\r
-\r
-###### This is an H6\r
-</code></pre>\r
-<p>Optionally, you may "close" atx-style headers. This is purely\r
-cosmetic -- you can use this if you think it looks better. The\r
-closing hashes don't even need to match the number of hashes\r
-used to open the header. (The number of opening hashes\r
-determines the header level.) :</p>\r
-<pre><code># This is an H1 #\r
-\r
-## This is an H2 ##\r
-\r
-### This is an H3 ######\r
-</code></pre>\r
-<h2 id="blockquotes">Blockquotes</h2>\r
-<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're\r
-familiar with quoting passages of text in an email message, then you\r
-know how to create a blockquote in Markdown. It looks best if you hard\r
-wrap the text and put a <code>&gt;</code> before every line:</p>\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-&gt; \r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-&gt; id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first\r
-line of a hard-wrapped paragraph:</p>\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-\r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
-adding additional levels of <code>&gt;</code>:</p>\r
-<pre><code>&gt; This is the first level of quoting.\r
-&gt;\r
-&gt; &gt; This is nested blockquote.\r
-&gt;\r
-&gt; Back to the first level.\r
-</code></pre>\r
-<p>Blockquotes can contain other Markdown elements, including headers, lists,\r
-and code blocks:</p>\r
-<pre><code>&gt; ## This is a header.\r
-&gt; \r
-&gt; 1.   This is the first list item.\r
-&gt; 2.   This is the second list item.\r
-&gt; \r
-&gt; Here's some example code:\r
-&gt; \r
-&gt;     return shell_exec("echo $input | $markdown_script");\r
-</code></pre>\r
-<p>Any decent text editor should make email-style quoting easy. For\r
-example, with BBEdit, you can make a selection and choose Increase\r
-Quote Level from the Text menu.</p>\r
-<h2 id="lists">Lists</h2>\r
-<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>\r
-<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably\r
--- as list markers:</p>\r
-<pre><code>*   Red\r
-*   Green\r
-*   Blue\r
-</code></pre>\r
-<p>is equivalent to:</p>\r
-<pre><code>+   Red\r
-+   Green\r
-+   Blue\r
-</code></pre>\r
-<p>and:</p>\r
-<pre><code>-   Red\r
--   Green\r
--   Blue\r
-</code></pre>\r
-<p>Ordered lists use numbers followed by periods:</p>\r
-<pre><code>1.  Bird\r
-2.  McHale\r
-3.  Parish\r
-</code></pre>\r
-<p>It's important to note that the actual numbers you use to mark the\r
-list have no effect on the HTML output Markdown produces. The HTML\r
-Markdown produces from the above list is:</p>\r
-<pre><code>&lt;ol&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;McHale&lt;/li&gt;\r
-&lt;li&gt;Parish&lt;/li&gt;\r
-&lt;/ol&gt;\r
-</code></pre>\r
-<p>If you instead wrote the list in Markdown like this:</p>\r
-<pre><code>1.  Bird\r
-1.  McHale\r
-1.  Parish\r
-</code></pre>\r
-<p>or even:</p>\r
-<pre><code>3. Bird\r
-1. McHale\r
-8. Parish\r
-</code></pre>\r
-<p>you'd get the exact same HTML output. The point is, if you want to,\r
-you can use ordinal numbers in your ordered Markdown lists, so that\r
-the numbers in your source match the numbers in your published HTML.\r
-But if you want to be lazy, you don't have to.</p>\r
-<p>If you do use lazy list numbering, however, you should still start the\r
-list with the number 1. At some point in the future, Markdown may support\r
-starting ordered lists at an arbitrary number.</p>\r
-<p>List markers typically start at the left margin, but may be indented by\r
-up to three spaces. List markers must be followed by one or more spaces\r
-or a tab.</p>\r
-<p>To make lists look nice, you can wrap items with hanging indents:</p>\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-    viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-    Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>But if you want to be lazy, you don't have to:</p>\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>If list items are separated by blank lines, Markdown will wrap the\r
-items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>\r
-<pre><code>*   Bird\r
-*   Magic\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;Magic&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-<p>But this:</p>\r
-<pre><code>*   Bird\r
-\r
-*   Magic\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;\r
-&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-<p>List items may consist of multiple paragraphs. Each subsequent\r
-paragraph in a list item must be intended by either 4 spaces\r
-or one tab:</p>\r
-<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
-    sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
-    mi posuere lectus.\r
-\r
-    Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
-    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
-    sit amet velit.\r
-\r
-2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-<p>It looks nice if you indent every line of the subsequent\r
-paragraphs, but here again, Markdown will allow you to be\r
-lazy:</p>\r
-<pre><code>*   This is a list item with two paragraphs.\r
-\r
-    This is the second paragraph in the list item. You're\r
-only required to indent the first line. Lorem ipsum dolor\r
-sit amet, consectetuer adipiscing elit.\r
-\r
-*   Another item in the same list.\r
-</code></pre>\r
-<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>\r
-delimiters need to be indented:</p>\r
-<pre><code>*   A list item with a blockquote:\r
-\r
-    &gt; This is a blockquote\r
-    &gt; inside a list item.\r
-</code></pre>\r
-<p>To put a code block within a list item, the code block needs\r
-to be indented <em>twice</em> -- 8 spaces or two tabs:</p>\r
-<pre><code>*   A list item with a code block:\r
-\r
-        &lt;code goes here&gt;\r
-</code></pre>\r
-<p>It's worth noting that it's possible to trigger an ordered list by\r
-accident, by writing something like this:</p>\r
-<pre><code>1986. What a great season.\r
-</code></pre>\r
-<p>In other words, a <em>number-period-space</em> sequence at the beginning of a\r
-line. To avoid this, you can backslash-escape the period:</p>\r
-<pre><code>1986\. What a great season.\r
-</code></pre>\r
-<h2 id="code-blocks">Code Blocks</h2>\r
-<p>Pre-formatted code blocks are used for writing about programming or\r
-markup source code. Rather than forming normal paragraphs, the lines\r
-of a code block are interpreted literally. Markdown wraps a code block\r
-in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>\r
-<p>To produce a code block in Markdown, simply indent every line of the\r
-block by at least 4 spaces or 1 tab. For example, given this input:</p>\r
-<pre><code>This is a normal paragraph:\r
-\r
-    This is a code block.\r
-</code></pre>\r
-<p>Markdown will generate:</p>\r
-<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;This is a code block.\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each\r
-line of the code block. For example, this:</p>\r
-<pre><code>Here is an example of AppleScript:\r
-\r
-    tell application "Foo"\r
-        beep\r
-    end tell\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;tell application "Foo"\r
-    beep\r
-end tell\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>A code block continues until it reaches a line that is not indented\r
-(or the end of the article).</p>\r
-<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)\r
-are automatically converted into HTML entities. This makes it very\r
-easy to include example HTML source code using Markdown -- just paste\r
-it and indent it, and Markdown will handle the hassle of encoding the\r
-ampersands and angle brackets. For example, this:</p>\r
-<pre><code>    &lt;div class="footer"&gt;\r
-        &amp;copy; 2004 Foo Corporation\r
-    &lt;/div&gt;\r
-</code></pre>\r
-<p>will turn into:</p>\r
-<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;\r
-    &amp;amp;copy; 2004 Foo Corporation\r
-&amp;lt;/div&amp;gt;\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-<p>Regular Markdown syntax is not processed within code blocks. E.g.,\r
-asterisks are just literal asterisks within a code block. This means\r
-it's also easy to use Markdown to write about Markdown's own syntax.</p>\r
-<h2 id="horizontal-rules">Horizontal Rules</h2>\r
-<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or\r
-more hyphens, asterisks, or underscores on a line by themselves. If you\r
-wish, you may use spaces between the hyphens or asterisks. Each of the\r
-following lines will produce a horizontal rule:</p>\r
-<pre><code>* * *\r
-\r
-***\r
-\r
-*****\r
-\r
-- - -\r
-\r
----------------------------------------\r
-\r
-_ _ _\r
-</code></pre>\r
-<hr />\r
-<h1 id="span-elements">Span Elements</h1>\r
-<h2 id="links">Links</h2>\r
-<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>\r
-<p>In both styles, the link text is delimited by [square brackets].</p>\r
-<p>To create an inline link, use a set of regular parentheses immediately\r
-after the link text's closing square bracket. Inside the parentheses,\r
-put the URL where you want the link to point, along with an <em>optional</em>\r
-title for the link, surrounded in quotes. For example:</p>\r
-<pre><code>This is [an example](http://example.com/ "Title") inline link.\r
-\r
-[This link](http://example.net/) has no title attribute.\r
-</code></pre>\r
-<p>Will produce:</p>\r
-<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;\r
-an example&lt;/a&gt; inline link.&lt;/p&gt;\r
-\r
-&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no\r
-title attribute.&lt;/p&gt;\r
-</code></pre>\r
-<p>If you're referring to a local resource on the same server, you can\r
-use relative paths:</p>\r
-<pre><code>See my [About](/about/) page for details.\r
-</code></pre>\r
-<p>Reference-style links use a second set of square brackets, inside\r
-which you place a label of your choosing to identify the link:</p>\r
-<pre><code>This is [an example][id] reference-style link.\r
-</code></pre>\r
-<p>You can optionally use a space to separate the sets of brackets:</p>\r
-<pre><code>This is [an example] [id] reference-style link.\r
-</code></pre>\r
-<p>Then, anywhere in the document, you define your link label like this,\r
-on a line by itself:</p>\r
-<pre><code>[id]: http://example.com/  "Optional Title Here"\r
-</code></pre>\r
-<p>That is:</p>\r
-<ul>\r
-<li>Square brackets containing the link identifier (optionally\r
-    indented from the left margin using up to three spaces);</li>\r
-<li>followed by a colon;</li>\r
-<li>followed by one or more spaces (or tabs);</li>\r
-<li>followed by the URL for the link;</li>\r
-<li>optionally followed by a title attribute for the link, enclosed\r
-    in double or single quotes.</li>\r
-</ul>\r
-<p>The link URL may, optionally, be surrounded by angle brackets:</p>\r
-<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"\r
-</code></pre>\r
-<p>You can put the title attribute on the next line and use extra spaces\r
-or tabs for padding, which tends to look better with longer URLs:</p>\r
-<pre><code>[id]: http://example.com/longish/path/to/resource/here\r
-    "Optional Title Here"\r
-</code></pre>\r
-<p>Link definitions are only used for creating links during Markdown\r
-processing, and are stripped from your document in the HTML output.</p>\r
-<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>\r
-<pre><code>[link text][a]\r
-[link text][A]\r
-</code></pre>\r
-<p>are equivalent.</p>\r
-<p>The <em>implicit link name</em> shortcut allows you to omit the name of the\r
-link, in which case the link text itself is used as the name.\r
-Just use an empty set of square brackets -- e.g., to link the word\r
-"Google" to the google.com web site, you could simply write:</p>\r
-<pre><code>[Google][]\r
-</code></pre>\r
-<p>And then define the link:</p>\r
-<pre><code>[Google]: http://google.com/\r
-</code></pre>\r
-<p>Because link names may contain spaces, this shortcut even works for\r
-multiple words in the link text:</p>\r
-<pre><code>Visit [Daring Fireball][] for more information.\r
-</code></pre>\r
-<p>And then define the link:</p>\r
-<pre><code>[Daring Fireball]: http://daringfireball.net/\r
-</code></pre>\r
-<p>Link definitions can be placed anywhere in your Markdown document. I\r
-tend to put them immediately after each paragraph in which they're\r
-used, but if you want, you can put them all at the end of your\r
-document, sort of like footnotes.</p>\r
-<p>Here's an example of reference links in action:</p>\r
-<pre><code>I get 10 times more traffic from [Google] [1] than from\r
-[Yahoo] [2] or [MSN] [3].\r
-\r
-  [1]: http://google.com/        "Google"\r
-  [2]: http://search.yahoo.com/  "Yahoo Search"\r
-  [3]: http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-<p>Using the implicit link name shortcut, you could instead write:</p>\r
-<pre><code>I get 10 times more traffic from [Google][] than from\r
-[Yahoo][] or [MSN][].\r
-\r
-  [google]: http://google.com/        "Google"\r
-  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
-  [msn]:    http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-<p>Both of the above examples will produce the following HTML output:</p>\r
-<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
-title="Google"&gt;Google&lt;/a&gt; than from\r
-&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;\r
-or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<p>For comparison, here is the same paragraph written using\r
-Markdown's inline link style:</p>\r
-<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")\r
-than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
-[MSN](http://search.msn.com/ "MSN Search").\r
-</code></pre>\r
-<p>The point of reference-style links is not that they're easier to\r
-write. The point is that with reference-style links, your document\r
-source is vastly more readable. Compare the above examples: using\r
-reference-style links, the paragraph itself is only 81 characters\r
-long; with inline-style links, it's 176 characters; and as raw HTML,\r
-it's 234 characters. In the raw HTML, there's more markup than there\r
-is text.</p>\r
-<p>With Markdown's reference-style links, a source document much more\r
-closely resembles the final output, as rendered in a browser. By\r
-allowing you to move the markup-related metadata out of the paragraph,\r
-you can add links without interrupting the narrative flow of your\r
-prose.</p>\r
-<h2 id="emphasis">Emphasis</h2>\r
-<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of\r
-emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an\r
-HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML\r
-<code>&lt;strong&gt;</code> tag. E.g., this input:</p>\r
-<pre><code>*single asterisks*\r
-\r
-_single underscores_\r
-\r
-**double asterisks**\r
-\r
-__double underscores__\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;\r
-\r
-&lt;em&gt;single underscores&lt;/em&gt;\r
-\r
-&lt;strong&gt;double asterisks&lt;/strong&gt;\r
-\r
-&lt;strong&gt;double underscores&lt;/strong&gt;\r
-</code></pre>\r
-<p>You can use whichever style you prefer; the lone restriction is that\r
-the same character must be used to open and close an emphasis span.</p>\r
-<p>Emphasis can be used in the middle of a word:</p>\r
-<pre><code>un*fucking*believable\r
-</code></pre>\r
-<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a\r
-literal asterisk or underscore.</p>\r
-<p>To produce a literal asterisk or underscore at a position where it\r
-would otherwise be used as an emphasis delimiter, you can backslash\r
-escape it:</p>\r
-<pre><code>\*this text is surrounded by literal asterisks\*\r
-</code></pre>\r
-<h2 id="code">Code</h2>\r
-<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).\r
-Unlike a pre-formatted code block, a code span indicates code within a\r
-normal paragraph. For example:</p>\r
-<pre><code>Use the `printf()` function.\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;\r
-</code></pre>\r
-<p>To include a literal backtick character within a code span, you can use\r
-multiple backticks as the opening and closing delimiters:</p>\r
-<pre><code>``There is a literal backtick (`) here.``\r
-</code></pre>\r
-<p>which will produce this:</p>\r
-<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-<p>The backtick delimiters surrounding a code span may include spaces --\r
-one after the opening, one before the closing. This allows you to place\r
-literal backtick characters at the beginning or end of a code span:</p>\r
-<pre><code>A single backtick in a code span: `` ` ``\r
-\r
-A backtick-delimited string in a code span: `` `foo` ``\r
-</code></pre>\r
-<p>will produce:</p>\r
-<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;\r
-\r
-&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-<p>With a code span, ampersands and angle brackets are encoded as HTML\r
-entities automatically, which makes it easy to include example HTML\r
-tags. Markdown will turn this:</p>\r
-<pre><code>Please don't use any `&lt;blink&gt;` tags.\r
-</code></pre>\r
-<p>into:</p>\r
-<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
-</code></pre>\r
-<p>You can write this:</p>\r
-<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.\r
-</code></pre>\r
-<p>to produce:</p>\r
-<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded\r
-equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<h2 id="images">Images</h2>\r
-<p>Admittedly, it's fairly difficult to devise a "natural" syntax for\r
-placing images into a plain text document format.</p>\r
-<p>Markdown uses an image syntax that is intended to resemble the syntax\r
-for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>\r
-<p>Inline image syntax looks like this:</p>\r
-<pre><code>![Alt text](/path/to/img.jpg)\r
-\r
-![Alt text](/path/to/img.jpg "Optional title")\r
-</code></pre>\r
-<p>That is:</p>\r
-<ul>\r
-<li>An exclamation mark: <code>!</code>;</li>\r
-<li>followed by a set of square brackets, containing the <code>alt</code>\r
-    attribute text for the image;</li>\r
-<li>followed by a set of parentheses, containing the URL or path to\r
-    the image, and an optional <code>title</code> attribute enclosed in double\r
-    or single quotes.</li>\r
-</ul>\r
-<p>Reference-style image syntax looks like this:</p>\r
-<pre><code>![Alt text][id]\r
-</code></pre>\r
-<p>Where "id" is the name of a defined image reference. Image references\r
-are defined using syntax identical to link references:</p>\r
-<pre><code>[id]: url/to/image  "Optional title attribute"\r
-</code></pre>\r
-<p>As of this writing, Markdown has no syntax for specifying the\r
-dimensions of an image; if this is important to you, you can simply\r
-use regular HTML <code>&lt;img&gt;</code> tags.</p>\r
-<hr />\r
-<h1 id="miscellaneous">Miscellaneous</h1>\r
-<h2 id="automatic-links">Automatic Links</h2>\r
-<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>\r
-<pre><code>&lt;http://example.com/&gt;\r
-</code></pre>\r
-<p>Markdown will turn this into:</p>\r
-<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;\r
-</code></pre>\r
-<p>Automatic links for email addresses work similarly, except that\r
-Markdown will also perform a bit of randomized decimal and hex\r
-entity-encoding to help obscure your address from address-harvesting\r
-spambots. For example, Markdown will turn this:</p>\r
-<pre><code>&lt;address@example.com&gt;\r
-</code></pre>\r
-<p>into something like this:</p>\r
-<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;\r
-&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;\r
-&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;\r
-&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;\r
-</code></pre>\r
-<p>which will render in a browser as a clickable link to "address@example.com".</p>\r
-<p>(This sort of entity-encoding trick will indeed fool many, if not\r
-most, address-harvesting bots, but it definitely won't fool all of\r
-them. It's better than nothing, but an address published in this way\r
-will probably eventually start receiving spam.)</p>\r
-<h2 id="backslash-escapes">Backslash Escapes</h2>\r
-<p>Markdown allows you to use backslash escapes to generate literal\r
-characters which would otherwise have special meaning in Markdown's\r
-formatting syntax. For example, if you wanted to surround a word with\r
-literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes\r
-before the asterisks, like this:</p>\r
-<pre><code>\*literal asterisks\*\r
-</code></pre>\r
-<p>Markdown provides backslash escapes for the following characters:</p>\r
-<pre><code>\   backslash\r
-`   backtick\r
-*   asterisk\r
-_   underscore\r
-{}  curly braces\r
-[]  square brackets\r
-()  parentheses\r
-#   hash mark\r
-+   plus sign\r
--   minus sign (hyphen)\r
-.   dot\r
-!   exclamation mark\r
+<div class="toc">
+<ul>
+<li><a href="#overview">Overview</a><ul>
+<li><a href="#philosophy">Philosophy</a></li>
+<li><a href="#inline-html">Inline HTML</a></li>
+<li><a href="#automatic-escaping-for-special-characters">Automatic Escaping for Special Characters</a></li>
+</ul>
+</li>
+<li><a href="#block-elements">Block Elements</a><ul>
+<li><a href="#paragraphs-and-line-breaks">Paragraphs and Line Breaks</a></li>
+<li><a href="#headers">Headers</a></li>
+<li><a href="#blockquotes">Blockquotes</a></li>
+<li><a href="#lists">Lists</a></li>
+<li><a href="#code-blocks">Code Blocks</a></li>
+<li><a href="#horizontal-rules">Horizontal Rules</a></li>
+</ul>
+</li>
+<li><a href="#span-elements">Span Elements</a><ul>
+<li><a href="#links">Links</a></li>
+<li><a href="#emphasis">Emphasis</a></li>
+<li><a href="#code">Code</a></li>
+<li><a href="#images">Images</a></li>
+</ul>
+</li>
+<li><a href="#miscellaneous">Miscellaneous</a><ul>
+<li><a href="#automatic-links">Automatic Links</a></li>
+<li><a href="#backslash-escapes">Backslash Escapes</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<h1 id="overview">Overview</h1>
+<h2 id="philosophy">Philosophy</h2>
+<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>
+<p>Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
+<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.</p>
+<p>To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like *emphasis*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.</p>
+<h2 id="inline-html">Inline HTML</h2>
+<p>Markdown's syntax is intended for one purpose: to be used as a
+format for <em>writing</em> for the web.</p>
+<p>Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is <em>not</em> to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.</p>
+<p>For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.</p>
+<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,
+<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>
+<p>For example, to add an HTML table to a Markdown article:</p>
+<pre><code>This is a regular paragraph.
+
+&lt;table&gt;
+    &lt;tr&gt;
+        &lt;td&gt;Foo&lt;/td&gt;
+    &lt;/tr&gt;
+&lt;/table&gt;
+
+This is another regular paragraph.
+</code></pre>
+<p>Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an
+HTML block.</p>
+<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's
+link or image syntax, go right ahead.</p>
+<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within
+span-level tags.</p>
+<h2 id="automatic-escaping-for-special-characters">Automatic Escaping for Special Characters</h2>
+<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>
+and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and
+<code>&amp;amp;</code>.</p>
+<p>Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:</p>
+<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird
+</code></pre>
+<p>you need to encode the URL as:</p>
+<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird
+</code></pre>
+<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.</p>
+<p>Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into <code>&amp;amp;</code>.</p>
+<p>So, if you want to include a copyright symbol in your article, you can write:</p>
+<pre><code>&amp;copy;
+</code></pre>
+<p>and Markdown will leave it alone. But if you write:</p>
+<pre><code>AT&amp;T
+</code></pre>
+<p>Markdown will translate it to:</p>
+<pre><code>AT&amp;amp;T
+</code></pre>
+<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:</p>
+<pre><code>4 &lt; 5
+</code></pre>
+<p>Markdown will translate it to:</p>
+<pre><code>4 &amp;lt; 5
+</code></pre>
+<p>However, inside Markdown code spans and blocks, angle brackets and
+ampersands are <em>always</em> encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single <code>&lt;</code>
+and <code>&amp;</code> in your example code needs to be escaped.)</p>
+<hr />
+<h1 id="block-elements">Block Elements</h1>
+<h2 id="paragraphs-and-line-breaks">Paragraphs and Line Breaks</h2>
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+<p>The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>
+<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you
+end a line with two or more spaces, then type return.</p>
+<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic
+"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.
+Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>
+work best -- and look better -- when you format them with hard breaks.</p>
+<h2 id="headers">Headers</h2>
+<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
+<p>Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:</p>
+<pre><code>This is an H1
+=============
+
+This is an H2
+-------------
+</code></pre>
+<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>
+<p>Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:</p>
+<pre><code># This is an H1
+
+## This is an H2
+
+###### This is an H6
+</code></pre>
+<p>Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :</p>
+<pre><code># This is an H1 #
+
+## This is an H2 ##
+
+### This is an H3 ######
+</code></pre>
+<h2 id="blockquotes">Blockquotes</h2>
+<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a <code>&gt;</code> before every line:</p>
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+&gt; 
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+&gt; id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first
+line of a hard-wrapped paragraph:</p>
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of <code>&gt;</code>:</p>
+<pre><code>&gt; This is the first level of quoting.
+&gt;
+&gt; &gt; This is nested blockquote.
+&gt;
+&gt; Back to the first level.
+</code></pre>
+<p>Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:</p>
+<pre><code>&gt; ## This is a header.
+&gt; 
+&gt; 1.   This is the first list item.
+&gt; 2.   This is the second list item.
+&gt; 
+&gt; Here's some example code:
+&gt; 
+&gt;     return shell_exec("echo $input | $markdown_script");
+</code></pre>
+<p>Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.</p>
+<h2 id="lists">Lists</h2>
+<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>
+<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:</p>
+<pre><code>*   Red
+*   Green
+*   Blue
+</code></pre>
+<p>is equivalent to:</p>
+<pre><code>+   Red
++   Green
++   Blue
+</code></pre>
+<p>and:</p>
+<pre><code>-   Red
+-   Green
+-   Blue
+</code></pre>
+<p>Ordered lists use numbers followed by periods:</p>
+<pre><code>1.  Bird
+2.  McHale
+3.  Parish
+</code></pre>
+<p>It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:</p>
+<pre><code>&lt;ol&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;McHale&lt;/li&gt;
+&lt;li&gt;Parish&lt;/li&gt;
+&lt;/ol&gt;
+</code></pre>
+<p>If you instead wrote the list in Markdown like this:</p>
+<pre><code>1.  Bird
+1.  McHale
+1.  Parish
+</code></pre>
+<p>or even:</p>
+<pre><code>3. Bird
+1. McHale
+8. Parish
+</code></pre>
+<p>you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.</p>
+<p>If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.</p>
+<p>List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.</p>
+<p>To make lists look nice, you can wrap items with hanging indents:</p>
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>But if you want to be lazy, you don't have to:</p>
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>If list items are separated by blank lines, Markdown will wrap the
+items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>
+<pre><code>*   Bird
+*   Magic
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;ul&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;Magic&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+<p>But this:</p>
+<pre><code>*   Bird
+
+*   Magic
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;ul&gt;
+&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;
+&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+<p>List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:</p>
+<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+    mi posuere lectus.
+
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+    sit amet velit.
+
+2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+<p>It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:</p>
+<pre><code>*   This is a list item with two paragraphs.
+
+    This is the second paragraph in the list item. You're
+only required to indent the first line. Lorem ipsum dolor
+sit amet, consectetuer adipiscing elit.
+
+*   Another item in the same list.
+</code></pre>
+<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>
+delimiters need to be indented:</p>
+<pre><code>*   A list item with a blockquote:
+
+    &gt; This is a blockquote
+    &gt; inside a list item.
+</code></pre>
+<p>To put a code block within a list item, the code block needs
+to be indented <em>twice</em> -- 8 spaces or two tabs:</p>
+<pre><code>*   A list item with a code block:
+
+        &lt;code goes here&gt;
+</code></pre>
+<p>It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:</p>
+<pre><code>1986. What a great season.
+</code></pre>
+<p>In other words, a <em>number-period-space</em> sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:</p>
+<pre><code>1986\. What a great season.
+</code></pre>
+<h2 id="code-blocks">Code Blocks</h2>
+<p>Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>
+<p>To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:</p>
+<pre><code>This is a normal paragraph:
+
+    This is a code block.
+</code></pre>
+<p>Markdown will generate:</p>
+<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;This is a code block.
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:</p>
+<pre><code>Here is an example of AppleScript:
+
+    tell application "Foo"
+        beep
+    end tell
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;tell application "Foo"
+    beep
+end tell
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>A code block continues until it reaches a line that is not indented
+(or the end of the article).</p>
+<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:</p>
+<pre><code>    &lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+</code></pre>
+<p>will turn into:</p>
+<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;
+    &amp;amp;copy; 2004 Foo Corporation
+&amp;lt;/div&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+<p>Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.</p>
+<h2 id="horizontal-rules">Horizontal Rules</h2>
+<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:</p>
+<pre><code>* * *
+
+***
+
+*****
+
+- - -
+
+---------------------------------------
+
+_ _ _
+</code></pre>
+<hr />
+<h1 id="span-elements">Span Elements</h1>
+<h2 id="links">Links</h2>
+<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>
+<p>In both styles, the link text is delimited by [square brackets].</p>
+<p>To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an <em>optional</em>
+title for the link, surrounded in quotes. For example:</p>
+<pre><code>This is [an example](http://example.com/ "Title") inline link.
+
+[This link](http://example.net/) has no title attribute.
+</code></pre>
+<p>Will produce:</p>
+<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;
+an example&lt;/a&gt; inline link.&lt;/p&gt;
+
+&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no
+title attribute.&lt;/p&gt;
+</code></pre>
+<p>If you're referring to a local resource on the same server, you can
+use relative paths:</p>
+<pre><code>See my [About](/about/) page for details.
+</code></pre>
+<p>Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:</p>
+<pre><code>This is [an example][id] reference-style link.
+</code></pre>
+<p>You can optionally use a space to separate the sets of brackets:</p>
+<pre><code>This is [an example] [id] reference-style link.
+</code></pre>
+<p>Then, anywhere in the document, you define your link label like this,
+on a line by itself:</p>
+<pre><code>[id]: http://example.com/  "Optional Title Here"
+</code></pre>
+<p>That is:</p>
+<ul>
+<li>Square brackets containing the link identifier (optionally
+    indented from the left margin using up to three spaces);</li>
+<li>followed by a colon;</li>
+<li>followed by one or more spaces (or tabs);</li>
+<li>followed by the URL for the link;</li>
+<li>optionally followed by a title attribute for the link, enclosed
+    in double or single quotes.</li>
+</ul>
+<p>The link URL may, optionally, be surrounded by angle brackets:</p>
+<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"
+</code></pre>
+<p>You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:</p>
+<pre><code>[id]: http://example.com/longish/path/to/resource/here
+    "Optional Title Here"
+</code></pre>
+<p>Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.</p>
+<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>
+<pre><code>[link text][a]
+[link text][A]
+</code></pre>
+<p>are equivalent.</p>
+<p>The <em>implicit link name</em> shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:</p>
+<pre><code>[Google][]
+</code></pre>
+<p>And then define the link:</p>
+<pre><code>[Google]: http://google.com/
+</code></pre>
+<p>Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:</p>
+<pre><code>Visit [Daring Fireball][] for more information.
+</code></pre>
+<p>And then define the link:</p>
+<pre><code>[Daring Fireball]: http://daringfireball.net/
+</code></pre>
+<p>Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.</p>
+<p>Here's an example of reference links in action:</p>
+<pre><code>I get 10 times more traffic from [Google] [1] than from
+[Yahoo] [2] or [MSN] [3].
+
+  [1]: http://google.com/        "Google"
+  [2]: http://search.yahoo.com/  "Yahoo Search"
+  [3]: http://search.msn.com/    "MSN Search"
+</code></pre>
+<p>Using the implicit link name shortcut, you could instead write:</p>
+<pre><code>I get 10 times more traffic from [Google][] than from
+[Yahoo][] or [MSN][].
+
+  [google]: http://google.com/        "Google"
+  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+  [msn]:    http://search.msn.com/    "MSN Search"
+</code></pre>
+<p>Both of the above examples will produce the following HTML output:</p>
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
+title="Google"&gt;Google&lt;/a&gt; than from
+&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;
+or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+<p>For comparison, here is the same paragraph written using
+Markdown's inline link style:</p>
+<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")
+than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+[MSN](http://search.msn.com/ "MSN Search").
+</code></pre>
+<p>The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.</p>
+<p>With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.</p>
+<h2 id="emphasis">Emphasis</h2>
+<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of
+emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an
+HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML
+<code>&lt;strong&gt;</code> tag. E.g., this input:</p>
+<pre><code>*single asterisks*
+
+_single underscores_
+
+**double asterisks**
+
+__double underscores__
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;
+
+&lt;em&gt;single underscores&lt;/em&gt;
+
+&lt;strong&gt;double asterisks&lt;/strong&gt;
+
+&lt;strong&gt;double underscores&lt;/strong&gt;
+</code></pre>
+<p>You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.</p>
+<p>Emphasis can be used in the middle of a word:</p>
+<pre><code>un*fucking*believable
+</code></pre>
+<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a
+literal asterisk or underscore.</p>
+<p>To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:</p>
+<pre><code>\*this text is surrounded by literal asterisks\*
+</code></pre>
+<h2 id="code">Code</h2>
+<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:</p>
+<pre><code>Use the `printf()` function.
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;
+</code></pre>
+<p>To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:</p>
+<pre><code>``There is a literal backtick (`) here.``
+</code></pre>
+<p>which will produce this:</p>
+<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+<p>The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:</p>
+<pre><code>A single backtick in a code span: `` ` ``
+
+A backtick-delimited string in a code span: `` `foo` ``
+</code></pre>
+<p>will produce:</p>
+<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;
+
+&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+<p>With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:</p>
+<pre><code>Please don't use any `&lt;blink&gt;` tags.
+</code></pre>
+<p>into:</p>
+<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
+</code></pre>
+<p>You can write this:</p>
+<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.
+</code></pre>
+<p>to produce:</p>
+<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded
+equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;
+</code></pre>
+<h2 id="images">Images</h2>
+<p>Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.</p>
+<p>Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
+<p>Inline image syntax looks like this:</p>
+<pre><code>![Alt text](/path/to/img.jpg)
+
+![Alt text](/path/to/img.jpg "Optional title")
+</code></pre>
+<p>That is:</p>
+<ul>
+<li>An exclamation mark: <code>!</code>;</li>
+<li>followed by a set of square brackets, containing the <code>alt</code>
+    attribute text for the image;</li>
+<li>followed by a set of parentheses, containing the URL or path to
+    the image, and an optional <code>title</code> attribute enclosed in double
+    or single quotes.</li>
+</ul>
+<p>Reference-style image syntax looks like this:</p>
+<pre><code>![Alt text][id]
+</code></pre>
+<p>Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:</p>
+<pre><code>[id]: url/to/image  "Optional title attribute"
+</code></pre>
+<p>As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML <code>&lt;img&gt;</code> tags.</p>
+<hr />
+<h1 id="miscellaneous">Miscellaneous</h1>
+<h2 id="automatic-links">Automatic Links</h2>
+<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>
+<pre><code>&lt;http://example.com/&gt;
+</code></pre>
+<p>Markdown will turn this into:</p>
+<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;
+</code></pre>
+<p>Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:</p>
+<pre><code>&lt;address@example.com&gt;
+</code></pre>
+<p>into something like this:</p>
+<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;
+&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;
+&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;
+&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;
+</code></pre>
+<p>which will render in a browser as a clickable link to "address@example.com".</p>
+<p>(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)</p>
+<h2 id="backslash-escapes">Backslash Escapes</h2>
+<p>Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes
+before the asterisks, like this:</p>
+<pre><code>\*literal asterisks\*
+</code></pre>
+<p>Markdown provides backslash escapes for the following characters:</p>
+<pre><code>\   backslash
+`   backtick
+*   asterisk
+_   underscore
+{}  curly braces
+[]  square brackets
+()  parentheses
+#   hash mark
++   plus sign
+-   minus sign (hyphen)
+.   dot
+!   exclamation mark
 </code></pre>
\ No newline at end of file
index 65a876677b39eb3ec202bcef1e3af74a81089ace..f2972005076efc01d0e9c1761471a483a96f14dc 100644 (file)
-\r
-[TOC]\r
-\r
-# Overview\r
-\r
-## Philosophy\r
-\r
-Markdown is intended to be as easy-to-read and easy-to-write as is feasible.\r
-\r
-Readability, however, is emphasized above all else. A Markdown-formatted\r
-document should be publishable as-is, as plain text, without looking\r
-like it's been marked up with tags or formatting instructions. While\r
-Markdown's syntax has been influenced by several existing text-to-HTML\r
-filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],\r
-[Grutatext] [5], and [EtText] [6] -- the single biggest source of\r
-inspiration for Markdown's syntax is the format of plain text email.\r
-\r
-  [1]: http://docutils.sourceforge.net/mirror/setext.html\r
-  [2]: http://www.aaronsw.com/2002/atx/\r
-  [3]: http://textism.com/tools/textile/\r
-  [4]: http://docutils.sourceforge.net/rst.html\r
-  [5]: http://www.triptico.com/software/grutatxt.html\r
-  [6]: http://ettext.taint.org/doc/\r
-\r
-To this end, Markdown's syntax is comprised entirely of punctuation\r
-characters, which punctuation characters have been carefully chosen so\r
-as to look like what they mean. E.g., asterisks around a word actually\r
-look like \*emphasis\*. Markdown lists look like, well, lists. Even\r
-blockquotes look like quoted passages of text, assuming you've ever\r
-used email.\r
-\r
-\r
-\r
-## Inline HTML\r
-\r
-Markdown's syntax is intended for one purpose: to be used as a\r
-format for *writing* for the web.\r
-\r
-Markdown is not a replacement for HTML, or even close to it. Its\r
-syntax is very small, corresponding only to a very small subset of\r
-HTML tags. The idea is *not* to create a syntax that makes it easier\r
-to insert HTML tags. In my opinion, HTML tags are already easy to\r
-insert. The idea for Markdown is to make it easy to read, write, and\r
-edit prose. HTML is a *publishing* format; Markdown is a *writing*\r
-format. Thus, Markdown's formatting syntax only addresses issues that\r
-can be conveyed in plain text.\r
-\r
-For any markup that is not covered by Markdown's syntax, you simply\r
-use HTML itself. There's no need to preface it or delimit it to\r
-indicate that you're switching from Markdown to HTML; you just use\r
-the tags.\r
-\r
-The only restrictions are that block-level HTML elements -- e.g. `<div>`,\r
-`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding\r
-content by blank lines, and the start and end tags of the block should\r
-not be indented with tabs or spaces. Markdown is smart enough not\r
-to add extra (unwanted) `<p>` tags around HTML block-level tags.\r
-\r
-For example, to add an HTML table to a Markdown article:\r
-\r
-    This is a regular paragraph.\r
-\r
-    <table>\r
-        <tr>\r
-            <td>Foo</td>\r
-        </tr>\r
-    </table>\r
-\r
-    This is another regular paragraph.\r
-\r
-Note that Markdown formatting syntax is not processed within block-level\r
-HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an\r
-HTML block.\r
-\r
-Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be\r
-used anywhere in a Markdown paragraph, list item, or header. If you\r
-want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
-you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's\r
-link or image syntax, go right ahead.\r
-\r
-Unlike block-level HTML tags, Markdown syntax *is* processed within\r
-span-level tags.\r
-\r
-\r
-## Automatic Escaping for Special Characters\r
-\r
-In HTML, there are two characters that demand special treatment: `<`\r
-and `&`. Left angle brackets are used to start tags; ampersands are\r
-used to denote HTML entities. If you want to use them as literal\r
-characters, you must escape them as entities, e.g. `&lt;`, and\r
-`&amp;`.\r
-\r
-Ampersands in particular are bedeviling for web writers. If you want to\r
-write about 'AT&T', you need to write '`AT&amp;T`'. You even need to\r
-escape ampersands within URLs. Thus, if you want to link to:\r
-\r
-    http://images.google.com/images?num=30&q=larry+bird\r
-\r
-you need to encode the URL as:\r
-\r
-    http://images.google.com/images?num=30&amp;q=larry+bird\r
-\r
-in your anchor tag `href` attribute. Needless to say, this is easy to\r
-forget, and is probably the single most common source of HTML validation\r
-errors in otherwise well-marked-up web sites.\r
-\r
-Markdown allows you to use these characters naturally, taking care of\r
-all the necessary escaping for you. If you use an ampersand as part of\r
-an HTML entity, it remains unchanged; otherwise it will be translated\r
-into `&amp;`.\r
-\r
-So, if you want to include a copyright symbol in your article, you can write:\r
-\r
-    &copy;\r
-\r
-and Markdown will leave it alone. But if you write:\r
-\r
-    AT&T\r
-\r
-Markdown will translate it to:\r
-\r
-    AT&amp;T\r
-\r
-Similarly, because Markdown supports [inline HTML](#html), if you use\r
-angle brackets as delimiters for HTML tags, Markdown will treat them as\r
-such. But if you write:\r
-\r
-    4 < 5\r
-\r
-Markdown will translate it to:\r
-\r
-    4 &lt; 5\r
-\r
-However, inside Markdown code spans and blocks, angle brackets and\r
-ampersands are *always* encoded automatically. This makes it easy to use\r
-Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
-terrible format for writing about HTML syntax, because every single `<`\r
-and `&` in your example code needs to be escaped.)\r
-\r
-\r
-* * *\r
-\r
-\r
-# Block Elements\r
-\r
-\r
-## Paragraphs and Line Breaks\r
-\r
-A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing but spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.\r
-\r
-The implication of the "one or more consecutive lines of text" rule is\r
-that Markdown supports "hard-wrapped" text paragraphs. This differs\r
-significantly from most other text-to-HTML formatters (including Movable\r
-Type's "Convert Line Breaks" option) which translate every line break\r
-character in a paragraph into a `<br />` tag.\r
-\r
-When you *do* want to insert a `<br />` break tag using Markdown, you\r
-end a line with two or more spaces, then type return.\r
-\r
-Yes, this takes a tad more effort to create a `<br />`, but a simplistic\r
-"every line break is a `<br />`" rule wouldn't work for Markdown.\r
-Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]\r
-work best -- and look better -- when you format them with hard breaks.\r
-\r
-  [bq]: #blockquote\r
-  [l]:  #list\r
-\r
-\r
-\r
-## Headers\r
-\r
-Markdown supports two styles of headers, [Setext] [1] and [atx] [2].\r
-\r
-Setext-style headers are "underlined" using equal signs (for first-level\r
-headers) and dashes (for second-level headers). For example:\r
-\r
-    This is an H1\r
-    =============\r
-\r
-    This is an H2\r
-    -------------\r
-\r
-Any number of underlining `=`'s or `-`'s will work.\r
-\r
-Atx-style headers use 1-6 hash characters at the start of the line,\r
-corresponding to header levels 1-6. For example:\r
-\r
-    # This is an H1\r
-\r
-    ## This is an H2\r
-\r
-    ###### This is an H6\r
-\r
-Optionally, you may "close" atx-style headers. This is purely\r
-cosmetic -- you can use this if you think it looks better. The\r
-closing hashes don't even need to match the number of hashes\r
-used to open the header. (The number of opening hashes\r
-determines the header level.) :\r
-\r
-    # This is an H1 #\r
-\r
-    ## This is an H2 ##\r
-\r
-    ### This is an H3 ######\r
-\r
-\r
-## Blockquotes\r
-\r
-Markdown uses email-style `>` characters for blockquoting. If you're\r
-familiar with quoting passages of text in an email message, then you\r
-know how to create a blockquote in Markdown. It looks best if you hard\r
-wrap the text and put a `>` before every line:\r
-\r
-    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-    > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-    > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-    > \r
-    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-    > id sem consectetuer libero luctus adipiscing.\r
-\r
-Markdown allows you to be lazy and only put the `>` before the first\r
-line of a hard-wrapped paragraph:\r
-\r
-    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-\r
-    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-    id sem consectetuer libero luctus adipiscing.\r
-\r
-Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
-adding additional levels of `>`:\r
-\r
-    > This is the first level of quoting.\r
-    >\r
-    > > This is nested blockquote.\r
-    >\r
-    > Back to the first level.\r
-\r
-Blockquotes can contain other Markdown elements, including headers, lists,\r
-and code blocks:\r
-\r
-       > ## This is a header.\r
-       > \r
-       > 1.   This is the first list item.\r
-       > 2.   This is the second list item.\r
-       > \r
-       > Here's some example code:\r
-       > \r
-       >     return shell_exec("echo $input | $markdown_script");\r
-\r
-Any decent text editor should make email-style quoting easy. For\r
-example, with BBEdit, you can make a selection and choose Increase\r
-Quote Level from the Text menu.\r
-\r
-\r
-## Lists\r
-\r
-Markdown supports ordered (numbered) and unordered (bulleted) lists.\r
-\r
-Unordered lists use asterisks, pluses, and hyphens -- interchangably\r
--- as list markers:\r
-\r
-    *   Red\r
-    *   Green\r
-    *   Blue\r
-\r
-is equivalent to:\r
-\r
-    +   Red\r
-    +   Green\r
-    +   Blue\r
-\r
-and:\r
-\r
-    -   Red\r
-    -   Green\r
-    -   Blue\r
-\r
-Ordered lists use numbers followed by periods:\r
-\r
-    1.  Bird\r
-    2.  McHale\r
-    3.  Parish\r
-\r
-It's important to note that the actual numbers you use to mark the\r
-list have no effect on the HTML output Markdown produces. The HTML\r
-Markdown produces from the above list is:\r
-\r
-    <ol>\r
-    <li>Bird</li>\r
-    <li>McHale</li>\r
-    <li>Parish</li>\r
-    </ol>\r
-\r
-If you instead wrote the list in Markdown like this:\r
-\r
-    1.  Bird\r
-    1.  McHale\r
-    1.  Parish\r
-\r
-or even:\r
-\r
-    3. Bird\r
-    1. McHale\r
-    8. Parish\r
-\r
-you'd get the exact same HTML output. The point is, if you want to,\r
-you can use ordinal numbers in your ordered Markdown lists, so that\r
-the numbers in your source match the numbers in your published HTML.\r
-But if you want to be lazy, you don't have to.\r
-\r
-If you do use lazy list numbering, however, you should still start the\r
-list with the number 1. At some point in the future, Markdown may support\r
-starting ordered lists at an arbitrary number.\r
-\r
-List markers typically start at the left margin, but may be indented by\r
-up to three spaces. List markers must be followed by one or more spaces\r
-or a tab.\r
-\r
-To make lists look nice, you can wrap items with hanging indents:\r
-\r
-    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-        viverra nec, fringilla in, laoreet vitae, risus.\r
-    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-        Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-But if you want to be lazy, you don't have to:\r
-\r
-    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-    viverra nec, fringilla in, laoreet vitae, risus.\r
-    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-    Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-If list items are separated by blank lines, Markdown will wrap the\r
-items in `<p>` tags in the HTML output. For example, this input:\r
-\r
-    *   Bird\r
-    *   Magic\r
-\r
-will turn into:\r
-\r
-    <ul>\r
-    <li>Bird</li>\r
-    <li>Magic</li>\r
-    </ul>\r
-\r
-But this:\r
-\r
-    *   Bird\r
-\r
-    *   Magic\r
-\r
-will turn into:\r
-\r
-    <ul>\r
-    <li><p>Bird</p></li>\r
-    <li><p>Magic</p></li>\r
-    </ul>\r
-\r
-List items may consist of multiple paragraphs. Each subsequent\r
-paragraph in a list item must be intended by either 4 spaces\r
-or one tab:\r
-\r
-    1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
-        sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
-        mi posuere lectus.\r
-\r
-        Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
-        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
-        sit amet velit.\r
-\r
-    2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
-\r
-It looks nice if you indent every line of the subsequent\r
-paragraphs, but here again, Markdown will allow you to be\r
-lazy:\r
-\r
-    *   This is a list item with two paragraphs.\r
-\r
-        This is the second paragraph in the list item. You're\r
-    only required to indent the first line. Lorem ipsum dolor\r
-    sit amet, consectetuer adipiscing elit.\r
-\r
-    *   Another item in the same list.\r
-\r
-To put a blockquote within a list item, the blockquote's `>`\r
-delimiters need to be indented:\r
-\r
-    *   A list item with a blockquote:\r
-\r
-        > This is a blockquote\r
-        > inside a list item.\r
-\r
-To put a code block within a list item, the code block needs\r
-to be indented *twice* -- 8 spaces or two tabs:\r
-\r
-    *   A list item with a code block:\r
-\r
-            <code goes here>\r
-\r
-\r
-It's worth noting that it's possible to trigger an ordered list by\r
-accident, by writing something like this:\r
-\r
-    1986. What a great season.\r
-\r
-In other words, a *number-period-space* sequence at the beginning of a\r
-line. To avoid this, you can backslash-escape the period:\r
-\r
-    1986\. What a great season.\r
-\r
-\r
-\r
-## Code Blocks\r
-\r
-Pre-formatted code blocks are used for writing about programming or\r
-markup source code. Rather than forming normal paragraphs, the lines\r
-of a code block are interpreted literally. Markdown wraps a code block\r
-in both `<pre>` and `<code>` tags.\r
-\r
-To produce a code block in Markdown, simply indent every line of the\r
-block by at least 4 spaces or 1 tab. For example, given this input:\r
-\r
-    This is a normal paragraph:\r
-\r
-        This is a code block.\r
-\r
-Markdown will generate:\r
-\r
-    <p>This is a normal paragraph:</p>\r
-\r
-    <pre><code>This is a code block.\r
-    </code></pre>\r
-\r
-One level of indentation -- 4 spaces or 1 tab -- is removed from each\r
-line of the code block. For example, this:\r
-\r
-    Here is an example of AppleScript:\r
-\r
-        tell application "Foo"\r
-            beep\r
-        end tell\r
-\r
-will turn into:\r
-\r
-    <p>Here is an example of AppleScript:</p>\r
-\r
-    <pre><code>tell application "Foo"\r
-        beep\r
-    end tell\r
-    </code></pre>\r
-\r
-A code block continues until it reaches a line that is not indented\r
-(or the end of the article).\r
-\r
-Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)\r
-are automatically converted into HTML entities. This makes it very\r
-easy to include example HTML source code using Markdown -- just paste\r
-it and indent it, and Markdown will handle the hassle of encoding the\r
-ampersands and angle brackets. For example, this:\r
-\r
-        <div class="footer">\r
-            &copy; 2004 Foo Corporation\r
-        </div>\r
-\r
-will turn into:\r
-\r
-    <pre><code>&lt;div class="footer"&gt;\r
-        &amp;copy; 2004 Foo Corporation\r
-    &lt;/div&gt;\r
-    </code></pre>\r
-\r
-Regular Markdown syntax is not processed within code blocks. E.g.,\r
-asterisks are just literal asterisks within a code block. This means\r
-it's also easy to use Markdown to write about Markdown's own syntax.\r
-\r
-\r
-\r
-## Horizontal Rules\r
-\r
-You can produce a horizontal rule tag (`<hr />`) by placing three or\r
-more hyphens, asterisks, or underscores on a line by themselves. If you\r
-wish, you may use spaces between the hyphens or asterisks. Each of the\r
-following lines will produce a horizontal rule:\r
-\r
-    * * *\r
-\r
-    ***\r
-\r
-    *****\r
-       \r
-    - - -\r
-\r
-    ---------------------------------------\r
-\r
-       _ _ _\r
-\r
-\r
-* * *\r
-\r
-# Span Elements\r
-\r
-## Links\r
-\r
-Markdown supports two style of links: *inline* and *reference*.\r
-\r
-In both styles, the link text is delimited by [square brackets].\r
-\r
-To create an inline link, use a set of regular parentheses immediately\r
-after the link text's closing square bracket. Inside the parentheses,\r
-put the URL where you want the link to point, along with an *optional*\r
-title for the link, surrounded in quotes. For example:\r
-\r
-    This is [an example](http://example.com/ "Title") inline link.\r
-\r
-    [This link](http://example.net/) has no title attribute.\r
-\r
-Will produce:\r
-\r
-    <p>This is <a href="http://example.com/" title="Title">\r
-    an example</a> inline link.</p>\r
-\r
-    <p><a href="http://example.net/">This link</a> has no\r
-    title attribute.</p>\r
-\r
-If you're referring to a local resource on the same server, you can\r
-use relative paths:\r
-\r
-    See my [About](/about/) page for details.   \r
-\r
-Reference-style links use a second set of square brackets, inside\r
-which you place a label of your choosing to identify the link:\r
-\r
-    This is [an example][id] reference-style link.\r
-\r
-You can optionally use a space to separate the sets of brackets:\r
-\r
-    This is [an example] [id] reference-style link.\r
-\r
-Then, anywhere in the document, you define your link label like this,\r
-on a line by itself:\r
-\r
-    [id]: http://example.com/  "Optional Title Here"\r
-\r
-That is:\r
-\r
-*   Square brackets containing the link identifier (optionally\r
-    indented from the left margin using up to three spaces);\r
-*   followed by a colon;\r
-*   followed by one or more spaces (or tabs);\r
-*   followed by the URL for the link;\r
-*   optionally followed by a title attribute for the link, enclosed\r
-    in double or single quotes.\r
-\r
-The link URL may, optionally, be surrounded by angle brackets:\r
-\r
-    [id]: <http://example.com/>  "Optional Title Here"\r
-\r
-You can put the title attribute on the next line and use extra spaces\r
-or tabs for padding, which tends to look better with longer URLs:\r
-\r
-    [id]: http://example.com/longish/path/to/resource/here\r
-        "Optional Title Here"\r
-\r
-Link definitions are only used for creating links during Markdown\r
-processing, and are stripped from your document in the HTML output.\r
-\r
-Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:\r
-\r
-       [link text][a]\r
-       [link text][A]\r
-\r
-are equivalent.\r
-\r
-The *implicit link name* shortcut allows you to omit the name of the\r
-link, in which case the link text itself is used as the name.\r
-Just use an empty set of square brackets -- e.g., to link the word\r
-"Google" to the google.com web site, you could simply write:\r
-\r
-       [Google][]\r
-\r
-And then define the link:\r
-\r
-       [Google]: http://google.com/\r
-\r
-Because link names may contain spaces, this shortcut even works for\r
-multiple words in the link text:\r
-\r
-       Visit [Daring Fireball][] for more information.\r
-\r
-And then define the link:\r
-       \r
-       [Daring Fireball]: http://daringfireball.net/\r
-\r
-Link definitions can be placed anywhere in your Markdown document. I\r
-tend to put them immediately after each paragraph in which they're\r
-used, but if you want, you can put them all at the end of your\r
-document, sort of like footnotes.\r
-\r
-Here's an example of reference links in action:\r
-\r
-    I get 10 times more traffic from [Google] [1] than from\r
-    [Yahoo] [2] or [MSN] [3].\r
-\r
-      [1]: http://google.com/        "Google"\r
-      [2]: http://search.yahoo.com/  "Yahoo Search"\r
-      [3]: http://search.msn.com/    "MSN Search"\r
-\r
-Using the implicit link name shortcut, you could instead write:\r
-\r
-    I get 10 times more traffic from [Google][] than from\r
-    [Yahoo][] or [MSN][].\r
-\r
-      [google]: http://google.com/        "Google"\r
-      [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
-      [msn]:    http://search.msn.com/    "MSN Search"\r
-\r
-Both of the above examples will produce the following HTML output:\r
-\r
-    <p>I get 10 times more traffic from <a href="http://google.com/"\r
-    title="Google">Google</a> than from\r
-    <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>\r
-    or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>\r
-\r
-For comparison, here is the same paragraph written using\r
-Markdown's inline link style:\r
-\r
-    I get 10 times more traffic from [Google](http://google.com/ "Google")\r
-    than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
-    [MSN](http://search.msn.com/ "MSN Search").\r
-\r
-The point of reference-style links is not that they're easier to\r
-write. The point is that with reference-style links, your document\r
-source is vastly more readable. Compare the above examples: using\r
-reference-style links, the paragraph itself is only 81 characters\r
-long; with inline-style links, it's 176 characters; and as raw HTML,\r
-it's 234 characters. In the raw HTML, there's more markup than there\r
-is text.\r
-\r
-With Markdown's reference-style links, a source document much more\r
-closely resembles the final output, as rendered in a browser. By\r
-allowing you to move the markup-related metadata out of the paragraph,\r
-you can add links without interrupting the narrative flow of your\r
-prose.\r
-\r
-\r
-## Emphasis\r
-\r
-Markdown treats asterisks (`*`) and underscores (`_`) as indicators of\r
-emphasis. Text wrapped with one `*` or `_` will be wrapped with an\r
-HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML\r
-`<strong>` tag. E.g., this input:\r
-\r
-    *single asterisks*\r
-\r
-    _single underscores_\r
-\r
-    **double asterisks**\r
-\r
-    __double underscores__\r
-\r
-will produce:\r
-\r
-    <em>single asterisks</em>\r
-\r
-    <em>single underscores</em>\r
-\r
-    <strong>double asterisks</strong>\r
-\r
-    <strong>double underscores</strong>\r
-\r
-You can use whichever style you prefer; the lone restriction is that\r
-the same character must be used to open and close an emphasis span.\r
-\r
-Emphasis can be used in the middle of a word:\r
-\r
-    un*fucking*believable\r
-\r
-But if you surround an `*` or `_` with spaces, it'll be treated as a\r
-literal asterisk or underscore.\r
-\r
-To produce a literal asterisk or underscore at a position where it\r
-would otherwise be used as an emphasis delimiter, you can backslash\r
-escape it:\r
-\r
-    \*this text is surrounded by literal asterisks\*\r
-\r
-\r
-\r
-## Code\r
-\r
-To indicate a span of code, wrap it with backtick quotes (`` ` ``).\r
-Unlike a pre-formatted code block, a code span indicates code within a\r
-normal paragraph. For example:\r
-\r
-    Use the `printf()` function.\r
-\r
-will produce:\r
-\r
-    <p>Use the <code>printf()</code> function.</p>\r
-\r
-To include a literal backtick character within a code span, you can use\r
-multiple backticks as the opening and closing delimiters:\r
-\r
-    ``There is a literal backtick (`) here.``\r
-\r
-which will produce this:\r
-\r
-    <p><code>There is a literal backtick (`) here.</code></p>\r
-\r
-The backtick delimiters surrounding a code span may include spaces --\r
-one after the opening, one before the closing. This allows you to place\r
-literal backtick characters at the beginning or end of a code span:\r
-\r
-       A single backtick in a code span: `` ` ``\r
-       \r
-       A backtick-delimited string in a code span: `` `foo` ``\r
-\r
-will produce:\r
-\r
-       <p>A single backtick in a code span: <code>`</code></p>\r
-       \r
-       <p>A backtick-delimited string in a code span: <code>`foo`</code></p>\r
-\r
-With a code span, ampersands and angle brackets are encoded as HTML\r
-entities automatically, which makes it easy to include example HTML\r
-tags. Markdown will turn this:\r
-\r
-    Please don't use any `<blink>` tags.\r
-\r
-into:\r
-\r
-    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>\r
-\r
-You can write this:\r
-\r
-    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.\r
-\r
-to produce:\r
-\r
-    <p><code>&amp;#8212;</code> is the decimal-encoded\r
-    equivalent of <code>&amp;mdash;</code>.</p>\r
-\r
-\r
-\r
-## Images\r
-\r
-Admittedly, it's fairly difficult to devise a "natural" syntax for\r
-placing images into a plain text document format.\r
-\r
-Markdown uses an image syntax that is intended to resemble the syntax\r
-for links, allowing for two styles: *inline* and *reference*.\r
-\r
-Inline image syntax looks like this:\r
-\r
-    ![Alt text](/path/to/img.jpg)\r
-\r
-    ![Alt text](/path/to/img.jpg "Optional title")\r
-\r
-That is:\r
-\r
-*   An exclamation mark: `!`;\r
-*   followed by a set of square brackets, containing the `alt`\r
-    attribute text for the image;\r
-*   followed by a set of parentheses, containing the URL or path to\r
-    the image, and an optional `title` attribute enclosed in double\r
-    or single quotes.\r
-\r
-Reference-style image syntax looks like this:\r
-\r
-    ![Alt text][id]\r
-\r
-Where "id" is the name of a defined image reference. Image references\r
-are defined using syntax identical to link references:\r
-\r
-    [id]: url/to/image  "Optional title attribute"\r
-\r
-As of this writing, Markdown has no syntax for specifying the\r
-dimensions of an image; if this is important to you, you can simply\r
-use regular HTML `<img>` tags.\r
-\r
-\r
-* * *\r
-\r
-\r
-# Miscellaneous\r
-\r
-## Automatic Links\r
-\r
-Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:\r
-\r
-    <http://example.com/>\r
-    \r
-Markdown will turn this into:\r
-\r
-    <a href="http://example.com/">http://example.com/</a>\r
-\r
-Automatic links for email addresses work similarly, except that\r
-Markdown will also perform a bit of randomized decimal and hex\r
-entity-encoding to help obscure your address from address-harvesting\r
-spambots. For example, Markdown will turn this:\r
-\r
-    <address@example.com>\r
-\r
-into something like this:\r
-\r
-    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;\r
-    &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;\r
-    &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;\r
-    &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>\r
-\r
-which will render in a browser as a clickable link to "address@example.com".\r
-\r
-(This sort of entity-encoding trick will indeed fool many, if not\r
-most, address-harvesting bots, but it definitely won't fool all of\r
-them. It's better than nothing, but an address published in this way\r
-will probably eventually start receiving spam.)\r
-\r
-\r
-\r
-## Backslash Escapes\r
-\r
-Markdown allows you to use backslash escapes to generate literal\r
-characters which would otherwise have special meaning in Markdown's\r
-formatting syntax. For example, if you wanted to surround a word with\r
-literal asterisks (instead of an HTML `<em>` tag), you can backslashes\r
-before the asterisks, like this:\r
-\r
-    \*literal asterisks\*\r
-\r
-Markdown provides backslash escapes for the following characters:\r
-\r
-    \   backslash\r
-    `   backtick\r
-    *   asterisk\r
-    _   underscore\r
-    {}  curly braces\r
-    []  square brackets\r
-    ()  parentheses\r
-    #   hash mark\r
-       +       plus sign\r
-       -       minus sign (hyphen)\r
-    .   dot\r
-    !   exclamation mark\r
-\r
+
+[TOC]
+
+# Overview
+
+## Philosophy
+
+Markdown is intended to be as easy-to-read and easy-to-write as is feasible.
+
+Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4],
+[Grutatext] [5], and [EtText] [6] -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.
+
+  [1]: http://docutils.sourceforge.net/mirror/setext.html
+  [2]: http://www.aaronsw.com/2002/atx/
+  [3]: http://textism.com/tools/textile/
+  [4]: http://docutils.sourceforge.net/rst.html
+  [5]: http://www.triptico.com/software/grutatxt.html
+  [6]: http://ettext.taint.org/doc/
+
+To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like \*emphasis\*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.
+
+
+
+## Inline HTML
+
+Markdown's syntax is intended for one purpose: to be used as a
+format for *writing* for the web.
+
+Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is *not* to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a *publishing* format; Markdown is a *writing*
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.
+
+For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.
+
+The only restrictions are that block-level HTML elements -- e.g. `<div>`,
+`<table>`, `<pre>`, `<p>`, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) `<p>` tags around HTML block-level tags.
+
+For example, to add an HTML table to a Markdown article:
+
+    This is a regular paragraph.
+
+    <table>
+        <tr>
+            <td>Foo</td>
+        </tr>
+    </table>
+
+    This is another regular paragraph.
+
+Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an
+HTML block.
+
+Span-level HTML tags -- e.g. `<span>`, `<cite>`, or `<del>` -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML `<a>` or `<img>` tags instead of Markdown's
+link or image syntax, go right ahead.
+
+Unlike block-level HTML tags, Markdown syntax *is* processed within
+span-level tags.
+
+
+## Automatic Escaping for Special Characters
+
+In HTML, there are two characters that demand special treatment: `<`
+and `&`. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. `&lt;`, and
+`&amp;`.
+
+Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&T', you need to write '`AT&amp;T`'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:
+
+    http://images.google.com/images?num=30&q=larry+bird
+
+you need to encode the URL as:
+
+    http://images.google.com/images?num=30&amp;q=larry+bird
+
+in your anchor tag `href` attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.
+
+Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into `&amp;`.
+
+So, if you want to include a copyright symbol in your article, you can write:
+
+    &copy;
+
+and Markdown will leave it alone. But if you write:
+
+    AT&T
+
+Markdown will translate it to:
+
+    AT&amp;T
+
+Similarly, because Markdown supports [inline HTML](#html), if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:
+
+    4 < 5
+
+Markdown will translate it to:
+
+    4 &lt; 5
+
+However, inside Markdown code spans and blocks, angle brackets and
+ampersands are *always* encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single `<`
+and `&` in your example code needs to be escaped.)
+
+
+* * *
+
+
+# Block Elements
+
+
+## Paragraphs and Line Breaks
+
+A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.
+
+The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a `<br />` tag.
+
+When you *do* want to insert a `<br />` break tag using Markdown, you
+end a line with two or more spaces, then type return.
+
+Yes, this takes a tad more effort to create a `<br />`, but a simplistic
+"every line break is a `<br />`" rule wouldn't work for Markdown.
+Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l]
+work best -- and look better -- when you format them with hard breaks.
+
+  [bq]: #blockquote
+  [l]:  #list
+
+
+
+## Headers
+
+Markdown supports two styles of headers, [Setext] [1] and [atx] [2].
+
+Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:
+
+    This is an H1
+    =============
+
+    This is an H2
+    -------------
+
+Any number of underlining `=`'s or `-`'s will work.
+
+Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:
+
+    # This is an H1
+
+    ## This is an H2
+
+    ###### This is an H6
+
+Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :
+
+    # This is an H1 #
+
+    ## This is an H2 ##
+
+    ### This is an H3 ######
+
+
+## Blockquotes
+
+Markdown uses email-style `>` characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a `>` before every line:
+
+    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+    > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+    > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+    > 
+    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+    > id sem consectetuer libero luctus adipiscing.
+
+Markdown allows you to be lazy and only put the `>` before the first
+line of a hard-wrapped paragraph:
+
+    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+    id sem consectetuer libero luctus adipiscing.
+
+Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of `>`:
+
+    > This is the first level of quoting.
+    >
+    > > This is nested blockquote.
+    >
+    > Back to the first level.
+
+Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:
+
+       > ## This is a header.
+       > 
+       > 1.   This is the first list item.
+       > 2.   This is the second list item.
+       > 
+       > Here's some example code:
+       > 
+       >     return shell_exec("echo $input | $markdown_script");
+
+Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.
+
+
+## Lists
+
+Markdown supports ordered (numbered) and unordered (bulleted) lists.
+
+Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:
+
+    *   Red
+    *   Green
+    *   Blue
+
+is equivalent to:
+
+    +   Red
+    +   Green
+    +   Blue
+
+and:
+
+    -   Red
+    -   Green
+    -   Blue
+
+Ordered lists use numbers followed by periods:
+
+    1.  Bird
+    2.  McHale
+    3.  Parish
+
+It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:
+
+    <ol>
+    <li>Bird</li>
+    <li>McHale</li>
+    <li>Parish</li>
+    </ol>
+
+If you instead wrote the list in Markdown like this:
+
+    1.  Bird
+    1.  McHale
+    1.  Parish
+
+or even:
+
+    3. Bird
+    1. McHale
+    8. Parish
+
+you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.
+
+If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.
+
+List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.
+
+To make lists look nice, you can wrap items with hanging indents:
+
+    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+        viverra nec, fringilla in, laoreet vitae, risus.
+    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+        Suspendisse id sem consectetuer libero luctus adipiscing.
+
+But if you want to be lazy, you don't have to:
+
+    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+
+If list items are separated by blank lines, Markdown will wrap the
+items in `<p>` tags in the HTML output. For example, this input:
+
+    *   Bird
+    *   Magic
+
+will turn into:
+
+    <ul>
+    <li>Bird</li>
+    <li>Magic</li>
+    </ul>
+
+But this:
+
+    *   Bird
+
+    *   Magic
+
+will turn into:
+
+    <ul>
+    <li><p>Bird</p></li>
+    <li><p>Magic</p></li>
+    </ul>
+
+List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:
+
+    1.  This is a list item with two paragraphs. Lorem ipsum dolor
+        sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+        mi posuere lectus.
+
+        Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+        sit amet velit.
+
+    2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+
+It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:
+
+    *   This is a list item with two paragraphs.
+
+        This is the second paragraph in the list item. You're
+    only required to indent the first line. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit.
+
+    *   Another item in the same list.
+
+To put a blockquote within a list item, the blockquote's `>`
+delimiters need to be indented:
+
+    *   A list item with a blockquote:
+
+        > This is a blockquote
+        > inside a list item.
+
+To put a code block within a list item, the code block needs
+to be indented *twice* -- 8 spaces or two tabs:
+
+    *   A list item with a code block:
+
+            <code goes here>
+
+
+It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:
+
+    1986. What a great season.
+
+In other words, a *number-period-space* sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:
+
+    1986\. What a great season.
+
+
+
+## Code Blocks
+
+Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both `<pre>` and `<code>` tags.
+
+To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:
+
+    This is a normal paragraph:
+
+        This is a code block.
+
+Markdown will generate:
+
+    <p>This is a normal paragraph:</p>
+
+    <pre><code>This is a code block.
+    </code></pre>
+
+One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:
+
+    Here is an example of AppleScript:
+
+        tell application "Foo"
+            beep
+        end tell
+
+will turn into:
+
+    <p>Here is an example of AppleScript:</p>
+
+    <pre><code>tell application "Foo"
+        beep
+    end tell
+    </code></pre>
+
+A code block continues until it reaches a line that is not indented
+(or the end of the article).
+
+Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:
+
+        <div class="footer">
+            &copy; 2004 Foo Corporation
+        </div>
+
+will turn into:
+
+    <pre><code>&lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+    </code></pre>
+
+Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.
+
+
+
+## Horizontal Rules
+
+You can produce a horizontal rule tag (`<hr />`) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:
+
+    * * *
+
+    ***
+
+    *****
+       
+    - - -
+
+    ---------------------------------------
+
+       _ _ _
+
+
+* * *
+
+# Span Elements
+
+## Links
+
+Markdown supports two style of links: *inline* and *reference*.
+
+In both styles, the link text is delimited by [square brackets].
+
+To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an *optional*
+title for the link, surrounded in quotes. For example:
+
+    This is [an example](http://example.com/ "Title") inline link.
+
+    [This link](http://example.net/) has no title attribute.
+
+Will produce:
+
+    <p>This is <a href="http://example.com/" title="Title">
+    an example</a> inline link.</p>
+
+    <p><a href="http://example.net/">This link</a> has no
+    title attribute.</p>
+
+If you're referring to a local resource on the same server, you can
+use relative paths:
+
+    See my [About](/about/) page for details.   
+
+Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:
+
+    This is [an example][id] reference-style link.
+
+You can optionally use a space to separate the sets of brackets:
+
+    This is [an example] [id] reference-style link.
+
+Then, anywhere in the document, you define your link label like this,
+on a line by itself:
+
+    [id]: http://example.com/  "Optional Title Here"
+
+That is:
+
+*   Square brackets containing the link identifier (optionally
+    indented from the left margin using up to three spaces);
+*   followed by a colon;
+*   followed by one or more spaces (or tabs);
+*   followed by the URL for the link;
+*   optionally followed by a title attribute for the link, enclosed
+    in double or single quotes.
+
+The link URL may, optionally, be surrounded by angle brackets:
+
+    [id]: <http://example.com/>  "Optional Title Here"
+
+You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:
+
+    [id]: http://example.com/longish/path/to/resource/here
+        "Optional Title Here"
+
+Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.
+
+Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links:
+
+       [link text][a]
+       [link text][A]
+
+are equivalent.
+
+The *implicit link name* shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:
+
+       [Google][]
+
+And then define the link:
+
+       [Google]: http://google.com/
+
+Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:
+
+       Visit [Daring Fireball][] for more information.
+
+And then define the link:
+       
+       [Daring Fireball]: http://daringfireball.net/
+
+Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.
+
+Here's an example of reference links in action:
+
+    I get 10 times more traffic from [Google] [1] than from
+    [Yahoo] [2] or [MSN] [3].
+
+      [1]: http://google.com/        "Google"
+      [2]: http://search.yahoo.com/  "Yahoo Search"
+      [3]: http://search.msn.com/    "MSN Search"
+
+Using the implicit link name shortcut, you could instead write:
+
+    I get 10 times more traffic from [Google][] than from
+    [Yahoo][] or [MSN][].
+
+      [google]: http://google.com/        "Google"
+      [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+      [msn]:    http://search.msn.com/    "MSN Search"
+
+Both of the above examples will produce the following HTML output:
+
+    <p>I get 10 times more traffic from <a href="http://google.com/"
+    title="Google">Google</a> than from
+    <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
+    or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
+
+For comparison, here is the same paragraph written using
+Markdown's inline link style:
+
+    I get 10 times more traffic from [Google](http://google.com/ "Google")
+    than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+    [MSN](http://search.msn.com/ "MSN Search").
+
+The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.
+
+With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.
+
+
+## Emphasis
+
+Markdown treats asterisks (`*`) and underscores (`_`) as indicators of
+emphasis. Text wrapped with one `*` or `_` will be wrapped with an
+HTML `<em>` tag; double `*`'s or `_`'s will be wrapped with an HTML
+`<strong>` tag. E.g., this input:
+
+    *single asterisks*
+
+    _single underscores_
+
+    **double asterisks**
+
+    __double underscores__
+
+will produce:
+
+    <em>single asterisks</em>
+
+    <em>single underscores</em>
+
+    <strong>double asterisks</strong>
+
+    <strong>double underscores</strong>
+
+You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.
+
+Emphasis can be used in the middle of a word:
+
+    un*fucking*believable
+
+But if you surround an `*` or `_` with spaces, it'll be treated as a
+literal asterisk or underscore.
+
+To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:
+
+    \*this text is surrounded by literal asterisks\*
+
+
+
+## Code
+
+To indicate a span of code, wrap it with backtick quotes (`` ` ``).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:
+
+    Use the `printf()` function.
+
+will produce:
+
+    <p>Use the <code>printf()</code> function.</p>
+
+To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:
+
+    ``There is a literal backtick (`) here.``
+
+which will produce this:
+
+    <p><code>There is a literal backtick (`) here.</code></p>
+
+The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:
+
+       A single backtick in a code span: `` ` ``
+       
+       A backtick-delimited string in a code span: `` `foo` ``
+
+will produce:
+
+       <p>A single backtick in a code span: <code>`</code></p>
+       
+       <p>A backtick-delimited string in a code span: <code>`foo`</code></p>
+
+With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:
+
+    Please don't use any `<blink>` tags.
+
+into:
+
+    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
+
+You can write this:
+
+    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.
+
+to produce:
+
+    <p><code>&amp;#8212;</code> is the decimal-encoded
+    equivalent of <code>&amp;mdash;</code>.</p>
+
+
+
+## Images
+
+Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.
+
+Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: *inline* and *reference*.
+
+Inline image syntax looks like this:
+
+    ![Alt text](/path/to/img.jpg)
+
+    ![Alt text](/path/to/img.jpg "Optional title")
+
+That is:
+
+*   An exclamation mark: `!`;
+*   followed by a set of square brackets, containing the `alt`
+    attribute text for the image;
+*   followed by a set of parentheses, containing the URL or path to
+    the image, and an optional `title` attribute enclosed in double
+    or single quotes.
+
+Reference-style image syntax looks like this:
+
+    ![Alt text][id]
+
+Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:
+
+    [id]: url/to/image  "Optional title attribute"
+
+As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML `<img>` tags.
+
+
+* * *
+
+
+# Miscellaneous
+
+## Automatic Links
+
+Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:
+
+    <http://example.com/>
+    
+Markdown will turn this into:
+
+    <a href="http://example.com/">http://example.com/</a>
+
+Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:
+
+    <address@example.com>
+
+into something like this:
+
+    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
+    &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
+    &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
+    &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
+
+which will render in a browser as a clickable link to "address@example.com".
+
+(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)
+
+
+
+## Backslash Escapes
+
+Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML `<em>` tag), you can backslashes
+before the asterisks, like this:
+
+    \*literal asterisks\*
+
+Markdown provides backslash escapes for the following characters:
+
+    \   backslash
+    `   backtick
+    *   asterisk
+    _   underscore
+    {}  curly braces
+    []  square brackets
+    ()  parentheses
+    #   hash mark
+       +       plus sign
+       -       minus sign (hyphen)
+    .   dot
+    !   exclamation mark
+
index 532cebc03a3a2e7e692000f466be1dcdc19f6d9b..41a3b1f43fdecc17a1f0f805a84daea1c875d461 100644 (file)
@@ -1,6 +1,6 @@
-<h2 id="toc">[TOC]</h2>\r
-<h1 id="header-1">Header 1</h1>\r
-<p>The TOC marker cannot be inside a header. This test makes sure markdown doesn't \r
-crash when it encounters this  errant syntax. The unexpected output should\r
-clue the author in that s/he needs to add a blank line between the TOC and\r
+<h2 id="toc">[TOC]</h2>
+<h1 id="header-1">Header 1</h1>
+<p>The TOC marker cannot be inside a header. This test makes sure markdown doesn't 
+crash when it encounters this  errant syntax. The unexpected output should
+clue the author in that s/he needs to add a blank line between the TOC and
 the <code>&lt;hr&gt;</code>.</p>
\ No newline at end of file
index 70b91241479788fab952c0ec505fa47fd768dbc2..f6c4ec4d763a18c2d12ab7ba7eacf2f036f268d4 100644 (file)
@@ -1,9 +1,9 @@
-[TOC]\r
------\r
-\r
-# Header 1\r
-\r
-The TOC marker cannot be inside a header. This test makes sure markdown doesn't \r
-crash when it encounters this  errant syntax. The unexpected output should\r
-clue the author in that s/he needs to add a blank line between the TOC and\r
-the `<hr>`.\r
+[TOC]
+-----
+
+# Header 1
+
+The TOC marker cannot be inside a header. This test makes sure markdown doesn't 
+crash when it encounters this  errant syntax. The unexpected output should
+clue the author in that s/he needs to add a blank line between the TOC and
+the `<hr>`.
index ec8febae164daa227b6867ecc3724035e409f238..27af9df138aa2071347ab2dc78ee96f8dffabd9b 100644 (file)
@@ -1,16 +1,16 @@
-<h1 id="header-a">Header A<a class="headerlink" href="#header-a" title="Permanent link">&para;</a></h1>\r
-<h2 id="header-1">Header 1<a class="headerlink" href="#header-1" title="Permanent link">&para;</a></h2>\r
-<h3 id="header-i">Header i<a class="headerlink" href="#header-i" title="Permanent link">&para;</a></h3>\r
-<h1 id="header-b">Header <em>B</em><a class="headerlink" href="#header-b" title="Permanent link">&para;</a></h1>\r
-<div class="toc">\r
-<ul>\r
-<li><a href="#header-a">Header A</a><ul>\r
-<li><a href="#header-1">Header 1</a><ul>\r
-<li><a href="#header-i">Header i</a></li>\r
-</ul>\r
-</li>\r
-</ul>\r
-</li>\r
-<li><a href="#header-b">Header B</a></li>\r
-</ul>\r
+<h1 id="header-a">Header A<a class="headerlink" href="#header-a" title="Permanent link">&para;</a></h1>
+<h2 id="header-1">Header 1<a class="headerlink" href="#header-1" title="Permanent link">&para;</a></h2>
+<h3 id="header-i">Header i<a class="headerlink" href="#header-i" title="Permanent link">&para;</a></h3>
+<h1 id="header-b">Header <em>B</em><a class="headerlink" href="#header-b" title="Permanent link">&para;</a></h1>
+<div class="toc">
+<ul>
+<li><a href="#header-a">Header A</a><ul>
+<li><a href="#header-1">Header 1</a><ul>
+<li><a href="#header-i">Header i</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#header-b">Header B</a></li>
+</ul>
 </div>
\ No newline at end of file
index 6aa06f15bb12d9abed68d667fbfd1c9eb9987e87..0f897b2e37b59e9c402ef946427feb8bdb71a8d2 100644 (file)
@@ -1,9 +1,9 @@
-# Header A\r
-\r
-## Header 1\r
-\r
-### Header i\r
-\r
-# Header *B*\r
-\r
-[TOC]\r
+# Header A
+
+## Header 1
+
+### Header i
+
+# Header *B*
+
+[TOC]
index 7ef07aebaf164e3234f956facc89d5340d94f5d7..2d8fa2d42418f43a70ea6c96d10fa35b571adaf9 100644 (file)
@@ -1,14 +1,14 @@
-<div class="toc">\r
-<ul>\r
-<li><a href="#start-with-header-other-than-one">Start with header other than one.</a></li>\r
-<li><a href="#header-3">Header 3</a><ul>\r
-<li><a href="#header-4">Header 4</a></li>\r
-</ul>\r
-</li>\r
-<li><a href="#header-3_1">Header 3</a></li>\r
-</ul>\r
-</div>\r
-<h3 id="start-with-header-other-than-one">Start with header other than one.<a class="headerlink" href="#start-with-header-other-than-one" title="Permanent link">[link]</a></h3>\r
-<h3 id="header-3">Header 3<a class="headerlink" href="#header-3" title="Permanent link">[link]</a></h3>\r
-<h4 id="header-4">Header 4<a class="headerlink" href="#header-4" title="Permanent link">[link]</a></h4>\r
+<div class="toc">
+<ul>
+<li><a href="#start-with-header-other-than-one">Start with header other than one.</a></li>
+<li><a href="#header-3">Header 3</a><ul>
+<li><a href="#header-4">Header 4</a></li>
+</ul>
+</li>
+<li><a href="#header-3_1">Header 3</a></li>
+</ul>
+</div>
+<h3 id="start-with-header-other-than-one">Start with header other than one.<a class="headerlink" href="#start-with-header-other-than-one" title="Permanent link">[link]</a></h3>
+<h3 id="header-3">Header 3<a class="headerlink" href="#header-3" title="Permanent link">[link]</a></h3>
+<h4 id="header-4">Header 4<a class="headerlink" href="#header-4" title="Permanent link">[link]</a></h4>
 <h3 id="header-3_1">Header 3<a class="headerlink" href="#header-3_1" title="Permanent link">[link]</a></h3>
\ No newline at end of file
index d1ccfeef8f56db7ab84ab21accec3cdf1612f7b6..9db4d8c1b11298b80101be3dccc93a635f137221 100644 (file)
@@ -1,10 +1,10 @@
-[TOC]\r
-\r
-### Start with header other than one.\r
-\r
-### Header 3\r
-\r
-#### Header 4\r
-\r
-### Header 3\r
-\r
+[TOC]
+
+### Start with header other than one.
+
+### Header 3
+
+#### Header 4
+
+### Header 3
+
index 3cea2fdd6452e8287cf9d313e74eb23d2f7f5449..93d8b047f5e674fa336631ab29f8cbd42895c314 100644 (file)
@@ -1,8 +1,8 @@
-<div class="toc">\r
-<ul>\r
-<li><a href="#header-2">Header 2</a></li>\r
-<li><a href="#header-1">Header 1</a></li>\r
-</ul>\r
-</div>\r
-<h2 id="header-2">Header 2</h2>\r
+<div class="toc">
+<ul>
+<li><a href="#header-2">Header 2</a></li>
+<li><a href="#header-1">Header 1</a></li>
+</ul>
+</div>
+<h2 id="header-2">Header 2</h2>
 <h1 id="header-1">Header 1</h1>
\ No newline at end of file
index 670f085ff7d85fba1dddae5df044fb3ba5d94d6b..f08bdbc870416606ca685ed3c9195301cd278180 100644 (file)
@@ -1,5 +1,5 @@
-[TOC]\r
-\r
-## Header 2\r
-\r
-# Header 1\r
+[TOC]
+
+## Header 2
+
+# Header 1
index 5f725a1d1acfcee41d357f657b0d4e9ef0ee58f2..a76a6933a46b9068c2cb208074b2d3364543defa 100644 (file)
@@ -1,9 +1,9 @@
-<p>Some text with a <a class="wikilink" href="/WikiLink/">WikiLink</a>.</p>\r
-<p>A link with <a class="wikilink" href="/white_space_and_underscores/">white space and_underscores</a> and a empty  one.</p>\r
-<p>Another with <a class="wikilink" href="/double_spaces/">double  spaces</a> and <a class="wikilink" href="/double__underscores/">double__underscores</a> and \r
-one that <a class="wikilink" href="/has_emphasis_inside/">has <em>emphasis</em> inside</a> and one <a class="wikilink" href="/with_multiple_underscores/">with_multiple_underscores</a> \r
-and one that is <em><a class="wikilink" href="/emphasised/">emphasised</a></em>.</p>\r
-<p>And a <a href="http://example.com/RealLink">RealLink</a>.</p>\r
-<p><a href="http://example.com/And_A_AutoLink">http://example.com/And_A_AutoLink</a></p>\r
-<p>And a <a href="/MarkdownLink/" title="A MarkdownLink">MarkdownLink</a> for\r
+<p>Some text with a <a class="wikilink" href="/WikiLink/">WikiLink</a>.</p>
+<p>A link with <a class="wikilink" href="/white_space_and_underscores/">white space and_underscores</a> and a empty  one.</p>
+<p>Another with <a class="wikilink" href="/double_spaces/">double  spaces</a> and <a class="wikilink" href="/double__underscores/">double__underscores</a> and 
+one that <a class="wikilink" href="/has_emphasis_inside/">has <em>emphasis</em> inside</a> and one <a class="wikilink" href="/with_multiple_underscores/">with_multiple_underscores</a> 
+and one that is <em><a class="wikilink" href="/emphasised/">emphasised</a></em>.</p>
+<p>And a <a href="http://example.com/RealLink">RealLink</a>.</p>
+<p><a href="http://example.com/And_A_AutoLink">http://example.com/And_A_AutoLink</a></p>
+<p>And a <a href="/MarkdownLink/" title="A MarkdownLink">MarkdownLink</a> for
 completeness.</p>
\ No newline at end of file
index fe97670c5130d29eca3074dc08eb8b800c6619d5..8e6911bb49a896a23c18486d61a7b3fa228f0eef 100644 (file)
@@ -1,14 +1,14 @@
-Some text with a [[WikiLink]].\r
-\r
-A link with [[ white space and_underscores ]] and a empty [[ ]] one.\r
-\r
-Another with [[double  spaces]] and [[double__underscores]] and \r
-one that [[has _emphasis_ inside]] and one [[with_multiple_underscores]] \r
-and one that is _[[emphasised]]_.\r
-\r
-And a <a href="http://example.com/RealLink">RealLink</a>.\r
-\r
-<http://example.com/And_A_AutoLink>\r
-\r
-And a [MarkdownLink](/MarkdownLink/ "A MarkdownLink") for\r
-completeness.\r
+Some text with a [[WikiLink]].
+
+A link with [[ white space and_underscores ]] and a empty [[ ]] one.
+
+Another with [[double  spaces]] and [[double__underscores]] and 
+one that [[has _emphasis_ inside]] and one [[with_multiple_underscores]] 
+and one that is _[[emphasised]]_.
+
+And a <a href="http://example.com/RealLink">RealLink</a>.
+
+<http://example.com/And_A_AutoLink>
+
+And a [MarkdownLink](/MarkdownLink/ "A MarkdownLink") for
+completeness.
diff --git a/tests/html4/html4.html b/tests/html4/html4.html
deleted file mode 100644 (file)
index 4ded6e7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-<p>A test of the most<br>\r
-basic of html/xhtml differences.</p>
\ No newline at end of file
diff --git a/tests/html4/html4.txt b/tests/html4/html4.txt
deleted file mode 100644 (file)
index c370cfb..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-A test of the most  \r
-basic of html/xhtml differences.
\ No newline at end of file
diff --git a/tests/html4/test.cfg b/tests/html4/test.cfg
deleted file mode 100644 (file)
index 08af112..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-[DEFAULT]\r
-output_format=html4\r
index adb01e539057be6124b2d5211cf907a3bdbb7c45..a72b1ca5e9c947faa55f32ae4aad182a3c958177 100644 (file)
@@ -1,4 +1,4 @@
-<p>foo</p>\r
-<div>\r
-bar\r
+<p>foo</p>
+<div>
+bar
 </div>
\ No newline at end of file
index 8678fc7d83722c477db020860983ce35a44fa8a0..bd171aab6f68d4fd8dda85305beee0d6856a3b1b 100644 (file)
@@ -1,2 +1,2 @@
-<h1>this is a huge header</h1>\r
+<h1>this is a huge header</h1>
 <h2>this is a smaller header</h2>
\ No newline at end of file
index ce6db8dff6d751b4167a2f211186f543c4416760..0e626b977c19c9e78a31807b045c59e50c26abde 100644 (file)
@@ -1,2 +1,2 @@
-# this is a huge header #\r
-## this is a smaller header ##\r
+# this is a huge header #
+## this is a smaller header ##
index b98af15036e315a624ca4160a66776fbbc4061c0..471106e3dfd3435e4402b77b40218254cae31e75 100644 (file)
@@ -1 +1 @@
-[link](http://www.freewisdom.org/this&that)\r
+[link](http://www.freewisdom.org/this&that)
index 289678b6af8cda98ee5f9a69d50333130e0fa8c4..94ed80cc9f94fa6d71903349275bb7955ee91e35 100644 (file)
@@ -1,2 +1,2 @@
-<p>&amp;</p>\r
+<p>&amp;</p>
 <p>AT&amp;T</p>
\ No newline at end of file
index a07ff9db99ec3c6d16ae9c9195c2cabb12b20242..367d32c6f699cc4d234d43b0e1f5d9dc1ca81540 100644 (file)
@@ -1,5 +1,5 @@
-&\r
-\r
-AT&T\r
-\r
-\r
+&
+
+AT&T
+
+
index 8462a23a8c39282581173e8279f7e6fdfb0290ca..55991def35b432d14e697e171fed4e600aa9bd43 100644 (file)
@@ -1,27 +1,27 @@
-<h1>بايثون</h1>\r
-<p><strong>بايثون</strong> لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (OOP) وقابلة للتطوير بالإضافة إلى أنها مجانية و مفتوحة المصدر. صُنفت بالأساس كلغة تفسيرية ، بايثون مصممة أصلاً للأداء بعض المهام الخاصة أو المحدودة. إلا أنه يمكن استخدامها بايثون لإنجاز المشاريع الضخمه كأي لغة برمجية أخرى،  غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسهل اللغات البرمجية تعلماً.</p>\r
-<p>نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم. تم تطويرها بلغة C. أطلق فان رُزوم اسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون Monty Python.</p>\r
-<p>تتميز بايثون بمجتمعها النشط ، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة ، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من اجل برمجة الالعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره.</p>\r
-<h2>أمثلة</h2>\r
-<p>مثال Hello World!</p>\r
-<pre><code>print "Hello World!"\r
-</code></pre>\r
-<p>مثال لاستخراج المضروب Factorial :</p>\r
-<pre><code>num = 1\r
-x = raw_input('Insert the number please ')\r
-x = int(x)\r
-\r
-if x &gt; 69:\r
- print 'Math Error !'\r
-else:\r
- while x &gt; 1:\r
-  num *= x\r
-  x = x-1\r
-\r
- print num\r
-</code></pre>\r
-<h2>وصلات خارجية</h2>\r
-<ul>\r
-<li><a href="http://www.python.org">الموقع الرسمي للغة بايثون</a></li>\r
-</ul>\r
+<h1>بايثون</h1>
+<p><strong>بايثون</strong> لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (OOP) وقابلة للتطوير بالإضافة إلى أنها مجانية و مفتوحة المصدر. صُنفت بالأساس كلغة تفسيرية ، بايثون مصممة أصلاً للأداء بعض المهام الخاصة أو المحدودة. إلا أنه يمكن استخدامها بايثون لإنجاز المشاريع الضخمه كأي لغة برمجية أخرى،  غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسهل اللغات البرمجية تعلماً.</p>
+<p>نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم. تم تطويرها بلغة C. أطلق فان رُزوم اسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون Monty Python.</p>
+<p>تتميز بايثون بمجتمعها النشط ، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة ، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من اجل برمجة الالعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره.</p>
+<h2>أمثلة</h2>
+<p>مثال Hello World!</p>
+<pre><code>print "Hello World!"
+</code></pre>
+<p>مثال لاستخراج المضروب Factorial :</p>
+<pre><code>num = 1
+x = raw_input('Insert the number please ')
+x = int(x)
+
+if x &gt; 69:
+ print 'Math Error !'
+else:
+ while x &gt; 1:
+  num *= x
+  x = x-1
+
+ print num
+</code></pre>
+<h2>وصلات خارجية</h2>
+<ul>
+<li><a href="http://www.python.org">الموقع الرسمي للغة بايثون</a></li>
+</ul>
 <p>بذرة حاس </p>
\ No newline at end of file
index fc47c665a131596be83a5fb664de632d7c3288f0..ba2fef4ae6e066931f3f6fdf6eed41191ba75012 100644 (file)
@@ -1,37 +1,37 @@
-\r
-بايثون\r
-=====\r
-\r
-**بايثون** لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (OOP) وقابلة للتطوير بالإضافة إلى أنها مجانية و مفتوحة المصدر. صُنفت بالأساس كلغة تفسيرية ، بايثون مصممة أصلاً للأداء بعض المهام الخاصة أو المحدودة. إلا أنه يمكن استخدامها بايثون لإنجاز المشاريع الضخمه كأي لغة برمجية أخرى،  غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسهل اللغات البرمجية تعلماً.\r
-\r
-نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم. تم تطويرها بلغة C. أطلق فان رُزوم اسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون Monty Python.\r
-\r
-تتميز بايثون بمجتمعها النشط ، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة ، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من اجل برمجة الالعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره.\r
-\r
-##أمثلة \r
-مثال Hello World!\r
-\r
-    print "Hello World!"\r
-\r
-\r
-مثال لاستخراج المضروب Factorial :\r
-\r
-    num = 1\r
-    x = raw_input('Insert the number please ')\r
-    x = int(x)\r
\r
-    if x > 69:\r
-     print 'Math Error !'\r
-    else:\r
-     while x > 1:\r
-      num *= x\r
-      x = x-1\r
\r
-     print num\r
-\r
-\r
-\r
-##وصلات خارجية \r
-* [الموقع الرسمي للغة بايثون](http://www.python.org)\r
-\r
- بذرة حاس \r
+
+بايثون
+=====
+
+**بايثون** لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (OOP) وقابلة للتطوير بالإضافة إلى أنها مجانية و مفتوحة المصدر. صُنفت بالأساس كلغة تفسيرية ، بايثون مصممة أصلاً للأداء بعض المهام الخاصة أو المحدودة. إلا أنه يمكن استخدامها بايثون لإنجاز المشاريع الضخمه كأي لغة برمجية أخرى،  غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسهل اللغات البرمجية تعلماً.
+
+نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم. تم تطويرها بلغة C. أطلق فان رُزوم اسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون Monty Python.
+
+تتميز بايثون بمجتمعها النشط ، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة ، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من اجل برمجة الالعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره.
+
+##أمثلة 
+مثال Hello World!
+
+    print "Hello World!"
+
+
+مثال لاستخراج المضروب Factorial :
+
+    num = 1
+    x = raw_input('Insert the number please ')
+    x = int(x)
+    if x > 69:
+     print 'Math Error !'
+    else:
+     while x > 1:
+      num *= x
+      x = x-1
+     print num
+
+
+
+##وصلات خارجية 
+* [الموقع الرسمي للغة بايثون](http://www.python.org)
+
+ بذرة حاس 
index 960773d38b2769209a839e40ffb54b91332330a3..a21697129554c20dd1e6e362731122433b621f8c 100644 (file)
@@ -1,4 +1,4 @@
-![img{@id=foo}][img]\r
-\r
-  [img]: http://example.com/i.jpg\r
-\r
+![img{@id=foo}][img]
+
+  [img]: http://example.com/i.jpg
+
index 507058927263e44edafb9ae2dd1b6eefeb1fc673..b78fee0ec794756381a7babb098eccd929928a1d 100644 (file)
@@ -1,6 +1,6 @@
-<p id="TABLE.OF.CONTENTS"></p>\r
-<ul>\r
-<li id="TABLEOFCONTENTS"></li>\r
-</ul>\r
-<p id="TABLEOFCONTENTS">Or in the middle of the text </p>\r
+<p id="TABLE.OF.CONTENTS"></p>
+<ul>
+<li id="TABLEOFCONTENTS"></li>
+</ul>
+<p id="TABLEOFCONTENTS">Or in the middle of the text </p>
 <p id="tableofcontents"></p>
\ No newline at end of file
index 6555d4105c598f282fb0807ada857de8fa7d6ddc..d635cb2f2c07008d7b9dab2dd0f0929813742a76 100644 (file)
@@ -1,10 +1,10 @@
-{@id=TABLE.OF.CONTENTS}\r
-\r
-\r
-* {@id=TABLEOFCONTENTS}\r
-\r
-\r
-Or in the middle of the text {@id=TABLEOFCONTENTS}\r
-\r
-{@id=tableofcontents}\r
-\r
+{@id=TABLE.OF.CONTENTS}
+
+
+* {@id=TABLEOFCONTENTS}
+
+
+Or in the middle of the text {@id=TABLEOFCONTENTS}
+
+{@id=tableofcontents}
+
index 035ce571c0ae5d033fdceeb43e20ad1a6fd8af61..24de5d95895c2750c573954f5c5356339d669a64 100644 (file)
@@ -1,2 +1,2 @@
-<http://some.site/weird*url*thing>\r
-\r
+<http://some.site/weird*url*thing>
+
index b4fdd2d086b4beae418a45243ac4b98d60ee7cd2..74465f1cb5b13f7506bea3de7b63fcc9e142da07 100644 (file)
@@ -1,3 +1,3 @@
-<http://some.site/нечто*очень*странное>\r
-\r
-\r
+<http://some.site/нечто*очень*странное>
+
+
index 2c73cb34d722aece4dd40edcdc293a751acaaa56..07f5115d58fed647e6213e4ec903373f3ec4f8af 100644 (file)
@@ -1,3 +1,3 @@
-<p>\`This should not be in code.\`\r
-`This also should not be in code.`\r
+<p>\`This should not be in code.\`
+`This also should not be in code.`
 `And finally this should not be in code.`</p>
\ No newline at end of file
index 684a32e577d323438a00aa169e9380b1c36d41a5..b4d80b2fcf0d371ba81f92b5d6d7fa3314f8cc06 100644 (file)
@@ -1,3 +1,3 @@
-\\`This should not be in code.\\`\r
-\`This also should not be in code.\`\r
-\`And finally this should not be in code.`\r
+\\`This should not be in code.\\`
+\`This also should not be in code.\`
+\`And finally this should not be in code.`
index 45576ad7c6a7ef47b4d06298ead823adc3912c2e..ffe04dc737752bdcad7eefd331693d418dd9cd8c 100644 (file)
@@ -1,39 +1,39 @@
-<p><strong>Python</strong>(パイソン)は、<a href="http://en.wikipedia.org/wiki/Guido_van_Rossum">Guido van Rossum</a> によって作られたオープンソースのオブジェクト指向スクリプト言語。<a href="http://ja.wikipedia.org/wiki/Perl">Perl</a>とともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』にちなんで名付けられた。 (Pythonには、爬虫類のニシキヘビの意味があり、Python言語のマスコットやアイコンとして使われることがある。)</p>\r
-<p>|||||||||||||||||||||||||||||THIS SHOULD BE LTR|||||||||||||||||||||||||</p>\r
-<p dir="rtl">|||||||||||||||||||||||||||||THIS SHOULD BE RTL|||||||||||||||||||||||||  </p>\r
-<p dir="ltr">(<strong>بايثون</strong> لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (THIS SHOULD BE LTR ) وقابلة للتطوير    بالإضافة إلى أنها مجانية و مفتوح </p>\r
-<p>پایتون زبان برنامه‌نویسی تفسیری و سطح بالا ، شی‌گرا و یک زبان برنامه‌نویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگی‌ها شبیه پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال است و از مدیریت خودکار حافظه استفاده می‌کند</p>\r
-<p>Python,是一种面向对象的、直譯式的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。</p>\r
-<p>ބްލޫ ވޭލްގެ ދޫ މަތީގައި އެއްފަހަރާ 50 މީހުންނަށް ތިބެވިދާނެވެ. ބޮޑު މަހުގެ ދުލަކީ އެހާމެ ބޮޑު އެއްޗެކެވެ.</p>\r
-<p><strong>உருது</strong> 13ஆம் நூற்றாண்டில் உருவான ஒரு இந்தோ-ஐரோப்பிய மொழியாகும். உருது, ஹிந்தியுடன் சேர்த்து "ஹிந்துஸ்தானி" என அழைக்கப்படுகின்றது. மண்டரின், ஆங்கிலம் ஆகியவற்றுக்கு அடுத்தபடியாக மூன்றாவது கூடிய அளவு மக்களால் புரிந்து கொள்ளப்படக்கூடியது ஹிந்துஸ்தானியேயாகும். தாய் மொழியாகப் பேசுபவர்கள் எண்ணிக்கையின் அடிப்படையில் உருது உலகின் 20 ஆவது பெரிய மொழியாகும். 6 கோடி மக்கள் இதனைத் தாய் மொழியாகக் கொண்டுள்ளார்கள். இரண்டாவது மொழியாகக் கொண்டுள்ளவர்கள் உட்பட 11 கோடிப் பேர் இதனைப் பேசுகிறார்கள். உருது பாகிஸ்தானின் அரசகரும மொழியாகவும், இந்தியாவின் அரசகரும மொழிகளுள் ஒன்றாகவும் விளங்குகிறது.</p>\r
-<p>اردو ہندوآریائی زبانوں کی ہندويورپی شاخ کی ایک زبان ہے جو تيرھويں صدی ميں بر صغير ميں پيدا ہوئی ـ اردو پاکستان کی سرکاری زبان ہے اور بھارت کی سرکاری زبانوں ميں سے ايک ہے۔ اردو بھارت ميں 5 کروڑ اور پاکستان ميں 1 کروڑ لوگوں کی مادری زبان ہے مگر اسے بھارت اور پاکستان کے تقریباً 50 کروڑ لوگ بول اور سمجھ سکتے ھیں ۔ جن میں سے تقریباً 10.5 کروڑ لوگ اسے باقاعدہ بولتے ھیں۔</p>\r
-<h1>بايثون</h1>\r
-<p><strong>بايثون</strong> لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (OOP) وقابلة للتطوير بالإضافة إلى أنها مجانية و مفتوحة المصدر. صُنفت بالأساس كلغة تفسيرية ، بايثون مصممة أصلاً للأداء بعض المهام الخاصة أو المحدودة. إلا أنه يمكن استخدامها بايثون لإنجاز المشاريع الضخمه كأي لغة برمجية أخرى،  غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسهل اللغات البرمجية تعلماً.</p>\r
-<p>|||||||||||||||||||||||||||||THIS SHOULD BE RTL|||||||||||||||||||||||||</p>\r
-<p>(نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم. تم تطويرها بلغة C. أطلق فان رُزوم اسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون Monty Python.</p>\r
-<p>تتميز بايثون بمجتمعها النشط ، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة ، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من اجل برمجة الالعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره.</p>\r
-<h2>أمثلة</h2>\r
-<p>مثال Hello World!</p>\r
-<pre><code>print "Hello World!"\r
-</code></pre>\r
-<p>مثال لاستخراج المضروب Factorial :</p>\r
-<pre><code>num = 1\r
-x = raw_input('Insert the number please ')\r
-x = int(x)\r
-\r
-if x &gt; 69:\r
- print 'Math Error !'\r
-else:\r
- while x &gt; 1:\r
-  num *= x\r
-  x = x-1\r
-\r
- print num\r
-</code></pre>\r
-<h2>وصلات خارجية</h2>\r
-<ul>\r
-<li><a href="http://www.python.org">الموقع الرسمي للغة بايثون</a></li>\r
-</ul>\r
-<p>بذرة حاس </p>\r
-<p><strong>Недвард «Нед» Фландерс</strong> (Nedward «Ned» Flanders) — вымышленный персонаж мультсериала «[Симпсоны][]», озвученный Гарри Ширером. Он и его семья живут по соседству от семьи Симпсонов. Набожный христианин, Нед является одним из столпов морали Спрингфилда. В эпизоде «Alone Again, Natura-Diddily»  он овдовел, его жена Мод погибла в результате несчастного случая. </p>\r
+<p><strong>Python</strong>(パイソン)は、<a href="http://en.wikipedia.org/wiki/Guido_van_Rossum">Guido van Rossum</a> によって作られたオープンソースのオブジェクト指向スクリプト言語。<a href="http://ja.wikipedia.org/wiki/Perl">Perl</a>とともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』にちなんで名付けられた。 (Pythonには、爬虫類のニシキヘビの意味があり、Python言語のマスコットやアイコンとして使われることがある。)</p>
+<p>|||||||||||||||||||||||||||||THIS SHOULD BE LTR|||||||||||||||||||||||||</p>
+<p dir="rtl">|||||||||||||||||||||||||||||THIS SHOULD BE RTL|||||||||||||||||||||||||  </p>
+<p dir="ltr">(<strong>بايثون</strong> لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (THIS SHOULD BE LTR ) وقابلة للتطوير    بالإضافة إلى أنها مجانية و مفتوح </p>
+<p>پایتون زبان برنامه‌نویسی تفسیری و سطح بالا ، شی‌گرا و یک زبان برنامه‌نویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگی‌ها شبیه پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال است و از مدیریت خودکار حافظه استفاده می‌کند</p>
+<p>Python,是一种面向对象的、直譯式的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。</p>
+<p>ބްލޫ ވޭލްގެ ދޫ މަތީގައި އެއްފަހަރާ 50 މީހުންނަށް ތިބެވިދާނެވެ. ބޮޑު މަހުގެ ދުލަކީ އެހާމެ ބޮޑު އެއްޗެކެވެ.</p>
+<p><strong>உருது</strong> 13ஆம் நூற்றாண்டில் உருவான ஒரு இந்தோ-ஐரோப்பிய மொழியாகும். உருது, ஹிந்தியுடன் சேர்த்து "ஹிந்துஸ்தானி" என அழைக்கப்படுகின்றது. மண்டரின், ஆங்கிலம் ஆகியவற்றுக்கு அடுத்தபடியாக மூன்றாவது கூடிய அளவு மக்களால் புரிந்து கொள்ளப்படக்கூடியது ஹிந்துஸ்தானியேயாகும். தாய் மொழியாகப் பேசுபவர்கள் எண்ணிக்கையின் அடிப்படையில் உருது உலகின் 20 ஆவது பெரிய மொழியாகும். 6 கோடி மக்கள் இதனைத் தாய் மொழியாகக் கொண்டுள்ளார்கள். இரண்டாவது மொழியாகக் கொண்டுள்ளவர்கள் உட்பட 11 கோடிப் பேர் இதனைப் பேசுகிறார்கள். உருது பாகிஸ்தானின் அரசகரும மொழியாகவும், இந்தியாவின் அரசகரும மொழிகளுள் ஒன்றாகவும் விளங்குகிறது.</p>
+<p>اردو ہندوآریائی زبانوں کی ہندويورپی شاخ کی ایک زبان ہے جو تيرھويں صدی ميں بر صغير ميں پيدا ہوئی ـ اردو پاکستان کی سرکاری زبان ہے اور بھارت کی سرکاری زبانوں ميں سے ايک ہے۔ اردو بھارت ميں 5 کروڑ اور پاکستان ميں 1 کروڑ لوگوں کی مادری زبان ہے مگر اسے بھارت اور پاکستان کے تقریباً 50 کروڑ لوگ بول اور سمجھ سکتے ھیں ۔ جن میں سے تقریباً 10.5 کروڑ لوگ اسے باقاعدہ بولتے ھیں۔</p>
+<h1>بايثون</h1>
+<p><strong>بايثون</strong> لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (OOP) وقابلة للتطوير بالإضافة إلى أنها مجانية و مفتوحة المصدر. صُنفت بالأساس كلغة تفسيرية ، بايثون مصممة أصلاً للأداء بعض المهام الخاصة أو المحدودة. إلا أنه يمكن استخدامها بايثون لإنجاز المشاريع الضخمه كأي لغة برمجية أخرى،  غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسهل اللغات البرمجية تعلماً.</p>
+<p>|||||||||||||||||||||||||||||THIS SHOULD BE RTL|||||||||||||||||||||||||</p>
+<p>(نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم. تم تطويرها بلغة C. أطلق فان رُزوم اسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون Monty Python.</p>
+<p>تتميز بايثون بمجتمعها النشط ، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة ، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من اجل برمجة الالعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره.</p>
+<h2>أمثلة</h2>
+<p>مثال Hello World!</p>
+<pre><code>print "Hello World!"
+</code></pre>
+<p>مثال لاستخراج المضروب Factorial :</p>
+<pre><code>num = 1
+x = raw_input('Insert the number please ')
+x = int(x)
+
+if x &gt; 69:
+ print 'Math Error !'
+else:
+ while x &gt; 1:
+  num *= x
+  x = x-1
+
+ print num
+</code></pre>
+<h2>وصلات خارجية</h2>
+<ul>
+<li><a href="http://www.python.org">الموقع الرسمي للغة بايثون</a></li>
+</ul>
+<p>بذرة حاس </p>
+<p><strong>Недвард «Нед» Фландерс</strong> (Nedward «Ned» Flanders) — вымышленный персонаж мультсериала «[Симпсоны][]», озвученный Гарри Ширером. Он и его семья живут по соседству от семьи Симпсонов. Набожный христианин, Нед является одним из столпов морали Спрингфилда. В эпизоде «Alone Again, Natura-Diddily»  он овдовел, его жена Мод погибла в результате несчастного случая. </p>
 <p>Нед был одним из первых персонажей в мультсериале, который не был членом семьи Симпсонов. Начиная с первых серий, он регулярно появляется в «Симпсонах». Считается, что Нед Фландерс был назван в честь улицы <em>Northeast Flanders St.</em> в <a href="http://www.portland.gov">Портленде</a>, Орегон, родном городе создателя мультсериала Мэтта Грейнинга]]. Надпись на указателе улицы <em>NE Flanders St.</em> хулиганы часто исправляли на <em>NED Flanders St.</em></p>
\ No newline at end of file
index dcf3b7b29fccf8e7ca84645ab4c3dfae4d6324b5..f11ff1cc601f3b5980279008e7b28743f8cb24a7 100644 (file)
@@ -1,68 +1,68 @@
-**Python**(パイソン)は、[Guido van Rossum](http://en.wikipedia.org/wiki/Guido_van_Rossum) によって作られたオープンソースのオブジェクト指向スクリプト言語。[Perl](http://ja.wikipedia.org/wiki/Perl)とともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』にちなんで名付けられた。 (Pythonには、爬虫類のニシキヘビの意味があり、Python言語のマスコットやアイコンとして使われることがある。)\r
-\r
-|||||||||||||||||||||||||||||THIS SHOULD BE LTR|||||||||||||||||||||||||\r
-\r
-|||||||||||||||||||||||||||||THIS SHOULD BE RTL||||||||||||||||||||||||| {@dir=rtl} \r
-\r
-\r
-(**بايثون** لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (THIS SHOULD BE LTR ) وقابلة للتطوير  {@dir=ltr}  بالإضافة إلى أنها مجانية و مفتوح \r
-\r
-\r
-\r
-\r
-\r
-پایتون زبان برنامه‌نویسی تفسیری و سطح بالا ، شی‌گرا و یک زبان برنامه‌نویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگی‌ها شبیه پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال است و از مدیریت خودکار حافظه استفاده می‌کند\r
-\r
-Python,是一种面向对象的、直譯式的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。\r
-\r
-ބްލޫ ވޭލްގެ ދޫ މަތީގައި އެއްފަހަރާ 50 މީހުންނަށް ތިބެވިދާނެވެ. ބޮޑު މަހުގެ ދުލަކީ އެހާމެ ބޮޑު އެއްޗެކެވެ.\r
-\r
-**உருது** 13ஆம் நூற்றாண்டில் உருவான ஒரு இந்தோ-ஐரோப்பிய மொழியாகும். உருது, ஹிந்தியுடன் சேர்த்து "ஹிந்துஸ்தானி" என அழைக்கப்படுகின்றது. மண்டரின், ஆங்கிலம் ஆகியவற்றுக்கு அடுத்தபடியாக மூன்றாவது கூடிய அளவு மக்களால் புரிந்து கொள்ளப்படக்கூடியது ஹிந்துஸ்தானியேயாகும். தாய் மொழியாகப் பேசுபவர்கள் எண்ணிக்கையின் அடிப்படையில் உருது உலகின் 20 ஆவது பெரிய மொழியாகும். 6 கோடி மக்கள் இதனைத் தாய் மொழியாகக் கொண்டுள்ளார்கள். இரண்டாவது மொழியாகக் கொண்டுள்ளவர்கள் உட்பட 11 கோடிப் பேர் இதனைப் பேசுகிறார்கள். உருது பாகிஸ்தானின் அரசகரும மொழியாகவும், இந்தியாவின் அரசகரும மொழிகளுள் ஒன்றாகவும் விளங்குகிறது.\r
-\r
-اردو ہندوآریائی زبانوں کی ہندويورپی شاخ کی ایک زبان ہے جو تيرھويں صدی ميں بر صغير ميں پيدا ہوئی ـ اردو پاکستان کی سرکاری زبان ہے اور بھارت کی سرکاری زبانوں ميں سے ايک ہے۔ اردو بھارت ميں 5 کروڑ اور پاکستان ميں 1 کروڑ لوگوں کی مادری زبان ہے مگر اسے بھارت اور پاکستان کے تقریباً 50 کروڑ لوگ بول اور سمجھ سکتے ھیں ۔ جن میں سے تقریباً 10.5 کروڑ لوگ اسے باقاعدہ بولتے ھیں۔\r
-\r
-بايثون\r
-=====\r
-\r
-**بايثون** لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (OOP) وقابلة للتطوير بالإضافة إلى أنها مجانية و مفتوحة المصدر. صُنفت بالأساس كلغة تفسيرية ، بايثون مصممة أصلاً للأداء بعض المهام الخاصة أو المحدودة. إلا أنه يمكن استخدامها بايثون لإنجاز المشاريع الضخمه كأي لغة برمجية أخرى،  غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسهل اللغات البرمجية تعلماً.\r
-\r
-|||||||||||||||||||||||||||||THIS SHOULD BE RTL|||||||||||||||||||||||||\r
-\r
-(نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم. تم تطويرها بلغة C. أطلق فان رُزوم اسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون Monty Python.\r
-\r
-تتميز بايثون بمجتمعها النشط ، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة ، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من اجل برمجة الالعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره.\r
-\r
-##أمثلة \r
-مثال Hello World!\r
-\r
-    print "Hello World!"\r
-\r
-\r
-مثال لاستخراج المضروب Factorial :\r
-\r
-    num = 1\r
-    x = raw_input('Insert the number please ')\r
-    x = int(x)\r
\r
-    if x > 69:\r
-     print 'Math Error !'\r
-    else:\r
-     while x > 1:\r
-      num *= x\r
-      x = x-1\r
\r
-     print num\r
-\r
-\r
-\r
-##وصلات خارجية \r
-* [الموقع الرسمي للغة بايثون](http://www.python.org)\r
-\r
- بذرة حاس \r
-\r
-\r
-**Недвард «Нед» Фландерс** (Nedward «Ned» Flanders) — вымышленный персонаж мультсериала «[Симпсоны][]», озвученный Гарри Ширером. Он и его семья живут по соседству от семьи Симпсонов. Набожный христианин, Нед является одним из столпов морали Спрингфилда. В эпизоде «Alone Again, Natura-Diddily»  он овдовел, его жена Мод погибла в результате несчастного случая. \r
-\r
-Нед был одним из первых персонажей в мультсериале, который не был членом семьи Симпсонов. Начиная с первых серий, он регулярно появляется в «Симпсонах». Считается, что Нед Фландерс был назван в честь улицы *Northeast Flanders St.* в [Портленде](http://www.portland.gov), Орегон, родном городе создателя мультсериала Мэтта Грейнинга]]. Надпись на указателе улицы *NE Flanders St.* хулиганы часто исправляли на _NED Flanders St._\r
-\r
-\r
+**Python**(パイソン)は、[Guido van Rossum](http://en.wikipedia.org/wiki/Guido_van_Rossum) によって作られたオープンソースのオブジェクト指向スクリプト言語。[Perl](http://ja.wikipedia.org/wiki/Perl)とともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』にちなんで名付けられた。 (Pythonには、爬虫類のニシキヘビの意味があり、Python言語のマスコットやアイコンとして使われることがある。)
+
+|||||||||||||||||||||||||||||THIS SHOULD BE LTR|||||||||||||||||||||||||
+
+|||||||||||||||||||||||||||||THIS SHOULD BE RTL||||||||||||||||||||||||| {@dir=rtl} 
+
+
+(**بايثون** لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (THIS SHOULD BE LTR ) وقابلة للتطوير  {@dir=ltr}  بالإضافة إلى أنها مجانية و مفتوح 
+
+
+
+
+
+پایتون زبان برنامه‌نویسی تفسیری و سطح بالا ، شی‌گرا و یک زبان برنامه‌نویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگی‌ها شبیه پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال است و از مدیریت خودکار حافظه استفاده می‌کند
+
+Python,是一种面向对象的、直譯式的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。
+
+ބްލޫ ވޭލްގެ ދޫ މަތީގައި އެއްފަހަރާ 50 މީހުންނަށް ތިބެވިދާނެވެ. ބޮޑު މަހުގެ ދުލަކީ އެހާމެ ބޮޑު އެއްޗެކެވެ.
+
+**உருது** 13ஆம் நூற்றாண்டில் உருவான ஒரு இந்தோ-ஐரோப்பிய மொழியாகும். உருது, ஹிந்தியுடன் சேர்த்து "ஹிந்துஸ்தானி" என அழைக்கப்படுகின்றது. மண்டரின், ஆங்கிலம் ஆகியவற்றுக்கு அடுத்தபடியாக மூன்றாவது கூடிய அளவு மக்களால் புரிந்து கொள்ளப்படக்கூடியது ஹிந்துஸ்தானியேயாகும். தாய் மொழியாகப் பேசுபவர்கள் எண்ணிக்கையின் அடிப்படையில் உருது உலகின் 20 ஆவது பெரிய மொழியாகும். 6 கோடி மக்கள் இதனைத் தாய் மொழியாகக் கொண்டுள்ளார்கள். இரண்டாவது மொழியாகக் கொண்டுள்ளவர்கள் உட்பட 11 கோடிப் பேர் இதனைப் பேசுகிறார்கள். உருது பாகிஸ்தானின் அரசகரும மொழியாகவும், இந்தியாவின் அரசகரும மொழிகளுள் ஒன்றாகவும் விளங்குகிறது.
+
+اردو ہندوآریائی زبانوں کی ہندويورپی شاخ کی ایک زبان ہے جو تيرھويں صدی ميں بر صغير ميں پيدا ہوئی ـ اردو پاکستان کی سرکاری زبان ہے اور بھارت کی سرکاری زبانوں ميں سے ايک ہے۔ اردو بھارت ميں 5 کروڑ اور پاکستان ميں 1 کروڑ لوگوں کی مادری زبان ہے مگر اسے بھارت اور پاکستان کے تقریباً 50 کروڑ لوگ بول اور سمجھ سکتے ھیں ۔ جن میں سے تقریباً 10.5 کروڑ لوگ اسے باقاعدہ بولتے ھیں۔
+
+بايثون
+=====
+
+**بايثون** لغة برمجة حديثة بسيطة، واضحة، سريعة ، تستخدم أسلوب البرمجة الكائنية (OOP) وقابلة للتطوير بالإضافة إلى أنها مجانية و مفتوحة المصدر. صُنفت بالأساس كلغة تفسيرية ، بايثون مصممة أصلاً للأداء بعض المهام الخاصة أو المحدودة. إلا أنه يمكن استخدامها بايثون لإنجاز المشاريع الضخمه كأي لغة برمجية أخرى،  غالباً ما يُنصح المبتدئين في ميدان البرمجة بتعلم هذه اللغة لأنها من بين أسهل اللغات البرمجية تعلماً.
+
+|||||||||||||||||||||||||||||THIS SHOULD BE RTL|||||||||||||||||||||||||
+
+(نشأت بايثون في مركز CWI (مركز العلوم والحاسب الآلي) بأمستردام على يد جويدو فان رُزوم. تم تطويرها بلغة C. أطلق فان رُزوم اسم "بايثون" على لغته تعبيرًا عن إعجابه بفِرقَة مسرحية هزلية شهيرة من بريطانيا، كانت تطلق على نفسها اسم مونتي بايثون Monty Python.
+
+تتميز بايثون بمجتمعها النشط ، كما أن لها الكثير من المكتبات البرمجية ذات الأغراض الخاصة والتي برمجها أشخاص من مجتمع هذه اللغة ، مثلاً مكتبة PyGame التي توفر مجموعه من الوظائف من اجل برمجة الالعاب. ويمكن لبايثون التعامل مع العديد من أنواع قواعد البيانات مثل MySQL وغيره.
+
+##أمثلة 
+مثال Hello World!
+
+    print "Hello World!"
+
+
+مثال لاستخراج المضروب Factorial :
+
+    num = 1
+    x = raw_input('Insert the number please ')
+    x = int(x)
+    if x > 69:
+     print 'Math Error !'
+    else:
+     while x > 1:
+      num *= x
+      x = x-1
+     print num
+
+
+
+##وصلات خارجية 
+* [الموقع الرسمي للغة بايثون](http://www.python.org)
+
+ بذرة حاس 
+
+
+**Недвард «Нед» Фландерс** (Nedward «Ned» Flanders) — вымышленный персонаж мультсериала «[Симпсоны][]», озвученный Гарри Ширером. Он и его семья живут по соседству от семьи Симпсонов. Набожный христианин, Нед является одним из столпов морали Спрингфилда. В эпизоде «Alone Again, Natura-Diddily»  он овдовел, его жена Мод погибла в результате несчастного случая. 
+
+Нед был одним из первых персонажей в мультсериале, который не был членом семьи Симпсонов. Начиная с первых серий, он регулярно появляется в «Симпсонах». Считается, что Нед Фландерс был назван в честь улицы *Northeast Flanders St.* в [Портленде](http://www.portland.gov), Орегон, родном городе создателя мультсериала Мэтта Грейнинга]]. Надпись на указателе улицы *NE Flanders St.* хулиганы часто исправляли на _NED Flanders St._
+
+
index 670c3fdfec27466a063e444b83e5c20b9b4476d7..966078c6c4fae206751dac8f8e2aa162bc879732 100644 (file)
@@ -1,3 +1,3 @@
-<p>aaaaaaaaaaa</p>\r
-<blockquote></blockquote>\r
+<p>aaaaaaaaaaa</p>
+<blockquote></blockquote>
 <p>bbbbbbbbbbb</p>
\ No newline at end of file
index ad0df6fffeb7185f2c9fe4621420109d6400cab0..75bfc74af1b313bfef802648573df4e39bca72a5 100644 (file)
@@ -1,6 +1,6 @@
-\r
-aaaaaaaaaaa\r
-\r
-> \r
-\r
-bbbbbbbbbbb\r
+
+aaaaaaaaaaa
+
+> 
+
+bbbbbbbbbbb
index 17ccacd59fea2472d81014c882d480edd26a981f..57a4c3631e687f89e46447e5e51846333586dc19 100644 (file)
@@ -1,61 +1,61 @@
-<p>Preserve blank lines in code blocks with tabs:</p>\r
-<pre><code>a code block\r
-\r
-two tabbed lines\r
-\r
-\r
-three tabbed lines\r
-\r
-\r
-\r
-four tabbed lines\r
-\r
-\r
-\r
-\r
-five tabbed lines\r
-\r
-\r
-\r
-\r
-\r
-six tabbed lines\r
-\r
-\r
-\r
-\r
-\r
-\r
-End of tabbed block\r
-</code></pre>\r
-<p>And without tabs:</p>\r
-<pre><code>a code block\r
-\r
-two blank lines\r
-\r
-\r
-three blank lines\r
-\r
-\r
-\r
-four blank lines\r
-\r
-\r
-\r
-\r
-five blank lines\r
-\r
-\r
-\r
-\r
-\r
-six blank lines\r
-\r
-\r
-\r
-\r
-\r
-\r
-End of block\r
-</code></pre>\r
+<p>Preserve blank lines in code blocks with tabs:</p>
+<pre><code>a code block
+
+two tabbed lines
+
+
+three tabbed lines
+
+
+
+four tabbed lines
+
+
+
+
+five tabbed lines
+
+
+
+
+
+six tabbed lines
+
+
+
+
+
+
+End of tabbed block
+</code></pre>
+<p>And without tabs:</p>
+<pre><code>a code block
+
+two blank lines
+
+
+three blank lines
+
+
+
+four blank lines
+
+
+
+
+five blank lines
+
+
+
+
+
+six blank lines
+
+
+
+
+
+
+End of block
+</code></pre>
 <p>End of document</p>
\ No newline at end of file
index d48b8f7afcbf3a65163ea7c0f1e16d6b49f9cee7..e7ae102727ab1d6c04d94b13bb09f4fdc43e6c0a 100644 (file)
@@ -1,73 +1,73 @@
-Preserve blank lines in code blocks with tabs:\r
-\r
-    a code block\r
-    \r
-    two tabbed lines\r
-    \r
-    \r
-    three tabbed lines\r
-    \r
-    \r
-    \r
-    four tabbed lines\r
-    \r
-    \r
-    \r
-    \r
-    five tabbed lines\r
-    \r
-    \r
-    \r
-    \r
-    \r
-    six tabbed lines\r
-    \r
-    \r
-    \r
-    \r
-    \r
-    \r
-    End of tabbed block\r
-    \r
-    \r
-    \r
-    \r
-    \r
-    \r
-And without tabs:\r
-\r
-    a code block\r
-\r
-    two blank lines\r
-\r
-\r
-    three blank lines\r
-\r
-\r
-\r
-    four blank lines\r
-\r
-\r
-\r
-\r
-    five blank lines\r
-\r
-\r
-\r
-\r
-\r
-    six blank lines\r
-\r
-\r
-\r
-\r
-\r
-\r
-    End of block\r
-\r
-\r
-\r
-\r
-\r
-\r
+Preserve blank lines in code blocks with tabs:
+
+    a code block
+    
+    two tabbed lines
+    
+    
+    three tabbed lines
+    
+    
+    
+    four tabbed lines
+    
+    
+    
+    
+    five tabbed lines
+    
+    
+    
+    
+    
+    six tabbed lines
+    
+    
+    
+    
+    
+    
+    End of tabbed block
+    
+    
+    
+    
+    
+    
+And without tabs:
+
+    a code block
+
+    two blank lines
+
+
+    three blank lines
+
+
+
+    four blank lines
+
+
+
+
+    five blank lines
+
+
+
+
+
+    six blank lines
+
+
+
+
+
+
+    End of block
+
+
+
+
+
+
 End of document
\ No newline at end of file
index a7363ea39fddbc7a180d4378736ce2ce85248336..b7a2fd328742c51916f03c8c5f3a4c89fbf5ab76 100644 (file)
@@ -1,16 +1,16 @@
-<section>\r
-    <header>\r
-        <hgroup>\r
-            <h1>Hello :-)</h1>\r
-        </hgroup>\r
-    </header>\r
-    <figure>\r
-        <img src="image.png" alt="" />\r
-        <figcaption>Caption</figcaption>\r
-    </figure>\r
-    <footer>\r
-        <p>Some footer</p>\r
-    </footer>\r
-</section>\r
-\r
+<section>
+    <header>
+        <hgroup>
+            <h1>Hello :-)</h1>
+        </hgroup>
+    </header>
+    <figure>
+        <img src="image.png" alt="" />
+        <figcaption>Caption</figcaption>
+    </figure>
+    <footer>
+        <p>Some footer</p>
+    </footer>
+</section>
+
 <figure></figure>
\ No newline at end of file
index 82f599f8dea06ad52cdd8320be23455e646683dd..2b24cade7c99f015a55c1134e651091264967c71 100644 (file)
@@ -1,14 +1,14 @@
-<section>\r
-    <header>\r
-        <hgroup>\r
-            <h1>Hello :-)</h1>\r
-        </hgroup>\r
-    </header>\r
-    <figure>\r
-        <img src="image.png" alt="" />\r
-        <figcaption>Caption</figcaption>\r
-    </figure>\r
-    <footer>\r
-        <p>Some footer</p>\r
-    </footer>\r
-</section><figure></figure>\r
+<section>
+    <header>
+        <hgroup>
+            <h1>Hello :-)</h1>
+        </hgroup>
+    </header>
+    <figure>
+        <img src="image.png" alt="" />
+        <figcaption>Caption</figcaption>
+    </figure>
+    <footer>
+        <p>Some footer</p>
+    </footer>
+</section><figure></figure>
index c60805b6f3644e275e644197f43fb6e0c5df37eb..d1c9efc35cc424c875ffbbd4d05b25f99c986b0b 100644 (file)
@@ -1,27 +1,27 @@
-<blockquote>\r
-Raw HTML processing should not confuse this with the blockquote below\r
-</blockquote>\r
-\r
-<div id="current-content">\r
-    <div id="primarycontent" class="hfeed">\r
-        <div id="post-">\r
-            <div class="page-head">\r
-                <h2>Header2</h2>\r
-            </div>\r
-            <div class="entry-content">\r
-                <h3>Header3</h3>\r
-                    <p>Paragraph</p>\r
-                <h3>Header3</h3>\r
-                    <p>Paragraph</p>\r
-                    <blockquote>\r
-                        <p>Paragraph</p>\r
-                    </blockquote>\r
-                    <p>Paragraph</p>\r
-                    <p><a href="/somelink">linktext</a></p>\r
-            </div>\r
-        </div><!-- #post-ID -->\r
-        <!-- add contact form here -->\r
-    </div><!-- #primarycontent -->\r
-</div>\r
-\r
+<blockquote>
+Raw HTML processing should not confuse this with the blockquote below
+</blockquote>
+
+<div id="current-content">
+    <div id="primarycontent" class="hfeed">
+        <div id="post-">
+            <div class="page-head">
+                <h2>Header2</h2>
+            </div>
+            <div class="entry-content">
+                <h3>Header3</h3>
+                    <p>Paragraph</p>
+                <h3>Header3</h3>
+                    <p>Paragraph</p>
+                    <blockquote>
+                        <p>Paragraph</p>
+                    </blockquote>
+                    <p>Paragraph</p>
+                    <p><a href="/somelink">linktext</a></p>
+            </div>
+        </div><!-- #post-ID -->
+        <!-- add contact form here -->
+    </div><!-- #primarycontent -->
+</div>
+
 <!-- #current-content -->
\ No newline at end of file
index 6471fa6b79a0382ea0c84f01abb10f6044ad6afe..b2603cc8809b969265e7acda03f2642bcecce62e 100644 (file)
@@ -1,24 +1,24 @@
-<blockquote>\r
-Raw HTML processing should not confuse this with the blockquote below\r
-</blockquote>\r
-<div id="current-content">\r
-    <div id="primarycontent" class="hfeed">\r
-        <div id="post-">\r
-            <div class="page-head">\r
-                <h2>Header2</h2>\r
-            </div>\r
-            <div class="entry-content">\r
-                <h3>Header3</h3>\r
-                    <p>Paragraph</p>\r
-                <h3>Header3</h3>\r
-                    <p>Paragraph</p>\r
-                    <blockquote>\r
-                        <p>Paragraph</p>\r
-                    </blockquote>\r
-                    <p>Paragraph</p>\r
-                    <p><a href="/somelink">linktext</a></p>\r
-            </div>\r
-        </div><!-- #post-ID -->\r
-        <!-- add contact form here -->\r
-    </div><!-- #primarycontent -->\r
-</div><!-- #current-content -->\r
+<blockquote>
+Raw HTML processing should not confuse this with the blockquote below
+</blockquote>
+<div id="current-content">
+    <div id="primarycontent" class="hfeed">
+        <div id="post-">
+            <div class="page-head">
+                <h2>Header2</h2>
+            </div>
+            <div class="entry-content">
+                <h3>Header3</h3>
+                    <p>Paragraph</p>
+                <h3>Header3</h3>
+                    <p>Paragraph</p>
+                    <blockquote>
+                        <p>Paragraph</p>
+                    </blockquote>
+                    <p>Paragraph</p>
+                    <p><a href="/somelink">linktext</a></p>
+            </div>
+        </div><!-- #post-ID -->
+        <!-- add contact form here -->
+    </div><!-- #primarycontent -->
+</div><!-- #current-content -->
index d0bc7e8e7476a8422174a311f8a62a42b103f2cc..dce68bc197b21ffa969076c444a030efffc55ac7 100644 (file)
@@ -1,10 +1,10 @@
-<p>foo</p>\r
-\r
-<ul>\r
-<li>\r
-<p>bar</p>\r
-</li>\r
-<li>\r
-<p>baz</p>\r
-</li>\r
+<p>foo</p>
+
+<ul>
+<li>
+<p>bar</p>
+</li>
+<li>
+<p>baz</p>
+</li>
 </ul>
\ No newline at end of file
index 23353fbd4ff4447e148a472f661c2ef5561ea5b4..d108c50e3802dbc7610bcbd92319a46adba071fc 100644 (file)
@@ -1,9 +1,9 @@
-<p>foo</p>\r
-<ul>\r
-<li>\r
-<p>bar</p>\r
-</li>\r
-<li>\r
-<p>baz</p>\r
-</li>\r
-</ul>\r
+<p>foo</p>
+<ul>
+<li>
+<p>bar</p>
+</li>
+<li>
+<p>baz</p>
+</li>
+</ul>
index 405a8c140f7b091f1f01528e17d5df9c38ca1f81..a138933673a795179856a7d3b6241dd2c1c93c32 100644 (file)
@@ -1,15 +1,15 @@
-<p>Paragraph</p>\r
-<blockquote>\r
-<p>Block quote\r
-Yep</p>\r
-</blockquote>\r
-<p>Paragraph</p>\r
-<blockquote>\r
-<p>no space\r
-Nope</p>\r
-</blockquote>\r
-<p>Paragraph one</p>\r
-<blockquote>\r
-<p>blockquote\r
-More blockquote.</p>\r
+<p>Paragraph</p>
+<blockquote>
+<p>Block quote
+Yep</p>
+</blockquote>
+<p>Paragraph</p>
+<blockquote>
+<p>no space
+Nope</p>
+</blockquote>
+<p>Paragraph one</p>
+<blockquote>
+<p>blockquote
+More blockquote.</p>
 </blockquote>
\ No newline at end of file
index 7dbba6e88e6bd6df44c84030715b2a140fffab7b..529e5a968901284a828fc56f4de0ae8569ebd840 100644 (file)
@@ -1,11 +1,11 @@
-Paragraph\r
-> Block quote\r
-> Yep\r
-\r
-Paragraph\r
->no space\r
->Nope\r
-\r
-Paragraph one\r
-> blockquote\r
-More blockquote.\r
+Paragraph
+> Block quote
+> Yep
+
+Paragraph
+>no space
+>Nope
+
+Paragraph one
+> blockquote
+More blockquote.
index 2b2ef7911cdd4794289811f0afacb928c244aa1d..61c1a3c54b6c4493c7c9c3cc205c29a3bdea7773 100644 (file)
@@ -1,16 +1,16 @@
-<p>This is a paragraph.</p>\r
-<hr />\r
-<blockquote>\r
-<p>Block quote with horizontal lines.</p>\r
-<hr />\r
-<blockquote>\r
-<p>Double block quote.</p>\r
-<hr />\r
-<p>End of the double block quote.</p>\r
-</blockquote>\r
-<p>A new paragraph.\r
-With multiple lines.\r
-Even a lazy line.</p>\r
-<hr />\r
-<p>The last line.</p>\r
+<p>This is a paragraph.</p>
+<hr />
+<blockquote>
+<p>Block quote with horizontal lines.</p>
+<hr />
+<blockquote>
+<p>Double block quote.</p>
+<hr />
+<p>End of the double block quote.</p>
+</blockquote>
+<p>A new paragraph.
+With multiple lines.
+Even a lazy line.</p>
+<hr />
+<p>The last line.</p>
 </blockquote>
\ No newline at end of file
index 8ebf6bc3a0599789f20431b859eb6ff96a476c16..ef9c44fb47e24f40a6ddcdfb34130f880d3e9e61 100644 (file)
@@ -1,21 +1,21 @@
-This is a paragraph.\r
-\r
----\r
-\r
-> Block quote with horizontal lines.\r
-\r
-> ---\r
-\r
-> > Double block quote.\r
-\r
-> > ---\r
-\r
-> > End of the double block quote.\r
-\r
-> A new paragraph.\r
-> With multiple lines.\r
-Even a lazy line.\r
-\r
-> ---\r
-\r
-> The last line.\r
+This is a paragraph.
+
+---
+
+> Block quote with horizontal lines.
+
+> ---
+
+> > Double block quote.
+
+> > ---
+
+> > End of the double block quote.
+
+> A new paragraph.
+> With multiple lines.
+Even a lazy line.
+
+> ---
+
+> The last line.
index 6cdab879224a853ec26031c7f7f24455d849096f..4481d51dbfdcf15739dee4dfdeaf1c1fbd3d9c5c 100644 (file)
@@ -1,24 +1,24 @@
-<blockquote>\r
-<p>blockquote with no whitespace before <code>&gt;</code>.</p>\r
-</blockquote>\r
-<p>foo</p>\r
-<blockquote>\r
-<p>blockquote with one space before the <code>&gt;</code>.</p>\r
-</blockquote>\r
-<p>bar</p>\r
-<blockquote>\r
-<p>blockquote with 2 spaces.</p>\r
-</blockquote>\r
-<p>baz</p>\r
-<blockquote>\r
-<p>this has three spaces so its a paragraph.</p>\r
-</blockquote>\r
-<p>blah</p>\r
-<pre><code>&gt; this one had four so it's a code block.\r
-</code></pre>\r
-<blockquote>\r
-<blockquote>\r
-<p>this nested blockquote has 0 on level one and 3 (one after the first <code>&gt;</code> + 2 more) on level 2.</p>\r
-<p>and this has 4 on level 2 - another code block.</p>\r
-</blockquote>\r
+<blockquote>
+<p>blockquote with no whitespace before <code>&gt;</code>.</p>
+</blockquote>
+<p>foo</p>
+<blockquote>
+<p>blockquote with one space before the <code>&gt;</code>.</p>
+</blockquote>
+<p>bar</p>
+<blockquote>
+<p>blockquote with 2 spaces.</p>
+</blockquote>
+<p>baz</p>
+<blockquote>
+<p>this has three spaces so its a paragraph.</p>
+</blockquote>
+<p>blah</p>
+<pre><code>&gt; this one had four so it's a code block.
+</code></pre>
+<blockquote>
+<blockquote>
+<p>this nested blockquote has 0 on level one and 3 (one after the first <code>&gt;</code> + 2 more) on level 2.</p>
+<p>and this has 4 on level 2 - another code block.</p>
+</blockquote>
 </blockquote>
\ No newline at end of file
index a1fc6caaf4d008f2ec0a41138c5fea7666f71011..be3ff90c10c2a3e45303bb13d5ff6ed4c6df15a9 100644 (file)
@@ -1,21 +1,21 @@
-> blockquote with no whitespace before `>`.\r
-\r
-foo\r
-\r
- > blockquote with one space before the `>`.\r
-\r
-bar\r
-\r
-  > blockquote with 2 spaces.\r
-\r
-baz\r
-\r
-   > this has three spaces so its a paragraph.\r
-\r
-blah\r
-\r
-    > this one had four so it's a code block.\r
-\r
->   > this nested blockquote has 0 on level one and 3 (one after the first `>` + 2 more) on level 2.\r
-\r
->    > and this has 4 on level 2 - another code block.\r
+> blockquote with no whitespace before `>`.
+
+foo
+
+ > blockquote with one space before the `>`.
+
+bar
+
+  > blockquote with 2 spaces.
+
+baz
+
+   > this has three spaces so its a paragraph.
+
+blah
+
+    > this one had four so it's a code block.
+
+>   > this nested blockquote has 0 on level one and 3 (one after the first `>` + 2 more) on level 2.
+
+>    > and this has 4 on level 2 - another code block.
index c0fa63ed86def505a8287c8f2892afd96c9de86f..a07f4411e0fbc0aaa32b5a910d7d62b5bfc2546e 100644 (file)
@@ -1 +1 @@
-**bold [link](http://example.com)**\r
+**bold [link](http://example.com)**
index 12777f178dcd36c9aa6ffcfe3a9608417d09d14a..08563a50cb4847b4749e930342c0674e6927ad0f 100644 (file)
@@ -1,11 +1,11 @@
-<p>Output:</p>\r
-<pre><code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.\r
-Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;\r
-\r
-&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.\r
-Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;\r
-</code></pre>\r
-<h2>Lists</h2>\r
-<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,\r
-<code>+</code>, and <code>-</code>) as list markers. These three markers are\r
+<p>Output:</p>
+<pre><code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.
+Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;
+
+&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.
+Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;
+</code></pre>
+<h2>Lists</h2>
+<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,
+<code>+</code>, and <code>-</code>) as list markers. These three markers are
 interchangable; this:</p>
\ No newline at end of file
index b5f8430d98a8036a375f7b007bde17474dde0553..59d29e0c015866f6a6f51bb8d8073784faad3f36 100644 (file)
@@ -1,16 +1,16 @@
-Output:\r
-\r
-    <p>Some of these words <em>are emphasized</em>.\r
-    Some of these words <em>are emphasized also</em>.</p>\r
-\r
-    <p>Use two asterisks for <strong>strong emphasis</strong>.\r
-    Or, if you prefer, <strong>use two underscores instead</strong>.</p>\r
-\r
-\r
-\r
-## Lists ##\r
-\r
-Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,\r
-`+`, and `-`) as list markers. These three markers are\r
-interchangable; this:\r
-\r
+Output:
+
+    <p>Some of these words <em>are emphasized</em>.
+    Some of these words <em>are emphasized also</em>.</p>
+
+    <p>Use two asterisks for <strong>strong emphasis</strong>.
+    Or, if you prefer, <strong>use two underscores instead</strong>.</p>
+
+
+
+## Lists ##
+
+Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,
+`+`, and `-`) as list markers. These three markers are
+interchangable; this:
+
index da7d7a8518141c8ef5935078aad96c08211c2c97..f48a612035443d981717b2465ece656f8f11aae1 100644 (file)
@@ -1,60 +1,60 @@
-<p>[x\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
+<p>[x
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
 xxx xxx xxx xxx xxx xxx xxx xxx</p>
\ No newline at end of file
index d08cb2f545b1de4ebdb6aa371dd59a978719c9eb..545e0610ca4745bde6324057e4678ccc3767fa65 100644 (file)
@@ -1,61 +1,61 @@
-\r
-[x\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
-xxx xxx xxx xxx xxx xxx xxx xxx\r
+
+[x
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
+xxx xxx xxx xxx xxx xxx xxx xxx
index f116211c808d65a6f9051e04c84ef94804d8f835..3677139ffe97c9d1bc3dabc43f6140c02daa0df3 100644 (file)
@@ -1,9 +1,9 @@
-<p><img alt="alt" src="local-img.jpg" />\r
-<img alt="alt" src="local-img.jpg" title="" />\r
-<img alt="alt" src="local-img.jpg" title="normal title" /></p>\r
-<p><img alt="alt" src="local-img.jpg" title="(just title in brackets)" />\r
-<img alt="alt" src="local-img.jpg" title="title with brackets (I think)" /></p>\r
-<p><img alt="alt" src="local-img.jpg" title="(" />\r
-<img alt="alt" src="local-img.jpg" title="(open only" />\r
-<img alt="alt" src="local-img.jpg" title=")" />\r
+<p><img alt="alt" src="local-img.jpg" />
+<img alt="alt" src="local-img.jpg" title="" />
+<img alt="alt" src="local-img.jpg" title="normal title" /></p>
+<p><img alt="alt" src="local-img.jpg" title="(just title in brackets)" />
+<img alt="alt" src="local-img.jpg" title="title with brackets (I think)" /></p>
+<p><img alt="alt" src="local-img.jpg" title="(" />
+<img alt="alt" src="local-img.jpg" title="(open only" />
+<img alt="alt" src="local-img.jpg" title=")" />
 <img alt="alt" src="local-img.jpg" title="close only)" /></p>
\ No newline at end of file
index 0ba42d34a69400945c50af341440c8f69fff7303..01fcd4eb2cfdf6c52bfa6ea4c5036747102bebd7 100644 (file)
@@ -1,12 +1,12 @@
-![alt](local-img.jpg)\r
-![alt](local-img.jpg "")\r
-![alt](local-img.jpg "normal title")\r
-\r
-![alt](local-img.jpg "(just title in brackets)")\r
-![alt](local-img.jpg "title with brackets (I think)")\r
-\r
-![alt](local-img.jpg "(")\r
-![alt](local-img.jpg "(open only")\r
-![alt](local-img.jpg ")")\r
-![alt](local-img.jpg "close only)")\r
-\r
+![alt](local-img.jpg)
+![alt](local-img.jpg "")
+![alt](local-img.jpg "normal title")
+
+![alt](local-img.jpg "(just title in brackets)")
+![alt](local-img.jpg "title with brackets (I think)")
+
+![alt](local-img.jpg "(")
+![alt](local-img.jpg "(open only")
+![alt](local-img.jpg ")")
+![alt](local-img.jpg "close only)")
+
index 0fa9ef64b12428f5b409a092612731ebe6488e59..1fb0b7c4cd4b57efb28468e04461cb0a376897a0 100644 (file)
@@ -1,2 +1,2 @@
-<pre><code>print "This is a code block."\r
+<pre><code>print "This is a code block."
 </code></pre>
\ No newline at end of file
index ca75e0d0a3f6c610adf160abc1e7b2f824b89183..952614df139f8f5fc10fa48c3a8b9ac54442fe35 100644 (file)
@@ -1 +1 @@
-    print "This is a code block."\r
+    print "This is a code block."
index c54ab5577d10f527e8d0cd65400a0700d0fec2cc..2240ab9d3ceedec1e073935cf652be4ff5fb29f0 100644 (file)
@@ -1,9 +1,9 @@
-<p>X&lt;0</p>\r
-<p>X&gt;0</p>\r
-<!-- A comment -->\r
-\r
-<div>as if</div>\r
-\r
-<!-- comment -->\r
-\r
+<p>X&lt;0</p>
+<p>X&gt;0</p>
+<!-- A comment -->
+
+<div>as if</div>
+
+<!-- comment -->
+
 <p><strong>no blank line</strong></p>
\ No newline at end of file
index 2fb82e56f2529e5d06cebb1256e07197fb2ef409..d9186f01bb7e43a9dc504b0cd903113f096fbf41 100644 (file)
@@ -1,10 +1,10 @@
-X<0\r
-\r
-X>0\r
-\r
-<!-- A comment -->\r
-\r
-<div>as if</div>\r
-\r
-<!-- comment -->\r
-__no blank line__\r
+X<0
+
+X>0
+
+<!-- A comment -->
+
+<div>as if</div>
+
+<!-- comment -->
+__no blank line__
index 4ab484c38fed36dc05aae35908d16c281bcb2f2e..cb6a759e0842b048ab0d13b0ab7203cf8ee7dd98 100644 (file)
@@ -1,10 +1,10 @@
-<div id="sidebar">\r
-\r
-   _foo_\r
-\r
-</div>\r
-\r
-<p>And now in uppercase:</p>\r
-<DIV>\r
-foo\r
+<div id="sidebar">
+
+   _foo_
+
+</div>
+
+<p>And now in uppercase:</p>
+<DIV>
+foo
 </DIV>
\ No newline at end of file
index d9845d38720c38078cc5b9000950c971b0c0fe2d..4ff972e2e9f48727085ece773c9535f844a9ce96 100644 (file)
@@ -1,11 +1,11 @@
-<div id="sidebar">\r
-\r
-   _foo_\r
-\r
-</div>\r
-\r
-And now in uppercase:\r
-\r
-<DIV>\r
-foo\r
-</DIV>\r
+<div id="sidebar">
+
+   _foo_
+
+</div>
+
+And now in uppercase:
+
+<DIV>
+foo
+</DIV>
index 32f17beb24b3383efaf92a25df76dbb9cc29e493..a7593c5171027b6aa647f8aa802d6d6d4e72b90d 100644 (file)
@@ -1,13 +1,13 @@
-<h1>Title</h1>\r
-<ul>\r
-<li><em><a href="http://packages.python.org/Markdown/">Python in Markdown</a> by some\r
-    great folks</em> - This <em>does</em> work as expected.</li>\r
-<li><em><a href="http://packages.python.org/Markdown/">Python in Markdown</a> by some\r
-    great folks</em> - This <em>does</em> work as expected.</li>\r
-<li><a href="http://packages.python.org/Markdown/"><em>Python in Markdown</em></a> by some\r
-    great folks - This <em>does</em> work as expected.</li>\r
-<li><a href="http://packages.python.org/Markdown/"><em>Python in Markdown</em></a> <em>by some\r
-    great folks</em> - This <em>does</em> work as expected.</li>\r
-</ul>\r
-<p><em><a href="http://packages.python.org/Markdown/">Python in Markdown</a> by some\r
+<h1>Title</h1>
+<ul>
+<li><em><a href="https://pythonhosted.org/Markdown/">Python in Markdown</a> by some
+    great folks</em> - This <em>does</em> work as expected.</li>
+<li><em><a href="https://pythonhosted.org/Markdown/">Python in Markdown</a> by some
+    great folks</em> - This <em>does</em> work as expected.</li>
+<li><a href="https://pythonhosted.org/Markdown/"><em>Python in Markdown</em></a> by some
+    great folks - This <em>does</em> work as expected.</li>
+<li><a href="https://pythonhosted.org/Markdown/"><em>Python in Markdown</em></a> <em>by some
+    great folks</em> - This <em>does</em> work as expected.</li>
+</ul>
+<p><em><a href="https://pythonhosted.org/Markdown/">Python in Markdown</a> by some
 great folks</em> - This <em>does</em> work as expected.</p>
\ No newline at end of file
index cd8f4d7d726001863ba512a602a87388ad822e33..de04d3b7cffdb96d3d595ee85e576787c8ff47f7 100644 (file)
@@ -1,14 +1,14 @@
-# Title\r
-\r
-  - *[Python in Markdown](http://packages.python.org/Markdown/) by some\r
-    great folks* - This *does* work as expected.\r
-  - _[Python in Markdown](http://packages.python.org/Markdown/) by some\r
-    great folks_ - This *does* work as expected.\r
-  - [_Python in Markdown_](http://packages.python.org/Markdown/) by some\r
-    great folks - This *does* work as expected.\r
-  - [_Python in Markdown_](http://packages.python.org/Markdown/) _by some\r
-    great folks_ - This *does* work as expected.\r
-\r
-_[Python in Markdown](http://packages.python.org/Markdown/) by some\r
-great folks_ - This *does* work as expected.\r
-\r
+# Title
+
+  - *[Python in Markdown](https://pythonhosted.org/Markdown/) by some
+    great folks* - This *does* work as expected.
+  - _[Python in Markdown](https://pythonhosted.org/Markdown/) by some
+    great folks_ - This *does* work as expected.
+  - [_Python in Markdown_](https://pythonhosted.org/Markdown/) by some
+    great folks - This *does* work as expected.
+  - [_Python in Markdown_](https://pythonhosted.org/Markdown/) _by some
+    great folks_ - This *does* work as expected.
+
+_[Python in Markdown](https://pythonhosted.org/Markdown/) by some
+great folks_ - This *does* work as expected.
+
index 79cb284df681454bdcb5b871e5bf4471c4df9dab..776381b98c803de1dfdc9cef78d9970497400dd4 100644 (file)
@@ -1,11 +1,11 @@
-<p>One asterisk: *</p>\r
-<p>One underscore: _</p>\r
-<p>Two asterisks: **</p>\r
-<p>With spaces: * *</p>\r
-<p>Two underscores __</p>\r
-<p>with spaces: _ _</p>\r
-<p>three asterisks: ***</p>\r
-<p>with spaces: * * *</p>\r
-<p>three underscores: ___</p>\r
-<p>with spaces: _ _ _</p>\r
+<p>One asterisk: *</p>
+<p>One underscore: _</p>
+<p>Two asterisks: **</p>
+<p>With spaces: * *</p>
+<p>Two underscores __</p>
+<p>with spaces: _ _</p>
+<p>three asterisks: ***</p>
+<p>with spaces: * * *</p>
+<p>three underscores: ___</p>
+<p>with spaces: _ _ _</p>
 <p>One char: <em>a</em></p>
\ No newline at end of file
index 76093170d57ea210fc70c16d15d7a24bd6fd1be9..12856652773c6a08727e5221c7cab3dae818b72d 100644 (file)
@@ -1,21 +1,21 @@
-One asterisk: *\r
-\r
-One underscore: _\r
-\r
-Two asterisks: **\r
-\r
-With spaces: * *\r
-\r
-Two underscores __\r
-\r
-with spaces: _ _\r
-\r
-three asterisks: ***\r
-\r
-with spaces: * * *\r
-\r
-three underscores: ___\r
-\r
-with spaces: _ _ _\r
-\r
-One char: _a_\r
+One asterisk: *
+
+One underscore: _
+
+Two asterisks: **
+
+With spaces: * *
+
+Two underscores __
+
+with spaces: _ _
+
+three asterisks: ***
+
+with spaces: * * *
+
+three underscores: ___
+
+with spaces: _ _ _
+
+One char: _a_
index c82f46b60c100b4caff4b1f6f15f9e4821ccc2d2..8ef799f44489ac23275ba59576fe3d5b90fd69d6 100644 (file)
@@ -1,2 +1,3 @@
-<p>asdfasdfadsfasd <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#117;&#114;&#105;&#64;&#102;&#114;&#101;&#101;&#119;&#105;&#115;&#100;&#111;&#109;&#46;&#111;&#114;&#103;">&#121;&#117;&#114;&#105;&#64;&#102;&#114;&#101;&#101;&#119;&#105;&#115;&#100;&#111;&#109;&#46;&#111;&#114;&#103;</a> or you can say \r
-instead <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#117;&#114;&#105;&#64;&#102;&#114;&#101;&#101;&#119;&#105;&#115;&#100;&#111;&#109;&#46;&#111;&#114;&#103;">&#121;&#117;&#114;&#105;&#64;&#102;&#114;&#101;&#101;&#119;&#105;&#115;&#100;&#111;&#109;&#46;&#111;&#114;&#103;</a></p>
\ No newline at end of file
+<p>asdfasdfadsfasd <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#117;&#114;&#105;&#64;&#102;&#114;&#101;&#101;&#119;&#105;&#115;&#100;&#111;&#109;&#46;&#111;&#114;&#103;">&#121;&#117;&#114;&#105;&#64;&#102;&#114;&#101;&#101;&#119;&#105;&#115;&#100;&#111;&#109;&#46;&#111;&#114;&#103;</a> or you can say 
+instead <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#117;&#114;&#105;&#64;&#102;&#114;&#101;&#101;&#119;&#105;&#115;&#100;&#111;&#109;&#46;&#111;&#114;&#103;">&#121;&#117;&#114;&#105;&#64;&#102;&#114;&#101;&#101;&#119;&#105;&#115;&#100;&#111;&#109;&#46;&#111;&#114;&#103;</a></p>
+<p><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#98;&#111;&#98;&#38;&#115;&#117;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;">&#98;&#111;&#98;&amp;&#115;&#117;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;</a></p>
\ No newline at end of file
index 8c0117a6bc85a4da7e26283155cf6132594a6ff6..c557c7335c0f0a22e5e4bc67dea943ad66c61274 100644 (file)
@@ -1,3 +1,5 @@
-\r
-asdfasdfadsfasd <yuri@freewisdom.org> or you can say \r
-instead <mailto:yuri@freewisdom.org>\r
+
+asdfasdfadsfasd <yuri@freewisdom.org> or you can say 
+instead <mailto:yuri@freewisdom.org>
+
+<bob&sue@example.com>
index 79e4981e1f35c5ad4d1f89e38b7a4a0c504b465d..b821fb1f22912f0582de30adc2995084a3585e56 100644 (file)
@@ -1,12 +1,12 @@
-<p><span id="e116142240">[javascript protected email address]</span>\r
-<script type="text/javascript">\r
-    var a="gqMjyw7lZCaKk6p0J3uAUYS1.dbIW2hXzDHmiVNotOPRe_Ev@c4Gs58+LBr-F9QTfxn";\r
-    var b=a.split("").sort().join("");\r
-    var c="F_-F6F_-FMe_";\r
-    var d="";\r
-    for(var e=0;e<c.length;e++)\r
-    d+=b.charAt(a.indexOf(c.charAt(e)));\r
-        document\r
-            .getElementById("e116142240")\r
-            .innerHTML="<a href=\"mailto:"+d+"\">"+d+"</a>";\r
+<p><span id="e116142240">[javascript protected email address]</span>
+<script type="text/javascript">
+    var a="gqMjyw7lZCaKk6p0J3uAUYS1.dbIW2hXzDHmiVNotOPRe_Ev@c4Gs58+LBr-F9QTfxn";
+    var b=a.split("").sort().join("");
+    var c="F_-F6F_-FMe_";
+    var d="";
+    for(var e=0;e<c.length;e++)
+    d+=b.charAt(a.indexOf(c.charAt(e)));
+        document
+            .getElementById("e116142240")
+            .innerHTML="<a href=\"mailto:"+d+"\">"+d+"</a>";
 </script></p>
\ No newline at end of file
index 07e82fb78eced2353add7d40816227e914ce7de7..ca917c88c84160e331859560ffca8658428c3ed6 100644 (file)
@@ -1,12 +1,12 @@
-<span id="e116142240">[javascript protected email address]</span>\r
-<script type="text/javascript">\r
-    var a="gqMjyw7lZCaKk6p0J3uAUYS1.dbIW2hXzDHmiVNotOPRe_Ev@c4Gs58+LBr-F9QTfxn";\r
-    var b=a.split("").sort().join("");\r
-    var c="F_-F6F_-FMe_";\r
-    var d="";\r
-    for(var e=0;e<c.length;e++)\r
-    d+=b.charAt(a.indexOf(c.charAt(e)));\r
-        document\r
-            .getElementById("e116142240")\r
-            .innerHTML="<a href=\"mailto:"+d+"\">"+d+"</a>";\r
-</script>\r
+<span id="e116142240">[javascript protected email address]</span>
+<script type="text/javascript">
+    var a="gqMjyw7lZCaKk6p0J3uAUYS1.dbIW2hXzDHmiVNotOPRe_Ev@c4Gs58+LBr-F9QTfxn";
+    var b=a.split("").sort().join("");
+    var c="F_-F6F_-FMe_";
+    var d="";
+    for(var e=0;e<c.length;e++)
+    d+=b.charAt(a.indexOf(c.charAt(e)));
+        document
+            .getElementById("e116142240")
+            .innerHTML="<a href=\"mailto:"+d+"\">"+d+"</a>";
+</script>
index 1f664e10af84a93d2f11f24ac06e7a7c5b1cd7b1..b2a7c969c237737ff04b419028f3d2904ad6dbda 100644 (file)
@@ -1,3 +1,4 @@
-<p>Backslashed in links:</p>\r
-<p><a href="/query?q=go:GO\:0000307">q=go:GO\:0000307</a></p>\r
-<p><a href="/query?q=go:GO\:0000308" title="/query?q=go:GO\:0000308">q=go:GO\:0000308</a></p>
\ No newline at end of file
+<p>Backslashed in links:</p>
+<p><a href="/query?q=go:GO\:0000307">q=go:GO\:0000307</a></p>
+<p><a href="/query?q=go:GO\:0000308" title="/query?q=go:GO\:0000308">q=go:GO\:0000308</a></p>
+<p>a \non-escaped char.</p>
\ No newline at end of file
index c1be56c080dde321d6d2c2ee478cb8040e029aa5..c64ab26d3857579802c5aeb82a501b86191bdd3e 100644 (file)
@@ -1,7 +1,9 @@
-Backslashed in links:\r
-\r
-[q=go:GO\\:0000307](/query?q=go:GO\\:0000307)\r
-\r
-[q=go:GO\\:0000308][foo]\r
-\r
-[foo]: /query?q=go:GO\:0000308 "/query?q=go:GO\:0000308"\r
+Backslashed in links:
+
+[q=go:GO\\:0000307](/query?q=go:GO\\:0000307)
+
+[q=go:GO\\:0000308][foo]
+
+[foo]: /query?q=go:GO\:0000308 "/query?q=go:GO\:0000308"
+
+a \non-escaped char.
\ No newline at end of file
index 6a0b02c3ca73b34f193503625e6bd894a9f970cb..313db8fcb2ab2529aee78a7c4901cdd3482cff77 100644 (file)
@@ -1,11 +1,11 @@
-<ol>\r
-<li>this starts a list <em>with</em> numbers</li>\r
-<li>this will show as number "2"</li>\r
-<li>this will show as number "3."</li>\r
-<li>any number, +, -, or * will keep the list going.</li>\r
-</ol>\r
-<p>aaaaaaaaaaaaaaa</p>\r
-<ul>\r
-<li>now a normal list</li>\r
-<li>and more</li>\r
+<ol>
+<li>this starts a list <em>with</em> numbers</li>
+<li>this will show as number "2"</li>
+<li>this will show as number "3."</li>
+<li>any number, +, -, or * will keep the list going.</li>
+</ol>
+<p>aaaaaaaaaaaaaaa</p>
+<ul>
+<li>now a normal list</li>
+<li>and more</li>
 </ul>
\ No newline at end of file
index d46f57fec50d11d44803aa217f24eda7291bae65..48ecd6084052b1c4a468d6bca760a58fd6530955 100644 (file)
@@ -1,9 +1,9 @@
-1. this starts a list *with* numbers\r
-+  this will show as number "2"\r
-*  this will show as number "3."\r
-9. any number, +, -, or * will keep the list going.\r
-\r
-aaaaaaaaaaaaaaa\r
-\r
-- now a normal list\r
-- and more\r
+1. this starts a list *with* numbers
++  this will show as number "2"
+*  this will show as number "3."
+9. any number, +, -, or * will keep the list going.
+
+aaaaaaaaaaaaaaa
+
+- now a normal list
+- and more
index ddfe147c8f7b34e2e027bd4893b04cb275c1f627..886b61e96e8792c25999ccd71da6e8b02396e563 100644 (file)
@@ -1,5 +1,5 @@
-<h2>Header</h2>\r
-<h1>Header 2</h1>\r
-<h3>H3</h3>\r
-<h1>H1</h1>\r
+<h2>Header</h2>
+<h1>Header 2</h1>
+<h3>H3</h3>
+<h1>H1</h1>
 <h2>H2</h2>
\ No newline at end of file
index de14d43f893c6aca20bedaca32545ae422c7d642..f67b9213e1a440ac4fa0a96e2b1f64bcaf7e14e0 100644 (file)
@@ -1,13 +1,13 @@
-Header\r
-------\r
-\r
-Header 2\r
-========\r
-\r
-### H3\r
-\r
-H1\r
-= \r
-\r
-H2\r
---\r
+Header
+------
+
+Header 2
+========
+
+### H3
+
+H1
+= 
+
+H2
+--
index c854c78b0d2b51d6a783774d4ff03a8665a652b8..18659947618c810298199e876c297b5a91e6c288 100644 (file)
@@ -1,11 +1,11 @@
-<p>a</p>\r
-<pre>\r
-#!/usr/bin/python\r
-hello</pre>\r
-\r
-<p>a</p>\r
-<pre>\r
-!/usr/bin/python\r
-hello</pre>\r
-\r
+<p>a</p>
+<pre>
+#!/usr/bin/python
+hello</pre>
+
+<p>a</p>
+<pre>
+!/usr/bin/python
+hello</pre>
+
 <p>a</p>
\ No newline at end of file
index ff909ecf73d543b09a4c9b04fe8311d9b8888103..634758d5c9128faf96618625a9d31e160a4e6f96 100644 (file)
@@ -1,13 +1,13 @@
-a\r
-\r
-<pre>\r
-#!/usr/bin/python\r
-hello</pre>\r
-\r
-a\r
-\r
-<pre>\r
-!/usr/bin/python\r
-hello</pre>\r
-\r
-a\r
+a
+
+<pre>
+#!/usr/bin/python
+hello</pre>
+
+a
+
+<pre>
+!/usr/bin/python
+hello</pre>
+
+a
index b9bc090d8a4c87ab0b89b9955eb0d1a00d7d1621..351b44abac32e93db140e91e51b14c36781373ab 100644 (file)
@@ -1,20 +1,20 @@
-<p>Tight List:</p>\r
-<ul>\r
-<li>\r
-<h1>Header1</h1>\r
-Line 1-2 - <strong>not</strong> a header <em>or</em> paragraph!</li>\r
-<li>\r
-<h1>Header2</h1>\r
-Line 2-2 - not a header or paragraph!</li>\r
-</ul>\r
-<p>Loose List:</p>\r
-<ul>\r
-<li>\r
-<h1>Header1</h1>\r
-<p>Line 1-2 - <em>a</em> paragraph</p>\r
-</li>\r
-<li>\r
-<h1>Header2</h1>\r
-<p>Line 2-2 - a paragraph</p>\r
-</li>\r
+<p>Tight List:</p>
+<ul>
+<li>
+<h1>Header1</h1>
+Line 1-2 - <strong>not</strong> a header <em>or</em> paragraph!</li>
+<li>
+<h1>Header2</h1>
+Line 2-2 - not a header or paragraph!</li>
+</ul>
+<p>Loose List:</p>
+<ul>
+<li>
+<h1>Header1</h1>
+<p>Line 1-2 - <em>a</em> paragraph</p>
+</li>
+<li>
+<h1>Header2</h1>
+<p>Line 2-2 - a paragraph</p>
+</li>
 </ul>
\ No newline at end of file
index 50ffae2db3e3daf505923f112bba21e9b9035513..b22083e75151044e7daffc1890c237e69ebe480c 100644 (file)
@@ -1,14 +1,14 @@
-Tight List:\r
-\r
-* #Header1\r
-Line 1-2 - **not** a header *or* paragraph!\r
-* #Header2\r
-Line 2-2 - not a header or paragraph!\r
-\r
-Loose List:\r
-\r
-* #Header1\r
-Line 1-2 - *a* paragraph\r
-\r
-* #Header2\r
-Line 2-2 - a paragraph\r
+Tight List:
+
+* #Header1
+Line 1-2 - **not** a header *or* paragraph!
+* #Header2
+Line 2-2 - not a header or paragraph!
+
+Loose List:
+
+* #Header1
+Line 1-2 - *a* paragraph
+
+* #Header2
+Line 2-2 - a paragraph
index 417b22f03eed8a8e1d1eff27b49d804cd017b5f4..2a737e2dc6589c4017cf78ac4834cff6cc1ee1c7 100644 (file)
@@ -1,10 +1,10 @@
-<h3>Hello world</h3>\r
-<p>Line 2\r
-Line 3</p>\r
-<h1>[Markdown][5]</h1>\r
-<h1><a href="http://some.link.com/">Markdown</a></h1>\r
-<h1>[5]: http://foo.com/</h1>\r
-<h1>Issue #1: Markdown</h1>\r
-<p>Text</p>\r
-<h1>Header</h1>\r
+<h3>Hello world</h3>
+<p>Line 2
+Line 3</p>
+<h1>[Markdown][5]</h1>
+<h1><a href="http://some.link.com/">Markdown</a></h1>
+<h1>[5]: http://foo.com/</h1>
+<h1>Issue #1: Markdown</h1>
+<p>Text</p>
+<h1>Header</h1>
 <p>Some other text</p>
\ No newline at end of file
index 65f8f65601dfc3a1db68363bcc6eb639fc1cd91a..db114ed222b5383eac8df1ba4293cb9320ef8b5c 100644 (file)
@@ -1,15 +1,15 @@
-### Hello world\r
-Line 2\r
-Line 3\r
-\r
-# [Markdown][5]  \r
-\r
-# [Markdown](http://some.link.com/)\r
-\r
-# [5]: http://foo.com/\r
-\r
-# Issue #1: Markdown\r
-\r
-Text\r
-# Header\r
-Some other text\r
+### Hello world
+Line 2
+Line 3
+
+# [Markdown][5]  
+
+# [Markdown](http://some.link.com/)
+
+# [5]: http://foo.com/
+
+# Issue #1: Markdown
+
+Text
+# Header
+Some other text
index 816c28bbdb1dc7855b2f247b87d2601e720c4f70..b18a311952c09bc64dc01fe3e3b499d79313b520 100644 (file)
@@ -1,2 +1,2 @@
-<h1>Header</h1>\r
+<h1>Header</h1>
 <p>Next line</p>
\ No newline at end of file
index 4b294a559fa196e76162157f93ab88be13750fa3..e39b7a27b8f87e00b5a509ce60e38f8bc38a41e4 100644 (file)
@@ -1,5 +1,5 @@
-\r
-#Header\r
-Next line\r
-\r
-\r
+
+#Header
+Next line
+
+
index 9ef6a8e7a2ce525892f6a43cdc44a7190f3063fb..7b36246dca12ffc65ceeb55b51fd04d273170ebc 100644 (file)
@@ -1,2 +1,2 @@
-<p>Here is HTML <!-- **comment** -->\r
+<p>Here is HTML <!-- **comment** -->
 and once more <p><!--comment--></p></p>
\ No newline at end of file
index fad817478f8fcbc15d103cd93a5e31e42c6c956a..cac4da574b7b1ac52c283e445c38b6b99dcb39fe 100644 (file)
@@ -1,2 +1,2 @@
-Here is HTML <!-- **comment** -->\r
-and once more <p><!--comment--></p>\r
+Here is HTML <!-- **comment** -->
+and once more <p><!--comment--></p>
index fff651edb2bbd6954044013198654b3f7f2952f2..1eb6a9729af22e50bbde8cc11e5334a65765aa8c 100644 (file)
@@ -1,18 +1,18 @@
-<h1>Block level html</h1>\r
-\r
-<p>Some inline <b>stuff<b>.  </p>\r
-<p>Now some <arbitrary>arbitrary tags</arbitrary>.</p>\r
-<div>More block level html.</div>\r
-\r
-<div class="foo bar" title="with 'quoted' text." valueless_attr weirdness="<i>foo</i>">\r
-Html with various attributes.\r
-</div>\r
-\r
-<p>And of course <script>blah</script>.</p>\r
-<p><a href="script&gt;stuff&lt;/script">this <script>link</a></p>\r
-<p>Some funky <x\]> inline stuff with markdown escaping syntax.</p>\r
-<p><img scr="foo.png" title="Only one inline element on a line." /></p>\r
-<p>And now a line with only an opening bracket:</p>\r
-<p>&lt;</p>\r
-<p>And one with other stuff but no closing bracket:</p>\r
+<h1>Block level html</h1>
+
+<p>Some inline <b>stuff<b>.  </p>
+<p>Now some <arbitrary>arbitrary tags</arbitrary>.</p>
+<div>More block level html.</div>
+
+<div class="foo bar" title="with 'quoted' text." valueless_attr weirdness="<i>foo</i>">
+Html with various attributes.
+</div>
+
+<p>And of course <script>blah</script>.</p>
+<p><a href="script&gt;stuff&lt;/script">this <script>link</a></p>
+<p>Some funky <x\]> inline stuff with markdown escaping syntax.</p>
+<p><img scr="foo.png" title="Only one inline element on a line." /></p>
+<p>And now a line with only an opening bracket:</p>
+<p>&lt;</p>
+<p>And one with other stuff but no closing bracket:</p>
 <p>&lt; foo</p>
\ No newline at end of file
index 0554af2efc308760a96739af84e106e53d220e44..dfee68ddfa363d30c1a3d376a8c2c88e14a83cff 100644 (file)
@@ -1,29 +1,29 @@
-\r
-<h1>Block level html</h1>\r
-\r
-Some inline <b>stuff<b>.  \r
-\r
-Now some <arbitrary>arbitrary tags</arbitrary>.\r
-\r
-<div>More block level html.</div>\r
-\r
-<div class="foo bar" title="with 'quoted' text." valueless_attr weirdness="<i>foo</i>">\r
-Html with various attributes.\r
-</div>\r
-\r
-And of course <script>blah</script>.\r
-\r
-[this <script>link](<script>stuff</script>)\r
-\r
-Some funky <x\]> inline stuff with markdown escaping syntax.\r
-\r
-<img scr="foo.png" title="Only one inline element on a line." />\r
-\r
-And now a line with only an opening bracket:\r
-\r
-<\r
-\r
-And one with other stuff but no closing bracket:\r
-\r
-< foo\r
-\r
+
+<h1>Block level html</h1>
+
+Some inline <b>stuff<b>.  
+
+Now some <arbitrary>arbitrary tags</arbitrary>.
+
+<div>More block level html.</div>
+
+<div class="foo bar" title="with 'quoted' text." valueless_attr weirdness="<i>foo</i>">
+Html with various attributes.
+</div>
+
+And of course <script>blah</script>.
+
+[this <script>link](<script>stuff</script>)
+
+Some funky <x\]> inline stuff with markdown escaping syntax.
+
+<img scr="foo.png" title="Only one inline element on a line." />
+
+And now a line with only an opening bracket:
+
+<
+
+And one with other stuff but no closing bracket:
+
+< foo
+
index 7ee86a8634d5c3d341bbb7ebe1517eb1dfc39079..9343d29666e1116f901c7a230f31a64e1e0a26db 100644 (file)
@@ -1,2 +1,2 @@
-<p><a href="http://src.com/"><em>link!</em></a></p>\r
+<p><a href="http://src.com/"><em>link!</em></a></p>
 <p><em><a href="http://www.freewisdom.org">link</a></em></p>
\ No newline at end of file
index 9f63cac36d562ca58315335809d9f6c5229e7728..622838333b22d041fe600cdd12ae4eace2c8a96d 100644 (file)
@@ -1,3 +1,3 @@
-[*link!*](http://src.com/)\r
-\r
-*[link](http://www.freewisdom.org)*\r
+[*link!*](http://src.com/)
+
+*[link](http://www.freewisdom.org)*
index 16be2d555b881cac9ebb784166f211e02defa029..aa24cef974c4a16b80626e9c6d3c8ed70d99b36d 100644 (file)
@@ -1 +1,3 @@
-<p><img alt="Poster" src="http://humane_man.jpg" title="The most humane man." /></p>
\ No newline at end of file
+<p><img alt="Poster" src="http://humane_man.jpg" title="The most humane man." /></p>
+<p><img alt="Poster" src="http://humane_man.jpg" title="The most humane man." /></p>
+<p><img alt="Blank" src="" /></p>
\ No newline at end of file
index 2f946db98fdf16257f4ff060c330476d7234eaf7..41a8cf7f36a0d36d80f50c8b10f7579b33b08384 100644 (file)
@@ -1,2 +1,8 @@
-\r
-![Poster](http://humane_man.jpg "The most humane man.")\r
+
+![Poster](http://humane_man.jpg "The most humane man.")
+
+![Poster][]
+
+[Poster]:http://humane_man.jpg "The most humane man."
+
+![Blank]()
\ No newline at end of file
index 4ec451b931280c0a7e72840bb6a03464c14011b6..6d739e6d192ebec4a5c7e98db4a49471192b7c14 100644 (file)
@@ -1,3 +1,3 @@
-\r
-\r
-[![altname](path/to/img_thumb.png)](path/to/image.png)\r
+
+
+[![altname](path/to/img_thumb.png)](path/to/image.png)
index eaf89a440f23f08705ab4ca7a3dda4263cc38913..2aee0bcc3a89401f4a86a31c425eb984bf1c4b54 100644 (file)
@@ -1 +1 @@
-<ins>Hello, fellow developer</ins> this ins should be wrapped in a p.\r
+<ins>Hello, fellow developer</ins> this ins should be wrapped in a p.
index 4e5376203e7aa66d287687661174a8b92ac92e25..4f068bf96379e1b138013519cfadc91f1a3ed491 100644 (file)
@@ -1 +1 @@
-<a href="stuff"> __ok__? </a>\r
+<a href="stuff"> __ok__? </a>
index 59261f7651e248f54ab2f159764b4d99e2327fe7..930891bc204d21bc71b75bf56bea6592fcac0c63 100644 (file)
@@ -1,11 +1,11 @@
-<h1>パイソン (Python)</h1>\r
-<p><strong>Python</strong>(パイソン)は、<a href="http://en.wikipedia.org/wiki/Guido_van_Rossum">Guido van Rossum</a> によって作られたオープンソースのオブジェクト指向スクリプト言語。<a href="http://ja.wikipedia.org/wiki/Perl">Perl</a>とともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』にちなんで名付けられた。 (Pythonには、爬虫類のニシキヘビの意味があり、Python言語のマスコットやアイコンとして使われることがある。)</p>\r
-<h2>概要</h2>\r
-<p>プログラミング言語 Python は初心者から専門家まで幅広いユーザ層を獲得している。利用目的は汎用で、方向性としてはJavaに近い。ただし、最初からネットワーク利用をメインとして考えられているJavaよりセキュリティについてはやや寛大である。多くのプラットフォームをサポートしており(⇒<a href="#somelink">動作するプラットフォーム</a>)、豊富なライブラリがあることから、産業界でも利用が増えつつある。また、Pythonは純粋なプログラミング言語のほかにも、多くの異なる言語で書かれたモジュールをまとめる糊言語のひとつとして位置づけることができる。実際Pythonは多くの商用アプリケーションでスクリプト言語として採用されている(⇒Pythonを使っている製品あるいはソフトウェアの一覧)。豊富なドキュメントをもち、Unicodeによる文字列操作をサポートしており、日本語処理も標準で可能である。</p>\r
-<p>Python は基本的にインタプリタ上で実行されることを念頭において設計されており、以下のような特徴をもっている:</p>\r
-<ul>\r
-<li>動的な型付け。</li>\r
-<li>オブジェクトのメンバに対するアクセスが制限されていない。(属性や専用のメソッドフックを実装することによって制限は可能。)</li>\r
-<li>モジュール、クラス、オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。</li>\r
-</ul>\r
+<h1>パイソン (Python)</h1>
+<p><strong>Python</strong>(パイソン)は、<a href="http://en.wikipedia.org/wiki/Guido_van_Rossum">Guido van Rossum</a> によって作られたオープンソースのオブジェクト指向スクリプト言語。<a href="http://ja.wikipedia.org/wiki/Perl">Perl</a>とともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』にちなんで名付けられた。 (Pythonには、爬虫類のニシキヘビの意味があり、Python言語のマスコットやアイコンとして使われることがある。)</p>
+<h2>概要</h2>
+<p>プログラミング言語 Python は初心者から専門家まで幅広いユーザ層を獲得している。利用目的は汎用で、方向性としてはJavaに近い。ただし、最初からネットワーク利用をメインとして考えられているJavaよりセキュリティについてはやや寛大である。多くのプラットフォームをサポートしており(⇒<a href="#somelink">動作するプラットフォーム</a>)、豊富なライブラリがあることから、産業界でも利用が増えつつある。また、Pythonは純粋なプログラミング言語のほかにも、多くの異なる言語で書かれたモジュールをまとめる糊言語のひとつとして位置づけることができる。実際Pythonは多くの商用アプリケーションでスクリプト言語として採用されている(⇒Pythonを使っている製品あるいはソフトウェアの一覧)。豊富なドキュメントをもち、Unicodeによる文字列操作をサポートしており、日本語処理も標準で可能である。</p>
+<p>Python は基本的にインタプリタ上で実行されることを念頭において設計されており、以下のような特徴をもっている:</p>
+<ul>
+<li>動的な型付け。</li>
+<li>オブジェクトのメンバに対するアクセスが制限されていない。(属性や専用のメソッドフックを実装することによって制限は可能。)</li>
+<li>モジュール、クラス、オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。</li>
+</ul>
 <p>また、Pythonではインデントによりブロックを指定する構文を採用している(⇒<a href="#jklj">オフサイドルール</a>)。この構文はPythonに慣れたユーザからは称賛をもって受け入れられているが、他の言語のユーザからは批判も多い。このほかにも、大きすぎる実行ファイルや、Javaに比べて遅い処理速度などが欠点として指摘されている。しかし <strong>プロトタイピング</strong> の際にはこれらの点はさして問題とはならないことから、研究開発部門では頻繁に利用されている。</p>
\ No newline at end of file
index ae1ad6f5d0a55aca737bf7b7bc3db6cf036939c2..b2bd38c4f5f473c4da29568739bdbe62332ee24d 100644 (file)
@@ -1,15 +1,15 @@
-パイソン (Python)\r
-=======\r
-\r
-**Python**(パイソン)は、[Guido van Rossum](http://en.wikipedia.org/wiki/Guido_van_Rossum) によって作られたオープンソースのオブジェクト指向スクリプト言語。[Perl](http://ja.wikipedia.org/wiki/Perl)とともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』にちなんで名付けられた。 (Pythonには、爬虫類のニシキヘビの意味があり、Python言語のマスコットやアイコンとして使われることがある。)\r
-\r
-## 概要\r
-プログラミング言語 Python は初心者から専門家まで幅広いユーザ層を獲得している。利用目的は汎用で、方向性としてはJavaに近い。ただし、最初からネットワーク利用をメインとして考えられているJavaよりセキュリティについてはやや寛大である。多くのプラットフォームをサポートしており(⇒[動作するプラットフォーム](#somelink))、豊富なライブラリがあることから、産業界でも利用が増えつつある。また、Pythonは純粋なプログラミング言語のほかにも、多くの異なる言語で書かれたモジュールをまとめる糊言語のひとつとして位置づけることができる。実際Pythonは多くの商用アプリケーションでスクリプト言語として採用されている(⇒Pythonを使っている製品あるいはソフトウェアの一覧)。豊富なドキュメントをもち、Unicodeによる文字列操作をサポートしており、日本語処理も標準で可能である。\r
-\r
-Python は基本的にインタプリタ上で実行されることを念頭において設計されており、以下のような特徴をもっている:\r
-\r
-* 動的な型付け。\r
-* オブジェクトのメンバに対するアクセスが制限されていない。(属性や専用のメソッドフックを実装することによって制限は可能。)\r
-* モジュール、クラス、オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。\r
-\r
-また、Pythonではインデントによりブロックを指定する構文を採用している(⇒[オフサイドルール](#jklj))。この構文はPythonに慣れたユーザからは称賛をもって受け入れられているが、他の言語のユーザからは批判も多い。このほかにも、大きすぎる実行ファイルや、Javaに比べて遅い処理速度などが欠点として指摘されている。しかし **プロトタイピング** の際にはこれらの点はさして問題とはならないことから、研究開発部門では頻繁に利用されている。\r
+パイソン (Python)
+=======
+
+**Python**(パイソン)は、[Guido van Rossum](http://en.wikipedia.org/wiki/Guido_van_Rossum) によって作られたオープンソースのオブジェクト指向スクリプト言語。[Perl](http://ja.wikipedia.org/wiki/Perl)とともに欧米で広く普及している。イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』にちなんで名付けられた。 (Pythonには、爬虫類のニシキヘビの意味があり、Python言語のマスコットやアイコンとして使われることがある。)
+
+## 概要
+プログラミング言語 Python は初心者から専門家まで幅広いユーザ層を獲得している。利用目的は汎用で、方向性としてはJavaに近い。ただし、最初からネットワーク利用をメインとして考えられているJavaよりセキュリティについてはやや寛大である。多くのプラットフォームをサポートしており(⇒[動作するプラットフォーム](#somelink))、豊富なライブラリがあることから、産業界でも利用が増えつつある。また、Pythonは純粋なプログラミング言語のほかにも、多くの異なる言語で書かれたモジュールをまとめる糊言語のひとつとして位置づけることができる。実際Pythonは多くの商用アプリケーションでスクリプト言語として採用されている(⇒Pythonを使っている製品あるいはソフトウェアの一覧)。豊富なドキュメントをもち、Unicodeによる文字列操作をサポートしており、日本語処理も標準で可能である。
+
+Python は基本的にインタプリタ上で実行されることを念頭において設計されており、以下のような特徴をもっている:
+
+* 動的な型付け。
+* オブジェクトのメンバに対するアクセスが制限されていない。(属性や専用のメソッドフックを実装することによって制限は可能。)
+* モジュール、クラス、オブジェクト等の言語の要素が内部からアクセス可能であり、リフレクションを利用した記述が可能。
+
+また、Pythonではインデントによりブロックを指定する構文を採用している(⇒[オフサイドルール](#jklj))。この構文はPythonに慣れたユーザからは称賛をもって受け入れられているが、他の言語のユーザからは批判も多い。このほかにも、大きすぎる実行ファイルや、Javaに比べて遅い処理速度などが欠点として指摘されている。しかし **プロトタイピング** の際にはこれらの点はさして問題とはならないことから、研究開発部門では頻繁に利用されている。
index 2d40eab86fb6668a73821732a6373e96964bdaf9..7a8826396d55d54239a2af49d827348dc3ab78ed 100644 (file)
@@ -1,6 +1,6 @@
-<blockquote>\r
-<p>Line one of lazy block quote.\r
-Line two of lazy block quote.</p>\r
-<p>Line one of paragraph two.\r
-Line two of paragraph two.</p>\r
+<blockquote>
+<p>Line one of lazy block quote.
+Line two of lazy block quote.</p>
+<p>Line one of paragraph two.
+Line two of paragraph two.</p>
 </blockquote>
\ No newline at end of file
index 3dcbf2cd7bfa44b56137528008a881028326fb59..e7c17ca29e411040582806d37a86a835416c635f 100644 (file)
@@ -1,5 +1,5 @@
-> Line one of lazy block quote.\r
-Line two of lazy block quote.\r
-\r
-> Line one of paragraph two.\r
-Line two of paragraph two.\r
+> Line one of lazy block quote.
+Line two of lazy block quote.
+
+> Line one of paragraph two.
+Line two of paragraph two.
index 68841220f562ecfae9d852a480faffad94c5bfb1..8affc9800659e75b9fa8a109acb0648e4ccce949 100644 (file)
@@ -1 +1 @@
-[ZIP archives](http://en.wikipedia.org/wiki/ZIP_(file_format) "ZIP (file format) - Wikipedia, the free encyclopedia")\r
+[ZIP archives](http://en.wikipedia.org/wiki/ZIP_(file_format) "ZIP (file format) - Wikipedia, the free encyclopedia")
index 302d268192d38fca9bc8b595e20fc8f726d9ba55..bf4a02ba6de8a7a978225a614400d6a31497bb4b 100644 (file)
@@ -1,36 +1,36 @@
-<ul>\r
-<li>A multi-paragraph list, \r
-unindented.</li>\r
-</ul>\r
-<p>Simple tight list</p>\r
-<ul>\r
-<li>Uno</li>\r
-<li>Due</li>\r
-<li>Tri</li>\r
-</ul>\r
-<p>A singleton tight list:</p>\r
-<ul>\r
-<li>Uno</li>\r
-</ul>\r
-<p>A lose list:</p>\r
-<ul>\r
-<li>\r
-<p>One</p>\r
-</li>\r
-<li>\r
-<p>Two</p>\r
-</li>\r
-<li>\r
-<p>Three</p>\r
-</li>\r
-</ul>\r
-<p>A lose list with paragraphs</p>\r
-<ul>\r
-<li>\r
-<p>One one one one</p>\r
-<p>one one one one</p>\r
-</li>\r
-<li>\r
-<p>Two two two two</p>\r
-</li>\r
+<ul>
+<li>A multi-paragraph list, 
+unindented.</li>
+</ul>
+<p>Simple tight list</p>
+<ul>
+<li>Uno</li>
+<li>Due</li>
+<li>Tri</li>
+</ul>
+<p>A singleton tight list:</p>
+<ul>
+<li>Uno</li>
+</ul>
+<p>A lose list:</p>
+<ul>
+<li>
+<p>One</p>
+</li>
+<li>
+<p>Two</p>
+</li>
+<li>
+<p>Three</p>
+</li>
+</ul>
+<p>A lose list with paragraphs</p>
+<ul>
+<li>
+<p>One one one one</p>
+<p>one one one one</p>
+</li>
+<li>
+<p>Two two two two</p>
+</li>
 </ul>
\ No newline at end of file
index abf138f31f474077f7383853b2ed7b4cc14fa5e4..6db0dc38e3ccd45e4639fc93bb4af278cf3e1837 100644 (file)
@@ -1,31 +1,31 @@
-\r
-* A multi-paragraph list, \r
-unindented.\r
-\r
-\r
-\r
-Simple tight list\r
-\r
-* Uno\r
-* Due\r
-* Tri\r
-\r
-A singleton tight list:\r
-\r
-* Uno\r
-\r
-A lose list:\r
-\r
-* One\r
-\r
-* Two\r
-\r
-* Three\r
-\r
-A lose list with paragraphs\r
-\r
-* One one one one\r
-\r
-    one one one one\r
-\r
-* Two two two two\r
+
+* A multi-paragraph list, 
+unindented.
+
+
+
+Simple tight list
+
+* Uno
+* Due
+* Tri
+
+A singleton tight list:
+
+* Uno
+
+A lose list:
+
+* One
+
+* Two
+
+* Three
+
+A lose list with paragraphs
+
+* One one one one
+
+    one one one one
+
+* Two two two two
index cc3a14aa3ae270e542216e3a28de186170a596fd..991395b82fb9d1b5ceb4f06b38a79eafd37bebd3 100644 (file)
@@ -1,5 +1,5 @@
-<ul>\r
-<li>blah blah blah\r
-sdf asdf asdf asdf asdf\r
-asda asdf asdfasd</li>\r
+<ul>
+<li>blah blah blah
+sdf asdf asdf asdf asdf
+asda asdf asdfasd</li>
 </ul>
\ No newline at end of file
index f618b40b90a08aab4998f6505948629ba24cb4d2..cbff761b1f604d1b299d6d1f7a046ee5cacf86e8 100644 (file)
@@ -1,3 +1,3 @@
-* blah blah blah\r
-sdf asdf asdf asdf asdf\r
-asda asdf asdfasd\r
+* blah blah blah
+sdf asdf asdf asdf asdf
+asda asdf asdfasd
index 1acfa544155c371dcea8a7fe9d042c1be5681427..7cfe001d76ff20ec558e224186e33d7e2877c031 100644 (file)
@@ -1,5 +1,5 @@
-<ul>\r
-<li>blah blah blah\r
-    sdf asdf asdf asdf asdf\r
-    asda asdf asdfasd</li>\r
+<ul>
+<li>blah blah blah
+    sdf asdf asdf asdf asdf
+    asda asdf asdfasd</li>
 </ul>
\ No newline at end of file
index 1b225558d5e7d92264b94acc2967885b0c84dea1..6b45bd4903be49f3d44580aef58d532eb77b5c56 100644 (file)
@@ -1,3 +1,3 @@
-* blah blah blah\r
-    sdf asdf asdf asdf asdf\r
-    asda asdf asdfasd\r
+* blah blah blah
+    sdf asdf asdf asdf asdf
+    asda asdf asdfasd
index ede065d71c92c116c942b666c0da5c196299ef25..4b6b32cbb9aa3af45c2983c6738dac56eef72be1 100644 (file)
@@ -1,8 +1,8 @@
-<ul>\r
-<li>item1</li>\r
-<li>item2<ol>\r
-<li>Number 1</li>\r
-<li>Number 2</li>\r
-</ol>\r
-</li>\r
+<ul>
+<li>item1</li>
+<li>item2<ol>
+<li>Number 1</li>
+<li>Number 2</li>
+</ol>
+</li>
 </ul>
\ No newline at end of file
index 07f9495288494a0b46a0b694c82ec904875fb923..a21493d868531eb8737e9bc3f1d522b7dbe543dd 100644 (file)
@@ -1,5 +1,5 @@
-\r
-* item1\r
-* item2\r
-    1. Number 1\r
-    2. Number 2\r
+
+* item1
+* item2
+    1. Number 1
+    2. Number 2
index 6001d6e6dd273f5aa131eef1c0cb665e98a689ac..c3dbda4cc89a90588ce821687be735ef0c1af10d 100644 (file)
@@ -1,14 +1,14 @@
-<blockquote>\r
-<p>This is a test of a block quote\r
-With just two lines</p>\r
-</blockquote>\r
-<p>A paragraph</p>\r
-<blockquote>\r
-<p>This is a more difficult case\r
-With a list item inside the quote</p>\r
-<ul>\r
-<li>Alpha</li>\r
-<li>Beta\r
-Etc.</li>\r
-</ul>\r
+<blockquote>
+<p>This is a test of a block quote
+With just two lines</p>
+</blockquote>
+<p>A paragraph</p>
+<blockquote>
+<p>This is a more difficult case
+With a list item inside the quote</p>
+<ul>
+<li>Alpha</li>
+<li>Beta
+Etc.</li>
+</ul>
 </blockquote>
\ No newline at end of file
index fba8b8ed71b650d95c8979a75de3d885cf6f0903..566e0f174a1ade5deec97c3364072e328c68b861 100644 (file)
@@ -1,12 +1,12 @@
-> This is a test of a block quote\r
-> With just two lines\r
-\r
-A paragraph\r
-\r
-> This is a more difficult case\r
-> With a list item inside the quote\r
->\r
-> * Alpha\r
-> * Beta\r
-> Etc.\r
-\r
+> This is a test of a block quote
+> With just two lines
+
+A paragraph
+
+> This is a more difficult case
+> With a list item inside the quote
+>
+> * Alpha
+> * Beta
+> Etc.
+
index 900b4088fd9b78a9fc47c47995fd113c3cbcfe74..24aad388d8d59b690e8ecb9509fb21388cf55e34 100644 (file)
@@ -1,18 +1,18 @@
-<p>Test five or more spaces as start of list:</p>\r
-<ul>\r
-<li>five spaces</li>\r
-</ul>\r
-<p>not first item:</p>\r
-<ul>\r
-<li>one space</li>\r
-<li>five spaces</li>\r
-</ul>\r
-<p>loose list:</p>\r
-<ul>\r
-<li>\r
-<p>one space</p>\r
-</li>\r
-<li>\r
-<p>five spaces</p>\r
-</li>\r
+<p>Test five or more spaces as start of list:</p>
+<ul>
+<li>five spaces</li>
+</ul>
+<p>not first item:</p>
+<ul>
+<li>one space</li>
+<li>five spaces</li>
+</ul>
+<p>loose list:</p>
+<ul>
+<li>
+<p>one space</p>
+</li>
+<li>
+<p>five spaces</p>
+</li>
 </ul>
\ No newline at end of file
index 570409568374bba2b85f036d25b8736f020e0d9c..f12788f93975fb6f194efd4db3c6eaa393015f32 100644 (file)
@@ -1,14 +1,14 @@
-Test five or more spaces as start of list:\r
-\r
-*     five spaces\r
-\r
-not first item:\r
-\r
-* one space\r
-*     five spaces\r
-\r
-loose list:\r
-\r
-* one space\r
-\r
-*     five spaces\r
+Test five or more spaces as start of list:
+
+*     five spaces
+
+not first item:
+
+* one space
+*     five spaces
+
+loose list:
+
+* one space
+
+*     five spaces
index acbf4b775e7d1cbb84fe985e7ed9027012487029..81c1daa388a89bf2ccbc8852ee6c94f0f6f9de6d 100644 (file)
@@ -1,98 +1,98 @@
-<ul>\r
-<li>item 1</li>\r
-<li>\r
-<ul>\r
-<li>item 2-1</li>\r
-<li>item 2-2</li>\r
-<li>item 2-3</li>\r
-<li>item 2-4</li>\r
-</ul>\r
-</li>\r
-<li>item 3</li>\r
-<li>\r
-<ul>\r
-<li>\r
-<p>item 4-1</p>\r
-</li>\r
-<li>\r
-<p>item 4-2</p>\r
-</li>\r
-<li>\r
-<p>item 4-3</p>\r
-</li>\r
-<li>\r
-<p>item 4-4</p>\r
-</li>\r
-</ul>\r
-</li>\r
-</ul>\r
-<h2>same as above, different spacing</h2>\r
-<ul>\r
-<li>item 1</li>\r
-<li>\r
-<ul>\r
-<li>item 2-1</li>\r
-<li>item 2-2</li>\r
-</ul>\r
-</li>\r
-<li>item 3</li>\r
-<li>\r
-<ul>\r
-<li>\r
-<p>item 4-1</p>\r
-</li>\r
-<li>\r
-<p>item 4-2</p>\r
-</li>\r
-</ul>\r
-</li>\r
-</ul>\r
-<h2>only 1 item in nested list ##</h2>\r
-<ul>\r
-<li>item 1</li>\r
-<li>\r
-<ul>\r
-<li>item 2-1</li>\r
-</ul>\r
-</li>\r
-<li>item 3</li>\r
-<li>\r
-<ul>\r
-<li>item 4-1</li>\r
-</ul>\r
-</li>\r
-</ul>\r
-<h2>Something ludicrous ##</h2>\r
-<ul>\r
-<li>item 1</li>\r
-<li>\r
-<ul>\r
-<li>item 2-1</li>\r
-<li>item 2-2</li>\r
-<li>\r
-<ul>\r
-<li>item 2-2-1</li>\r
-<li>item 2-2-2</li>\r
-</ul>\r
-</li>\r
-<li>item 2-3</li>\r
-</ul>\r
-</li>\r
-<li>item 3</li>\r
-<li>\r
-<ul>\r
-<li>\r
-<p>item 4-1</p>\r
-</li>\r
-<li>\r
-<ul>\r
-<li>item 4-1-1</li>\r
-<li>item 4-1-2</li>\r
-</ul>\r
-</li>\r
-<li>\r
-<p>item 4-2</p>\r
-</li>\r
-</ul>\r
-</li>\r
+<ul>
+<li>item 1</li>
+<li>
+<ul>
+<li>item 2-1</li>
+<li>item 2-2</li>
+<li>item 2-3</li>
+<li>item 2-4</li>
+</ul>
+</li>
+<li>item 3</li>
+<li>
+<ul>
+<li>
+<p>item 4-1</p>
+</li>
+<li>
+<p>item 4-2</p>
+</li>
+<li>
+<p>item 4-3</p>
+</li>
+<li>
+<p>item 4-4</p>
+</li>
+</ul>
+</li>
+</ul>
+<h2>same as above, different spacing</h2>
+<ul>
+<li>item 1</li>
+<li>
+<ul>
+<li>item 2-1</li>
+<li>item 2-2</li>
+</ul>
+</li>
+<li>item 3</li>
+<li>
+<ul>
+<li>
+<p>item 4-1</p>
+</li>
+<li>
+<p>item 4-2</p>
+</li>
+</ul>
+</li>
+</ul>
+<h2>only 1 item in nested list ##</h2>
+<ul>
+<li>item 1</li>
+<li>
+<ul>
+<li>item 2-1</li>
+</ul>
+</li>
+<li>item 3</li>
+<li>
+<ul>
+<li>item 4-1</li>
+</ul>
+</li>
+</ul>
+<h2>Something ludicrous ##</h2>
+<ul>
+<li>item 1</li>
+<li>
+<ul>
+<li>item 2-1</li>
+<li>item 2-2</li>
+<li>
+<ul>
+<li>item 2-2-1</li>
+<li>item 2-2-2</li>
+</ul>
+</li>
+<li>item 2-3</li>
+</ul>
+</li>
+<li>item 3</li>
+<li>
+<ul>
+<li>
+<p>item 4-1</p>
+</li>
+<li>
+<ul>
+<li>item 4-1-1</li>
+<li>item 4-1-2</li>
+</ul>
+</li>
+<li>
+<p>item 4-2</p>
+</li>
+</ul>
+</li>
 </ul>
\ No newline at end of file
index e33b2f8315b9bcbd1c3eab49779e9af639bcd148..77181c873275676370553a60688d66f028f7164d 100644 (file)
@@ -1,44 +1,44 @@
-* item 1\r
-*   * item 2-1\r
-    * item 2-2\r
-    * item 2-3\r
-    * item 2-4\r
-* item 3\r
-*   * item 4-1\r
-\r
-    * item 4-2\r
-\r
-    * item 4-3\r
-\r
-    * item 4-4\r
-\r
-## same as above, different spacing\r
-* item 1\r
-* * item 2-1\r
-    * item 2-2\r
-* item 3\r
-* * item 4-1\r
-\r
-     * item 4-2\r
-\r
-## only 1 item in nested list ## \r
-* item 1\r
-* * item 2-1\r
-* item 3\r
-* * item 4-1\r
-\r
-## Something ludicrous ## \r
-* item 1\r
-* * item 2-1\r
-    * item 2-2\r
-    * * item 2-2-1\r
-        * item 2-2-2\r
-    * item 2-3\r
-* item 3\r
-* * item 4-1\r
-\r
-    * * item 4-1-1\r
-        * item 4-1-2\r
-\r
-    * item 4-2\r
-\r
+* item 1
+*   * item 2-1
+    * item 2-2
+    * item 2-3
+    * item 2-4
+* item 3
+*   * item 4-1
+
+    * item 4-2
+
+    * item 4-3
+
+    * item 4-4
+
+## same as above, different spacing
+* item 1
+* * item 2-1
+    * item 2-2
+* item 3
+* * item 4-1
+
+     * item 4-2
+
+## only 1 item in nested list ## 
+* item 1
+* * item 2-1
+* item 3
+* * item 4-1
+
+## Something ludicrous ## 
+* item 1
+* * item 2-1
+    * item 2-2
+    * * item 2-2-1
+        * item 2-2-2
+    * item 2-3
+* item 3
+* * item 4-1
+
+    * * item 4-1-1
+        * item 4-1-2
+
+    * item 4-2
+
index 9c3225bec8a951b5bfcdabd240ce9574f79ff2af..8a93a51008e0fa3022a28b6663b61b01fca3339e 100644 (file)
@@ -1,39 +1,39 @@
-<h1>Lists with blockquotes</h1>\r
-<ol>\r
-<li>\r
-<blockquote>\r
-<p>Four-score and seven years ago...</p>\r
-</blockquote>\r
-</li>\r
-<li>\r
-<blockquote>\r
-<p>We have nothing to fear...</p>\r
-</blockquote>\r
-</li>\r
-<li>\r
-<blockquote>\r
-<p>This is it...</p>\r
-</blockquote>\r
-</li>\r
-</ol>\r
-<h1>Multi-line blockquotes</h1>\r
-<ul>\r
-<li>\r
-<blockquote>\r
-<p>Four-score and sever years ago\r
-our fathers brought forth</p>\r
-</blockquote>\r
-</li>\r
-<li>\r
-<blockquote>\r
-<p>We have nothing to fear\r
-but fear itself</p>\r
-</blockquote>\r
-</li>\r
-<li>\r
-<blockquote>\r
-<p>This is it\r
-as far as I'm concerned</p>\r
-</blockquote>\r
-</li>\r
+<h1>Lists with blockquotes</h1>
+<ol>
+<li>
+<blockquote>
+<p>Four-score and seven years ago...</p>
+</blockquote>
+</li>
+<li>
+<blockquote>
+<p>We have nothing to fear...</p>
+</blockquote>
+</li>
+<li>
+<blockquote>
+<p>This is it...</p>
+</blockquote>
+</li>
+</ol>
+<h1>Multi-line blockquotes</h1>
+<ul>
+<li>
+<blockquote>
+<p>Four-score and sever years ago
+our fathers brought forth</p>
+</blockquote>
+</li>
+<li>
+<blockquote>
+<p>We have nothing to fear
+but fear itself</p>
+</blockquote>
+</li>
+<li>
+<blockquote>
+<p>This is it
+as far as I'm concerned</p>
+</blockquote>
+</li>
 </ul>
\ No newline at end of file
index d267603816da76fa0acf46dd50e13a6d0a34d0d4..8ab6767c0d43d380bd1f32584fe1462dcd6187c9 100644 (file)
@@ -1,16 +1,16 @@
-# Lists with blockquotes\r
-1. > Four-score and seven years ago...\r
-\r
-2. > We have nothing to fear...\r
-\r
-3. > This is it...\r
-\r
-# Multi-line blockquotes\r
-* > Four-score and sever years ago\r
-  > our fathers brought forth\r
-\r
-* > We have nothing to fear\r
-  > but fear itself\r
-\r
-* > This is it\r
-  > as far as I'm concerned\r
+# Lists with blockquotes
+1. > Four-score and seven years ago...
+
+2. > We have nothing to fear...
+
+3. > This is it...
+
+# Multi-line blockquotes
+* > Four-score and sever years ago
+  > our fathers brought forth
+
+* > We have nothing to fear
+  > but fear itself
+
+* > This is it
+  > as far as I'm concerned
index d453bc4c05a670cea5d4c21430280db0c86b616a..1b6b42097047331d9e6d843feeef6edb2af7f76c 100644 (file)
@@ -1,21 +1,21 @@
-<p>\r
-\r
-_foo_\r
-\r
-</p>\r
-\r
-<p>\r
-_foo_\r
-</p>\r
-\r
-<p>_foo_</p>\r
-\r
-<p>\r
-\r
-_foo_\r
-</p>\r
-\r
-<p>\r
-_foo_\r
-\r
+<p>
+
+_foo_
+
+</p>
+
+<p>
+_foo_
+</p>
+
+<p>_foo_</p>
+
+<p>
+
+_foo_
+</p>
+
+<p>
+_foo_
+
 </p>
\ No newline at end of file
index 72724cef1ac08620495f0522840ad636c0495353..ab7dd0f62f346b1233e4cf702b61f5b431325057 100644 (file)
@@ -1,21 +1,21 @@
-<p>\r
-\r
-_foo_\r
-\r
-</p>\r
-\r
-<p>\r
-_foo_\r
-</p>\r
-\r
-<p>_foo_</p>\r
-\r
-<p>\r
-\r
-_foo_\r
-</p>\r
-\r
-<p>\r
-_foo_\r
-\r
-</p>\r
+<p>
+
+_foo_
+
+</p>
+
+<p>
+_foo_
+</p>
+
+<p>_foo_</p>
+
+<p>
+
+_foo_
+</p>
+
+<p>
+_foo_
+
+</p>
index e33c19285cc2b658b8027c988a9d0ddb72166ab6..06bd57f3bb8b7992323fed33476c98f5ca674b8a 100644 (file)
@@ -1,14 +1,14 @@
-<p>Some text</p>\r
-\r
-<div>some more text</div>\r
-\r
-<p>and a bit more</p>\r
-<p>And this output</p>\r
-\r
-<p><em>Compatible with PHP Markdown Extra 1.2.2 and Markdown.pl1.0.2b8:</em></p>\r
-<!-- comment -->\r
-\r
-<p><div>text</div><br /></p>\r
-\r
-<p><br /></p>\r
+<p>Some text</p>
+
+<div>some more text</div>
+
+<p>and a bit more</p>
+<p>And this output</p>
+
+<p><em>Compatible with PHP Markdown Extra 1.2.2 and Markdown.pl1.0.2b8:</em></p>
+<!-- comment -->
+
+<p><div>text</div><br /></p>
+
+<p><br /></p>
 <p>Should be in p</p>
\ No newline at end of file
index e7d79bb0395e0c3a2597e1067c3d591cbed8603c..8e6a52f579db7b93683d762c4ee390ff351279bc 100644 (file)
@@ -1,9 +1,9 @@
-<p>Some text</p><div>some more text</div>\r
-\r
-and a bit more\r
-\r
-<p>And this output</p> *Compatible with PHP Markdown Extra 1.2.2 and Markdown.pl1.0.2b8:*\r
-\r
-<!-- comment --><p><div>text</div><br /></p><br />\r
-\r
-Should be in p\r
+<p>Some text</p><div>some more text</div>
+
+and a bit more
+
+<p>And this output</p> *Compatible with PHP Markdown Extra 1.2.2 and Markdown.pl1.0.2b8:*
+
+<!-- comment --><p><div>text</div><br /></p><br />
+
+Should be in p
index 3171971d7a79625cbf41f04dffcc455862adeea6..44bc6568f3c90d1f89a01ee9f82b7920965326bf 100644 (file)
@@ -1,4 +1,4 @@
-This is a [missing link][empty] and a [valid][link] and [missing][again].\r
-\r
-[link]: http://example.com\r
-\r
+This is a [missing link][empty] and a [valid][link] and [missing][again].
+
+[link]: http://example.com
+
index a5372ec8f67ab11d6c2fe688a54ed778f3f29099..5ca673199ef757b7390eb9e8d4ac1722bf01d9e1 100644 (file)
@@ -1,8 +1,8 @@
-<!asd@asdfd.com>\r
-\r
-<p>Foo</p>\r
-<p><asd!@asdfd.com></p>\r
-<p>Bar</p>\r
-<!--asd@asdfd.com>\r
-\r
+<!asd@asdfd.com>
+
+<p>Foo</p>
+<p><asd!@asdfd.com></p>
+<p>Bar</p>
+<!--asd@asdfd.com>
+
 Still in unclosed comment
\ No newline at end of file
index fdfb4ffaadfb941f38eac0750593dacf2727b8eb..ddc5bd3e63f6b2a310e1df94cedab85cf91ecdc4 100644 (file)
@@ -1,11 +1,11 @@
-<!asd@asdfd.com>\r
-\r
-Foo\r
-\r
-<asd!@asdfd.com>\r
-\r
-Bar\r
-\r
-<!--asd@asdfd.com>\r
-\r
-Still in unclosed comment\r
+<!asd@asdfd.com>
+
+Foo
+
+<asd!@asdfd.com>
+
+Bar
+
+<!--asd@asdfd.com>
+
+Still in unclosed comment
index f3f624f3fc2b602929e7304793a784edf598cd9d..69899aa62cb136a1051ad7b973d35d164187f89d 100644 (file)
@@ -1,13 +1,13 @@
-<div>\r
-\r
-asdf asdfasd\r
-\r
-</div>\r
-\r
-<div>\r
-\r
-foo bar\r
-\r
-</div>\r
-\r
+<div>
+
+asdf asdfasd
+
+</div>
+
+<div>
+
+foo bar
+
+</div>
+
 <p>No blank line.</p>
\ No newline at end of file
index cac12aa92fa32eafc0f82d2d74fc0732c4974891..9056473766f3c703cc16a6731b15da2ea86d8c4a 100644 (file)
@@ -1,13 +1,13 @@
-\r
-<div>\r
-\r
-asdf asdfasd\r
-\r
-</div>\r
-\r
-<div>\r
-\r
-foo bar\r
-\r
-</div>\r
-No blank line.\r
+
+<div>
+
+asdf asdfasd
+
+</div>
+
+<div>
+
+foo bar
+
+</div>
+No blank line.
index 8bc0221dd261373a96e8bc16a0d9d44e82382397..f01b5e49e55a2c8732194af15634ac3f36f6fed1 100644 (file)
@@ -1,6 +1,6 @@
-<blockquote>\r
-<p>This is line one of paragraph one\r
-This is line two of paragraph one</p>\r
-<p>This is line one of paragraph two</p>\r
-<p>This is another blockquote.</p>\r
+<blockquote>
+<p>This is line one of paragraph one
+This is line two of paragraph one</p>
+<p>This is line one of paragraph two</p>
+<p>This is another blockquote.</p>
 </blockquote>
\ No newline at end of file
index a4b30e812297910f652316e084e7514b18441180..f8a986fe25e2fa97603c26d64492b047e302f5b3 100644 (file)
@@ -1,8 +1,8 @@
-> This is line one of paragraph one\r
-> This is line two of paragraph one\r
-\r
-> This is line one of paragraph two\r
-\r
-\r
-\r
-> This is another blockquote.\r
+> This is line one of paragraph one
+> This is line two of paragraph one
+
+> This is line one of paragraph two
+
+
+
+> This is another blockquote.
index 271accd5d1248092b9be0967c6a5ae03dca2f4b3..2c8fe9eebb7826dc22acd826087c7d5c231e9289 100644 (file)
@@ -1,20 +1,20 @@
-<h1 id="inthebeginning">Header </h1>\r
-<p>Now, let's try something <em class="special">inline</em>, to see if it works</p>\r
-<p>Blah blah blah <a href="http://www.slashdot.org">http://www.slashdot.org</a></p>\r
-<ul>\r
-<li>Basic list</li>\r
-<li>Basic list 2</li>\r
-</ul>\r
-<p>addss</p>\r
-<ul>\r
-<li>Lazy list</li>\r
-</ul>\r
-<p>An <a href="http://example.com" title="Title">example</a> (oops)</p>\r
-<p>Now, let's use a footnote[^1].  Not bad, eh?\r
-Let's continue.</p>\r
-<p>[^1]: Here is the text of the footnote\r
-    continued on several lines.\r
-    some more of the footnote, etc.</p>\r
-<pre><code>Actually, another paragraph too.\r
-</code></pre>\r
+<h1 id="inthebeginning">Header </h1>
+<p>Now, let's try something <em class="special">inline</em>, to see if it works</p>
+<p>Blah blah blah <a href="http://www.slashdot.org">http://www.slashdot.org</a></p>
+<ul>
+<li>Basic list</li>
+<li>Basic list 2</li>
+</ul>
+<p>addss</p>
+<ul>
+<li>Lazy list</li>
+</ul>
+<p>An <a href="http://example.com" title="Title">example</a> (oops)</p>
+<p>Now, let's use a footnote[^1].  Not bad, eh?
+Let's continue.</p>
+<p>[^1]: Here is the text of the footnote
+    continued on several lines.
+    some more of the footnote, etc.</p>
+<pre><code>Actually, another paragraph too.
+</code></pre>
 <p>And then there is a little bit of text.</p>
\ No newline at end of file
index 283ca3d58e46f43129a2835b7fa3e38bed8b527e..c4ab1c12bad09180f25e7595ee802a7c3ff49b46 100644 (file)
@@ -1,32 +1,32 @@
-\r
-# Header {@id=inthebeginning}\r
-\r
-Now, let's try something *inline{@class=special}*, to see if it works\r
-\r
-\r
-Blah blah blah <http://www.slashdot.org>\r
-\r
-* Basic list\r
-* Basic list 2\r
-\r
-addss\r
-\r
- * Lazy list\r
-\r
-An [example][ref] (oops)\r
-\r
-  [ref]: http://example.com  "Title" \r
-\r
-\r
-Now, let's use a footnote[^1].  Not bad, eh?\r
-Let's continue.\r
-\r
-  [^1]: Here is the text of the footnote\r
-    continued on several lines.\r
-    some more of the footnote, etc.\r
-\r
-    Actually, another paragraph too.\r
-\r
-And then there is a little bit of text.\r
-\r
-\r
+
+# Header {@id=inthebeginning}
+
+Now, let's try something *inline{@class=special}*, to see if it works
+
+
+Blah blah blah <http://www.slashdot.org>
+
+* Basic list
+* Basic list 2
+
+addss
+
+ * Lazy list
+
+An [example][ref] (oops)
+
+  [ref]: http://example.com  "Title" 
+
+
+Now, let's use a footnote[^1].  Not bad, eh?
+Let's continue.
+
+  [^1]: Here is the text of the footnote
+    continued on several lines.
+    some more of the footnote, etc.
+
+    Actually, another paragraph too.
+
+And then there is a little bit of text.
+
+
index bd77db77e2e7c4604c362c81458edc337a9fc3e0..4bdd5d003bf2574c22c8dafd81768a542aec7db4 100644 (file)
@@ -1,37 +1,37 @@
-<!--\r
-\r
-foo\r
-\r
--->\r
-\r
-<p>\r
-\r
-foo\r
-\r
-</p>\r
-\r
-<div>\r
-\r
-foo\r
-\r
-</div>\r
-\r
-<!-- foo\r
-\r
--->\r
-\r
-<!-- <tag>\r
-\r
--->\r
-\r
-<!--\r
-\r
-foo -->\r
-\r
-<!--\r
-\r
-<tag> -->\r
-\r
-<!-- unclosed comment\r
-\r
+<!--
+
+foo
+
+-->
+
+<p>
+
+foo
+
+</p>
+
+<div>
+
+foo
+
+</div>
+
+<!-- foo
+
+-->
+
+<!-- <tag>
+
+-->
+
+<!--
+
+foo -->
+
+<!--
+
+<tag> -->
+
+<!-- unclosed comment
+
 __Still__ a comment (browsers see it that way)
\ No newline at end of file
index d15574a609d8476630df966cb531fe58cf92915c..eb567dd1a621ddcc3b72ff6eaa8946f6df90ee54 100644 (file)
@@ -1,38 +1,38 @@
-<!--\r
-\r
-foo\r
-\r
---> \r
-\r
-<p>\r
-\r
-foo\r
-\r
-</p>\r
-\r
-\r
-<div>\r
-\r
-foo\r
-\r
-</div>\r
-\r
-<!-- foo\r
-\r
--->\r
-\r
-<!-- <tag>\r
-\r
--->\r
-\r
-<!--\r
-\r
-foo -->\r
-\r
-<!--\r
-\r
-<tag> -->\r
-\r
-<!-- unclosed comment\r
-\r
-__Still__ a comment (browsers see it that way)\r
+<!--
+
+foo
+
+--> 
+
+<p>
+
+foo
+
+</p>
+
+
+<div>
+
+foo
+
+</div>
+
+<!-- foo
+
+-->
+
+<!-- <tag>
+
+-->
+
+<!--
+
+foo -->
+
+<!--
+
+<tag> -->
+
+<!-- unclosed comment
+
+__Still__ a comment (browsers see it that way)
index d3dbd087a8a1ad3208490e0160504849f5cdf311..9af441a2a42890622f6ecd5d510a14e59fcd489c 100644 (file)
@@ -1,52 +1,52 @@
-<ul>\r
-<li>\r
-<p>item 1</p>\r
-<p>paragraph 2</p>\r
-</li>\r
-<li>\r
-<p>item 2</p>\r
-<ul>\r
-<li>item 2-1</li>\r
-<li>\r
-<p>item 2-2</p>\r
-<ul>\r
-<li>item 2-2-1</li>\r
-</ul>\r
-</li>\r
-<li>\r
-<p>item 2-3</p>\r
-<ul>\r
-<li>item 2-3-1</li>\r
-</ul>\r
-</li>\r
-</ul>\r
-</li>\r
-<li>\r
-<p>item 3</p>\r
-</li>\r
-</ul>\r
-<p>plain text</p>\r
-<ul>\r
-<li>item 1<ul>\r
-<li>item 1-1</li>\r
-<li>item 1-2<ul>\r
-<li>item 1-2-1</li>\r
-</ul>\r
-</li>\r
-</ul>\r
-</li>\r
-<li>item 2</li>\r
-<li>item 3</li>\r
-<li>\r
-<p>item 4</p>\r
-<ul>\r
-<li>item 4-1</li>\r
-<li>item 4-2</li>\r
-<li>\r
-<p>item 4-3</p>\r
-<p>Paragraph under item 4-3</p>\r
-</li>\r
-</ul>\r
-<p>Paragraph under item 4</p>\r
-</li>\r
+<ul>
+<li>
+<p>item 1</p>
+<p>paragraph 2</p>
+</li>
+<li>
+<p>item 2</p>
+<ul>
+<li>item 2-1</li>
+<li>
+<p>item 2-2</p>
+<ul>
+<li>item 2-2-1</li>
+</ul>
+</li>
+<li>
+<p>item 2-3</p>
+<ul>
+<li>item 2-3-1</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+<p>item 3</p>
+</li>
+</ul>
+<p>plain text</p>
+<ul>
+<li>item 1<ul>
+<li>item 1-1</li>
+<li>item 1-2<ul>
+<li>item 1-2-1</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>item 2</li>
+<li>item 3</li>
+<li>
+<p>item 4</p>
+<ul>
+<li>item 4-1</li>
+<li>item 4-2</li>
+<li>
+<p>item 4-3</p>
+<p>Paragraph under item 4-3</p>
+</li>
+</ul>
+<p>Paragraph under item 4</p>
+</li>
 </ul>
\ No newline at end of file
index 1e2cce83074ba4f9ac648d605b77d542a120a4f8..a2704b43bd4694b108df37a59275f057bf15163e 100644 (file)
@@ -1,33 +1,33 @@
-* item 1\r
-\r
-    paragraph 2\r
-\r
-* item 2\r
-\r
-    * item 2-1\r
-    * item 2-2\r
-\r
-        * item 2-2-1\r
-\r
-    * item 2-3\r
-\r
-        * item 2-3-1\r
-\r
-* item 3\r
-\r
-plain text\r
-\r
-* item 1\r
-    * item 1-1\r
-    * item 1-2\r
-        * item 1-2-1\r
-* item 2\r
-* item 3\r
-* item 4\r
-    * item 4-1\r
-    * item 4-2\r
-    * item 4-3\r
-\r
-        Paragraph under item 4-3\r
-\r
-    Paragraph under item 4\r
+* item 1
+
+    paragraph 2
+
+* item 2
+
+    * item 2-1
+    * item 2-2
+
+        * item 2-2-1
+
+    * item 2-3
+
+        * item 2-3-1
+
+* item 3
+
+plain text
+
+* item 1
+    * item 1-1
+    * item 1-2
+        * item 1-2-1
+* item 2
+* item 3
+* item 4
+    * item 4-1
+    * item 4-2
+    * item 4-3
+
+        Paragraph under item 4-3
+
+    Paragraph under item 4
index a96e0cda09203d543a71f68a004dc4c6a3fb5578..1ac98ee1a050fa19b04116703b980fe575b797e4 100644 (file)
@@ -1,7 +1,7 @@
-<p><strong><em><a href="http://example.com">link</a></em></strong>\r
-<strong><em><a href="http://example.com">link</a></em></strong>\r
-<strong><a href="http://example.com"><em>link</em></a></strong>\r
-<strong><a href="http://example.com"><em>link</em></a></strong>\r
-<strong><a href="http://example.com"><em>link</em></a></strong>\r
-<strong><a href="http://example.com"><em>link</em></a></strong>\r
+<p><strong><em><a href="http://example.com">link</a></em></strong>
+<strong><em><a href="http://example.com">link</a></em></strong>
+<strong><a href="http://example.com"><em>link</em></a></strong>
+<strong><a href="http://example.com"><em>link</em></a></strong>
+<strong><a href="http://example.com"><em>link</em></a></strong>
+<strong><a href="http://example.com"><em>link</em></a></strong>
 <a href="http://example.com"><strong><em>link</em></strong></a></p>
\ No newline at end of file
index f8c895d6aeda6d0b1eff72dbb63b10d30776ed83..c651b8682b23b067813813dd7ff239f61dda076e 100644 (file)
@@ -1,7 +1,7 @@
-___[link](http://example.com)___\r
-***[link](http://example.com)***\r
-**[*link*](http://example.com)**\r
-__[_link_](http://example.com)__\r
-__[*link*](http://example.com)__\r
-**[_link_](http://example.com)**\r
-[***link***](http://example.com)\r
+___[link](http://example.com)___
+***[link](http://example.com)***
+**[*link*](http://example.com)**
+__[_link_](http://example.com)__
+__[*link*](http://example.com)__
+**[_link_](http://example.com)**
+[***link***](http://example.com)
diff --git a/tests/misc/no-attributes.html b/tests/misc/no-attributes.html
deleted file mode 100644 (file)
index adf956a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-<p>Regression <em>test</em> for issue 87</p>\r
-<p>It's run with enable_attributes=False so this {@id=explanation} should not become an attribute</p>
\ No newline at end of file
diff --git a/tests/misc/no-attributes.txt b/tests/misc/no-attributes.txt
deleted file mode 100644 (file)
index fcf299e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Regression *test* for issue 87\r
-\r
-It's run with enable_attributes=False so this {@id=explanation} should not become an attribute\r
index e01b945341065b6d9896997178405e33bc02761a..fe0cf17a59ac78ccb711cb0eeed6f7fab33656d9 100644 (file)
@@ -1,2 +1,2 @@
-\r
-[Link](http://www.stuff.com/q?x=1&y=2<>)\r
+
+[Link](http://www.stuff.com/q?x=1&y=2<>)
index a888b6b7b68e116585b8b5c754775b8b1c161652..3ad3b7a709d7767abef1903488c4c40081d4b7e8 100644 (file)
@@ -1,2 +1,2 @@
-<p><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#115;&#101;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">&#117;&#115;&#101;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;</a></p>\r
+<p><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#117;&#115;&#101;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">&#117;&#115;&#101;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;</a></p>
 <p>This is an entity: &#234; </p>
\ No newline at end of file
index da3ee6a02bd4d289127f2c18fe28f83c6fec2379..fd2052b269958d53bdb3edeff9b2df8033162e27 100644 (file)
@@ -1,4 +1,4 @@
-\r
-<user@gmail.com>\r
-\r
-This is an entity: &#234; \r
+
+<user@gmail.com>
+
+This is an entity: &#234; 
index 937c91f17938d50a1e342dfbd492c6e15c5c0d5d..7607449bd584437507a3be794f89a32932a5e22b 100644 (file)
@@ -1,6 +1,6 @@
-<p>Here is a paragraph, followed by a horizontal rule.</p>\r
-<hr />\r
-<p>Followed by another paragraph.</p>\r
-<p>Here is another paragraph, followed by:\r
-*** not an HR.\r
+<p>Here is a paragraph, followed by a horizontal rule.</p>
+<hr />
+<p>Followed by another paragraph.</p>
+<p>Here is another paragraph, followed by:
+*** not an HR.
 Followed by more of the same paragraph.</p>
\ No newline at end of file
index a021485790a44c35b18a35ad9e382b144847fba1..165bbe346a3cf6dfa7525b0457d34930635ffe6f 100644 (file)
@@ -1,7 +1,7 @@
-Here is a paragraph, followed by a horizontal rule.\r
-***\r
-Followed by another paragraph.\r
-\r
-Here is another paragraph, followed by:\r
-*** not an HR.\r
-Followed by more of the same paragraph.\r
+Here is a paragraph, followed by a horizontal rule.
+***
+Followed by another paragraph.
+
+Here is another paragraph, followed by:
+*** not an HR.
+Followed by more of the same paragraph.
index 35cba3f2da3a0a606981c491a6873e25da194159..8cd4ed5a17dedde6d4d2936eb6504d12e9a4559a 100644 (file)
@@ -1,11 +1,11 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\r
-            "http://www.w3.org/TR/html4/strict.dtd">\r
-\r
-<p><b>This should have a p tag</b></p>\r
-<!--This is a comment -->\r
-\r
-<div>This shouldn't</div>\r
-\r
-<?php echo "block_level";?>\r
-\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+            "http://www.w3.org/TR/html4/strict.dtd">
+
+<p><b>This should have a p tag</b></p>
+<!--This is a comment -->
+
+<div>This shouldn't</div>
+
+<?php echo "block_level";?>
+
 <p>&lt;?php echo "not_block_level";?&gt;</p>
\ No newline at end of file
index a879f5c5fe30f58097929152bc417afc8f991cea..ca5be45321640016790f7697f96bbcae664e115d 100644 (file)
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\r
-            "http://www.w3.org/TR/html4/strict.dtd">\r
-\r
-<b>This should have a p tag</b>\r
-\r
-<!--This is a comment -->\r
-\r
-<div>This shouldn't</div>\r
-\r
-<?php echo "block_level";?>\r
-\r
- <?php echo "not_block_level";?>\r
-\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+            "http://www.w3.org/TR/html4/strict.dtd">
+
+<b>This should have a p tag</b>
+
+<!--This is a comment -->
+
+<div>This shouldn't</div>
+
+<?php echo "block_level";?>
+
+ <?php echo "not_block_level";?>
+
index 8ca8264770f77b3a878a670c176003354c9752bb..a44ae126b3f5b77d6556e4ef173c6364a02e24ce 100644 (file)
@@ -1,13 +1,13 @@
-<pre>\r
-\r
-aaa\r
-\r
-bbb\r
-</pre>\r
-\r
-<pre>\r
-* and this is pre-formatted content\r
-* and it should be printed just like this\r
-* and not formatted as a list\r
-\r
+<pre>
+
+aaa
+
+bbb
+</pre>
+
+<pre>
+* and this is pre-formatted content
+* and it should be printed just like this
+* and not formatted as a list
+
 </pre>
\ No newline at end of file
index 514e97bb6c8ffb2905d5439d1fc0abf0f2d04561..31243b59cb6b1059377613acbf9494a2da14a66c 100644 (file)
@@ -1,14 +1,14 @@
-<pre>\r
-\r
-aaa\r
-\r
-bbb\r
-</pre>\r
-\r
-<pre>\r
-* and this is pre-formatted content\r
-* and it should be printed just like this\r
-* and not formatted as a list\r
-\r
-</pre>\r
-\r
+<pre>
+
+aaa
+
+bbb
+</pre>
+
+<pre>
+* and this is pre-formatted content
+* and it should be printed just like this
+* and not formatted as a list
+
+</pre>
+
index 200a88d51bde0d4c5a62393e1f04f01b1b02a62b..7a6f13184436506f6c3fccb71baf6741a48fdb8a 100644 (file)
@@ -1,8 +1,8 @@
-<p>Preserve whitespace in raw html</p>\r
-<pre>\r
-class Foo():\r
-    bar = 'bar'\r
-\r
-    def baz(self):\r
-        print self.bar\r
+<p>Preserve whitespace in raw html</p>
+<pre>
+class Foo():
+    bar = 'bar'
+
+    def baz(self):
+        print self.bar
 </pre>
\ No newline at end of file
index 9657c1fcc7bf3065d596068d47a2480068a714ee..bbc7cece6e753f7d19d2de29f041d35216375aac 100644 (file)
@@ -1,10 +1,10 @@
-Preserve whitespace in raw html\r
-\r
-<pre>\r
-class Foo():\r
-    bar = 'bar'\r
-\r
-    def baz(self):\r
-        print self.bar\r
-</pre>\r
-\r
+Preserve whitespace in raw html
+
+<pre>
+class Foo():
+    bar = 'bar'
+
+    def baz(self):
+        print self.bar
+</pre>
+
index f405448da55c91a363c039a8fc093648aaeb69d2..57c968894bce9e0ddd55b6c3d5393dae5751c0dd 100644 (file)
@@ -1,6 +1,6 @@
-<h1>Недвард «Нед» Фландерс</h1>\r
-<p><strong>Недвард «Нед» Фландерс</strong> (Nedward «Ned» Flanders) — вымышленный персонаж мультсериала «[Симпсоны][]», озвученный Гарри Ширером. Он и его семья живут по соседству от семьи Симпсонов. Набожный христианин, Нед является одним из столпов морали Спрингфилда. В эпизоде «Alone Again, Natura-Diddily»  он овдовел, его жена Мод погибла в результате несчастного случая. </p>\r
-<p>Нед был одним из первых персонажей в мультсериале, который не был членом семьи Симпсонов. Начиная с первых серий, он регулярно появляется в «Симпсонах». Считается, что Нед Фландерс был назван в честь улицы <em>Northeast Flanders St.</em> в <a href="http://www.portland.gov">Портленде</a>, Орегон, родном городе создателя мультсериала Мэтта Грейнинга]]. Надпись на указателе улицы <em>NE Flanders St.</em> хулиганы часто исправляли на <em>NED Flanders St.</em></p>\r
-<h2>Биография</h2>\r
-<p>Нед Фландерс родился в Нью-Йорке, его родители были битниками. Его отец в точности похож на взрослого Неда, только он носил козлиную бородку. Их отказ от воспитания Неда и то, что они, в общем-то, были плохими родителями («мы ничего в этом не понимаем и не знаем как начать») привело к тому, что Нед превратился в ужасного сорванца. В конце концов они согласились на экспериментальную восьмимесячную шлепологическую терапию Миннесотского Университета (воспоминания Неда в эпизоде «Hurricane Neddy»), которая научила его подавлять чувство злости. Побочным эфектом терапии стало то, что Нед стал ненавидеть своих родителей (это одна из двух вещей которые ненавидит Фландерс, вторая — отделения почты, чьи длинные очереди, суета и угрюмый персонал раздражают его).</p>\r
+<h1>Недвард «Нед» Фландерс</h1>
+<p><strong>Недвард «Нед» Фландерс</strong> (Nedward «Ned» Flanders) — вымышленный персонаж мультсериала «[Симпсоны][]», озвученный Гарри Ширером. Он и его семья живут по соседству от семьи Симпсонов. Набожный христианин, Нед является одним из столпов морали Спрингфилда. В эпизоде «Alone Again, Natura-Diddily»  он овдовел, его жена Мод погибла в результате несчастного случая. </p>
+<p>Нед был одним из первых персонажей в мультсериале, который не был членом семьи Симпсонов. Начиная с первых серий, он регулярно появляется в «Симпсонах». Считается, что Нед Фландерс был назван в честь улицы <em>Northeast Flanders St.</em> в <a href="http://www.portland.gov">Портленде</a>, Орегон, родном городе создателя мультсериала Мэтта Грейнинга]]. Надпись на указателе улицы <em>NE Flanders St.</em> хулиганы часто исправляли на <em>NED Flanders St.</em></p>
+<h2>Биография</h2>
+<p>Нед Фландерс родился в Нью-Йорке, его родители были битниками. Его отец в точности похож на взрослого Неда, только он носил козлиную бородку. Их отказ от воспитания Неда и то, что они, в общем-то, были плохими родителями («мы ничего в этом не понимаем и не знаем как начать») привело к тому, что Нед превратился в ужасного сорванца. В конце концов они согласились на экспериментальную восьмимесячную шлепологическую терапию Миннесотского Университета (воспоминания Неда в эпизоде «Hurricane Neddy»), которая научила его подавлять чувство злости. Побочным эфектом терапии стало то, что Нед стал ненавидеть своих родителей (это одна из двух вещей которые ненавидит Фландерс, вторая — отделения почты, чьи длинные очереди, суета и угрюмый персонал раздражают его).</p>
 <p>У Неда есть странная привычка добавлять «дидли», «дадли» и другие бессмысленные слова в свои фразы при разговоре, например: «Hi-diddly-ho, neighbor-ino» («Приветик, соседушка»). Это результат сублимации его злости, вызванной сдерживанием гнева, который не имеет никакого другого выхода.</p>
\ No newline at end of file
index 9095aa22f091dfa6a115d7142ce89994466d969c..a742065000ef37717c0dae9fe3476e7e0d3baddb 100644 (file)
@@ -1,15 +1,15 @@
-Недвард «Нед» Фландерс\r
-======================\r
-\r
-\r
-**Недвард «Нед» Фландерс** (Nedward «Ned» Flanders) — вымышленный персонаж мультсериала «[Симпсоны][]», озвученный Гарри Ширером. Он и его семья живут по соседству от семьи Симпсонов. Набожный христианин, Нед является одним из столпов морали Спрингфилда. В эпизоде «Alone Again, Natura-Diddily»  он овдовел, его жена Мод погибла в результате несчастного случая. \r
-\r
-Нед был одним из первых персонажей в мультсериале, который не был членом семьи Симпсонов. Начиная с первых серий, он регулярно появляется в «Симпсонах». Считается, что Нед Фландерс был назван в честь улицы *Northeast Flanders St.* в [Портленде](http://www.portland.gov), Орегон, родном городе создателя мультсериала Мэтта Грейнинга]]. Надпись на указателе улицы *NE Flanders St.* хулиганы часто исправляли на _NED Flanders St._\r
-\r
-## Биография\r
-\r
-Нед Фландерс родился в Нью-Йорке, его родители были битниками. Его отец в точности похож на взрослого Неда, только он носил козлиную бородку. Их отказ от воспитания Неда и то, что они, в общем-то, были плохими родителями («мы ничего в этом не понимаем и не знаем как начать») привело к тому, что Нед превратился в ужасного сорванца. В конце концов они согласились на экспериментальную восьмимесячную шлепологическую терапию Миннесотского Университета (воспоминания Неда в эпизоде «Hurricane Neddy»), которая научила его подавлять чувство злости. Побочным эфектом терапии стало то, что Нед стал ненавидеть своих родителей (это одна из двух вещей которые ненавидит Фландерс, вторая — отделения почты, чьи длинные очереди, суета и угрюмый персонал раздражают его).\r
-\r
-У Неда есть странная привычка добавлять «дидли», «дадли» и другие бессмысленные слова в свои фразы при разговоре, например: «Hi-diddly-ho, neighbor-ino» («Приветик, соседушка»). Это результат сублимации его злости, вызванной сдерживанием гнева, который не имеет никакого другого выхода.\r
-\r
-\r
+Недвард «Нед» Фландерс
+======================
+
+
+**Недвард «Нед» Фландерс** (Nedward «Ned» Flanders) — вымышленный персонаж мультсериала «[Симпсоны][]», озвученный Гарри Ширером. Он и его семья живут по соседству от семьи Симпсонов. Набожный христианин, Нед является одним из столпов морали Спрингфилда. В эпизоде «Alone Again, Natura-Diddily»  он овдовел, его жена Мод погибла в результате несчастного случая. 
+
+Нед был одним из первых персонажей в мультсериале, который не был членом семьи Симпсонов. Начиная с первых серий, он регулярно появляется в «Симпсонах». Считается, что Нед Фландерс был назван в честь улицы *Northeast Flanders St.* в [Портленде](http://www.portland.gov), Орегон, родном городе создателя мультсериала Мэтта Грейнинга]]. Надпись на указателе улицы *NE Flanders St.* хулиганы часто исправляли на _NED Flanders St._
+
+## Биография
+
+Нед Фландерс родился в Нью-Йорке, его родители были битниками. Его отец в точности похож на взрослого Неда, только он носил козлиную бородку. Их отказ от воспитания Неда и то, что они, в общем-то, были плохими родителями («мы ничего в этом не понимаем и не знаем как начать») привело к тому, что Нед превратился в ужасного сорванца. В конце концов они согласились на экспериментальную восьмимесячную шлепологическую терапию Миннесотского Университета (воспоминания Неда в эпизоде «Hurricane Neddy»), которая научила его подавлять чувство злости. Побочным эфектом терапии стало то, что Нед стал ненавидеть своих родителей (это одна из двух вещей которые ненавидит Фландерс, вторая — отделения почты, чьи длинные очереди, суета и угрюмый персонал раздражают его).
+
+У Неда есть странная привычка добавлять «дидли», «дадли» и другие бессмысленные слова в свои фразы при разговоре, например: «Hi-diddly-ho, neighbor-ino» («Приветик, соседушка»). Это результат сублимации его злости, вызванной сдерживанием гнева, который не имеет никакого другого выхода.
+
+
index ab6fab7ef0962cd356df03dfca11d566671f2fd2..5683b2512b3184303cb30cdb6c275a422679b912 100644 (file)
@@ -1,5 +1,5 @@
-<p><em>emphasis</em></p>\r
-<p>this_is_not_emphasis</p>\r
-<p>[<em>punctuation with emphasis</em>]</p>\r
-<p>[<em>punctuation_with_emphasis</em>]</p>\r
+<p><em>emphasis</em></p>
+<p>this_is_not_emphasis</p>
+<p>[<em>punctuation with emphasis</em>]</p>
+<p>[<em>punctuation_with_emphasis</em>]</p>
 <p>[punctuation_without_emphasis]</p>
\ No newline at end of file
index ffacd2b0ec952621b48dccb4d96898196432e8b7..3c56842730bb2dc470d71a193b586a874978eb4a 100644 (file)
@@ -1,9 +1,9 @@
-_emphasis_\r
-\r
-this_is_not_emphasis\r
-\r
-[_punctuation with emphasis_]\r
-\r
-[_punctuation_with_emphasis_]\r
-\r
-[punctuation_without_emphasis]\r
+_emphasis_
+
+this_is_not_emphasis
+
+[_punctuation with emphasis_]
+
+[_punctuation_with_emphasis_]
+
+[punctuation_without_emphasis]
index bb95fc68cf8cac7e832578597e91a568d8e546ae..b78683f1fe4cc6aa46d6fdac9eaeacc052a3c6ec 100644 (file)
@@ -1,68 +1,68 @@
-<hr />\r
-<ul>\r
-<li>\r
-<p>as if</p>\r
-</li>\r
-<li>\r
-<p>as if2</p>\r
-</li>\r
-</ul>\r
-<hr />\r
-<ul>\r
-<li>\r
-<p>as if</p>\r
-</li>\r
-<li>\r
-<p>as if2</p>\r
-</li>\r
-</ul>\r
-<hr />\r
-<ul>\r
-<li>as if\r
-    non_code</li>\r
-<li>as if2</li>\r
-</ul>\r
-<p>Markdown</p>\r
-<ul>\r
-<li>\r
-<p>Python\r
-    is ok</p>\r
-<ul>\r
-<li>Therefore i am</li>\r
-</ul>\r
-</li>\r
-<li>\r
-<p>Perl sucks\r
-    big time</p>\r
-<ul>\r
-<li>But that's\r
-ok</li>\r
-</ul>\r
-</li>\r
-<li>\r
-<p>Python is\r
-ok\r
-    Or not?</p>\r
-</li>\r
-</ul>\r
-<p>Here is a normal paragraph</p>\r
-<ol>\r
-<li>Another list\r
-with a bunch of items</li>\r
-<li>\r
-<p>Mostly fruits</p>\r
-<ol>\r
-<li>Apple</li>\r
-<li>Pare</li>\r
-</ol>\r
-</li>\r
-</ol>\r
-<p>asdfasdfasd</p>\r
-<pre><code># This is a code example\r
-import stuff\r
-\r
-Another code example\r
-* Lists and similar stuff\r
-\r
-&gt; Should be ignored\r
+<hr />
+<ul>
+<li>
+<p>as if</p>
+</li>
+<li>
+<p>as if2</p>
+</li>
+</ul>
+<hr />
+<ul>
+<li>
+<p>as if</p>
+</li>
+<li>
+<p>as if2</p>
+</li>
+</ul>
+<hr />
+<ul>
+<li>as if
+    non_code</li>
+<li>as if2</li>
+</ul>
+<p>Markdown</p>
+<ul>
+<li>
+<p>Python
+    is ok</p>
+<ul>
+<li>Therefore i am</li>
+</ul>
+</li>
+<li>
+<p>Perl sucks
+    big time</p>
+<ul>
+<li>But that's
+ok</li>
+</ul>
+</li>
+<li>
+<p>Python is
+ok
+    Or not?</p>
+</li>
+</ul>
+<p>Here is a normal paragraph</p>
+<ol>
+<li>Another list
+with a bunch of items</li>
+<li>
+<p>Mostly fruits</p>
+<ol>
+<li>Apple</li>
+<li>Pare</li>
+</ol>
+</li>
+</ol>
+<p>asdfasdfasd</p>
+<pre><code># This is a code example
+import stuff
+
+Another code example
+* Lists and similar stuff
+
+&gt; Should be ignored
 </code></pre>
\ No newline at end of file
index ae16561783021ef0a1a8a6f82c7002db76aa8124..070881731e5b86e19788c5af449c75c0665dd684 100644 (file)
@@ -1,57 +1,57 @@
-----------------------\r
-\r
-* as if\r
-       \r
-* as if2\r
-\r
-----------------------\r
-\r
-* as if\r
-    \r
-* as if2\r
-\r
-----------------------\r
-\r
-* as if\r
-    non_code\r
-* as if2\r
-\r
-\r
-\r
-\r
-Markdown\r
-\r
-*   Python\r
-    is ok\r
-    * Therefore i am\r
-\r
-* Perl sucks\r
-    big time\r
-    * But that's\r
-    ok\r
-\r
-* Python is\r
-ok\r
-    Or not?\r
-   \r
-Here is a normal paragraph\r
-\r
-1. Another list\r
-with a bunch of items\r
-2. Mostly fruits\r
-\r
-\r
-\r
-    3. Apple\r
-    4. Pare\r
-\r
-asdfasdfasd\r
-\r
-\r
-    # This is a code example\r
-    import stuff\r
-\r
-    Another code example\r
-    * Lists and similar stuff\r
-\r
-    > Should be ignored\r
+----------------------
+
+* as if
+       
+* as if2
+
+----------------------
+
+* as if
+    
+* as if2
+
+----------------------
+
+* as if
+    non_code
+* as if2
+
+
+
+
+Markdown
+
+*   Python
+    is ok
+    * Therefore i am
+
+* Perl sucks
+    big time
+    * But that's
+    ok
+
+* Python is
+ok
+    Or not?
+   
+Here is a normal paragraph
+
+1. Another list
+with a bunch of items
+2. Mostly fruits
+
+
+
+    3. Apple
+    4. Pare
+
+asdfasdfasd
+
+
+    # This is a code example
+    import stuff
+
+    Another code example
+    * Lists and similar stuff
+
+    > Should be ignored
index febd8735da3c9a5e651491cb7e8e66bd1a288453..bafcf0f23143e98520e5e7e4f66be6960f5581de 100644 (file)
@@ -1,6 +1,6 @@
-<p><span id="someId"> Foo <em>bar</em> Baz </span></p>\r
-<div><b>*foo*</b></div>\r
-\r
-<div id="someId"> Foo *bar* Baz </div>\r
-\r
+<p><span id="someId"> Foo <em>bar</em> Baz </span></p>
+<div><b>*foo*</b></div>
+
+<div id="someId"> Foo *bar* Baz </div>
+
 <p><baza id="someId"> Foo <em>bar</em> Baz </baza></p>
\ No newline at end of file
index 4619d50003c7862aafaf8df71a8a209053b9c406..62bcf9b520c322f80e19c90e1cb02ef6021d214f 100644 (file)
@@ -1,10 +1,10 @@
-\r
-<span id="someId"> Foo *bar* Baz </span>\r
-\r
-<div><b>*foo*</b></div>\r
-\r
-<div id="someId"> Foo *bar* Baz </div>\r
-\r
-<baza id="someId"> Foo *bar* Baz </baza>\r
-\r
-\r
+
+<span id="someId"> Foo *bar* Baz </span>
+
+<div><b>*foo*</b></div>
+
+<div id="someId"> Foo *bar* Baz </div>
+
+<baza id="someId"> Foo *bar* Baz </baza>
+
+
index acd89c475ce8a0adb5b441d4a692d0270a5da2be..1a3544fb35694383b5d03ad1b412dad9b6b3d2e3 100644 (file)
@@ -1 +1 @@
-__this_is_strong__\r
+__this_is_strong__
index f7277e2d1b330333ac4d9fcd4107a83dbf4d025a..cf18bd0098b0134c7b63d2bcb5d0d8a6ec579c6b 100644 (file)
@@ -1,4 +1,4 @@
-<p>this is a <a href="http://example.com/"><strong>test</strong></a></p>\r
-<p>this is a second <strong><a href="http://example.com">test</a></strong></p>\r
-<p>reference <strong>[test][]</strong>\r
+<p>this is a <a href="http://example.com/"><strong>test</strong></a></p>
+<p>this is a second <strong><a href="http://example.com">test</a></strong></p>
+<p>reference <strong>[test][]</strong>
 reference [<strong>test</strong>][]</p>
\ No newline at end of file
index f27e3a34c9b237c61948e14e8fc5ddd763971f0b..01c118fa68b886bb4b699ae5fbb473f2a466c8a3 100644 (file)
@@ -1,8 +1,8 @@
-this is a [**test**](http://example.com/)\r
-\r
-this is a second **[test](http://example.com)**\r
-\r
-reference **[test][]**\r
-reference [**test**][]\r
-\r
-\r
+this is a [**test**](http://example.com/)
+
+this is a second **[test](http://example.com)**
+
+reference **[test][]**
+reference [**test**][]
+
+
index 5660bc4b262abb0cb0d4e8872c3576510c1f1cfd..fdb7cb6e401ccffa33e7ca3dc1d71f88389420e3 100644 (file)
@@ -1,42 +1,42 @@
-<p>First a list with a tabbed line</p>\r
-<ul>\r
-<li>\r
-<p>A</p>\r
-</li>\r
-<li>\r
-<p>B</p>\r
-</li>\r
-</ul>\r
-<p>Just a blank line:</p>\r
-<ul>\r
-<li>\r
-<p>A</p>\r
-</li>\r
-<li>\r
-<p>B</p>\r
-</li>\r
-</ul>\r
-<p>Now a list with 4 spaces and some text:</p>\r
-<ul>\r
-<li>A\r
-    abcdef</li>\r
-<li>B</li>\r
-</ul>\r
-<p>Now with a tab and an extra space:</p>\r
-<ul>\r
-<li>\r
-<p>A</p>\r
-</li>\r
-<li>\r
-<p>B</p>\r
-</li>\r
-</ul>\r
-<p>Now a list with 4 spaces:</p>\r
-<ul>\r
-<li>\r
-<p>A</p>\r
-</li>\r
-<li>\r
-<p>B</p>\r
-</li>\r
+<p>First a list with a tabbed line</p>
+<ul>
+<li>
+<p>A</p>
+</li>
+<li>
+<p>B</p>
+</li>
+</ul>
+<p>Just a blank line:</p>
+<ul>
+<li>
+<p>A</p>
+</li>
+<li>
+<p>B</p>
+</li>
+</ul>
+<p>Now a list with 4 spaces and some text:</p>
+<ul>
+<li>A
+    abcdef</li>
+<li>B</li>
+</ul>
+<p>Now with a tab and an extra space:</p>
+<ul>
+<li>
+<p>A</p>
+</li>
+<li>
+<p>B</p>
+</li>
+</ul>
+<p>Now a list with 4 spaces:</p>
+<ul>
+<li>
+<p>A</p>
+</li>
+<li>
+<p>B</p>
+</li>
 </ul>
\ No newline at end of file
index 2eddca27405ddd7c2fa92925aa423faff7b984cb..05fde239e66dd89e89dac1efb40c7100a7a94888 100644 (file)
@@ -1,32 +1,32 @@
-First a list with a tabbed line\r
-\r
-* A\r
-       \r
-* B\r
-\r
-Just a blank line:\r
-\r
-* A\r
-\r
-* B\r
-\r
-\r
-Now a list with 4 spaces and some text:\r
-\r
-* A\r
-    abcdef\r
-* B\r
-\r
-\r
-Now with a tab and an extra space:\r
-\r
-* A\r
-        \r
-* B\r
-\r
-Now a list with 4 spaces:\r
-\r
-* A\r
-    \r
-* B\r
-\r
+First a list with a tabbed line
+
+* A
+       
+* B
+
+Just a blank line:
+
+* A
+
+* B
+
+
+Now a list with 4 spaces and some text:
+
+* A
+    abcdef
+* B
+
+
+Now with a tab and an extra space:
+
+* A
+        
+* B
+
+Now a list with 4 spaces:
+
+* A
+    
+* B
+
diff --git a/tests/misc/test.cfg b/tests/misc/test.cfg
deleted file mode 100644 (file)
index f14676c..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-[no-attributes]\r
-enable_attributes=False
\ No newline at end of file
index f7ce548f298834722177922785e58d9fb1021320..97b54b46726200d837bcfc8e78e503b2552d7c3a 100644 (file)
@@ -1,19 +1,19 @@
-<p>This line has two spaces at the end<br />\r
-but this one has none\r
-but this line has three <br />\r
-and this is the second from last line\r
-in this test message</p>\r
-<ul>\r
-<li>This list item has two spaces.  </li>\r
-<li>\r
-<p>This has none.\r
-    This line has three. <br />\r
-    This line has none.\r
-    And this line two.  </p>\r
-<p>This line has none.</p>\r
-</li>\r
-<li>\r
-<p>This line has none.</p>\r
-</li>\r
-</ul>\r
+<p>This line has two spaces at the end<br />
+but this one has none
+but this line has three <br />
+and this is the second from last line
+in this test message</p>
+<ul>
+<li>This list item has two spaces.  </li>
+<li>
+<p>This has none.
+    This line has three. <br />
+    This line has none.
+    And this line two.  </p>
+<p>This line has none.</p>
+</li>
+<li>
+<p>This line has none.</p>
+</li>
+</ul>
 <p>And this is the end.</p>
\ No newline at end of file
index 61bab3fd84c45ceca4c56a89fee414e04446ec05..61c19f733c4282bbc8890cc3cfec6c76d287158d 100644 (file)
@@ -1,17 +1,17 @@
-This line has two spaces at the end  \r
-but this one has none\r
-but this line has three   \r
-and this is the second from last line\r
-in this test message\r
-\r
-* This list item has two spaces.  \r
-* This has none.\r
-    This line has three.   \r
-    This line has none.\r
-    And this line two.  \r
-\r
-    This line has none.\r
-\r
-* This line has none.\r
-\r
-And this is the end.\r
+This line has two spaces at the end  
+but this one has none
+but this line has three   
+and this is the second from last line
+in this test message
+
+* This list item has two spaces.  
+* This has none.
+    This line has three.   
+    This line has none.
+    And this line two.  
+
+    This line has none.
+
+* This line has none.
+
+And this is the end.
index cfe6f0e9ecc2d97c55b077703a6e0f870c6153d7..e62329d4c4c57fa430f52a226719c96d96eec7e9 100644 (file)
@@ -1,3 +1,3 @@
-<p><img alt="asif" src="http://fourthought.com/images/ftlogo.png" title="Fourthought logo" /></p>\r
-<p><a href="http://fourthought.com/"><img alt="" src="http://fourthought.com/images/ftlogo.png" style="float: left; margin: 10px; border: none;" title="Fourthought logo" /></a></p>\r
+<p><img alt="asif" src="http://fourthought.com/images/ftlogo.png" title="Fourthought logo" /></p>
+<p><a href="http://fourthought.com/"><img alt="" src="http://fourthought.com/images/ftlogo.png" style="float: left; margin: 10px; border: none;" title="Fourthought logo" /></a></p>
 <p><a href="http://link.com/"><img alt="text" src="x" /></a></p>
\ No newline at end of file
index 06566c3345826ecaecabed04bff04a737e0bb113..a3dda1a6985d841e796416e0651791a680ecc25a 100644 (file)
@@ -1,7 +1,7 @@
-![asif](http://fourthought.com/images/ftlogo.png "Fourthought logo")\r
-\r
-[![{@style=float: left; margin: 10px; border:\r
-none;}](http://fourthought.com/images/ftlogo.png "Fourthought\r
-logo")](http://fourthought.com/)\r
-\r
-[![text](x)](http://link.com/)\r
+![asif](http://fourthought.com/images/ftlogo.png "Fourthought logo")
+
+[![{@style=float: left; margin: 10px; border:
+none;}](http://fourthought.com/images/ftlogo.png "Fourthought
+logo")](http://fourthought.com/)
+
+[![text](x)](http://link.com/)
index f138462de0c2cd89504e124a54f73916b494474f..54bd9f9520083c38640b0454bca0be614870a008 100644 (file)
@@ -1,6 +1,6 @@
-<p>THIS_SHOULD_STAY_AS_IS</p>\r
-<p>Here is some <em>emphasis</em>, ok?</p>\r
-<p>Ok, at least <em>this</em> should work.</p>\r
-<p>THIS<strong>SHOULD</strong>STAY</p>\r
-<p>Here is some <strong>strong</strong> stuff.</p>\r
+<p>THIS_SHOULD_STAY_AS_IS</p>
+<p>Here is some <em>emphasis</em>, ok?</p>
+<p>Ok, at least <em>this</em> should work.</p>
+<p>THIS<strong>SHOULD</strong>STAY</p>
+<p>Here is some <strong>strong</strong> stuff.</p>
 <p>THIS<strong><em>SHOULD</em></strong>STAY?</p>
\ No newline at end of file
index 117fb28746a4da7b2ffc2cacadfa5515e4dca674..3c7f4bdd9366de58c03fe541158568de3c9e64bd 100644 (file)
@@ -1,11 +1,11 @@
-THIS_SHOULD_STAY_AS_IS\r
-\r
-Here is some _emphasis_, ok?\r
-\r
-Ok, at least _this_ should work.\r
-\r
-THIS__SHOULD__STAY\r
-\r
-Here is some __strong__ stuff.\r
-\r
-THIS___SHOULD___STAY?\r
+THIS_SHOULD_STAY_AS_IS
+
+Here is some _emphasis_, ok?
+
+Ok, at least _this_ should work.
+
+THIS__SHOULD__STAY
+
+Here is some __strong__ stuff.
+
+THIS___SHOULD___STAY?
index b9684391647691571289619343f185507bdf9c04..ebacb75860936d0139677cd025f0714b9bf13ba4 100644 (file)
@@ -1,2 +1,2 @@
-<p><a href="http://wikipedia.org/wiki/Dawn of War">Dawn of War</a></p>\r
+<p><a href="http://wikipedia.org/wiki/Dawn of War">Dawn of War</a></p>
 <p><a href="http://wikipedia.org/wiki/Dawn of War" title="Dawn of War">Dawn of War</a></p>
\ No newline at end of file
index eb3c69bd929b3204c6f9dc3c355bc14aca602a47..3d2a82db0f154ac1fe3fe9ed8a5feb3fd59f57e9 100644 (file)
@@ -1,4 +1,4 @@
-[Dawn of War](http://wikipedia.org/wiki/Dawn of War)\r
-\r
-\r
-[Dawn of War](http://wikipedia.org/wiki/Dawn of War "Dawn of War")\r
+[Dawn of War](http://wikipedia.org/wiki/Dawn of War)
+
+
+[Dawn of War](http://wikipedia.org/wiki/Dawn of War "Dawn of War")
diff --git a/tests/options/html4.html b/tests/options/html4.html
new file mode 100644 (file)
index 0000000..7c88ad7
--- /dev/null
@@ -0,0 +1,2 @@
+<p>A test of the most<br>
+basic of html/xhtml differences.</p>
\ No newline at end of file
diff --git a/tests/options/html4.txt b/tests/options/html4.txt
new file mode 100644 (file)
index 0000000..fddaf8e
--- /dev/null
@@ -0,0 +1,2 @@
+A test of the most  
+basic of html/xhtml differences.
\ No newline at end of file
index 0f8eadb1203d558800ad6833e99eef9af28e52b4..bff1970dab958bf22263cc14903b2fe9364e6cdc 100644 (file)
@@ -1,18 +1,18 @@
-<p>A numbered list from daringfireball:</p>\r
-<ol start="3">\r
-<li>Bird</li>\r
-<li>McHale</li>\r
-<li>Parish</li>\r
-</ol>\r
-<p>Again:</p>\r
-<ol start="3">\r
-<li>Bird</li>\r
-<li>McHale</li>\r
-<li>Parish</li>\r
-</ol>\r
-<p>Now starting with 1:</p>\r
-<ol>\r
-<li>Bird</li>\r
-<li>McHale</li>\r
-<li>Parish</li>\r
+<p>A numbered list from daringfireball:</p>
+<ol start="3">
+<li>Bird</li>
+<li>McHale</li>
+<li>Parish</li>
+</ol>
+<p>Again:</p>
+<ol start="3">
+<li>Bird</li>
+<li>McHale</li>
+<li>Parish</li>
+</ol>
+<p>Now starting with 1:</p>
+<ol>
+<li>Bird</li>
+<li>McHale</li>
+<li>Parish</li>
 </ol>
\ No newline at end of file
index 0de63378f91a23a68498b5b81a2bf0eafae18f63..611f3a653030bd4512e4d39b169eb31f5500cdbc 100644 (file)
@@ -1,17 +1,17 @@
-A numbered list from daringfireball:\r
-\r
-3. Bird\r
-1. McHale\r
-8. Parish\r
-\r
-Again:\r
-\r
-3. Bird\r
-1. McHale\r
-8. Parish\r
-\r
-Now starting with 1:\r
-\r
-1. Bird\r
-1. McHale\r
-8. Parish\r
+A numbered list from daringfireball:
+
+3. Bird
+1. McHale
+8. Parish
+
+Again:
+
+3. Bird
+1. McHale
+8. Parish
+
+Now starting with 1:
+
+1. Bird
+1. McHale
+8. Parish
diff --git a/tests/options/no-attributes.html b/tests/options/no-attributes.html
new file mode 100644 (file)
index 0000000..a72e888
--- /dev/null
@@ -0,0 +1,2 @@
+<p>Regression <em>test</em> for issue 87</p>
+<p>It's run with enable_attributes=False so this {@id=explanation} should not become an attribute</p>
\ No newline at end of file
diff --git a/tests/options/no-attributes.txt b/tests/options/no-attributes.txt
new file mode 100644 (file)
index 0000000..b2cb653
--- /dev/null
@@ -0,0 +1,3 @@
+Regression *test* for issue 87
+
+It's run with enable_attributes=False so this {@id=explanation} should not become an attribute
diff --git a/tests/options/no-smart-emphasis.html b/tests/options/no-smart-emphasis.html
new file mode 100644 (file)
index 0000000..c4f1381
--- /dev/null
@@ -0,0 +1 @@
+<p><em>connected</em>words_</p>
\ No newline at end of file
diff --git a/tests/options/no-smart-emphasis.txt b/tests/options/no-smart-emphasis.txt
new file mode 100644 (file)
index 0000000..cf500b5
--- /dev/null
@@ -0,0 +1 @@
+_connected_words_
\ No newline at end of file
index f8fdcf2f5ec4fd6a517420cca873baea48f656ff..2e14f1f4549bce44a6ffb40752110bd9db1255db 100644 (file)
@@ -1,2 +1,11 @@
-[lazy_ol_off]\r
-lazy_ol = False\r
+lazy_ol_off:
+    lazy_ol: False
+
+html4:
+    output_format: html4
+
+no-attributes:
+    enable_attributes: False
+
+no-smart-emphasis:
+    smart_emphasis: False
\ No newline at end of file
index 02b283aec41b19b60699a73cc6db4cfc70d44014..c6011d61dd47e8b2ec239301bc52115292a19229 100644 (file)
@@ -1,6 +1,7 @@
-[DEFAULT]\r
-extensions=extra\r
-normalize=1\r
-input_ext=.text\r
-output_ext=.xhtml\r
-skip=1\r
+DEFAULT:
+    extensions:
+        - extra
+    normalize: True
+    input_ext: .text
+    output_ext: .xhtml
+    skip: True
index aed2e2730d844e179b086ec98de5a9005c5d8f83..70c260105963a98747f0836be16e82661cee65e6 100644 (file)
@@ -1,46 +1,50 @@
-[DEFAULT]\r
-normalize=1\r
-input_ext=.text\r
-output_ext=.xhtml\r
-#skip=1\r
-\r
-[Quotes in attributes]\r
-# attributes get output in differant order\r
-skip=1\r
-\r
-[Inline HTML (Span)]\r
-# Backtick in raw HTML attribute TODO: fixme\r
-skip=1\r
-\r
-[Backslash escapes]\r
-# Weird whitespace issue in output\r
-skip=1\r
-\r
-[Ins & del]\r
-# Our behavior follows markdown.pl I think PHP is wrong here\r
-skip=1\r
-\r
-[Auto Links]\r
-# TODO: fix raw HTML so is doesn't match <hr@example.com> as a <hr>.\r
-skip=1\r
-\r
-[Empty List Item]\r
-# We match markdown.pl here. Maybe someday we'll support this\r
-skip=1\r
-\r
-[Headers]\r
-# TODO: fix headers to not require blank line before\r
-skip=1\r
-\r
-[Mixed OLs and ULs]\r
-# We match markdown.pl here. I think PHP is wrong here\r
-skip=1\r
-\r
-[Emphasis]\r
-# We have various minor differances in combined & incorrect em markup.\r
-# Maybe fix a few of them - but most aren't too important\r
-skip=1\r
-\r
-[Code block in a list item]\r
-# We match markdown.pl - not sure how php gets that output??\r
-skip=1\r
+DEFAULT:
+    normalize: True
+    input_ext: .text
+    output_ext: .xhtml
+    #skip: True
+
+Quotes in attributes:
+    # attributes get output in differant order
+    skip: True
+
+Inline HTML (Span):
+    # Backtick in raw HTML attribute TODO: fixme
+    skip: True
+
+Backslash escapes:
+    # Weird whitespace issue in output
+    skip: True
+
+Ins & del:
+    # Our behavior follows markdown.pl I think PHP is wrong here
+    skip: True
+
+Auto Links:
+    # TODO: fix raw HTML so is doesn't match <hr@example.com> as a <hr>.
+    skip: True
+
+Empty List Item:
+    # We match markdown.pl here. Maybe someday we'll support this
+    skip: True
+
+Headers:
+    # TODO: fix headers to not require blank line before
+    skip: True
+
+Mixed OLs and ULs:
+    # We match markdown.pl here. I think PHP is wrong here
+    skip: True
+
+Emphasis:
+    # We have various minor differances in combined & incorrect em markup.
+    # Maybe fix a few of them - but most aren't too important
+    skip: True
+
+Code block in a list item:
+    # We match markdown.pl - not sure how php gets that output??
+    skip: True
+
+PHP-Specific Bugs:
+    # Not sure what to make of the escaping stuff here. Why is PHP not removing a blackslash?
+    skip: True
index 99236052fa4ef93f7b36353477e46c368b3c915a..9606860b6c1c5c4c958dfc7d7183618b443f0520 100644 (file)
@@ -1,17 +1,17 @@
-<p>AT&amp;T has an ampersand in their name.</p>\r
-\r
-<p>AT&amp;T is another way to write it.</p>\r
-\r
-<p>This &amp; that.</p>\r
-\r
-<p>4 &lt; 5.</p>\r
-\r
-<p>6 > 5.</p>\r
-\r
-<p>Here's a <a href="http://example.com/?foo=1&amp;bar=2">link</a> with an ampersand in the URL.</p>\r
-\r
-<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>\r
-\r
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>\r
-\r
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>\r
+<p>AT&amp;T has an ampersand in their name.</p>
+
+<p>AT&amp;T is another way to write it.</p>
+
+<p>This &amp; that.</p>
+
+<p>4 &lt; 5.</p>
+
+<p>6 > 5.</p>
+
+<p>Here's a <a href="http://example.com/?foo=1&amp;bar=2">link</a> with an ampersand in the URL.</p>
+
+<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>
+
+<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
+
+<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
index 12800bcb9807ace9d3a283467bc687e76790956f..f8df9852c7dffe8c15e8e6fa7af6280073e36bac 100644 (file)
@@ -1,18 +1,18 @@
-<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>\r
-\r
-<p>With an ampersand: <a href="http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</a></p>\r
-\r
-<ul>\r
-<li>In a list?</li>\r
-<li><a href="http://example.com/">http://example.com/</a></li>\r
-<li>It should.</li>\r
-</ul>\r
-\r
-<blockquote>\r
-  <p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>\r
-</blockquote>\r
-\r
-<p>Auto-links should not occur here: <code>&lt;http://example.com/&gt;</code></p>\r
-\r
-<pre><code>or here: &lt;http://example.com/&gt;\r
-</code></pre>\r
+<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
+
+<p>With an ampersand: <a href="http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</a></p>
+
+<ul>
+<li>In a list?</li>
+<li><a href="http://example.com/">http://example.com/</a></li>
+<li>It should.</li>
+</ul>
+
+<blockquote>
+  <p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>
+</blockquote>
+
+<p>Auto-links should not occur here: <code>&lt;http://example.com/&gt;</code></p>
+
+<pre><code>or here: &lt;http://example.com/&gt;
+</code></pre>
index 02634684fd96afbac41f2c484f6b98f0088e71d3..77823c3c74cb5d61a910f8975f5402e0f36303e2 100644 (file)
-<p>These should all get escaped:</p>\r
-\r
-<p>Backslash: \</p>\r
-\r
-<p>Backtick: `</p>\r
-\r
-<p>Asterisk: *</p>\r
-\r
-<p>Underscore: _</p>\r
-\r
-<p>Left brace: {</p>\r
-\r
-<p>Right brace: }</p>\r
-\r
-<p>Left bracket: [</p>\r
-\r
-<p>Right bracket: ]</p>\r
-\r
-<p>Left paren: (</p>\r
-\r
-<p>Right paren: )</p>\r
-\r
-<p>Greater-than: ></p>\r
-\r
-<p>Hash: #</p>\r
-\r
-<p>Period: .</p>\r
-\r
-<p>Bang: !</p>\r
-\r
-<p>Plus: +</p>\r
-\r
-<p>Minus: -</p>\r
-\r
-<p>These should not, because they occur within a code block:</p>\r
-\r
-<pre><code>Backslash: \\\r
-\r
-Backtick: \`\r
-\r
-Asterisk: \*\r
-\r
-Underscore: \_\r
-\r
-Left brace: \{\r
-\r
-Right brace: \}\r
-\r
-Left bracket: \[\r
-\r
-Right bracket: \]\r
-\r
-Left paren: \(\r
-\r
-Right paren: \)\r
-\r
-Greater-than: \&gt;\r
-\r
-Hash: \#\r
-\r
-Period: \.\r
-\r
-Bang: \!\r
-\r
-Plus: \+\r
-\r
-Minus: \-\r
-</code></pre>\r
-\r
-<p>Nor should these, which occur in code spans:</p>\r
-\r
-<p>Backslash: <code>\\</code></p>\r
-\r
-<p>Backtick: <code>\`</code></p>\r
-\r
-<p>Asterisk: <code>\*</code></p>\r
-\r
-<p>Underscore: <code>\_</code></p>\r
-\r
-<p>Left brace: <code>\{</code></p>\r
-\r
-<p>Right brace: <code>\}</code></p>\r
-\r
-<p>Left bracket: <code>\[</code></p>\r
-\r
-<p>Right bracket: <code>\]</code></p>\r
-\r
-<p>Left paren: <code>\(</code></p>\r
-\r
-<p>Right paren: <code>\)</code></p>\r
-\r
-<p>Greater-than: <code>\&gt;</code></p>\r
-\r
-<p>Hash: <code>\#</code></p>\r
-\r
-<p>Period: <code>\.</code></p>\r
-\r
-<p>Bang: <code>\!</code></p>\r
-\r
-<p>Plus: <code>\+</code></p>\r
-\r
-<p>Minus: <code>\-</code></p>\r
+<p>These should all get escaped:</p>
+
+<p>Backslash: \</p>
+
+<p>Backtick: `</p>
+
+<p>Asterisk: *</p>
+
+<p>Underscore: _</p>
+
+<p>Left brace: {</p>
+
+<p>Right brace: }</p>
+
+<p>Left bracket: [</p>
+
+<p>Right bracket: ]</p>
+
+<p>Left paren: (</p>
+
+<p>Right paren: )</p>
+
+<p>Greater-than: ></p>
+
+<p>Hash: #</p>
+
+<p>Period: .</p>
+
+<p>Bang: !</p>
+
+<p>Plus: +</p>
+
+<p>Minus: -</p>
+
+<p>These should not, because they occur within a code block:</p>
+
+<pre><code>Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \&gt;
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+</code></pre>
+
+<p>Nor should these, which occur in code spans:</p>
+
+<p>Backslash: <code>\\</code></p>
+
+<p>Backtick: <code>\`</code></p>
+
+<p>Asterisk: <code>\*</code></p>
+
+<p>Underscore: <code>\_</code></p>
+
+<p>Left brace: <code>\{</code></p>
+
+<p>Right brace: <code>\}</code></p>
+
+<p>Left bracket: <code>\[</code></p>
+
+<p>Right bracket: <code>\]</code></p>
+
+<p>Left paren: <code>\(</code></p>
+
+<p>Right paren: <code>\)</code></p>
+
+<p>Greater-than: <code>\&gt;</code></p>
+
+<p>Hash: <code>\#</code></p>
+
+<p>Period: <code>\.</code></p>
+
+<p>Bang: <code>\!</code></p>
+
+<p>Plus: <code>\+</code></p>
+
+<p>Minus: <code>\-</code></p>
index 3bdb552d974f0b72dcee62ae40891f47ef45e096..990202a1b381f677eb6d21fbc2d87a143a6cb80f 100644 (file)
@@ -1,15 +1,15 @@
-<blockquote>\r
-  <p>Example:</p>\r
-\r
-<pre><code>sub status {\r
-    print "working";\r
-}\r
-</code></pre>\r
-  \r
-  <p>Or:</p>\r
-\r
-<pre><code>sub status {\r
-    return "working";\r
-}\r
-</code></pre>\r
-</blockquote>\r
+<blockquote>
+  <p>Example:</p>
+
+<pre><code>sub status {
+    print "working";
+}
+</code></pre>
+  
+  <p>Or:</p>
+
+<pre><code>sub status {
+    return "working";
+}
+</code></pre>
+</blockquote>
index c7a72773a0e1de7279a1d877c22d413d1f3c9cdb..e21ac79a2e09a4e4285b6c7fd7963d1875432a5a 100644 (file)
@@ -1,8 +1,8 @@
-<p>In Markdown 1.0.0 and earlier. Version\r
-8. This line turns into a list item.\r
-Because a hard-wrapped line in the\r
-middle of a paragraph looked like a\r
-list item.</p>\r
-\r
-<p>Here's one with a bullet.\r
-* criminey.</p>\r
+<p>In Markdown 1.0.0 and earlier. Version
+8. This line turns into a list item.
+Because a hard-wrapped line in the
+middle of a paragraph looked like a
+list item.</p>
+
+<p>Here's one with a bullet.
+* criminey.</p>
index 4b5574c48900606035dc514e04b33a00605b3464..2dc2ab6565901aba001df71847f9c9df39129c21 100644 (file)
@@ -1,71 +1,71 @@
-<p>Dashes:</p>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>---\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>- - -\r
-</code></pre>\r
-\r
-<p>Asterisks:</p>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>***\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>* * *\r
-</code></pre>\r
-\r
-<p>Underscores:</p>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>___\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>_ _ _\r
-</code></pre>\r
+<p>Dashes:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>---
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>- - -
+</code></pre>
+
+<p>Asterisks:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>***
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>* * *
+</code></pre>
+
+<p>Underscores:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>___
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>_ _ _
+</code></pre>
index db46fde984763404234af415e405a868ef9a63b9..1972d87560611a4bb65108dd4a1bad2e70903951 100644 (file)
@@ -1,14 +1,14 @@
-<p>Simple block on one line:</p>\r
-\r
-<div>foo</div>\r
-\r
-<p>And nested without indentation:</p>\r
-\r
-<div>\r
-<div>\r
-<div>\r
-foo\r
-</div>\r
-</div>\r
-<div>bar</div>\r
-</div>\r
+<p>Simple block on one line:</p>
+
+<div>foo</div>
+
+<p>And nested without indentation:</p>
+
+<div>
+<div>
+<div>
+foo
+</div>
+</div>
+<div>bar</div>
+</div>
index eeb873d41ae94400214a3f19032e54f0362947e6..6bf78f8fc1bd7f5d5c65be066609903f2c9a745c 100644 (file)
@@ -1,72 +1,72 @@
-<p>Here's a simple block:</p>\r
-\r
-<div>\r
-    foo\r
-</div>\r
-\r
-<p>This should be a code block, though:</p>\r
-\r
-<pre><code>&lt;div&gt;\r
-    foo\r
-&lt;/div&gt;\r
-</code></pre>\r
-\r
-<p>As should this:</p>\r
-\r
-<pre><code>&lt;div&gt;foo&lt;/div&gt;\r
-</code></pre>\r
-\r
-<p>Now, nested:</p>\r
-\r
-<div>\r
-    <div>\r
-        <div>\r
-            foo\r
-        </div>\r
-    </div>\r
-</div>\r
-\r
-<p>This should just be an HTML comment:</p>\r
-\r
-<!-- Comment -->\r
-\r
-<p>Multiline:</p>\r
-\r
-<!--\r
-Blah\r
-Blah\r
--->\r
-\r
-<p>Code block:</p>\r
-\r
-<pre><code>&lt;!-- Comment --&gt;\r
-</code></pre>\r
-\r
-<p>Just plain comment, with trailing spaces on the line:</p>\r
-\r
-<!-- foo -->   \r
-\r
-<p>Code:</p>\r
-\r
-<pre><code>&lt;hr /&gt;\r
-</code></pre>\r
-\r
-<p>Hr's:</p>\r
-\r
-<hr>\r
-\r
-<hr/>\r
-\r
-<hr />\r
-\r
-<hr>   \r
-\r
-<hr/>  \r
-\r
-<hr /> \r
-\r
-<hr class="foo" id="bar" />\r
-\r
-<hr class="foo" id="bar"/>\r
-\r
-<hr class="foo" id="bar" >\r
+<p>Here's a simple block:</p>
+
+<div>
+    foo
+</div>
+
+<p>This should be a code block, though:</p>
+
+<pre><code>&lt;div&gt;
+    foo
+&lt;/div&gt;
+</code></pre>
+
+<p>As should this:</p>
+
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+
+<p>Now, nested:</p>
+
+<div>
+    <div>
+        <div>
+            foo
+        </div>
+    </div>
+</div>
+
+<p>This should just be an HTML comment:</p>
+
+<!-- Comment -->
+
+<p>Multiline:</p>
+
+<!--
+Blah
+Blah
+-->
+
+<p>Code block:</p>
+
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+
+<p>Just plain comment, with trailing spaces on the line:</p>
+
+<!-- foo -->   
+
+<p>Code:</p>
+
+<pre><code>&lt;hr /&gt;
+</code></pre>
+
+<p>Hr's:</p>
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>   
+
+<hr/>  
+
+<hr /> 
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
index fc353b69b8bb255eaf9a073781d441c7cca1ae80..3f167a1610e53a873e81374dccc5f7ef8fb1d990 100644 (file)
@@ -1,13 +1,13 @@
-<p>Paragraph one.</p>\r
-\r
-<!-- This is a simple comment -->\r
-\r
-<!--\r
-    This is another comment.\r
--->\r
-\r
-<p>Paragraph two.</p>\r
-\r
-<!-- one comment block -- -- with two comments -->\r
-\r
-<p>The end.</p>\r
+<p>Paragraph one.</p>
+
+<!-- This is a simple comment -->
+
+<!--
+    This is another comment.
+-->
+
+<p>Paragraph two.</p>
+
+<!-- one comment block -- -- with two comments -->
+
+<p>The end.</p>
index f548e794a08131d59f4be82983f54619ed4d58ef..bdfabb57482cb2d682d160a0f49b6bd4bc97863b 100644 (file)
@@ -1,9 +1,9 @@
-<p>Just a <a href="/url/">URL</a>.</p>\r
-\r
-<p><a href="/url/" title="title">URL and title</a>.</p>\r
-\r
-<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>\r
-\r
-<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>\r
-\r
-<p><a href="">Empty</a>.</p>\r
+<p>Just a <a href="/url/">URL</a>.</p>
+
+<p><a href="/url/" title="title">URL and title</a>.</p>
+
+<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>
+
+<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>
+
+<p><a href="">Empty</a>.</p>
index ee82fc65371e089fa1781f0f36f40ba4d4dc8f5a..cf4d8332e2d447ba79c104c8867043ac258b7be2 100644 (file)
@@ -1,18 +1,18 @@
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-\r
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-\r
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-\r
-<p>With <a href="/url/">embedded [brackets]</a>.</p>\r
-\r
-<p>Indented <a href="/url">once</a>.</p>\r
-\r
-<p>Indented <a href="/url">twice</a>.</p>\r
-\r
-<p>Indented <a href="/url">thrice</a>.</p>\r
-\r
-<p>Indented [four][] times.</p>\r
-\r
-<pre><code>[four]: /url\r
-</code></pre>\r
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>With <a href="/url/">embedded [brackets]</a>.</p>
+
+<p>Indented <a href="/url">once</a>.</p>
+
+<p>Indented <a href="/url">twice</a>.</p>
+
+<p>Indented <a href="/url">thrice</a>.</p>
+
+<p>Indented [four][] times.</p>
+
+<pre><code>[four]: /url
+</code></pre>
index d464ab4c9f93f375759d1e4e5e405d28a14c7503..611c1ac61f0d95609a78cbaf39dde20a0dfecdf0 100644 (file)
@@ -1,3 +1,3 @@
-<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>\r
-\r
-<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>\r
+<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>
index d96fa3e6bba1a9c39e29fa0a0e2b0f568980cf67..d5bdbb29a5fc31080bba7b19eb625d3c08d55b20 100644 (file)
-<h1>Markdown: Basics</h1>\r
-\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a class="selected" title="Markdown Basics">Basics</a></li>\r
-    <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-<h2>Getting the Gist of Markdown's Formatting Syntax</h2>\r
-\r
-<p>This page offers a brief overview of what it's like to use Markdown.\r
-The <a href="/projects/markdown/syntax" title="Markdown Syntax">syntax page</a> provides complete, detailed documentation for\r
-every feature, but Markdown should be very easy to pick up simply by\r
-looking at a few examples of it in action. The examples on this page\r
-are written in a before/after style, showing example syntax and the\r
-HTML output produced by Markdown.</p>\r
-\r
-<p>It's also helpful to simply try Markdown out; the <a href="/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a\r
-web application that allows you type your own Markdown-formatted text\r
-and translate it to XHTML.</p>\r
-\r
-<p><strong>Note:</strong> This document is itself written using Markdown; you\r
-can <a href="/projects/markdown/basics.text">see the source for it by adding '.text' to the URL</a>.</p>\r
-\r
-<h2>Paragraphs, Headers, Blockquotes</h2>\r
-\r
-<p>A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
-\r
-<p>Markdown offers two styles of headers: <em>Setext</em> and <em>atx</em>.\r
-Setext-style headers for <code>&lt;h1&gt;</code> and <code>&lt;h2&gt;</code> are created by\r
-"underlining" with equal signs (<code>=</code>) and hyphens (<code>-</code>), respectively.\r
-To create an atx-style header, you put 1-6 hash marks (<code>#</code>) at the\r
-beginning of the line -- the number of hashes equals the resulting\r
-HTML header level.</p>\r
-\r
-<p>Blockquotes are indicated using email-style '<code>&gt;</code>' angle brackets.</p>\r
-\r
-<p>Markdown:</p>\r
-\r
-<pre><code>A First Level Header\r
-====================\r
-\r
-A Second Level Header\r
----------------------\r
-\r
-Now is the time for all good men to come to\r
-the aid of their country. This is just a\r
-regular paragraph.\r
-\r
-The quick brown fox jumped over the lazy\r
-dog's back.\r
-\r
-### Header 3\r
-\r
-&gt; This is a blockquote.\r
-&gt; \r
-&gt; This is the second paragraph in the blockquote.\r
-&gt;\r
-&gt; ## This is an H2 in a blockquote\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;h1&gt;A First Level Header&lt;/h1&gt;\r
-\r
-&lt;h2&gt;A Second Level Header&lt;/h2&gt;\r
-\r
-&lt;p&gt;Now is the time for all good men to come to\r
-the aid of their country. This is just a\r
-regular paragraph.&lt;/p&gt;\r
-\r
-&lt;p&gt;The quick brown fox jumped over the lazy\r
-dog's back.&lt;/p&gt;\r
-\r
-&lt;h3&gt;Header 3&lt;/h3&gt;\r
-\r
-&lt;blockquote&gt;\r
-    &lt;p&gt;This is a blockquote.&lt;/p&gt;\r
-\r
-    &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;\r
-\r
-    &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;\r
-&lt;/blockquote&gt;\r
-</code></pre>\r
-\r
-<h3>Phrase Emphasis</h3>\r
-\r
-<p>Markdown uses asterisks and underscores to indicate spans of emphasis.</p>\r
-\r
-<p>Markdown:</p>\r
-\r
-<pre><code>Some of these words *are emphasized*.\r
-Some of these words _are emphasized also_.\r
-\r
-Use two asterisks for **strong emphasis**.\r
-Or, if you prefer, __use two underscores instead__.\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.\r
-Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;\r
-\r
-&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.\r
-Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<h2>Lists</h2>\r
-\r
-<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,\r
-<code>+</code>, and <code>-</code>) as list markers. These three markers are\r
-interchangable; this:</p>\r
-\r
-<pre><code>*   Candy.\r
-*   Gum.\r
-*   Booze.\r
-</code></pre>\r
-\r
-<p>this:</p>\r
-\r
-<pre><code>+   Candy.\r
-+   Gum.\r
-+   Booze.\r
-</code></pre>\r
-\r
-<p>and this:</p>\r
-\r
-<pre><code>-   Candy.\r
--   Gum.\r
--   Booze.\r
-</code></pre>\r
-\r
-<p>all produce the same output:</p>\r
-\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;Candy.&lt;/li&gt;\r
-&lt;li&gt;Gum.&lt;/li&gt;\r
-&lt;li&gt;Booze.&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-\r
-<p>Ordered (numbered) lists use regular numbers, followed by periods, as\r
-list markers:</p>\r
-\r
-<pre><code>1.  Red\r
-2.  Green\r
-3.  Blue\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;ol&gt;\r
-&lt;li&gt;Red&lt;/li&gt;\r
-&lt;li&gt;Green&lt;/li&gt;\r
-&lt;li&gt;Blue&lt;/li&gt;\r
-&lt;/ol&gt;\r
-</code></pre>\r
-\r
-<p>If you put blank lines between items, you'll get <code>&lt;p&gt;</code> tags for the\r
-list item text. You can create multi-paragraph list items by indenting\r
-the paragraphs by 4 spaces or 1 tab:</p>\r
-\r
-<pre><code>*   A list item.\r
-\r
-    With multiple paragraphs.\r
-\r
-*   Another item in the list.\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;\r
-&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;\r
-&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-\r
-<h3>Links</h3>\r
-\r
-<p>Markdown supports two styles for creating links: <em>inline</em> and\r
-<em>reference</em>. With both styles, you use square brackets to delimit the\r
-text you want to turn into a link.</p>\r
-\r
-<p>Inline-style links use parentheses immediately after the link text.\r
-For example:</p>\r
-\r
-<pre><code>This is an [example link](http://example.com/).\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;\r
-example link&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>Optionally, you may include a title attribute in the parentheses:</p>\r
-\r
-<pre><code>This is an [example link](http://example.com/ "With a Title").\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;\r
-example link&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>Reference-style links allow you to refer to your links by names, which\r
-you define elsewhere in your document:</p>\r
-\r
-<pre><code>I get 10 times more traffic from [Google][1] than from\r
-[Yahoo][2] or [MSN][3].\r
-\r
-[1]: http://google.com/        "Google"\r
-[2]: http://search.yahoo.com/  "Yahoo Search"\r
-[3]: http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
-title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"\r
-title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"\r
-title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>The title attribute is optional. Link names may contain letters,\r
-numbers and spaces, but are <em>not</em> case sensitive:</p>\r
-\r
-<pre><code>I start my morning with a cup of coffee and\r
-[The New York Times][NY Times].\r
-\r
-[ny times]: http://www.nytimes.com/\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;I start my morning with a cup of coffee and\r
-&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<h3>Images</h3>\r
-\r
-<p>Image syntax is very much like link syntax.</p>\r
-\r
-<p>Inline (titles are optional):</p>\r
-\r
-<pre><code>![alt text](/path/to/img.jpg "Title")\r
-</code></pre>\r
-\r
-<p>Reference-style:</p>\r
-\r
-<pre><code>![alt text][id]\r
-\r
-[id]: /path/to/img.jpg "Title"\r
-</code></pre>\r
-\r
-<p>Both of the above examples produce the same output:</p>\r
-\r
-<pre><code>&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;\r
-</code></pre>\r
-\r
-<h3>Code</h3>\r
-\r
-<p>In a regular paragraph, you can create code span by wrapping text in\r
-backtick quotes. Any ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> or\r
-<code>&gt;</code>) will automatically be translated into HTML entities. This makes\r
-it easy to use Markdown to write about HTML example code:</p>\r
-\r
-<pre><code>I strongly recommend against using any `&lt;blink&gt;` tags.\r
-\r
-I wish SmartyPants used named entities like `&amp;mdash;`\r
-instead of decimal-encoded entites like `&amp;#8212;`.\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;I strongly recommend against using any\r
-&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
-\r
-&lt;p&gt;I wish SmartyPants used named entities like\r
-&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded\r
-entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>To specify an entire block of pre-formatted code, indent every line of\r
-the block by 4 spaces or 1 tab. Just like with code spans, <code>&amp;</code>, <code>&lt;</code>,\r
-and <code>&gt;</code> characters will be escaped automatically.</p>\r
-\r
-<p>Markdown:</p>\r
-\r
-<pre><code>If you want your page to validate under XHTML 1.0 Strict,\r
-you've got to put paragraph tags in your blockquotes:\r
-\r
-    &lt;blockquote&gt;\r
-        &lt;p&gt;For example.&lt;/p&gt;\r
-    &lt;/blockquote&gt;\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,\r
-you've got to put paragraph tags in your blockquotes:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;\r
-    &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;\r
-&amp;lt;/blockquote&amp;gt;\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
+<h1>Markdown: Basics</h1>
+
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a class="selected" title="Markdown Basics">Basics</a></li>
+    <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<h2>Getting the Gist of Markdown's Formatting Syntax</h2>
+
+<p>This page offers a brief overview of what it's like to use Markdown.
+The <a href="/projects/markdown/syntax" title="Markdown Syntax">syntax page</a> provides complete, detailed documentation for
+every feature, but Markdown should be very easy to pick up simply by
+looking at a few examples of it in action. The examples on this page
+are written in a before/after style, showing example syntax and the
+HTML output produced by Markdown.</p>
+
+<p>It's also helpful to simply try Markdown out; the <a href="/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a
+web application that allows you type your own Markdown-formatted text
+and translate it to XHTML.</p>
+
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/basics.text">see the source for it by adding '.text' to the URL</a>.</p>
+
+<h2>Paragraphs, Headers, Blockquotes</h2>
+
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+
+<p>Markdown offers two styles of headers: <em>Setext</em> and <em>atx</em>.
+Setext-style headers for <code>&lt;h1&gt;</code> and <code>&lt;h2&gt;</code> are created by
+"underlining" with equal signs (<code>=</code>) and hyphens (<code>-</code>), respectively.
+To create an atx-style header, you put 1-6 hash marks (<code>#</code>) at the
+beginning of the line -- the number of hashes equals the resulting
+HTML header level.</p>
+
+<p>Blockquotes are indicated using email-style '<code>&gt;</code>' angle brackets.</p>
+
+<p>Markdown:</p>
+
+<pre><code>A First Level Header
+====================
+
+A Second Level Header
+---------------------
+
+Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.
+
+The quick brown fox jumped over the lazy
+dog's back.
+
+### Header 3
+
+&gt; This is a blockquote.
+&gt; 
+&gt; This is the second paragraph in the blockquote.
+&gt;
+&gt; ## This is an H2 in a blockquote
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;h1&gt;A First Level Header&lt;/h1&gt;
+
+&lt;h2&gt;A Second Level Header&lt;/h2&gt;
+
+&lt;p&gt;Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.&lt;/p&gt;
+
+&lt;p&gt;The quick brown fox jumped over the lazy
+dog's back.&lt;/p&gt;
+
+&lt;h3&gt;Header 3&lt;/h3&gt;
+
+&lt;blockquote&gt;
+    &lt;p&gt;This is a blockquote.&lt;/p&gt;
+
+    &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;
+
+    &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;
+&lt;/blockquote&gt;
+</code></pre>
+
+<h3>Phrase Emphasis</h3>
+
+<p>Markdown uses asterisks and underscores to indicate spans of emphasis.</p>
+
+<p>Markdown:</p>
+
+<pre><code>Some of these words *are emphasized*.
+Some of these words _are emphasized also_.
+
+Use two asterisks for **strong emphasis**.
+Or, if you prefer, __use two underscores instead__.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.
+Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;
+
+&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.
+Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;
+</code></pre>
+
+<h2>Lists</h2>
+
+<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,
+<code>+</code>, and <code>-</code>) as list markers. These three markers are
+interchangable; this:</p>
+
+<pre><code>*   Candy.
+*   Gum.
+*   Booze.
+</code></pre>
+
+<p>this:</p>
+
+<pre><code>+   Candy.
++   Gum.
++   Booze.
+</code></pre>
+
+<p>and this:</p>
+
+<pre><code>-   Candy.
+-   Gum.
+-   Booze.
+</code></pre>
+
+<p>all produce the same output:</p>
+
+<pre><code>&lt;ul&gt;
+&lt;li&gt;Candy.&lt;/li&gt;
+&lt;li&gt;Gum.&lt;/li&gt;
+&lt;li&gt;Booze.&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+
+<p>Ordered (numbered) lists use regular numbers, followed by periods, as
+list markers:</p>
+
+<pre><code>1.  Red
+2.  Green
+3.  Blue
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;ol&gt;
+&lt;li&gt;Red&lt;/li&gt;
+&lt;li&gt;Green&lt;/li&gt;
+&lt;li&gt;Blue&lt;/li&gt;
+&lt;/ol&gt;
+</code></pre>
+
+<p>If you put blank lines between items, you'll get <code>&lt;p&gt;</code> tags for the
+list item text. You can create multi-paragraph list items by indenting
+the paragraphs by 4 spaces or 1 tab:</p>
+
+<pre><code>*   A list item.
+
+    With multiple paragraphs.
+
+*   Another item in the list.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;ul&gt;
+&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;
+&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;
+&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+
+<h3>Links</h3>
+
+<p>Markdown supports two styles for creating links: <em>inline</em> and
+<em>reference</em>. With both styles, you use square brackets to delimit the
+text you want to turn into a link.</p>
+
+<p>Inline-style links use parentheses immediately after the link text.
+For example:</p>
+
+<pre><code>This is an [example link](http://example.com/).
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;
+example link&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>Optionally, you may include a title attribute in the parentheses:</p>
+
+<pre><code>This is an [example link](http://example.com/ "With a Title").
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;
+example link&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>Reference-style links allow you to refer to your links by names, which
+you define elsewhere in your document:</p>
+
+<pre><code>I get 10 times more traffic from [Google][1] than from
+[Yahoo][2] or [MSN][3].
+
+[1]: http://google.com/        "Google"
+[2]: http://search.yahoo.com/  "Yahoo Search"
+[3]: http://search.msn.com/    "MSN Search"
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
+title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"
+title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"
+title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>The title attribute is optional. Link names may contain letters,
+numbers and spaces, but are <em>not</em> case sensitive:</p>
+
+<pre><code>I start my morning with a cup of coffee and
+[The New York Times][NY Times].
+
+[ny times]: http://www.nytimes.com/
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;I start my morning with a cup of coffee and
+&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<h3>Images</h3>
+
+<p>Image syntax is very much like link syntax.</p>
+
+<p>Inline (titles are optional):</p>
+
+<pre><code>![alt text](/path/to/img.jpg "Title")
+</code></pre>
+
+<p>Reference-style:</p>
+
+<pre><code>![alt text][id]
+
+[id]: /path/to/img.jpg "Title"
+</code></pre>
+
+<p>Both of the above examples produce the same output:</p>
+
+<pre><code>&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;
+</code></pre>
+
+<h3>Code</h3>
+
+<p>In a regular paragraph, you can create code span by wrapping text in
+backtick quotes. Any ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> or
+<code>&gt;</code>) will automatically be translated into HTML entities. This makes
+it easy to use Markdown to write about HTML example code:</p>
+
+<pre><code>I strongly recommend against using any `&lt;blink&gt;` tags.
+
+I wish SmartyPants used named entities like `&amp;mdash;`
+instead of decimal-encoded entites like `&amp;#8212;`.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;I strongly recommend against using any
+&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
+
+&lt;p&gt;I wish SmartyPants used named entities like
+&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded
+entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>To specify an entire block of pre-formatted code, indent every line of
+the block by 4 spaces or 1 tab. Just like with code spans, <code>&amp;</code>, <code>&lt;</code>,
+and <code>&gt;</code> characters will be escaped automatically.</p>
+
+<p>Markdown:</p>
+
+<pre><code>If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:
+
+    &lt;blockquote&gt;
+        &lt;p&gt;For example.&lt;/p&gt;
+    &lt;/blockquote&gt;
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;
+    &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;
+&amp;lt;/blockquote&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
index b8c87e42c8be6a0495669908d8593c9a0bc4652f..5c01306cce0581277e8d4dd6d4f0cd4b53d7234c 100644 (file)
-<h1>Markdown: Syntax</h1>\r
-\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>\r
-    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-<ul>\r
-<li><a href="#overview">Overview</a>\r
-<ul>\r
-<li><a href="#philosophy">Philosophy</a></li>\r
-<li><a href="#html">Inline HTML</a></li>\r
-<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>\r
-</ul></li>\r
-<li><a href="#block">Block Elements</a>\r
-<ul>\r
-<li><a href="#p">Paragraphs and Line Breaks</a></li>\r
-<li><a href="#header">Headers</a></li>\r
-<li><a href="#blockquote">Blockquotes</a></li>\r
-<li><a href="#list">Lists</a></li>\r
-<li><a href="#precode">Code Blocks</a></li>\r
-<li><a href="#hr">Horizontal Rules</a></li>\r
-</ul></li>\r
-<li><a href="#span">Span Elements</a>\r
-<ul>\r
-<li><a href="#link">Links</a></li>\r
-<li><a href="#em">Emphasis</a></li>\r
-<li><a href="#code">Code</a></li>\r
-<li><a href="#img">Images</a></li>\r
-</ul></li>\r
-<li><a href="#misc">Miscellaneous</a>\r
-<ul>\r
-<li><a href="#backslash">Backslash Escapes</a></li>\r
-<li><a href="#autolink">Automatic Links</a></li>\r
-</ul></li>\r
-</ul>\r
-\r
-<p><strong>Note:</strong> This document is itself written using Markdown; you\r
-can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>\r
-\r
-<hr />\r
-\r
-<h2 id="overview">Overview</h2>\r
-\r
-<h3 id="philosophy">Philosophy</h3>\r
-\r
-<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>\r
-\r
-<p>Readability, however, is emphasized above all else. A Markdown-formatted\r
-document should be publishable as-is, as plain text, without looking\r
-like it's been marked up with tags or formatting instructions. While\r
-Markdown's syntax has been influenced by several existing text-to-HTML\r
-filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,\r
-<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of\r
-inspiration for Markdown's syntax is the format of plain text email.</p>\r
-\r
-<p>To this end, Markdown's syntax is comprised entirely of punctuation\r
-characters, which punctuation characters have been carefully chosen so\r
-as to look like what they mean. E.g., asterisks around a word actually\r
-look like *emphasis*. Markdown lists look like, well, lists. Even\r
-blockquotes look like quoted passages of text, assuming you've ever\r
-used email.</p>\r
-\r
-<h3 id="html">Inline HTML</h3>\r
-\r
-<p>Markdown's syntax is intended for one purpose: to be used as a\r
-format for <em>writing</em> for the web.</p>\r
-\r
-<p>Markdown is not a replacement for HTML, or even close to it. Its\r
-syntax is very small, corresponding only to a very small subset of\r
-HTML tags. The idea is <em>not</em> to create a syntax that makes it easier\r
-to insert HTML tags. In my opinion, HTML tags are already easy to\r
-insert. The idea for Markdown is to make it easy to read, write, and\r
-edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>\r
-format. Thus, Markdown's formatting syntax only addresses issues that\r
-can be conveyed in plain text.</p>\r
-\r
-<p>For any markup that is not covered by Markdown's syntax, you simply\r
-use HTML itself. There's no need to preface it or delimit it to\r
-indicate that you're switching from Markdown to HTML; you just use\r
-the tags.</p>\r
-\r
-<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,\r
-<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding\r
-content by blank lines, and the start and end tags of the block should\r
-not be indented with tabs or spaces. Markdown is smart enough not\r
-to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>\r
-\r
-<p>For example, to add an HTML table to a Markdown article:</p>\r
-\r
-<pre><code>This is a regular paragraph.\r
-\r
-&lt;table&gt;\r
-    &lt;tr&gt;\r
-        &lt;td&gt;Foo&lt;/td&gt;\r
-    &lt;/tr&gt;\r
-&lt;/table&gt;\r
-\r
-This is another regular paragraph.\r
-</code></pre>\r
-\r
-<p>Note that Markdown formatting syntax is not processed within block-level\r
-HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an\r
-HTML block.</p>\r
-\r
-<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be\r
-used anywhere in a Markdown paragraph, list item, or header. If you\r
-want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
-you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's\r
-link or image syntax, go right ahead.</p>\r
-\r
-<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within\r
-span-level tags.</p>\r
-\r
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>\r
-\r
-<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>\r
-and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are\r
-used to denote HTML entities. If you want to use them as literal\r
-characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and\r
-<code>&amp;amp;</code>.</p>\r
-\r
-<p>Ampersands in particular are bedeviling for web writers. If you want to\r
-write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to\r
-escape ampersands within URLs. Thus, if you want to link to:</p>\r
-\r
-<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird\r
-</code></pre>\r
-\r
-<p>you need to encode the URL as:</p>\r
-\r
-<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird\r
-</code></pre>\r
-\r
-<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to\r
-forget, and is probably the single most common source of HTML validation\r
-errors in otherwise well-marked-up web sites.</p>\r
-\r
-<p>Markdown allows you to use these characters naturally, taking care of\r
-all the necessary escaping for you. If you use an ampersand as part of\r
-an HTML entity, it remains unchanged; otherwise it will be translated\r
-into <code>&amp;amp;</code>.</p>\r
-\r
-<p>So, if you want to include a copyright symbol in your article, you can write:</p>\r
-\r
-<pre><code>&amp;copy;\r
-</code></pre>\r
-\r
-<p>and Markdown will leave it alone. But if you write:</p>\r
-\r
-<pre><code>AT&amp;T\r
-</code></pre>\r
-\r
-<p>Markdown will translate it to:</p>\r
-\r
-<pre><code>AT&amp;amp;T\r
-</code></pre>\r
-\r
-<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use\r
-angle brackets as delimiters for HTML tags, Markdown will treat them as\r
-such. But if you write:</p>\r
-\r
-<pre><code>4 &lt; 5\r
-</code></pre>\r
-\r
-<p>Markdown will translate it to:</p>\r
-\r
-<pre><code>4 &amp;lt; 5\r
-</code></pre>\r
-\r
-<p>However, inside Markdown code spans and blocks, angle brackets and\r
-ampersands are <em>always</em> encoded automatically. This makes it easy to use\r
-Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
-terrible format for writing about HTML syntax, because every single <code>&lt;</code>\r
-and <code>&amp;</code> in your example code needs to be escaped.)</p>\r
-\r
-<hr />\r
-\r
-<h2 id="block">Block Elements</h2>\r
-\r
-<h3 id="p">Paragraphs and Line Breaks</h3>\r
-\r
-<p>A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing but spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
-\r
-<p>The implication of the "one or more consecutive lines of text" rule is\r
-that Markdown supports "hard-wrapped" text paragraphs. This differs\r
-significantly from most other text-to-HTML formatters (including Movable\r
-Type's "Convert Line Breaks" option) which translate every line break\r
-character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>\r
-\r
-<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you\r
-end a line with two or more spaces, then type return.</p>\r
-\r
-<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic\r
-"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.\r
-Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>\r
-work best -- and look better -- when you format them with hard breaks.</p>\r
-\r
-<h3 id="header">Headers</h3>\r
-\r
-<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>\r
-\r
-<p>Setext-style headers are "underlined" using equal signs (for first-level\r
-headers) and dashes (for second-level headers). For example:</p>\r
-\r
-<pre><code>This is an H1\r
-=============\r
-\r
-This is an H2\r
--------------\r
-</code></pre>\r
-\r
-<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>\r
-\r
-<p>Atx-style headers use 1-6 hash characters at the start of the line,\r
-corresponding to header levels 1-6. For example:</p>\r
-\r
-<pre><code># This is an H1\r
-\r
-## This is an H2\r
-\r
-###### This is an H6\r
-</code></pre>\r
-\r
-<p>Optionally, you may "close" atx-style headers. This is purely\r
-cosmetic -- you can use this if you think it looks better. The\r
-closing hashes don't even need to match the number of hashes\r
-used to open the header. (The number of opening hashes\r
-determines the header level.) :</p>\r
-\r
-<pre><code># This is an H1 #\r
-\r
-## This is an H2 ##\r
-\r
-### This is an H3 ######\r
-</code></pre>\r
-\r
-<h3 id="blockquote">Blockquotes</h3>\r
-\r
-<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're\r
-familiar with quoting passages of text in an email message, then you\r
-know how to create a blockquote in Markdown. It looks best if you hard\r
-wrap the text and put a <code>&gt;</code> before every line:</p>\r
-\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-&gt; \r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-&gt; id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first\r
-line of a hard-wrapped paragraph:</p>\r
-\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-\r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
-adding additional levels of <code>&gt;</code>:</p>\r
-\r
-<pre><code>&gt; This is the first level of quoting.\r
-&gt;\r
-&gt; &gt; This is nested blockquote.\r
-&gt;\r
-&gt; Back to the first level.\r
-</code></pre>\r
-\r
-<p>Blockquotes can contain other Markdown elements, including headers, lists,\r
-and code blocks:</p>\r
-\r
-<pre><code>&gt; ## This is a header.\r
-&gt; \r
-&gt; 1.   This is the first list item.\r
-&gt; 2.   This is the second list item.\r
-&gt; \r
-&gt; Here's some example code:\r
-&gt; \r
-&gt;     return shell_exec("echo $input | $markdown_script");\r
-</code></pre>\r
-\r
-<p>Any decent text editor should make email-style quoting easy. For\r
-example, with BBEdit, you can make a selection and choose Increase\r
-Quote Level from the Text menu.</p>\r
-\r
-<h3 id="list">Lists</h3>\r
-\r
-<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>\r
-\r
-<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably\r
--- as list markers:</p>\r
-\r
-<pre><code>*   Red\r
-*   Green\r
-*   Blue\r
-</code></pre>\r
-\r
-<p>is equivalent to:</p>\r
-\r
-<pre><code>+   Red\r
-+   Green\r
-+   Blue\r
-</code></pre>\r
-\r
-<p>and:</p>\r
-\r
-<pre><code>-   Red\r
--   Green\r
--   Blue\r
-</code></pre>\r
-\r
-<p>Ordered lists use numbers followed by periods:</p>\r
-\r
-<pre><code>1.  Bird\r
-2.  McHale\r
-3.  Parish\r
-</code></pre>\r
-\r
-<p>It's important to note that the actual numbers you use to mark the\r
-list have no effect on the HTML output Markdown produces. The HTML\r
-Markdown produces from the above list is:</p>\r
-\r
-<pre><code>&lt;ol&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;McHale&lt;/li&gt;\r
-&lt;li&gt;Parish&lt;/li&gt;\r
-&lt;/ol&gt;\r
-</code></pre>\r
-\r
-<p>If you instead wrote the list in Markdown like this:</p>\r
-\r
-<pre><code>1.  Bird\r
-1.  McHale\r
-1.  Parish\r
-</code></pre>\r
-\r
-<p>or even:</p>\r
-\r
-<pre><code>3. Bird\r
-1. McHale\r
-8. Parish\r
-</code></pre>\r
-\r
-<p>you'd get the exact same HTML output. The point is, if you want to,\r
-you can use ordinal numbers in your ordered Markdown lists, so that\r
-the numbers in your source match the numbers in your published HTML.\r
-But if you want to be lazy, you don't have to.</p>\r
-\r
-<p>If you do use lazy list numbering, however, you should still start the\r
-list with the number 1. At some point in the future, Markdown may support\r
-starting ordered lists at an arbitrary number.</p>\r
-\r
-<p>List markers typically start at the left margin, but may be indented by\r
-up to three spaces. List markers must be followed by one or more spaces\r
-or a tab.</p>\r
-\r
-<p>To make lists look nice, you can wrap items with hanging indents:</p>\r
-\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-    viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-    Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>But if you want to be lazy, you don't have to:</p>\r
-\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>If list items are separated by blank lines, Markdown will wrap the\r
-items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>\r
-\r
-<pre><code>*   Bird\r
-*   Magic\r
-</code></pre>\r
-\r
-<p>will turn into:</p>\r
-\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;Magic&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-\r
-<p>But this:</p>\r
-\r
-<pre><code>*   Bird\r
-\r
-*   Magic\r
-</code></pre>\r
-\r
-<p>will turn into:</p>\r
-\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;\r
-&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-\r
-<p>List items may consist of multiple paragraphs. Each subsequent\r
-paragraph in a list item must be intended by either 4 spaces\r
-or one tab:</p>\r
-\r
-<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
-    sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
-    mi posuere lectus.\r
-\r
-    Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
-    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
-    sit amet velit.\r
-\r
-2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>It looks nice if you indent every line of the subsequent\r
-paragraphs, but here again, Markdown will allow you to be\r
-lazy:</p>\r
-\r
-<pre><code>*   This is a list item with two paragraphs.\r
-\r
-    This is the second paragraph in the list item. You're\r
-only required to indent the first line. Lorem ipsum dolor\r
-sit amet, consectetuer adipiscing elit.\r
-\r
-*   Another item in the same list.\r
-</code></pre>\r
-\r
-<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>\r
-delimiters need to be indented:</p>\r
-\r
-<pre><code>*   A list item with a blockquote:\r
-\r
-    &gt; This is a blockquote\r
-    &gt; inside a list item.\r
-</code></pre>\r
-\r
-<p>To put a code block within a list item, the code block needs\r
-to be indented <em>twice</em> -- 8 spaces or two tabs:</p>\r
-\r
-<pre><code>*   A list item with a code block:\r
-\r
-        &lt;code goes here&gt;\r
-</code></pre>\r
-\r
-<p>It's worth noting that it's possible to trigger an ordered list by\r
-accident, by writing something like this:</p>\r
-\r
-<pre><code>1986. What a great season.\r
-</code></pre>\r
-\r
-<p>In other words, a <em>number-period-space</em> sequence at the beginning of a\r
-line. To avoid this, you can backslash-escape the period:</p>\r
-\r
-<pre><code>1986\. What a great season.\r
-</code></pre>\r
-\r
-<h3 id="precode">Code Blocks</h3>\r
-\r
-<p>Pre-formatted code blocks are used for writing about programming or\r
-markup source code. Rather than forming normal paragraphs, the lines\r
-of a code block are interpreted literally. Markdown wraps a code block\r
-in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>\r
-\r
-<p>To produce a code block in Markdown, simply indent every line of the\r
-block by at least 4 spaces or 1 tab. For example, given this input:</p>\r
-\r
-<pre><code>This is a normal paragraph:\r
-\r
-    This is a code block.\r
-</code></pre>\r
-\r
-<p>Markdown will generate:</p>\r
-\r
-<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;This is a code block.\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-\r
-<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each\r
-line of the code block. For example, this:</p>\r
-\r
-<pre><code>Here is an example of AppleScript:\r
-\r
-    tell application "Foo"\r
-        beep\r
-    end tell\r
-</code></pre>\r
-\r
-<p>will turn into:</p>\r
-\r
-<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;tell application "Foo"\r
-    beep\r
-end tell\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-\r
-<p>A code block continues until it reaches a line that is not indented\r
-(or the end of the article).</p>\r
-\r
-<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)\r
-are automatically converted into HTML entities. This makes it very\r
-easy to include example HTML source code using Markdown -- just paste\r
-it and indent it, and Markdown will handle the hassle of encoding the\r
-ampersands and angle brackets. For example, this:</p>\r
-\r
-<pre><code>    &lt;div class="footer"&gt;\r
-        &amp;copy; 2004 Foo Corporation\r
-    &lt;/div&gt;\r
-</code></pre>\r
-\r
-<p>will turn into:</p>\r
-\r
-<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;\r
-    &amp;amp;copy; 2004 Foo Corporation\r
-&amp;lt;/div&amp;gt;\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-\r
-<p>Regular Markdown syntax is not processed within code blocks. E.g.,\r
-asterisks are just literal asterisks within a code block. This means\r
-it's also easy to use Markdown to write about Markdown's own syntax.</p>\r
-\r
-<h3 id="hr">Horizontal Rules</h3>\r
-\r
-<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or\r
-more hyphens, asterisks, or underscores on a line by themselves. If you\r
-wish, you may use spaces between the hyphens or asterisks. Each of the\r
-following lines will produce a horizontal rule:</p>\r
-\r
-<pre><code>* * *\r
-\r
-***\r
-\r
-*****\r
-\r
-- - -\r
-\r
----------------------------------------\r
-\r
-_ _ _\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<h2 id="span">Span Elements</h2>\r
-\r
-<h3 id="link">Links</h3>\r
-\r
-<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>\r
-\r
-<p>In both styles, the link text is delimited by [square brackets].</p>\r
-\r
-<p>To create an inline link, use a set of regular parentheses immediately\r
-after the link text's closing square bracket. Inside the parentheses,\r
-put the URL where you want the link to point, along with an <em>optional</em>\r
-title for the link, surrounded in quotes. For example:</p>\r
-\r
-<pre><code>This is [an example](http://example.com/ "Title") inline link.\r
-\r
-[This link](http://example.net/) has no title attribute.\r
-</code></pre>\r
-\r
-<p>Will produce:</p>\r
-\r
-<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;\r
-an example&lt;/a&gt; inline link.&lt;/p&gt;\r
-\r
-&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no\r
-title attribute.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>If you're referring to a local resource on the same server, you can\r
-use relative paths:</p>\r
-\r
-<pre><code>See my [About](/about/) page for details.\r
-</code></pre>\r
-\r
-<p>Reference-style links use a second set of square brackets, inside\r
-which you place a label of your choosing to identify the link:</p>\r
-\r
-<pre><code>This is [an example][id] reference-style link.\r
-</code></pre>\r
-\r
-<p>You can optionally use a space to separate the sets of brackets:</p>\r
-\r
-<pre><code>This is [an example] [id] reference-style link.\r
-</code></pre>\r
-\r
-<p>Then, anywhere in the document, you define your link label like this,\r
-on a line by itself:</p>\r
-\r
-<pre><code>[id]: http://example.com/  "Optional Title Here"\r
-</code></pre>\r
-\r
-<p>That is:</p>\r
-\r
-<ul>\r
-<li>Square brackets containing the link identifier (optionally\r
-indented from the left margin using up to three spaces);</li>\r
-<li>followed by a colon;</li>\r
-<li>followed by one or more spaces (or tabs);</li>\r
-<li>followed by the URL for the link;</li>\r
-<li>optionally followed by a title attribute for the link, enclosed\r
-in double or single quotes.</li>\r
-</ul>\r
-\r
-<p>The link URL may, optionally, be surrounded by angle brackets:</p>\r
-\r
-<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"\r
-</code></pre>\r
-\r
-<p>You can put the title attribute on the next line and use extra spaces\r
-or tabs for padding, which tends to look better with longer URLs:</p>\r
-\r
-<pre><code>[id]: http://example.com/longish/path/to/resource/here\r
-    "Optional Title Here"\r
-</code></pre>\r
-\r
-<p>Link definitions are only used for creating links during Markdown\r
-processing, and are stripped from your document in the HTML output.</p>\r
-\r
-<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>\r
-\r
-<pre><code>[link text][a]\r
-[link text][A]\r
-</code></pre>\r
-\r
-<p>are equivalent.</p>\r
-\r
-<p>The <em>implicit link name</em> shortcut allows you to omit the name of the\r
-link, in which case the link text itself is used as the name.\r
-Just use an empty set of square brackets -- e.g., to link the word\r
-"Google" to the google.com web site, you could simply write:</p>\r
-\r
-<pre><code>[Google][]\r
-</code></pre>\r
-\r
-<p>And then define the link:</p>\r
-\r
-<pre><code>[Google]: http://google.com/\r
-</code></pre>\r
-\r
-<p>Because link names may contain spaces, this shortcut even works for\r
-multiple words in the link text:</p>\r
-\r
-<pre><code>Visit [Daring Fireball][] for more information.\r
-</code></pre>\r
-\r
-<p>And then define the link:</p>\r
-\r
-<pre><code>[Daring Fireball]: http://daringfireball.net/\r
-</code></pre>\r
-\r
-<p>Link definitions can be placed anywhere in your Markdown document. I\r
-tend to put them immediately after each paragraph in which they're\r
-used, but if you want, you can put them all at the end of your\r
-document, sort of like footnotes.</p>\r
-\r
-<p>Here's an example of reference links in action:</p>\r
-\r
-<pre><code>I get 10 times more traffic from [Google] [1] than from\r
-[Yahoo] [2] or [MSN] [3].\r
-\r
-  [1]: http://google.com/        "Google"\r
-  [2]: http://search.yahoo.com/  "Yahoo Search"\r
-  [3]: http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-\r
-<p>Using the implicit link name shortcut, you could instead write:</p>\r
-\r
-<pre><code>I get 10 times more traffic from [Google][] than from\r
-[Yahoo][] or [MSN][].\r
-\r
-  [google]: http://google.com/        "Google"\r
-  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
-  [msn]:    http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-\r
-<p>Both of the above examples will produce the following HTML output:</p>\r
-\r
-<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
-title="Google"&gt;Google&lt;/a&gt; than from\r
-&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;\r
-or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>For comparison, here is the same paragraph written using\r
-Markdown's inline link style:</p>\r
-\r
-<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")\r
-than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
-[MSN](http://search.msn.com/ "MSN Search").\r
-</code></pre>\r
-\r
-<p>The point of reference-style links is not that they're easier to\r
-write. The point is that with reference-style links, your document\r
-source is vastly more readable. Compare the above examples: using\r
-reference-style links, the paragraph itself is only 81 characters\r
-long; with inline-style links, it's 176 characters; and as raw HTML,\r
-it's 234 characters. In the raw HTML, there's more markup than there\r
-is text.</p>\r
-\r
-<p>With Markdown's reference-style links, a source document much more\r
-closely resembles the final output, as rendered in a browser. By\r
-allowing you to move the markup-related metadata out of the paragraph,\r
-you can add links without interrupting the narrative flow of your\r
-prose.</p>\r
-\r
-<h3 id="em">Emphasis</h3>\r
-\r
-<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of\r
-emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an\r
-HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML\r
-<code>&lt;strong&gt;</code> tag. E.g., this input:</p>\r
-\r
-<pre><code>*single asterisks*\r
-\r
-_single underscores_\r
-\r
-**double asterisks**\r
-\r
-__double underscores__\r
-</code></pre>\r
-\r
-<p>will produce:</p>\r
-\r
-<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;\r
-\r
-&lt;em&gt;single underscores&lt;/em&gt;\r
-\r
-&lt;strong&gt;double asterisks&lt;/strong&gt;\r
-\r
-&lt;strong&gt;double underscores&lt;/strong&gt;\r
-</code></pre>\r
-\r
-<p>You can use whichever style you prefer; the lone restriction is that\r
-the same character must be used to open and close an emphasis span.</p>\r
-\r
-<p>Emphasis can be used in the middle of a word:</p>\r
-\r
-<pre><code>un*fucking*believable\r
-</code></pre>\r
-\r
-<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a\r
-literal asterisk or underscore.</p>\r
-\r
-<p>To produce a literal asterisk or underscore at a position where it\r
-would otherwise be used as an emphasis delimiter, you can backslash\r
-escape it:</p>\r
-\r
-<pre><code>\*this text is surrounded by literal asterisks\*\r
-</code></pre>\r
-\r
-<h3 id="code">Code</h3>\r
-\r
-<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).\r
-Unlike a pre-formatted code block, a code span indicates code within a\r
-normal paragraph. For example:</p>\r
-\r
-<pre><code>Use the `printf()` function.\r
-</code></pre>\r
-\r
-<p>will produce:</p>\r
-\r
-<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>To include a literal backtick character within a code span, you can use\r
-multiple backticks as the opening and closing delimiters:</p>\r
-\r
-<pre><code>``There is a literal backtick (`) here.``\r
-</code></pre>\r
-\r
-<p>which will produce this:</p>\r
-\r
-<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>The backtick delimiters surrounding a code span may include spaces --\r
-one after the opening, one before the closing. This allows you to place\r
-literal backtick characters at the beginning or end of a code span:</p>\r
-\r
-<pre><code>A single backtick in a code span: `` ` ``\r
-\r
-A backtick-delimited string in a code span: `` `foo` ``\r
-</code></pre>\r
-\r
-<p>will produce:</p>\r
-\r
-<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;\r
-\r
-&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>With a code span, ampersands and angle brackets are encoded as HTML\r
-entities automatically, which makes it easy to include example HTML\r
-tags. Markdown will turn this:</p>\r
-\r
-<pre><code>Please don't use any `&lt;blink&gt;` tags.\r
-</code></pre>\r
-\r
-<p>into:</p>\r
-\r
-<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>You can write this:</p>\r
-\r
-<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.\r
-</code></pre>\r
-\r
-<p>to produce:</p>\r
-\r
-<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded\r
-equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<h3 id="img">Images</h3>\r
-\r
-<p>Admittedly, it's fairly difficult to devise a "natural" syntax for\r
-placing images into a plain text document format.</p>\r
-\r
-<p>Markdown uses an image syntax that is intended to resemble the syntax\r
-for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>\r
-\r
-<p>Inline image syntax looks like this:</p>\r
-\r
-<pre><code>![Alt text](/path/to/img.jpg)\r
-\r
-![Alt text](/path/to/img.jpg "Optional title")\r
-</code></pre>\r
-\r
-<p>That is:</p>\r
-\r
-<ul>\r
-<li>An exclamation mark: <code>!</code>;</li>\r
-<li>followed by a set of square brackets, containing the <code>alt</code>\r
-attribute text for the image;</li>\r
-<li>followed by a set of parentheses, containing the URL or path to\r
-the image, and an optional <code>title</code> attribute enclosed in double\r
-or single quotes.</li>\r
-</ul>\r
-\r
-<p>Reference-style image syntax looks like this:</p>\r
-\r
-<pre><code>![Alt text][id]\r
-</code></pre>\r
-\r
-<p>Where "id" is the name of a defined image reference. Image references\r
-are defined using syntax identical to link references:</p>\r
-\r
-<pre><code>[id]: url/to/image  "Optional title attribute"\r
-</code></pre>\r
-\r
-<p>As of this writing, Markdown has no syntax for specifying the\r
-dimensions of an image; if this is important to you, you can simply\r
-use regular HTML <code>&lt;img&gt;</code> tags.</p>\r
-\r
-<hr />\r
-\r
-<h2 id="misc">Miscellaneous</h2>\r
-\r
-<h3 id="autolink">Automatic Links</h3>\r
-\r
-<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>\r
-\r
-<pre><code>&lt;http://example.com/&gt;\r
-</code></pre>\r
-\r
-<p>Markdown will turn this into:</p>\r
-\r
-<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;\r
-</code></pre>\r
-\r
-<p>Automatic links for email addresses work similarly, except that\r
-Markdown will also perform a bit of randomized decimal and hex\r
-entity-encoding to help obscure your address from address-harvesting\r
-spambots. For example, Markdown will turn this:</p>\r
-\r
-<pre><code>&lt;address@example.com&gt;\r
-</code></pre>\r
-\r
-<p>into something like this:</p>\r
-\r
-<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;\r
-&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;\r
-&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;\r
-&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;\r
-</code></pre>\r
-\r
-<p>which will render in a browser as a clickable link to "address@example.com".</p>\r
-\r
-<p>(This sort of entity-encoding trick will indeed fool many, if not\r
-most, address-harvesting bots, but it definitely won't fool all of\r
-them. It's better than nothing, but an address published in this way\r
-will probably eventually start receiving spam.)</p>\r
-\r
-<h3 id="backslash">Backslash Escapes</h3>\r
-\r
-<p>Markdown allows you to use backslash escapes to generate literal\r
-characters which would otherwise have special meaning in Markdown's\r
-formatting syntax. For example, if you wanted to surround a word with\r
-literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes\r
-before the asterisks, like this:</p>\r
-\r
-<pre><code>\*literal asterisks\*\r
-</code></pre>\r
-\r
-<p>Markdown provides backslash escapes for the following characters:</p>\r
-\r
-<pre><code>\   backslash\r
-`   backtick\r
-*   asterisk\r
-_   underscore\r
-{}  curly braces\r
-[]  square brackets\r
-()  parentheses\r
-#   hash mark\r
-+   plus sign\r
--   minus sign (hyphen)\r
-.   dot\r
-!   exclamation mark\r
-</code></pre>\r
+<h1>Markdown: Syntax</h1>
+
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<ul>
+<li><a href="#overview">Overview</a>
+<ul>
+<li><a href="#philosophy">Philosophy</a></li>
+<li><a href="#html">Inline HTML</a></li>
+<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>
+</ul></li>
+<li><a href="#block">Block Elements</a>
+<ul>
+<li><a href="#p">Paragraphs and Line Breaks</a></li>
+<li><a href="#header">Headers</a></li>
+<li><a href="#blockquote">Blockquotes</a></li>
+<li><a href="#list">Lists</a></li>
+<li><a href="#precode">Code Blocks</a></li>
+<li><a href="#hr">Horizontal Rules</a></li>
+</ul></li>
+<li><a href="#span">Span Elements</a>
+<ul>
+<li><a href="#link">Links</a></li>
+<li><a href="#em">Emphasis</a></li>
+<li><a href="#code">Code</a></li>
+<li><a href="#img">Images</a></li>
+</ul></li>
+<li><a href="#misc">Miscellaneous</a>
+<ul>
+<li><a href="#backslash">Backslash Escapes</a></li>
+<li><a href="#autolink">Automatic Links</a></li>
+</ul></li>
+</ul>
+
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
+
+<hr />
+
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>
+
+<p>Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
+<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.</p>
+
+<p>To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like *emphasis*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.</p>
+
+<h3 id="html">Inline HTML</h3>
+
+<p>Markdown's syntax is intended for one purpose: to be used as a
+format for <em>writing</em> for the web.</p>
+
+<p>Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is <em>not</em> to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.</p>
+
+<p>For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.</p>
+
+<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,
+<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>
+
+<p>For example, to add an HTML table to a Markdown article:</p>
+
+<pre><code>This is a regular paragraph.
+
+&lt;table&gt;
+    &lt;tr&gt;
+        &lt;td&gt;Foo&lt;/td&gt;
+    &lt;/tr&gt;
+&lt;/table&gt;
+
+This is another regular paragraph.
+</code></pre>
+
+<p>Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an
+HTML block.</p>
+
+<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's
+link or image syntax, go right ahead.</p>
+
+<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within
+span-level tags.</p>
+
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>
+and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and
+<code>&amp;amp;</code>.</p>
+
+<p>Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:</p>
+
+<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird
+</code></pre>
+
+<p>you need to encode the URL as:</p>
+
+<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird
+</code></pre>
+
+<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.</p>
+
+<p>Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into <code>&amp;amp;</code>.</p>
+
+<p>So, if you want to include a copyright symbol in your article, you can write:</p>
+
+<pre><code>&amp;copy;
+</code></pre>
+
+<p>and Markdown will leave it alone. But if you write:</p>
+
+<pre><code>AT&amp;T
+</code></pre>
+
+<p>Markdown will translate it to:</p>
+
+<pre><code>AT&amp;amp;T
+</code></pre>
+
+<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:</p>
+
+<pre><code>4 &lt; 5
+</code></pre>
+
+<p>Markdown will translate it to:</p>
+
+<pre><code>4 &amp;lt; 5
+</code></pre>
+
+<p>However, inside Markdown code spans and blocks, angle brackets and
+ampersands are <em>always</em> encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single <code>&lt;</code>
+and <code>&amp;</code> in your example code needs to be escaped.)</p>
+
+<hr />
+
+<h2 id="block">Block Elements</h2>
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+
+<p>The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>
+
+<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you
+end a line with two or more spaces, then type return.</p>
+
+<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic
+"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.
+Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>
+work best -- and look better -- when you format them with hard breaks.</p>
+
+<h3 id="header">Headers</h3>
+
+<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
+
+<p>Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:</p>
+
+<pre><code>This is an H1
+=============
+
+This is an H2
+-------------
+</code></pre>
+
+<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>
+
+<p>Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:</p>
+
+<pre><code># This is an H1
+
+## This is an H2
+
+###### This is an H6
+</code></pre>
+
+<p>Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :</p>
+
+<pre><code># This is an H1 #
+
+## This is an H2 ##
+
+### This is an H3 ######
+</code></pre>
+
+<h3 id="blockquote">Blockquotes</h3>
+
+<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a <code>&gt;</code> before every line:</p>
+
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+&gt; 
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+&gt; id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first
+line of a hard-wrapped paragraph:</p>
+
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of <code>&gt;</code>:</p>
+
+<pre><code>&gt; This is the first level of quoting.
+&gt;
+&gt; &gt; This is nested blockquote.
+&gt;
+&gt; Back to the first level.
+</code></pre>
+
+<p>Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:</p>
+
+<pre><code>&gt; ## This is a header.
+&gt; 
+&gt; 1.   This is the first list item.
+&gt; 2.   This is the second list item.
+&gt; 
+&gt; Here's some example code:
+&gt; 
+&gt;     return shell_exec("echo $input | $markdown_script");
+</code></pre>
+
+<p>Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.</p>
+
+<h3 id="list">Lists</h3>
+
+<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>
+
+<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:</p>
+
+<pre><code>*   Red
+*   Green
+*   Blue
+</code></pre>
+
+<p>is equivalent to:</p>
+
+<pre><code>+   Red
++   Green
++   Blue
+</code></pre>
+
+<p>and:</p>
+
+<pre><code>-   Red
+-   Green
+-   Blue
+</code></pre>
+
+<p>Ordered lists use numbers followed by periods:</p>
+
+<pre><code>1.  Bird
+2.  McHale
+3.  Parish
+</code></pre>
+
+<p>It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:</p>
+
+<pre><code>&lt;ol&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;McHale&lt;/li&gt;
+&lt;li&gt;Parish&lt;/li&gt;
+&lt;/ol&gt;
+</code></pre>
+
+<p>If you instead wrote the list in Markdown like this:</p>
+
+<pre><code>1.  Bird
+1.  McHale
+1.  Parish
+</code></pre>
+
+<p>or even:</p>
+
+<pre><code>3. Bird
+1. McHale
+8. Parish
+</code></pre>
+
+<p>you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.</p>
+
+<p>If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.</p>
+
+<p>List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.</p>
+
+<p>To make lists look nice, you can wrap items with hanging indents:</p>
+
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>But if you want to be lazy, you don't have to:</p>
+
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>If list items are separated by blank lines, Markdown will wrap the
+items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>
+
+<pre><code>*   Bird
+*   Magic
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code>&lt;ul&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;Magic&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+
+<p>But this:</p>
+
+<pre><code>*   Bird
+
+*   Magic
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code>&lt;ul&gt;
+&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;
+&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+
+<p>List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:</p>
+
+<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+    mi posuere lectus.
+
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+    sit amet velit.
+
+2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:</p>
+
+<pre><code>*   This is a list item with two paragraphs.
+
+    This is the second paragraph in the list item. You're
+only required to indent the first line. Lorem ipsum dolor
+sit amet, consectetuer adipiscing elit.
+
+*   Another item in the same list.
+</code></pre>
+
+<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>
+delimiters need to be indented:</p>
+
+<pre><code>*   A list item with a blockquote:
+
+    &gt; This is a blockquote
+    &gt; inside a list item.
+</code></pre>
+
+<p>To put a code block within a list item, the code block needs
+to be indented <em>twice</em> -- 8 spaces or two tabs:</p>
+
+<pre><code>*   A list item with a code block:
+
+        &lt;code goes here&gt;
+</code></pre>
+
+<p>It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:</p>
+
+<pre><code>1986. What a great season.
+</code></pre>
+
+<p>In other words, a <em>number-period-space</em> sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:</p>
+
+<pre><code>1986\. What a great season.
+</code></pre>
+
+<h3 id="precode">Code Blocks</h3>
+
+<p>Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>
+
+<p>To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:</p>
+
+<pre><code>This is a normal paragraph:
+
+    This is a code block.
+</code></pre>
+
+<p>Markdown will generate:</p>
+
+<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;This is a code block.
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+
+<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:</p>
+
+<pre><code>Here is an example of AppleScript:
+
+    tell application "Foo"
+        beep
+    end tell
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;tell application "Foo"
+    beep
+end tell
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+
+<p>A code block continues until it reaches a line that is not indented
+(or the end of the article).</p>
+
+<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:</p>
+
+<pre><code>    &lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;
+    &amp;amp;copy; 2004 Foo Corporation
+&amp;lt;/div&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+
+<p>Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.</p>
+
+<h3 id="hr">Horizontal Rules</h3>
+
+<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:</p>
+
+<pre><code>* * *
+
+***
+
+*****
+
+- - -
+
+---------------------------------------
+
+_ _ _
+</code></pre>
+
+<hr />
+
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>
+
+<p>In both styles, the link text is delimited by [square brackets].</p>
+
+<p>To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an <em>optional</em>
+title for the link, surrounded in quotes. For example:</p>
+
+<pre><code>This is [an example](http://example.com/ "Title") inline link.
+
+[This link](http://example.net/) has no title attribute.
+</code></pre>
+
+<p>Will produce:</p>
+
+<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;
+an example&lt;/a&gt; inline link.&lt;/p&gt;
+
+&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no
+title attribute.&lt;/p&gt;
+</code></pre>
+
+<p>If you're referring to a local resource on the same server, you can
+use relative paths:</p>
+
+<pre><code>See my [About](/about/) page for details.
+</code></pre>
+
+<p>Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:</p>
+
+<pre><code>This is [an example][id] reference-style link.
+</code></pre>
+
+<p>You can optionally use a space to separate the sets of brackets:</p>
+
+<pre><code>This is [an example] [id] reference-style link.
+</code></pre>
+
+<p>Then, anywhere in the document, you define your link label like this,
+on a line by itself:</p>
+
+<pre><code>[id]: http://example.com/  "Optional Title Here"
+</code></pre>
+
+<p>That is:</p>
+
+<ul>
+<li>Square brackets containing the link identifier (optionally
+indented from the left margin using up to three spaces);</li>
+<li>followed by a colon;</li>
+<li>followed by one or more spaces (or tabs);</li>
+<li>followed by the URL for the link;</li>
+<li>optionally followed by a title attribute for the link, enclosed
+in double or single quotes.</li>
+</ul>
+
+<p>The link URL may, optionally, be surrounded by angle brackets:</p>
+
+<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"
+</code></pre>
+
+<p>You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:</p>
+
+<pre><code>[id]: http://example.com/longish/path/to/resource/here
+    "Optional Title Here"
+</code></pre>
+
+<p>Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.</p>
+
+<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>
+
+<pre><code>[link text][a]
+[link text][A]
+</code></pre>
+
+<p>are equivalent.</p>
+
+<p>The <em>implicit link name</em> shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:</p>
+
+<pre><code>[Google][]
+</code></pre>
+
+<p>And then define the link:</p>
+
+<pre><code>[Google]: http://google.com/
+</code></pre>
+
+<p>Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:</p>
+
+<pre><code>Visit [Daring Fireball][] for more information.
+</code></pre>
+
+<p>And then define the link:</p>
+
+<pre><code>[Daring Fireball]: http://daringfireball.net/
+</code></pre>
+
+<p>Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.</p>
+
+<p>Here's an example of reference links in action:</p>
+
+<pre><code>I get 10 times more traffic from [Google] [1] than from
+[Yahoo] [2] or [MSN] [3].
+
+  [1]: http://google.com/        "Google"
+  [2]: http://search.yahoo.com/  "Yahoo Search"
+  [3]: http://search.msn.com/    "MSN Search"
+</code></pre>
+
+<p>Using the implicit link name shortcut, you could instead write:</p>
+
+<pre><code>I get 10 times more traffic from [Google][] than from
+[Yahoo][] or [MSN][].
+
+  [google]: http://google.com/        "Google"
+  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+  [msn]:    http://search.msn.com/    "MSN Search"
+</code></pre>
+
+<p>Both of the above examples will produce the following HTML output:</p>
+
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
+title="Google"&gt;Google&lt;/a&gt; than from
+&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;
+or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>For comparison, here is the same paragraph written using
+Markdown's inline link style:</p>
+
+<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")
+than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+[MSN](http://search.msn.com/ "MSN Search").
+</code></pre>
+
+<p>The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.</p>
+
+<p>With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.</p>
+
+<h3 id="em">Emphasis</h3>
+
+<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of
+emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an
+HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML
+<code>&lt;strong&gt;</code> tag. E.g., this input:</p>
+
+<pre><code>*single asterisks*
+
+_single underscores_
+
+**double asterisks**
+
+__double underscores__
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;
+
+&lt;em&gt;single underscores&lt;/em&gt;
+
+&lt;strong&gt;double asterisks&lt;/strong&gt;
+
+&lt;strong&gt;double underscores&lt;/strong&gt;
+</code></pre>
+
+<p>You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.</p>
+
+<p>Emphasis can be used in the middle of a word:</p>
+
+<pre><code>un*fucking*believable
+</code></pre>
+
+<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a
+literal asterisk or underscore.</p>
+
+<p>To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:</p>
+
+<pre><code>\*this text is surrounded by literal asterisks\*
+</code></pre>
+
+<h3 id="code">Code</h3>
+
+<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:</p>
+
+<pre><code>Use the `printf()` function.
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;
+</code></pre>
+
+<p>To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:</p>
+
+<pre><code>``There is a literal backtick (`) here.``
+</code></pre>
+
+<p>which will produce this:</p>
+
+<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+
+<p>The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:</p>
+
+<pre><code>A single backtick in a code span: `` ` ``
+
+A backtick-delimited string in a code span: `` `foo` ``
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;
+
+&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+
+<p>With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:</p>
+
+<pre><code>Please don't use any `&lt;blink&gt;` tags.
+</code></pre>
+
+<p>into:</p>
+
+<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
+</code></pre>
+
+<p>You can write this:</p>
+
+<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.
+</code></pre>
+
+<p>to produce:</p>
+
+<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded
+equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;
+</code></pre>
+
+<h3 id="img">Images</h3>
+
+<p>Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.</p>
+
+<p>Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
+
+<p>Inline image syntax looks like this:</p>
+
+<pre><code>![Alt text](/path/to/img.jpg)
+
+![Alt text](/path/to/img.jpg "Optional title")
+</code></pre>
+
+<p>That is:</p>
+
+<ul>
+<li>An exclamation mark: <code>!</code>;</li>
+<li>followed by a set of square brackets, containing the <code>alt</code>
+attribute text for the image;</li>
+<li>followed by a set of parentheses, containing the URL or path to
+the image, and an optional <code>title</code> attribute enclosed in double
+or single quotes.</li>
+</ul>
+
+<p>Reference-style image syntax looks like this:</p>
+
+<pre><code>![Alt text][id]
+</code></pre>
+
+<p>Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:</p>
+
+<pre><code>[id]: url/to/image  "Optional title attribute"
+</code></pre>
+
+<p>As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML <code>&lt;img&gt;</code> tags.</p>
+
+<hr />
+
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>
+
+<pre><code>&lt;http://example.com/&gt;
+</code></pre>
+
+<p>Markdown will turn this into:</p>
+
+<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;
+</code></pre>
+
+<p>Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:</p>
+
+<pre><code>&lt;address@example.com&gt;
+</code></pre>
+
+<p>into something like this:</p>
+
+<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;
+&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;
+&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;
+&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;
+</code></pre>
+
+<p>which will render in a browser as a clickable link to "address@example.com".</p>
+
+<p>(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)</p>
+
+<h3 id="backslash">Backslash Escapes</h3>
+
+<p>Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes
+before the asterisks, like this:</p>
+
+<pre><code>\*literal asterisks\*
+</code></pre>
+
+<p>Markdown provides backslash escapes for the following characters:</p>
+
+<pre><code>\   backslash
+`   backtick
+*   asterisk
+_   underscore
+{}  curly braces
+[]  square brackets
+()  parentheses
+#   hash mark
++   plus sign
+-   minus sign (hyphen)
+.   dot
+!   exclamation mark
+</code></pre>
index 2a36d9c3dcbc7f5e2f0323d8276060499732dc13..d8ec7f8e03f716248ec0a9d747d6c68ea6f7ce73 100644 (file)
@@ -1,9 +1,9 @@
-<blockquote>\r
-  <p>foo</p>\r
-  \r
-  <blockquote>\r
-    <p>bar</p>\r
-  </blockquote>\r
-  \r
-  <p>foo</p>\r
-</blockquote>\r
+<blockquote>
+  <p>foo</p>
+  
+  <blockquote>
+    <p>bar</p>
+  </blockquote>
+  
+  <p>foo</p>
+</blockquote>
index 81b97f7ac94b38d24cca53c618fd86d9e538488f..ce85c3aa961ad887314765ef84abc4d75d03a073 100644 (file)
-<h2>Unordered</h2>\r
-\r
-<p>Asterisks tight:</p>\r
-\r
-<ul>\r
-<li>asterisk 1</li>\r
-<li>asterisk 2</li>\r
-<li>asterisk 3</li>\r
-</ul>\r
-\r
-<p>Asterisks loose:</p>\r
-\r
-<ul>\r
-<li><p>asterisk 1</p></li>\r
-<li><p>asterisk 2</p></li>\r
-<li><p>asterisk 3</p></li>\r
-</ul>\r
-\r
-<hr />\r
-\r
-<p>Pluses tight:</p>\r
-\r
-<ul>\r
-<li>Plus 1</li>\r
-<li>Plus 2</li>\r
-<li>Plus 3</li>\r
-</ul>\r
-\r
-<p>Pluses loose:</p>\r
-\r
-<ul>\r
-<li><p>Plus 1</p></li>\r
-<li><p>Plus 2</p></li>\r
-<li><p>Plus 3</p></li>\r
-</ul>\r
-\r
-<hr />\r
-\r
-<p>Minuses tight:</p>\r
-\r
-<ul>\r
-<li>Minus 1</li>\r
-<li>Minus 2</li>\r
-<li>Minus 3</li>\r
-</ul>\r
-\r
-<p>Minuses loose:</p>\r
-\r
-<ul>\r
-<li><p>Minus 1</p></li>\r
-<li><p>Minus 2</p></li>\r
-<li><p>Minus 3</p></li>\r
-</ul>\r
-\r
-<h2>Ordered</h2>\r
-\r
-<p>Tight:</p>\r
-\r
-<ol>\r
-<li>First</li>\r
-<li>Second</li>\r
-<li>Third</li>\r
-</ol>\r
-\r
-<p>and:</p>\r
-\r
-<ol>\r
-<li>One</li>\r
-<li>Two</li>\r
-<li>Three</li>\r
-</ol>\r
-\r
-<p>Loose using tabs:</p>\r
-\r
-<ol>\r
-<li><p>First</p></li>\r
-<li><p>Second</p></li>\r
-<li><p>Third</p></li>\r
-</ol>\r
-\r
-<p>and using spaces:</p>\r
-\r
-<ol>\r
-<li><p>One</p></li>\r
-<li><p>Two</p></li>\r
-<li><p>Three</p></li>\r
-</ol>\r
-\r
-<p>Multiple paragraphs:</p>\r
-\r
-<ol>\r
-<li><p>Item 1, graf one.</p>\r
-\r
-<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's\r
-back.</p></li>\r
-<li><p>Item 2.</p></li>\r
-<li><p>Item 3.</p></li>\r
-</ol>\r
-\r
-<h2>Nested</h2>\r
-\r
-<ul>\r
-<li>Tab\r
-<ul>\r
-<li>Tab\r
-<ul>\r
-<li>Tab</li>\r
-</ul></li>\r
-</ul></li>\r
-</ul>\r
-\r
-<p>Here's another:</p>\r
-\r
-<ol>\r
-<li>First</li>\r
-<li>Second:\r
-<ul>\r
-<li>Fee</li>\r
-<li>Fie</li>\r
-<li>Foe</li>\r
-</ul></li>\r
-<li>Third</li>\r
-</ol>\r
-\r
-<p>Same thing but with paragraphs:</p>\r
-\r
-<ol>\r
-<li><p>First</p></li>\r
-<li><p>Second:</p>\r
-\r
-<ul>\r
-<li>Fee</li>\r
-<li>Fie</li>\r
-<li>Foe</li>\r
-</ul></li>\r
-<li><p>Third</p></li>\r
-</ol>\r
+<h2>Unordered</h2>
+
+<p>Asterisks tight:</p>
+
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
+
+<p>Asterisks loose:</p>
+
+<ul>
+<li><p>asterisk 1</p></li>
+<li><p>asterisk 2</p></li>
+<li><p>asterisk 3</p></li>
+</ul>
+
+<hr />
+
+<p>Pluses tight:</p>
+
+<ul>
+<li>Plus 1</li>
+<li>Plus 2</li>
+<li>Plus 3</li>
+</ul>
+
+<p>Pluses loose:</p>
+
+<ul>
+<li><p>Plus 1</p></li>
+<li><p>Plus 2</p></li>
+<li><p>Plus 3</p></li>
+</ul>
+
+<hr />
+
+<p>Minuses tight:</p>
+
+<ul>
+<li>Minus 1</li>
+<li>Minus 2</li>
+<li>Minus 3</li>
+</ul>
+
+<p>Minuses loose:</p>
+
+<ul>
+<li><p>Minus 1</p></li>
+<li><p>Minus 2</p></li>
+<li><p>Minus 3</p></li>
+</ul>
+
+<h2>Ordered</h2>
+
+<p>Tight:</p>
+
+<ol>
+<li>First</li>
+<li>Second</li>
+<li>Third</li>
+</ol>
+
+<p>and:</p>
+
+<ol>
+<li>One</li>
+<li>Two</li>
+<li>Three</li>
+</ol>
+
+<p>Loose using tabs:</p>
+
+<ol>
+<li><p>First</p></li>
+<li><p>Second</p></li>
+<li><p>Third</p></li>
+</ol>
+
+<p>and using spaces:</p>
+
+<ol>
+<li><p>One</p></li>
+<li><p>Two</p></li>
+<li><p>Three</p></li>
+</ol>
+
+<p>Multiple paragraphs:</p>
+
+<ol>
+<li><p>Item 1, graf one.</p>
+
+<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's
+back.</p></li>
+<li><p>Item 2.</p></li>
+<li><p>Item 3.</p></li>
+</ol>
+
+<h2>Nested</h2>
+
+<ul>
+<li>Tab
+<ul>
+<li>Tab
+<ul>
+<li>Tab</li>
+</ul></li>
+</ul></li>
+</ul>
+
+<p>Here's another:</p>
+
+<ol>
+<li>First</li>
+<li>Second:
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul></li>
+<li>Third</li>
+</ol>
+
+<p>Same thing but with paragraphs:</p>
+
+<ol>
+<li><p>First</p></li>
+<li><p>Second:</p>
+
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul></li>
+<li><p>Third</p></li>
+</ol>
index 3404517b04fd37f26cee54f6dafd5eca9d4b19b9..71ec78c70928f04eff9f4053401b70e51544ea13 100644 (file)
@@ -1,7 +1,7 @@
-<p><strong><em>This is strong and em.</em></strong></p>\r
-\r
-<p>So is <strong><em>this</em></strong> word.</p>\r
-\r
-<p><strong><em>This is strong and em.</em></strong></p>\r
-\r
-<p>So is <strong><em>this</em></strong> word.</p>\r
+<p><strong><em>This is strong and em.</em></strong></p>
+
+<p>So is <strong><em>this</em></strong> word.</p>
+
+<p><strong><em>This is strong and em.</em></strong></p>
+
+<p>So is <strong><em>this</em></strong> word.</p>
index c83fd98b28b8766a2483b7a9afdcf09d0ada2a25..3301ba803b7770d6e789349233f1eba273b95110 100644 (file)
@@ -1,25 +1,25 @@
-<ul>\r
-<li><p>this is a list item\r
-indented with tabs</p></li>\r
-<li><p>this is a list item\r
-indented with spaces</p></li>\r
-</ul>\r
-\r
-<p>Code:</p>\r
-\r
-<pre><code>this code block is indented by one tab\r
-</code></pre>\r
-\r
-<p>And:</p>\r
-\r
-<pre><code>    this code block is indented by two tabs\r
-</code></pre>\r
-\r
-<p>And:</p>\r
-\r
-<pre><code>+   this is an example list item\r
-    indented with tabs\r
-\r
-+   this is an example list item\r
-    indented with spaces\r
-</code></pre>\r
+<ul>
+<li><p>this is a list item
+indented with tabs</p></li>
+<li><p>this is a list item
+indented with spaces</p></li>
+</ul>
+
+<p>Code:</p>
+
+<pre><code>this code block is indented by one tab
+</code></pre>
+
+<p>And:</p>
+
+<pre><code>    this code block is indented by two tabs
+</code></pre>
+
+<p>And:</p>
+
+<pre><code>+   this is an example list item
+    indented with tabs
+
++   this is an example list item
+    indented with spaces
+</code></pre>
index 320efec299f67a9c8d2a0a5cb4dbea7f1dbdcc5f..f2a8ce70f5777c168fdcb557f096a49b33fcdefc 100644 (file)
@@ -1,8 +1,8 @@
-<blockquote>\r
-<p>A list within a blockquote:</p>\r
-<ul>\r
-<li>asterisk 1</li>\r
-<li>asterisk 2</li>\r
-<li>asterisk 3</li>\r
-</ul>\r
-</blockquote>\r
+<blockquote>
+<p>A list within a blockquote:</p>
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
+</blockquote>
index 6a9eb1555f4cf8fd9e0b740d9bdee9d4ffe03a2e..057da2f20efb7ac68dc852f89399e299078316a2 100644 (file)
@@ -1,28 +1,28 @@
-\r
-\r
-<h1 id="lorem"> Lorem ipsum           </h1>\r
-<p>Dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor\r
-   incididunt ut labore et dolore magna aliqua. \r
-</p>\r
-<ul>\r
- <li><p class="first_item">Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris\r
-   nisi ut aliquip ex ea commodo consequat.\r
-</p>\r
-\r
- </li>\r
-\r
- <li><p>Duis aute irure dolor in reprehenderit in voluptate velit esse\r
-   cillum dolore eu fugiat nulla pariatur2. Excepteur sint occaecat\r
-   cupidatat non proident, sunt in culpa qui officia deserunt mollit\r
-   anim id est laborum.\r
-</p>\r
-\r
- </li>\r
-</ul>\r
-<p>Duis aute <strong type="term">irure</strong> dolor in reprehenderit in voluptate\r
-   velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\r
-   occaecat cupidatat non proident, sunt in culpa qui officia deserunt\r
-   mollit anim id est laborum.\r
-</p>\r
-\r
-\r
+
+
+<h1 id="lorem"> Lorem ipsum           </h1>
+<p>Dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
+   incididunt ut labore et dolore magna aliqua. 
+</p>
+<ul>
+ <li><p class="first_item">Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
+   nisi ut aliquip ex ea commodo consequat.
+</p>
+
+ </li>
+
+ <li><p>Duis aute irure dolor in reprehenderit in voluptate velit esse
+   cillum dolore eu fugiat nulla pariatur2. Excepteur sint occaecat
+   cupidatat non proident, sunt in culpa qui officia deserunt mollit
+   anim id est laborum.
+</p>
+
+ </li>
+</ul>
+<p>Duis aute <strong type="term">irure</strong> dolor in reprehenderit in voluptate
+   velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
+   occaecat cupidatat non proident, sunt in culpa qui officia deserunt
+   mollit anim id est laborum.
+</p>
+
+
index e7634624919ae6a83d6b4fc645c22a2ff9964018..bf1d149c05c52db9d1134a18ec753f891f0b42b1 100644 (file)
@@ -1,18 +1,18 @@
-\r
-<p>Lorem ipsum <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#117;&#114;&#105;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#111;&#114;&#103;">&#121;&#117;&#114;&#105;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#111;&#114;&#103;</a>, etc.\r
-</p>\r
-<ul>\r
- <li>\r
-     An email address in a list\r
- </li>\r
-\r
- <li>\r
-      <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#117;&#114;&#105;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#111;&#114;&#103;">&#121;&#117;&#114;&#105;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#111;&#114;&#103;</a> \r
- </li>\r
-\r
- <li>\r
-     Another item.\r
- </li>\r
-</ul>\r
-\r
-\r
+
+<p>Lorem ipsum <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#117;&#114;&#105;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#111;&#114;&#103;">&#121;&#117;&#114;&#105;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#111;&#114;&#103;</a>, etc.
+</p>
+<ul>
+ <li>
+     An email address in a list
+ </li>
+
+ <li>
+      <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#121;&#117;&#114;&#105;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#111;&#114;&#103;">&#121;&#117;&#114;&#105;&#64;&#100;&#111;&#109;&#97;&#105;&#110;&#46;&#111;&#114;&#103;</a> 
+ </li>
+
+ <li>
+     Another item.
+ </li>
+</ul>
+
+
index 86fe735565333fff7d507213111acf69a171074d..cadb040925d3e1e52ee3b394c00a084a84b3acd5 100644 (file)
@@ -1,46 +1,46 @@
-\r
-<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod \r
-   tempor incididunt ut labore et dolore magna aliqua<sup><a href="#fn1-903162597" id="fnr1-903162597">1</a></sup>. Ut enim ad minim \r
-   veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea \r
-   commodo consequat. Duis aute irure dolor in reprehenderit in voluptate \r
-   velit esse cillum dolore eu fugiat nulla pariatur<sup><a href="#fn2-903162597" id="fnr2-903162597">2</a></sup>. Excepteur sint \r
-   occaecat cupidatat non proident, sunt in culpa qui officia deserunt \r
-   mollit anim id est laborum.\r
-</p>\r
-<ul>\r
- <li>\r
-     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do \r
-     eiusmod tempor incididunt ut labore et dolore<sup><a href="#fn3-903162597" id="fnr3-903162597">3</a></sup> magna aliqua. \r
- </li>\r
-</ul>\r
-<p>Duis aute irure dolor in reprehenderit in voluptate \r
-   velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint \r
-   occaecat cupidatat non proident, sunt in culpa qui officia deserunt \r
-   mollit anim id est laborum.\r
-</p>\r
-\r
-<div class="footnote"><hr/><ol>\r
- <li id="fn1-903162597">\r
-     Sed ut perspiciatis unde omnis iste natus error sit voluptatem \r
-     accusantium doloremque laudantium, totam rem aperiam, eaque ipsa \r
-     quae ab illo inventore veritatis et quasi architecto beatae vitae \r
-     dicta sunt explicabo.<a href="#fnr1-903162597" class="footnoteBackLink" title="Jump back to footnote 1 in the text">&#8617;</a>\r
- </li>\r
-\r
- <li id="fn2-903162597">\r
-     Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit \r
-       aut fugit, sed quia consequuntur magni dolores eos qui ratione \r
-       voluptatem sequi nesciunt. <p>  Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, \r
-     consectetur, adipisci velit, sed quia non numquam eius modi \r
-     tempora incidunt ut labore et dolore magnam aliquam quaerat \r
-     voluptatem. <a href="#fnr2-903162597" class="footnoteBackLink" title="Jump back to footnote 1 in the text">&#8617;</a>\r
-</p>\r
-\r
- </li>\r
-\r
- <li id="fn3-903162597">\r
-     Ut enim ad minim veniam, quis nostrud exercitation ullamco \r
-         laboris nisi ut aliquip ex ea commodo consequat. <a href="#fnr3-903162597" class="footnoteBackLink" title="Jump back to footnote 1 in the text">&#8617;</a>\r
- </li>\r
-</ol>\r
-</div>\r
+
+<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
+   tempor incididunt ut labore et dolore magna aliqua<sup><a href="#fn1-903162597" id="fnr1-903162597">1</a></sup>. Ut enim ad minim 
+   veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
+   commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
+   velit esse cillum dolore eu fugiat nulla pariatur<sup><a href="#fn2-903162597" id="fnr2-903162597">2</a></sup>. Excepteur sint 
+   occaecat cupidatat non proident, sunt in culpa qui officia deserunt 
+   mollit anim id est laborum.
+</p>
+<ul>
+ <li>
+     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
+     eiusmod tempor incididunt ut labore et dolore<sup><a href="#fn3-903162597" id="fnr3-903162597">3</a></sup> magna aliqua. 
+ </li>
+</ul>
+<p>Duis aute irure dolor in reprehenderit in voluptate 
+   velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint 
+   occaecat cupidatat non proident, sunt in culpa qui officia deserunt 
+   mollit anim id est laborum.
+</p>
+
+<div class="footnote"><hr/><ol>
+ <li id="fn1-903162597">
+     Sed ut perspiciatis unde omnis iste natus error sit voluptatem 
+     accusantium doloremque laudantium, totam rem aperiam, eaque ipsa 
+     quae ab illo inventore veritatis et quasi architecto beatae vitae 
+     dicta sunt explicabo.<a href="#fnr1-903162597" class="footnoteBackLink" title="Jump back to footnote 1 in the text">&#8617;</a>
+ </li>
+
+ <li id="fn2-903162597">
+     Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit 
+       aut fugit, sed quia consequuntur magni dolores eos qui ratione 
+       voluptatem sequi nesciunt. <p>  Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, 
+     consectetur, adipisci velit, sed quia non numquam eius modi 
+     tempora incidunt ut labore et dolore magnam aliquam quaerat 
+     voluptatem. <a href="#fnr2-903162597" class="footnoteBackLink" title="Jump back to footnote 1 in the text">&#8617;</a>
+</p>
+
+ </li>
+
+ <li id="fn3-903162597">
+     Ut enim ad minim veniam, quis nostrud exercitation ullamco 
+         laboris nisi ut aliquip ex ea commodo consequat. <a href="#fnr3-903162597" class="footnoteBackLink" title="Jump back to footnote 1 in the text">&#8617;</a>
+ </li>
+</ol>
+</div>
index 0286846b81f70d09d324b5b4bb7a5d8766d81195..6afc56e1896eb6e26d4efcebfd54329c3ea9653b 100644 (file)
@@ -1,15 +1,15 @@
-<h2>A plain header</h2>\r
-\r
-<p>Let's first have a plain header</p>\r
-\r
-<h1>An underlined header</h1>\r
-\r
-<p>(That's also useful)</p>\r
-\r
-<h1>A header with a <a href="http://www.link.com">link</a></h1>\r
-\r
-<p>First with a hash</p>\r
-\r
-<h2>Another with a <a href="http://www.link.com/">link</a></h2>\r
-\r
-<p>This time underlined</p>\r
+<h2>A plain header</h2>
+
+<p>Let's first have a plain header</p>
+
+<h1>An underlined header</h1>
+
+<p>(That's also useful)</p>
+
+<h1>A header with a <a href="http://www.link.com">link</a></h1>
+
+<p>First with a hash</p>
+
+<h2>Another with a <a href="http://www.link.com/">link</a></h2>
+
+<p>This time underlined</p>
index 6f029781700305a9382ce37c60e0af66a191d649..80f48e5252d428f438c2890259bc4da3f8a3bf21 100644 (file)
@@ -1,10 +1,10 @@
-[DEFAULT]\r
-input_ext=.text\r
-normalize=1\r
-# comment out next line to run these tests\r
-#skip=1\r
-\r
-[Yuri-Footnotes]\r
-extensions=footnotes\r
-skip=1\r
-\r
+DEFAULT:
+    input_ext: .text
+    normalize: True
+    # comment out next line to run these tests
+    #skip: True
+
+Yuri-Footnotes:
+    extensions: footnotes
+    skip: True
+
index 99236052fa4ef93f7b36353477e46c368b3c915a..9606860b6c1c5c4c958dfc7d7183618b443f0520 100644 (file)
@@ -1,17 +1,17 @@
-<p>AT&amp;T has an ampersand in their name.</p>\r
-\r
-<p>AT&amp;T is another way to write it.</p>\r
-\r
-<p>This &amp; that.</p>\r
-\r
-<p>4 &lt; 5.</p>\r
-\r
-<p>6 > 5.</p>\r
-\r
-<p>Here's a <a href="http://example.com/?foo=1&amp;bar=2">link</a> with an ampersand in the URL.</p>\r
-\r
-<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>\r
-\r
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>\r
-\r
-<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>\r
+<p>AT&amp;T has an ampersand in their name.</p>
+
+<p>AT&amp;T is another way to write it.</p>
+
+<p>This &amp; that.</p>
+
+<p>4 &lt; 5.</p>
+
+<p>6 > 5.</p>
+
+<p>Here's a <a href="http://example.com/?foo=1&amp;bar=2">link</a> with an ampersand in the URL.</p>
+
+<p>Here's a link with an amersand in the link text: <a href="http://att.com/" title="AT&amp;T">AT&amp;T</a>.</p>
+
+<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
+
+<p>Here's an inline <a href="/script?foo=1&amp;bar=2">link</a>.</p>
index 12800bcb9807ace9d3a283467bc687e76790956f..f8df9852c7dffe8c15e8e6fa7af6280073e36bac 100644 (file)
@@ -1,18 +1,18 @@
-<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>\r
-\r
-<p>With an ampersand: <a href="http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</a></p>\r
-\r
-<ul>\r
-<li>In a list?</li>\r
-<li><a href="http://example.com/">http://example.com/</a></li>\r
-<li>It should.</li>\r
-</ul>\r
-\r
-<blockquote>\r
-  <p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>\r
-</blockquote>\r
-\r
-<p>Auto-links should not occur here: <code>&lt;http://example.com/&gt;</code></p>\r
-\r
-<pre><code>or here: &lt;http://example.com/&gt;\r
-</code></pre>\r
+<p>Link: <a href="http://example.com/">http://example.com/</a>.</p>
+
+<p>With an ampersand: <a href="http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</a></p>
+
+<ul>
+<li>In a list?</li>
+<li><a href="http://example.com/">http://example.com/</a></li>
+<li>It should.</li>
+</ul>
+
+<blockquote>
+  <p>Blockquoted: <a href="http://example.com/">http://example.com/</a></p>
+</blockquote>
+
+<p>Auto-links should not occur here: <code>&lt;http://example.com/&gt;</code></p>
+
+<pre><code>or here: &lt;http://example.com/&gt;
+</code></pre>
index 93e8ca9614a6952dd8aee62eaa7465ab20914125..29870dac5d9ab7d6ae49cafdb097c3e6e7c55b60 100644 (file)
-<p>These should all get escaped:</p>\r
-\r
-<p>Backslash: \</p>\r
-\r
-<p>Backtick: `</p>\r
-\r
-<p>Asterisk: *</p>\r
-\r
-<p>Underscore: _</p>\r
-\r
-<p>Left brace: {</p>\r
-\r
-<p>Right brace: }</p>\r
-\r
-<p>Left bracket: [</p>\r
-\r
-<p>Right bracket: ]</p>\r
-\r
-<p>Left paren: (</p>\r
-\r
-<p>Right paren: )</p>\r
-\r
-<p>Greater-than: ></p>\r
-\r
-<p>Hash: #</p>\r
-\r
-<p>Period: .</p>\r
-\r
-<p>Bang: !</p>\r
-\r
-<p>Plus: +</p>\r
-\r
-<p>Minus: -</p>\r
-\r
-<p>These should not, because they occur within a code block:</p>\r
-\r
-<pre><code>Backslash: \\\r
-\r
-Backtick: \`\r
-\r
-Asterisk: \*\r
-\r
-Underscore: \_\r
-\r
-Left brace: \{\r
-\r
-Right brace: \}\r
-\r
-Left bracket: \[\r
-\r
-Right bracket: \]\r
-\r
-Left paren: \(\r
-\r
-Right paren: \)\r
-\r
-Greater-than: \&gt;\r
-\r
-Hash: \#\r
-\r
-Period: \.\r
-\r
-Bang: \!\r
-\r
-Plus: \+\r
-\r
-Minus: \-\r
-</code></pre>\r
-\r
-<p>Nor should these, which occur in code spans:</p>\r
-\r
-<p>Backslash: <code>\\</code></p>\r
-\r
-<p>Backtick: <code>\`</code></p>\r
-\r
-<p>Asterisk: <code>\*</code></p>\r
-\r
-<p>Underscore: <code>\_</code></p>\r
-\r
-<p>Left brace: <code>\{</code></p>\r
-\r
-<p>Right brace: <code>\}</code></p>\r
-\r
-<p>Left bracket: <code>\[</code></p>\r
-\r
-<p>Right bracket: <code>\]</code></p>\r
-\r
-<p>Left paren: <code>\(</code></p>\r
-\r
-<p>Right paren: <code>\)</code></p>\r
-\r
-<p>Greater-than: <code>\&gt;</code></p>\r
-\r
-<p>Hash: <code>\#</code></p>\r
-\r
-<p>Period: <code>\.</code></p>\r
-\r
-<p>Bang: <code>\!</code></p>\r
-\r
-<p>Plus: <code>\+</code></p>\r
-\r
-<p>Minus: <code>\-</code></p>\r
-\r
-\r
-<p>These should get escaped, even though they're matching pairs for\r
-other Markdown constructs:</p>\r
-\r
-<p>*asterisks*</p>\r
-\r
-<p>_underscores_</p>\r
-\r
-<p>`backticks`</p>\r
-\r
-<p>This is a code span with a literal backslash-backtick sequence: <code>\`</code></p>\r
-\r
-<p>This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>.</p>\r
-\r
-<p>This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>.</p>\r
+<p>These should all get escaped:</p>
+
+<p>Backslash: \</p>
+
+<p>Backtick: `</p>
+
+<p>Asterisk: *</p>
+
+<p>Underscore: _</p>
+
+<p>Left brace: {</p>
+
+<p>Right brace: }</p>
+
+<p>Left bracket: [</p>
+
+<p>Right bracket: ]</p>
+
+<p>Left paren: (</p>
+
+<p>Right paren: )</p>
+
+<p>Greater-than: ></p>
+
+<p>Hash: #</p>
+
+<p>Period: .</p>
+
+<p>Bang: !</p>
+
+<p>Plus: +</p>
+
+<p>Minus: -</p>
+
+<p>These should not, because they occur within a code block:</p>
+
+<pre><code>Backslash: \\
+
+Backtick: \`
+
+Asterisk: \*
+
+Underscore: \_
+
+Left brace: \{
+
+Right brace: \}
+
+Left bracket: \[
+
+Right bracket: \]
+
+Left paren: \(
+
+Right paren: \)
+
+Greater-than: \&gt;
+
+Hash: \#
+
+Period: \.
+
+Bang: \!
+
+Plus: \+
+
+Minus: \-
+</code></pre>
+
+<p>Nor should these, which occur in code spans:</p>
+
+<p>Backslash: <code>\\</code></p>
+
+<p>Backtick: <code>\`</code></p>
+
+<p>Asterisk: <code>\*</code></p>
+
+<p>Underscore: <code>\_</code></p>
+
+<p>Left brace: <code>\{</code></p>
+
+<p>Right brace: <code>\}</code></p>
+
+<p>Left bracket: <code>\[</code></p>
+
+<p>Right bracket: <code>\]</code></p>
+
+<p>Left paren: <code>\(</code></p>
+
+<p>Right paren: <code>\)</code></p>
+
+<p>Greater-than: <code>\&gt;</code></p>
+
+<p>Hash: <code>\#</code></p>
+
+<p>Period: <code>\.</code></p>
+
+<p>Bang: <code>\!</code></p>
+
+<p>Plus: <code>\+</code></p>
+
+<p>Minus: <code>\-</code></p>
+
+
+<p>These should get escaped, even though they're matching pairs for
+other Markdown constructs:</p>
+
+<p>*asterisks*</p>
+
+<p>_underscores_</p>
+
+<p>`backticks`</p>
+
+<p>This is a code span with a literal backslash-backtick sequence: <code>\`</code></p>
+
+<p>This is a tag with unescaped backticks <span attr='`ticks`'>bar</span>.</p>
+
+<p>This is a tag with backslashes <span attr='\\backslashes\\'>bar</span>.</p>
index 3bdb552d974f0b72dcee62ae40891f47ef45e096..990202a1b381f677eb6d21fbc2d87a143a6cb80f 100644 (file)
@@ -1,15 +1,15 @@
-<blockquote>\r
-  <p>Example:</p>\r
-\r
-<pre><code>sub status {\r
-    print "working";\r
-}\r
-</code></pre>\r
-  \r
-  <p>Or:</p>\r
-\r
-<pre><code>sub status {\r
-    return "working";\r
-}\r
-</code></pre>\r
-</blockquote>\r
+<blockquote>
+  <p>Example:</p>
+
+<pre><code>sub status {
+    print "working";
+}
+</code></pre>
+  
+  <p>Or:</p>
+
+<pre><code>sub status {
+    return "working";
+}
+</code></pre>
+</blockquote>
index 806a203ba5f90b537c55a7e0141dcee7dc56d7a8..32703f5cb48a57b90de2e85d3455aaa3f2ff2d58 100644 (file)
@@ -1,18 +1,18 @@
-<pre><code>code block on the first line\r
-</code></pre>\r
-\r
-<p>Regular text.</p>\r
-\r
-<pre><code>code block indented by spaces\r
-</code></pre>\r
-\r
-<p>Regular text.</p>\r
-\r
-<pre><code>the lines in this block  \r
-all contain trailing spaces  \r
-</code></pre>\r
-\r
-<p>Regular Text.</p>\r
-\r
-<pre><code>code block on the last line\r
-</code></pre>\r
+<pre><code>code block on the first line
+</code></pre>
+
+<p>Regular text.</p>
+
+<pre><code>code block indented by spaces
+</code></pre>
+
+<p>Regular text.</p>
+
+<pre><code>the lines in this block  
+all contain trailing spaces  
+</code></pre>
+
+<p>Regular Text.</p>
+
+<pre><code>code block on the last line
+</code></pre>
index b6950fd6e3fd4a32d1a5fb9b5c110e7ce1f1b0b4..b057457d31be4de02935df4f710cd3d898574a07 100644 (file)
@@ -1,5 +1,5 @@
-<p><code>&lt;test a="</code> content of attribute <code>"&gt;</code></p>\r
-\r
-<p>Fix for backticks within HTML tag: <span attr='`ticks`'>like this</span></p>\r
-\r
-<p>Here's how you put <code>`backticks`</code> in a code span.</p>\r
+<p><code>&lt;test a="</code> content of attribute <code>"&gt;</code></p>
+
+<p>Fix for backticks within HTML tag: <span attr='`ticks`'>like this</span></p>
+
+<p>Here's how you put <code>`backticks`</code> in a code span.</p>
index c7a72773a0e1de7279a1d877c22d413d1f3c9cdb..e21ac79a2e09a4e4285b6c7fd7963d1875432a5a 100644 (file)
@@ -1,8 +1,8 @@
-<p>In Markdown 1.0.0 and earlier. Version\r
-8. This line turns into a list item.\r
-Because a hard-wrapped line in the\r
-middle of a paragraph looked like a\r
-list item.</p>\r
-\r
-<p>Here's one with a bullet.\r
-* criminey.</p>\r
+<p>In Markdown 1.0.0 and earlier. Version
+8. This line turns into a list item.
+Because a hard-wrapped line in the
+middle of a paragraph looked like a
+list item.</p>
+
+<p>Here's one with a bullet.
+* criminey.</p>
index 4b5574c48900606035dc514e04b33a00605b3464..2dc2ab6565901aba001df71847f9c9df39129c21 100644 (file)
@@ -1,71 +1,71 @@
-<p>Dashes:</p>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>---\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>- - -\r
-</code></pre>\r
-\r
-<p>Asterisks:</p>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>***\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>* * *\r
-</code></pre>\r
-\r
-<p>Underscores:</p>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>___\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<hr />\r
-\r
-<pre><code>_ _ _\r
-</code></pre>\r
+<p>Dashes:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>---
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>- - -
+</code></pre>
+
+<p>Asterisks:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>***
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>* * *
+</code></pre>
+
+<p>Underscores:</p>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>___
+</code></pre>
+
+<hr />
+
+<hr />
+
+<hr />
+
+<hr />
+
+<pre><code>_ _ _
+</code></pre>
index cc6b7b74a9e00e26d92ff6fb4dea214eb7c7ee03..217f028060c3027d091e5d43aa3f9e415f7912dd 100644 (file)
@@ -1,21 +1,21 @@
-<p><img src="/path/to/img.jpg" alt="Alt text" title="" /></p>\r
-\r
-<p><img src="/path/to/img.jpg" alt="Alt text" title="Optional title" /></p>\r
-\r
-<p>Inline within a paragraph: <a href="/url/">alt text</a>.</p>\r
-\r
-<p><img src="/url/" alt="alt text" title="title preceded by two spaces" /></p>\r
-\r
-<p><img src="/url/" alt="alt text" title="title has spaces afterward" /></p>\r
-\r
-<p><img src="/url/" alt="alt text" title="" /></p>\r
-\r
-<p><img src="/url/" alt="alt text" title="with a title" />.</p>\r
-\r
-<p><img src="" alt="Empty" title="" /></p>\r
-\r
-<p><img src="http://example.com/(parens).jpg" alt="this is a stupid URL" title="" /></p>\r
-\r
-<p><img src="/url/" alt="alt text" /></p>\r
-\r
-<p><img src="/url/" alt="alt text" title="Title here" /></p>\r
+<p><img src="/path/to/img.jpg" alt="Alt text" title="" /></p>
+
+<p><img src="/path/to/img.jpg" alt="Alt text" title="Optional title" /></p>
+
+<p>Inline within a paragraph: <a href="/url/">alt text</a>.</p>
+
+<p><img src="/url/" alt="alt text" title="title preceded by two spaces" /></p>
+
+<p><img src="/url/" alt="alt text" title="title has spaces afterward" /></p>
+
+<p><img src="/url/" alt="alt text" title="" /></p>
+
+<p><img src="/url/" alt="alt text" title="with a title" />.</p>
+
+<p><img src="" alt="Empty" title="" /></p>
+
+<p><img src="http://example.com/(parens).jpg" alt="this is a stupid URL" title="" /></p>
+
+<p><img src="/url/" alt="alt text" /></p>
+
+<p><img src="/url/" alt="alt text" title="Title here" /></p>
index a67ff0a6e0985aabac93537900a18db069eb0d8f..884f14c188ec1bd4a4097e617337ac5fccb25469 100644 (file)
@@ -1,30 +1,30 @@
-<p>Simple block on one line:</p>\r
-\r
-<div>foo</div>\r
-\r
-<p>And nested without indentation:</p>\r
-\r
-<div>\r
-<div>\r
-<div>\r
-foo\r
-</div>\r
-<div style=">"/>\r
-</div>\r
-<div>bar</div>\r
-</div>\r
-\r
-<p>And with attributes:</p>\r
-\r
-<div>\r
-    <div id="foo">\r
-    </div>\r
-</div>\r
-\r
-<p>This was broken in 1.0.2b7:</p>\r
-\r
-<div class="inlinepage">\r
-<div class="toggleableend">\r
-foo\r
-</div>\r
-</div>\r
+<p>Simple block on one line:</p>
+
+<div>foo</div>
+
+<p>And nested without indentation:</p>
+
+<div>
+<div>
+<div>
+foo
+</div>
+<div style=">"/>
+</div>
+<div>bar</div>
+</div>
+
+<p>And with attributes:</p>
+
+<div>
+    <div id="foo">
+    </div>
+</div>
+
+<p>This was broken in 1.0.2b7:</p>
+
+<div class="inlinepage">
+<div class="toggleableend">
+foo
+</div>
+</div>
index eeb873d41ae94400214a3f19032e54f0362947e6..6bf78f8fc1bd7f5d5c65be066609903f2c9a745c 100644 (file)
@@ -1,72 +1,72 @@
-<p>Here's a simple block:</p>\r
-\r
-<div>\r
-    foo\r
-</div>\r
-\r
-<p>This should be a code block, though:</p>\r
-\r
-<pre><code>&lt;div&gt;\r
-    foo\r
-&lt;/div&gt;\r
-</code></pre>\r
-\r
-<p>As should this:</p>\r
-\r
-<pre><code>&lt;div&gt;foo&lt;/div&gt;\r
-</code></pre>\r
-\r
-<p>Now, nested:</p>\r
-\r
-<div>\r
-    <div>\r
-        <div>\r
-            foo\r
-        </div>\r
-    </div>\r
-</div>\r
-\r
-<p>This should just be an HTML comment:</p>\r
-\r
-<!-- Comment -->\r
-\r
-<p>Multiline:</p>\r
-\r
-<!--\r
-Blah\r
-Blah\r
--->\r
-\r
-<p>Code block:</p>\r
-\r
-<pre><code>&lt;!-- Comment --&gt;\r
-</code></pre>\r
-\r
-<p>Just plain comment, with trailing spaces on the line:</p>\r
-\r
-<!-- foo -->   \r
-\r
-<p>Code:</p>\r
-\r
-<pre><code>&lt;hr /&gt;\r
-</code></pre>\r
-\r
-<p>Hr's:</p>\r
-\r
-<hr>\r
-\r
-<hr/>\r
-\r
-<hr />\r
-\r
-<hr>   \r
-\r
-<hr/>  \r
-\r
-<hr /> \r
-\r
-<hr class="foo" id="bar" />\r
-\r
-<hr class="foo" id="bar"/>\r
-\r
-<hr class="foo" id="bar" >\r
+<p>Here's a simple block:</p>
+
+<div>
+    foo
+</div>
+
+<p>This should be a code block, though:</p>
+
+<pre><code>&lt;div&gt;
+    foo
+&lt;/div&gt;
+</code></pre>
+
+<p>As should this:</p>
+
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+
+<p>Now, nested:</p>
+
+<div>
+    <div>
+        <div>
+            foo
+        </div>
+    </div>
+</div>
+
+<p>This should just be an HTML comment:</p>
+
+<!-- Comment -->
+
+<p>Multiline:</p>
+
+<!--
+Blah
+Blah
+-->
+
+<p>Code block:</p>
+
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+
+<p>Just plain comment, with trailing spaces on the line:</p>
+
+<!-- foo -->   
+
+<p>Code:</p>
+
+<pre><code>&lt;hr /&gt;
+</code></pre>
+
+<p>Hr's:</p>
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>   
+
+<hr/>  
+
+<hr /> 
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
index fc353b69b8bb255eaf9a073781d441c7cca1ae80..3f167a1610e53a873e81374dccc5f7ef8fb1d990 100644 (file)
@@ -1,13 +1,13 @@
-<p>Paragraph one.</p>\r
-\r
-<!-- This is a simple comment -->\r
-\r
-<!--\r
-    This is another comment.\r
--->\r
-\r
-<p>Paragraph two.</p>\r
-\r
-<!-- one comment block -- -- with two comments -->\r
-\r
-<p>The end.</p>\r
+<p>Paragraph one.</p>
+
+<!-- This is a simple comment -->
+
+<!--
+    This is another comment.
+-->
+
+<p>Paragraph two.</p>
+
+<!-- one comment block -- -- with two comments -->
+
+<p>The end.</p>
index 1d1313dbc93f7862b939787931662250ddf415a2..9f351ef54312ad963014d1bccc4e674543474c2f 100644 (file)
@@ -1,23 +1,23 @@
-<p>Just a <a href="/url/">URL</a>.</p>\r
-\r
-<p><a href="/url/" title="title">URL and title</a>.</p>\r
-\r
-<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>\r
-\r
-<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>\r
-\r
-<p><a href="/url/" title="title has spaces afterward">URL and title</a>.</p>\r
-\r
-<p><a href="/url/">URL wrapped in angle brackets</a>.</p>\r
-\r
-<p><a href="/url/" title="Here's the title">URL w/ angle brackets + title</a>.</p>\r
-\r
-<p><a href="">Empty</a>.</p>\r
-\r
-<p><a href="http://en.wikipedia.org/wiki/WIMP_(computing)">With parens in the URL</a></p>\r
-\r
-<p>(With outer parens and <a href="/foo(bar)">parens in url</a>)</p>\r
-\r
-<p><a href="/foo(bar)" title="and a title">With parens in the URL</a></p>\r
-\r
-<p>(With outer parens and <a href="/foo(bar)" title="and a title">parens in url</a>)</p>\r
+<p>Just a <a href="/url/">URL</a>.</p>
+
+<p><a href="/url/" title="title">URL and title</a>.</p>
+
+<p><a href="/url/" title="title preceded by two spaces">URL and title</a>.</p>
+
+<p><a href="/url/" title="title preceded by a tab">URL and title</a>.</p>
+
+<p><a href="/url/" title="title has spaces afterward">URL and title</a>.</p>
+
+<p><a href="/url/">URL wrapped in angle brackets</a>.</p>
+
+<p><a href="/url/" title="Here's the title">URL w/ angle brackets + title</a>.</p>
+
+<p><a href="">Empty</a>.</p>
+
+<p><a href="http://en.wikipedia.org/wiki/WIMP_(computing)">With parens in the URL</a></p>
+
+<p>(With outer parens and <a href="/foo(bar)">parens in url</a>)</p>
+
+<p><a href="/foo(bar)" title="and a title">With parens in the URL</a></p>
+
+<p>(With outer parens and <a href="/foo(bar)" title="and a title">parens in url</a>)</p>
index 56685ec96e67e818c5c835befae4e21a2a6da8a4..8e70c32f4d43f4c3bb3a9b44c0699dc43a628eb2 100644 (file)
@@ -1,52 +1,52 @@
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-\r
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-\r
-<p>Foo <a href="/url/" title="Title">bar</a>.</p>\r
-\r
-<p>With <a href="/url/">embedded [brackets]</a>.</p>\r
-\r
-<p>Indented <a href="/url">once</a>.</p>\r
-\r
-<p>Indented <a href="/url">twice</a>.</p>\r
-\r
-<p>Indented <a href="/url">thrice</a>.</p>\r
-\r
-<p>Indented [four][] times.</p>\r
-\r
-<pre><code>[four]: /url\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<p><a href="foo">this</a> should work</p>\r
-\r
-<p>So should <a href="foo">this</a>.</p>\r
-\r
-<p>And <a href="foo">this</a>.</p>\r
-\r
-<p>And <a href="foo">this</a>.</p>\r
-\r
-<p>And <a href="foo">this</a>.</p>\r
-\r
-<p>But not [that] [].</p>\r
-\r
-<p>Nor [that][].</p>\r
-\r
-<p>Nor [that].</p>\r
-\r
-<p>[Something in brackets like <a href="foo">this</a> should work]</p>\r
-\r
-<p>[Same with <a href="foo">this</a>.]</p>\r
-\r
-<p>In this case, <a href="/somethingelse/">this</a> points to something else.</p>\r
-\r
-<p>Backslashing should suppress [this] and [this].</p>\r
-\r
-<hr />\r
-\r
-<p>Here's one where the <a href="/url/">link\r
-breaks</a> across lines.</p>\r
-\r
-<p>Here's another where the <a href="/url/">link \r
-breaks</a> across lines, but with a line-ending space.</p>\r
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title">bar</a>.</p>
+
+<p>With <a href="/url/">embedded [brackets]</a>.</p>
+
+<p>Indented <a href="/url">once</a>.</p>
+
+<p>Indented <a href="/url">twice</a>.</p>
+
+<p>Indented <a href="/url">thrice</a>.</p>
+
+<p>Indented [four][] times.</p>
+
+<pre><code>[four]: /url
+</code></pre>
+
+<hr />
+
+<p><a href="foo">this</a> should work</p>
+
+<p>So should <a href="foo">this</a>.</p>
+
+<p>And <a href="foo">this</a>.</p>
+
+<p>And <a href="foo">this</a>.</p>
+
+<p>And <a href="foo">this</a>.</p>
+
+<p>But not [that] [].</p>
+
+<p>Nor [that][].</p>
+
+<p>Nor [that].</p>
+
+<p>[Something in brackets like <a href="foo">this</a> should work]</p>
+
+<p>[Same with <a href="foo">this</a>.]</p>
+
+<p>In this case, <a href="/somethingelse/">this</a> points to something else.</p>
+
+<p>Backslashing should suppress [this] and [this].</p>
+
+<hr />
+
+<p>Here's one where the <a href="/url/">link
+breaks</a> across lines.</p>
+
+<p>Here's another where the <a href="/url/">link 
+breaks</a> across lines, but with a line-ending space.</p>
index 36ac3321c752e1a4757e459a7e54859672952ac0..bf81e939f5e3cba2652501893b1555bc56070325 100644 (file)
@@ -1,9 +1,9 @@
-<p>This is the <a href="/simple">simple case</a>.</p>\r
-\r
-<p>This one has a <a href="/foo">line\r
-break</a>.</p>\r
-\r
-<p>This one has a <a href="/foo">line \r
-break</a> with a line-ending space.</p>\r
-\r
-<p><a href="/that">this</a> and the <a href="/other">other</a></p>\r
+<p>This is the <a href="/simple">simple case</a>.</p>
+
+<p>This one has a <a href="/foo">line
+break</a>.</p>
+
+<p>This one has a <a href="/foo">line 
+break</a> with a line-ending space.</p>
+
+<p><a href="/that">this</a> and the <a href="/other">other</a></p>
index d464ab4c9f93f375759d1e4e5e405d28a14c7503..611c1ac61f0d95609a78cbaf39dde20a0dfecdf0 100644 (file)
@@ -1,3 +1,3 @@
-<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>\r
-\r
-<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>\r
+<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>
+
+<p>Foo <a href="/url/" title="Title with &quot;quotes&quot; inside">bar</a>.</p>
index d96fa3e6bba1a9c39e29fa0a0e2b0f568980cf67..d5bdbb29a5fc31080bba7b19eb625d3c08d55b20 100644 (file)
-<h1>Markdown: Basics</h1>\r
-\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a class="selected" title="Markdown Basics">Basics</a></li>\r
-    <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-<h2>Getting the Gist of Markdown's Formatting Syntax</h2>\r
-\r
-<p>This page offers a brief overview of what it's like to use Markdown.\r
-The <a href="/projects/markdown/syntax" title="Markdown Syntax">syntax page</a> provides complete, detailed documentation for\r
-every feature, but Markdown should be very easy to pick up simply by\r
-looking at a few examples of it in action. The examples on this page\r
-are written in a before/after style, showing example syntax and the\r
-HTML output produced by Markdown.</p>\r
-\r
-<p>It's also helpful to simply try Markdown out; the <a href="/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a\r
-web application that allows you type your own Markdown-formatted text\r
-and translate it to XHTML.</p>\r
-\r
-<p><strong>Note:</strong> This document is itself written using Markdown; you\r
-can <a href="/projects/markdown/basics.text">see the source for it by adding '.text' to the URL</a>.</p>\r
-\r
-<h2>Paragraphs, Headers, Blockquotes</h2>\r
-\r
-<p>A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
-\r
-<p>Markdown offers two styles of headers: <em>Setext</em> and <em>atx</em>.\r
-Setext-style headers for <code>&lt;h1&gt;</code> and <code>&lt;h2&gt;</code> are created by\r
-"underlining" with equal signs (<code>=</code>) and hyphens (<code>-</code>), respectively.\r
-To create an atx-style header, you put 1-6 hash marks (<code>#</code>) at the\r
-beginning of the line -- the number of hashes equals the resulting\r
-HTML header level.</p>\r
-\r
-<p>Blockquotes are indicated using email-style '<code>&gt;</code>' angle brackets.</p>\r
-\r
-<p>Markdown:</p>\r
-\r
-<pre><code>A First Level Header\r
-====================\r
-\r
-A Second Level Header\r
----------------------\r
-\r
-Now is the time for all good men to come to\r
-the aid of their country. This is just a\r
-regular paragraph.\r
-\r
-The quick brown fox jumped over the lazy\r
-dog's back.\r
-\r
-### Header 3\r
-\r
-&gt; This is a blockquote.\r
-&gt; \r
-&gt; This is the second paragraph in the blockquote.\r
-&gt;\r
-&gt; ## This is an H2 in a blockquote\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;h1&gt;A First Level Header&lt;/h1&gt;\r
-\r
-&lt;h2&gt;A Second Level Header&lt;/h2&gt;\r
-\r
-&lt;p&gt;Now is the time for all good men to come to\r
-the aid of their country. This is just a\r
-regular paragraph.&lt;/p&gt;\r
-\r
-&lt;p&gt;The quick brown fox jumped over the lazy\r
-dog's back.&lt;/p&gt;\r
-\r
-&lt;h3&gt;Header 3&lt;/h3&gt;\r
-\r
-&lt;blockquote&gt;\r
-    &lt;p&gt;This is a blockquote.&lt;/p&gt;\r
-\r
-    &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;\r
-\r
-    &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;\r
-&lt;/blockquote&gt;\r
-</code></pre>\r
-\r
-<h3>Phrase Emphasis</h3>\r
-\r
-<p>Markdown uses asterisks and underscores to indicate spans of emphasis.</p>\r
-\r
-<p>Markdown:</p>\r
-\r
-<pre><code>Some of these words *are emphasized*.\r
-Some of these words _are emphasized also_.\r
-\r
-Use two asterisks for **strong emphasis**.\r
-Or, if you prefer, __use two underscores instead__.\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.\r
-Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;\r
-\r
-&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.\r
-Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<h2>Lists</h2>\r
-\r
-<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,\r
-<code>+</code>, and <code>-</code>) as list markers. These three markers are\r
-interchangable; this:</p>\r
-\r
-<pre><code>*   Candy.\r
-*   Gum.\r
-*   Booze.\r
-</code></pre>\r
-\r
-<p>this:</p>\r
-\r
-<pre><code>+   Candy.\r
-+   Gum.\r
-+   Booze.\r
-</code></pre>\r
-\r
-<p>and this:</p>\r
-\r
-<pre><code>-   Candy.\r
--   Gum.\r
--   Booze.\r
-</code></pre>\r
-\r
-<p>all produce the same output:</p>\r
-\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;Candy.&lt;/li&gt;\r
-&lt;li&gt;Gum.&lt;/li&gt;\r
-&lt;li&gt;Booze.&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-\r
-<p>Ordered (numbered) lists use regular numbers, followed by periods, as\r
-list markers:</p>\r
-\r
-<pre><code>1.  Red\r
-2.  Green\r
-3.  Blue\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;ol&gt;\r
-&lt;li&gt;Red&lt;/li&gt;\r
-&lt;li&gt;Green&lt;/li&gt;\r
-&lt;li&gt;Blue&lt;/li&gt;\r
-&lt;/ol&gt;\r
-</code></pre>\r
-\r
-<p>If you put blank lines between items, you'll get <code>&lt;p&gt;</code> tags for the\r
-list item text. You can create multi-paragraph list items by indenting\r
-the paragraphs by 4 spaces or 1 tab:</p>\r
-\r
-<pre><code>*   A list item.\r
-\r
-    With multiple paragraphs.\r
-\r
-*   Another item in the list.\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;\r
-&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;\r
-&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-\r
-<h3>Links</h3>\r
-\r
-<p>Markdown supports two styles for creating links: <em>inline</em> and\r
-<em>reference</em>. With both styles, you use square brackets to delimit the\r
-text you want to turn into a link.</p>\r
-\r
-<p>Inline-style links use parentheses immediately after the link text.\r
-For example:</p>\r
-\r
-<pre><code>This is an [example link](http://example.com/).\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;\r
-example link&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>Optionally, you may include a title attribute in the parentheses:</p>\r
-\r
-<pre><code>This is an [example link](http://example.com/ "With a Title").\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;\r
-example link&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>Reference-style links allow you to refer to your links by names, which\r
-you define elsewhere in your document:</p>\r
-\r
-<pre><code>I get 10 times more traffic from [Google][1] than from\r
-[Yahoo][2] or [MSN][3].\r
-\r
-[1]: http://google.com/        "Google"\r
-[2]: http://search.yahoo.com/  "Yahoo Search"\r
-[3]: http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
-title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"\r
-title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"\r
-title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>The title attribute is optional. Link names may contain letters,\r
-numbers and spaces, but are <em>not</em> case sensitive:</p>\r
-\r
-<pre><code>I start my morning with a cup of coffee and\r
-[The New York Times][NY Times].\r
-\r
-[ny times]: http://www.nytimes.com/\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;I start my morning with a cup of coffee and\r
-&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<h3>Images</h3>\r
-\r
-<p>Image syntax is very much like link syntax.</p>\r
-\r
-<p>Inline (titles are optional):</p>\r
-\r
-<pre><code>![alt text](/path/to/img.jpg "Title")\r
-</code></pre>\r
-\r
-<p>Reference-style:</p>\r
-\r
-<pre><code>![alt text][id]\r
-\r
-[id]: /path/to/img.jpg "Title"\r
-</code></pre>\r
-\r
-<p>Both of the above examples produce the same output:</p>\r
-\r
-<pre><code>&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;\r
-</code></pre>\r
-\r
-<h3>Code</h3>\r
-\r
-<p>In a regular paragraph, you can create code span by wrapping text in\r
-backtick quotes. Any ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> or\r
-<code>&gt;</code>) will automatically be translated into HTML entities. This makes\r
-it easy to use Markdown to write about HTML example code:</p>\r
-\r
-<pre><code>I strongly recommend against using any `&lt;blink&gt;` tags.\r
-\r
-I wish SmartyPants used named entities like `&amp;mdash;`\r
-instead of decimal-encoded entites like `&amp;#8212;`.\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;I strongly recommend against using any\r
-&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
-\r
-&lt;p&gt;I wish SmartyPants used named entities like\r
-&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded\r
-entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>To specify an entire block of pre-formatted code, indent every line of\r
-the block by 4 spaces or 1 tab. Just like with code spans, <code>&amp;</code>, <code>&lt;</code>,\r
-and <code>&gt;</code> characters will be escaped automatically.</p>\r
-\r
-<p>Markdown:</p>\r
-\r
-<pre><code>If you want your page to validate under XHTML 1.0 Strict,\r
-you've got to put paragraph tags in your blockquotes:\r
-\r
-    &lt;blockquote&gt;\r
-        &lt;p&gt;For example.&lt;/p&gt;\r
-    &lt;/blockquote&gt;\r
-</code></pre>\r
-\r
-<p>Output:</p>\r
-\r
-<pre><code>&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,\r
-you've got to put paragraph tags in your blockquotes:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;\r
-    &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;\r
-&amp;lt;/blockquote&amp;gt;\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
+<h1>Markdown: Basics</h1>
+
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a class="selected" title="Markdown Basics">Basics</a></li>
+    <li><a href="/projects/markdown/syntax" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<h2>Getting the Gist of Markdown's Formatting Syntax</h2>
+
+<p>This page offers a brief overview of what it's like to use Markdown.
+The <a href="/projects/markdown/syntax" title="Markdown Syntax">syntax page</a> provides complete, detailed documentation for
+every feature, but Markdown should be very easy to pick up simply by
+looking at a few examples of it in action. The examples on this page
+are written in a before/after style, showing example syntax and the
+HTML output produced by Markdown.</p>
+
+<p>It's also helpful to simply try Markdown out; the <a href="/projects/markdown/dingus" title="Markdown Dingus">Dingus</a> is a
+web application that allows you type your own Markdown-formatted text
+and translate it to XHTML.</p>
+
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/basics.text">see the source for it by adding '.text' to the URL</a>.</p>
+
+<h2>Paragraphs, Headers, Blockquotes</h2>
+
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+
+<p>Markdown offers two styles of headers: <em>Setext</em> and <em>atx</em>.
+Setext-style headers for <code>&lt;h1&gt;</code> and <code>&lt;h2&gt;</code> are created by
+"underlining" with equal signs (<code>=</code>) and hyphens (<code>-</code>), respectively.
+To create an atx-style header, you put 1-6 hash marks (<code>#</code>) at the
+beginning of the line -- the number of hashes equals the resulting
+HTML header level.</p>
+
+<p>Blockquotes are indicated using email-style '<code>&gt;</code>' angle brackets.</p>
+
+<p>Markdown:</p>
+
+<pre><code>A First Level Header
+====================
+
+A Second Level Header
+---------------------
+
+Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.
+
+The quick brown fox jumped over the lazy
+dog's back.
+
+### Header 3
+
+&gt; This is a blockquote.
+&gt; 
+&gt; This is the second paragraph in the blockquote.
+&gt;
+&gt; ## This is an H2 in a blockquote
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;h1&gt;A First Level Header&lt;/h1&gt;
+
+&lt;h2&gt;A Second Level Header&lt;/h2&gt;
+
+&lt;p&gt;Now is the time for all good men to come to
+the aid of their country. This is just a
+regular paragraph.&lt;/p&gt;
+
+&lt;p&gt;The quick brown fox jumped over the lazy
+dog's back.&lt;/p&gt;
+
+&lt;h3&gt;Header 3&lt;/h3&gt;
+
+&lt;blockquote&gt;
+    &lt;p&gt;This is a blockquote.&lt;/p&gt;
+
+    &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;
+
+    &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;
+&lt;/blockquote&gt;
+</code></pre>
+
+<h3>Phrase Emphasis</h3>
+
+<p>Markdown uses asterisks and underscores to indicate spans of emphasis.</p>
+
+<p>Markdown:</p>
+
+<pre><code>Some of these words *are emphasized*.
+Some of these words _are emphasized also_.
+
+Use two asterisks for **strong emphasis**.
+Or, if you prefer, __use two underscores instead__.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.
+Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;
+
+&lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.
+Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;
+</code></pre>
+
+<h2>Lists</h2>
+
+<p>Unordered (bulleted) lists use asterisks, pluses, and hyphens (<code>*</code>,
+<code>+</code>, and <code>-</code>) as list markers. These three markers are
+interchangable; this:</p>
+
+<pre><code>*   Candy.
+*   Gum.
+*   Booze.
+</code></pre>
+
+<p>this:</p>
+
+<pre><code>+   Candy.
++   Gum.
++   Booze.
+</code></pre>
+
+<p>and this:</p>
+
+<pre><code>-   Candy.
+-   Gum.
+-   Booze.
+</code></pre>
+
+<p>all produce the same output:</p>
+
+<pre><code>&lt;ul&gt;
+&lt;li&gt;Candy.&lt;/li&gt;
+&lt;li&gt;Gum.&lt;/li&gt;
+&lt;li&gt;Booze.&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+
+<p>Ordered (numbered) lists use regular numbers, followed by periods, as
+list markers:</p>
+
+<pre><code>1.  Red
+2.  Green
+3.  Blue
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;ol&gt;
+&lt;li&gt;Red&lt;/li&gt;
+&lt;li&gt;Green&lt;/li&gt;
+&lt;li&gt;Blue&lt;/li&gt;
+&lt;/ol&gt;
+</code></pre>
+
+<p>If you put blank lines between items, you'll get <code>&lt;p&gt;</code> tags for the
+list item text. You can create multi-paragraph list items by indenting
+the paragraphs by 4 spaces or 1 tab:</p>
+
+<pre><code>*   A list item.
+
+    With multiple paragraphs.
+
+*   Another item in the list.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;ul&gt;
+&lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;
+&lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;
+&lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+
+<h3>Links</h3>
+
+<p>Markdown supports two styles for creating links: <em>inline</em> and
+<em>reference</em>. With both styles, you use square brackets to delimit the
+text you want to turn into a link.</p>
+
+<p>Inline-style links use parentheses immediately after the link text.
+For example:</p>
+
+<pre><code>This is an [example link](http://example.com/).
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/"&gt;
+example link&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>Optionally, you may include a title attribute in the parentheses:</p>
+
+<pre><code>This is an [example link](http://example.com/ "With a Title").
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;This is an &lt;a href="http://example.com/" title="With a Title"&gt;
+example link&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>Reference-style links allow you to refer to your links by names, which
+you define elsewhere in your document:</p>
+
+<pre><code>I get 10 times more traffic from [Google][1] than from
+[Yahoo][2] or [MSN][3].
+
+[1]: http://google.com/        "Google"
+[2]: http://search.yahoo.com/  "Yahoo Search"
+[3]: http://search.msn.com/    "MSN Search"
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
+title="Google"&gt;Google&lt;/a&gt; than from &lt;a href="http://search.yahoo.com/"
+title="Yahoo Search"&gt;Yahoo&lt;/a&gt; or &lt;a href="http://search.msn.com/"
+title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>The title attribute is optional. Link names may contain letters,
+numbers and spaces, but are <em>not</em> case sensitive:</p>
+
+<pre><code>I start my morning with a cup of coffee and
+[The New York Times][NY Times].
+
+[ny times]: http://www.nytimes.com/
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;I start my morning with a cup of coffee and
+&lt;a href="http://www.nytimes.com/"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<h3>Images</h3>
+
+<p>Image syntax is very much like link syntax.</p>
+
+<p>Inline (titles are optional):</p>
+
+<pre><code>![alt text](/path/to/img.jpg "Title")
+</code></pre>
+
+<p>Reference-style:</p>
+
+<pre><code>![alt text][id]
+
+[id]: /path/to/img.jpg "Title"
+</code></pre>
+
+<p>Both of the above examples produce the same output:</p>
+
+<pre><code>&lt;img src="/path/to/img.jpg" alt="alt text" title="Title" /&gt;
+</code></pre>
+
+<h3>Code</h3>
+
+<p>In a regular paragraph, you can create code span by wrapping text in
+backtick quotes. Any ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> or
+<code>&gt;</code>) will automatically be translated into HTML entities. This makes
+it easy to use Markdown to write about HTML example code:</p>
+
+<pre><code>I strongly recommend against using any `&lt;blink&gt;` tags.
+
+I wish SmartyPants used named entities like `&amp;mdash;`
+instead of decimal-encoded entites like `&amp;#8212;`.
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;I strongly recommend against using any
+&lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
+
+&lt;p&gt;I wish SmartyPants used named entities like
+&lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded
+entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>To specify an entire block of pre-formatted code, indent every line of
+the block by 4 spaces or 1 tab. Just like with code spans, <code>&amp;</code>, <code>&lt;</code>,
+and <code>&gt;</code> characters will be escaped automatically.</p>
+
+<p>Markdown:</p>
+
+<pre><code>If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:
+
+    &lt;blockquote&gt;
+        &lt;p&gt;For example.&lt;/p&gt;
+    &lt;/blockquote&gt;
+</code></pre>
+
+<p>Output:</p>
+
+<pre><code>&lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,
+you've got to put paragraph tags in your blockquotes:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;
+    &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;
+&amp;lt;/blockquote&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
index b8c87e42c8be6a0495669908d8593c9a0bc4652f..5c01306cce0581277e8d4dd6d4f0cd4b53d7234c 100644 (file)
-<h1>Markdown: Syntax</h1>\r
-\r
-<ul id="ProjectSubmenu">\r
-    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>\r
-    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>\r
-    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>\r
-    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>\r
-    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>\r
-</ul>\r
-\r
-<ul>\r
-<li><a href="#overview">Overview</a>\r
-<ul>\r
-<li><a href="#philosophy">Philosophy</a></li>\r
-<li><a href="#html">Inline HTML</a></li>\r
-<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>\r
-</ul></li>\r
-<li><a href="#block">Block Elements</a>\r
-<ul>\r
-<li><a href="#p">Paragraphs and Line Breaks</a></li>\r
-<li><a href="#header">Headers</a></li>\r
-<li><a href="#blockquote">Blockquotes</a></li>\r
-<li><a href="#list">Lists</a></li>\r
-<li><a href="#precode">Code Blocks</a></li>\r
-<li><a href="#hr">Horizontal Rules</a></li>\r
-</ul></li>\r
-<li><a href="#span">Span Elements</a>\r
-<ul>\r
-<li><a href="#link">Links</a></li>\r
-<li><a href="#em">Emphasis</a></li>\r
-<li><a href="#code">Code</a></li>\r
-<li><a href="#img">Images</a></li>\r
-</ul></li>\r
-<li><a href="#misc">Miscellaneous</a>\r
-<ul>\r
-<li><a href="#backslash">Backslash Escapes</a></li>\r
-<li><a href="#autolink">Automatic Links</a></li>\r
-</ul></li>\r
-</ul>\r
-\r
-<p><strong>Note:</strong> This document is itself written using Markdown; you\r
-can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>\r
-\r
-<hr />\r
-\r
-<h2 id="overview">Overview</h2>\r
-\r
-<h3 id="philosophy">Philosophy</h3>\r
-\r
-<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>\r
-\r
-<p>Readability, however, is emphasized above all else. A Markdown-formatted\r
-document should be publishable as-is, as plain text, without looking\r
-like it's been marked up with tags or formatting instructions. While\r
-Markdown's syntax has been influenced by several existing text-to-HTML\r
-filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,\r
-<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of\r
-inspiration for Markdown's syntax is the format of plain text email.</p>\r
-\r
-<p>To this end, Markdown's syntax is comprised entirely of punctuation\r
-characters, which punctuation characters have been carefully chosen so\r
-as to look like what they mean. E.g., asterisks around a word actually\r
-look like *emphasis*. Markdown lists look like, well, lists. Even\r
-blockquotes look like quoted passages of text, assuming you've ever\r
-used email.</p>\r
-\r
-<h3 id="html">Inline HTML</h3>\r
-\r
-<p>Markdown's syntax is intended for one purpose: to be used as a\r
-format for <em>writing</em> for the web.</p>\r
-\r
-<p>Markdown is not a replacement for HTML, or even close to it. Its\r
-syntax is very small, corresponding only to a very small subset of\r
-HTML tags. The idea is <em>not</em> to create a syntax that makes it easier\r
-to insert HTML tags. In my opinion, HTML tags are already easy to\r
-insert. The idea for Markdown is to make it easy to read, write, and\r
-edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>\r
-format. Thus, Markdown's formatting syntax only addresses issues that\r
-can be conveyed in plain text.</p>\r
-\r
-<p>For any markup that is not covered by Markdown's syntax, you simply\r
-use HTML itself. There's no need to preface it or delimit it to\r
-indicate that you're switching from Markdown to HTML; you just use\r
-the tags.</p>\r
-\r
-<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,\r
-<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding\r
-content by blank lines, and the start and end tags of the block should\r
-not be indented with tabs or spaces. Markdown is smart enough not\r
-to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>\r
-\r
-<p>For example, to add an HTML table to a Markdown article:</p>\r
-\r
-<pre><code>This is a regular paragraph.\r
-\r
-&lt;table&gt;\r
-    &lt;tr&gt;\r
-        &lt;td&gt;Foo&lt;/td&gt;\r
-    &lt;/tr&gt;\r
-&lt;/table&gt;\r
-\r
-This is another regular paragraph.\r
-</code></pre>\r
-\r
-<p>Note that Markdown formatting syntax is not processed within block-level\r
-HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an\r
-HTML block.</p>\r
-\r
-<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be\r
-used anywhere in a Markdown paragraph, list item, or header. If you\r
-want, you can even use HTML tags instead of Markdown formatting; e.g. if\r
-you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's\r
-link or image syntax, go right ahead.</p>\r
-\r
-<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within\r
-span-level tags.</p>\r
-\r
-<h3 id="autoescape">Automatic Escaping for Special Characters</h3>\r
-\r
-<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>\r
-and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are\r
-used to denote HTML entities. If you want to use them as literal\r
-characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and\r
-<code>&amp;amp;</code>.</p>\r
-\r
-<p>Ampersands in particular are bedeviling for web writers. If you want to\r
-write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to\r
-escape ampersands within URLs. Thus, if you want to link to:</p>\r
-\r
-<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird\r
-</code></pre>\r
-\r
-<p>you need to encode the URL as:</p>\r
-\r
-<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird\r
-</code></pre>\r
-\r
-<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to\r
-forget, and is probably the single most common source of HTML validation\r
-errors in otherwise well-marked-up web sites.</p>\r
-\r
-<p>Markdown allows you to use these characters naturally, taking care of\r
-all the necessary escaping for you. If you use an ampersand as part of\r
-an HTML entity, it remains unchanged; otherwise it will be translated\r
-into <code>&amp;amp;</code>.</p>\r
-\r
-<p>So, if you want to include a copyright symbol in your article, you can write:</p>\r
-\r
-<pre><code>&amp;copy;\r
-</code></pre>\r
-\r
-<p>and Markdown will leave it alone. But if you write:</p>\r
-\r
-<pre><code>AT&amp;T\r
-</code></pre>\r
-\r
-<p>Markdown will translate it to:</p>\r
-\r
-<pre><code>AT&amp;amp;T\r
-</code></pre>\r
-\r
-<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use\r
-angle brackets as delimiters for HTML tags, Markdown will treat them as\r
-such. But if you write:</p>\r
-\r
-<pre><code>4 &lt; 5\r
-</code></pre>\r
-\r
-<p>Markdown will translate it to:</p>\r
-\r
-<pre><code>4 &amp;lt; 5\r
-</code></pre>\r
-\r
-<p>However, inside Markdown code spans and blocks, angle brackets and\r
-ampersands are <em>always</em> encoded automatically. This makes it easy to use\r
-Markdown to write about HTML code. (As opposed to raw HTML, which is a\r
-terrible format for writing about HTML syntax, because every single <code>&lt;</code>\r
-and <code>&amp;</code> in your example code needs to be escaped.)</p>\r
-\r
-<hr />\r
-\r
-<h2 id="block">Block Elements</h2>\r
-\r
-<h3 id="p">Paragraphs and Line Breaks</h3>\r
-\r
-<p>A paragraph is simply one or more consecutive lines of text, separated\r
-by one or more blank lines. (A blank line is any line that looks like a\r
-blank line -- a line containing nothing but spaces or tabs is considered\r
-blank.) Normal paragraphs should not be intended with spaces or tabs.</p>\r
-\r
-<p>The implication of the "one or more consecutive lines of text" rule is\r
-that Markdown supports "hard-wrapped" text paragraphs. This differs\r
-significantly from most other text-to-HTML formatters (including Movable\r
-Type's "Convert Line Breaks" option) which translate every line break\r
-character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>\r
-\r
-<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you\r
-end a line with two or more spaces, then type return.</p>\r
-\r
-<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic\r
-"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.\r
-Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>\r
-work best -- and look better -- when you format them with hard breaks.</p>\r
-\r
-<h3 id="header">Headers</h3>\r
-\r
-<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>\r
-\r
-<p>Setext-style headers are "underlined" using equal signs (for first-level\r
-headers) and dashes (for second-level headers). For example:</p>\r
-\r
-<pre><code>This is an H1\r
-=============\r
-\r
-This is an H2\r
--------------\r
-</code></pre>\r
-\r
-<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>\r
-\r
-<p>Atx-style headers use 1-6 hash characters at the start of the line,\r
-corresponding to header levels 1-6. For example:</p>\r
-\r
-<pre><code># This is an H1\r
-\r
-## This is an H2\r
-\r
-###### This is an H6\r
-</code></pre>\r
-\r
-<p>Optionally, you may "close" atx-style headers. This is purely\r
-cosmetic -- you can use this if you think it looks better. The\r
-closing hashes don't even need to match the number of hashes\r
-used to open the header. (The number of opening hashes\r
-determines the header level.) :</p>\r
-\r
-<pre><code># This is an H1 #\r
-\r
-## This is an H2 ##\r
-\r
-### This is an H3 ######\r
-</code></pre>\r
-\r
-<h3 id="blockquote">Blockquotes</h3>\r
-\r
-<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're\r
-familiar with quoting passages of text in an email message, then you\r
-know how to create a blockquote in Markdown. It looks best if you hard\r
-wrap the text and put a <code>&gt;</code> before every line:</p>\r
-\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-&gt; \r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-&gt; id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first\r
-line of a hard-wrapped paragraph:</p>\r
-\r
-<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,\r
-consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.\r
-Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.\r
-\r
-&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse\r
-id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by\r
-adding additional levels of <code>&gt;</code>:</p>\r
-\r
-<pre><code>&gt; This is the first level of quoting.\r
-&gt;\r
-&gt; &gt; This is nested blockquote.\r
-&gt;\r
-&gt; Back to the first level.\r
-</code></pre>\r
-\r
-<p>Blockquotes can contain other Markdown elements, including headers, lists,\r
-and code blocks:</p>\r
-\r
-<pre><code>&gt; ## This is a header.\r
-&gt; \r
-&gt; 1.   This is the first list item.\r
-&gt; 2.   This is the second list item.\r
-&gt; \r
-&gt; Here's some example code:\r
-&gt; \r
-&gt;     return shell_exec("echo $input | $markdown_script");\r
-</code></pre>\r
-\r
-<p>Any decent text editor should make email-style quoting easy. For\r
-example, with BBEdit, you can make a selection and choose Increase\r
-Quote Level from the Text menu.</p>\r
-\r
-<h3 id="list">Lists</h3>\r
-\r
-<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>\r
-\r
-<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably\r
--- as list markers:</p>\r
-\r
-<pre><code>*   Red\r
-*   Green\r
-*   Blue\r
-</code></pre>\r
-\r
-<p>is equivalent to:</p>\r
-\r
-<pre><code>+   Red\r
-+   Green\r
-+   Blue\r
-</code></pre>\r
-\r
-<p>and:</p>\r
-\r
-<pre><code>-   Red\r
--   Green\r
--   Blue\r
-</code></pre>\r
-\r
-<p>Ordered lists use numbers followed by periods:</p>\r
-\r
-<pre><code>1.  Bird\r
-2.  McHale\r
-3.  Parish\r
-</code></pre>\r
-\r
-<p>It's important to note that the actual numbers you use to mark the\r
-list have no effect on the HTML output Markdown produces. The HTML\r
-Markdown produces from the above list is:</p>\r
-\r
-<pre><code>&lt;ol&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;McHale&lt;/li&gt;\r
-&lt;li&gt;Parish&lt;/li&gt;\r
-&lt;/ol&gt;\r
-</code></pre>\r
-\r
-<p>If you instead wrote the list in Markdown like this:</p>\r
-\r
-<pre><code>1.  Bird\r
-1.  McHale\r
-1.  Parish\r
-</code></pre>\r
-\r
-<p>or even:</p>\r
-\r
-<pre><code>3. Bird\r
-1. McHale\r
-8. Parish\r
-</code></pre>\r
-\r
-<p>you'd get the exact same HTML output. The point is, if you want to,\r
-you can use ordinal numbers in your ordered Markdown lists, so that\r
-the numbers in your source match the numbers in your published HTML.\r
-But if you want to be lazy, you don't have to.</p>\r
-\r
-<p>If you do use lazy list numbering, however, you should still start the\r
-list with the number 1. At some point in the future, Markdown may support\r
-starting ordered lists at an arbitrary number.</p>\r
-\r
-<p>List markers typically start at the left margin, but may be indented by\r
-up to three spaces. List markers must be followed by one or more spaces\r
-or a tab.</p>\r
-\r
-<p>To make lists look nice, you can wrap items with hanging indents:</p>\r
-\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-    viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-    Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>But if you want to be lazy, you don't have to:</p>\r
-\r
-<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\r
-Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,\r
-viverra nec, fringilla in, laoreet vitae, risus.\r
-*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.\r
-Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>If list items are separated by blank lines, Markdown will wrap the\r
-items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>\r
-\r
-<pre><code>*   Bird\r
-*   Magic\r
-</code></pre>\r
-\r
-<p>will turn into:</p>\r
-\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;Bird&lt;/li&gt;\r
-&lt;li&gt;Magic&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-\r
-<p>But this:</p>\r
-\r
-<pre><code>*   Bird\r
-\r
-*   Magic\r
-</code></pre>\r
-\r
-<p>will turn into:</p>\r
-\r
-<pre><code>&lt;ul&gt;\r
-&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;\r
-&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;\r
-&lt;/ul&gt;\r
-</code></pre>\r
-\r
-<p>List items may consist of multiple paragraphs. Each subsequent\r
-paragraph in a list item must be intended by either 4 spaces\r
-or one tab:</p>\r
-\r
-<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor\r
-    sit amet, consectetuer adipiscing elit. Aliquam hendrerit\r
-    mi posuere lectus.\r
-\r
-    Vestibulum enim wisi, viverra nec, fringilla in, laoreet\r
-    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum\r
-    sit amet velit.\r
-\r
-2.  Suspendisse id sem consectetuer libero luctus adipiscing.\r
-</code></pre>\r
-\r
-<p>It looks nice if you indent every line of the subsequent\r
-paragraphs, but here again, Markdown will allow you to be\r
-lazy:</p>\r
-\r
-<pre><code>*   This is a list item with two paragraphs.\r
-\r
-    This is the second paragraph in the list item. You're\r
-only required to indent the first line. Lorem ipsum dolor\r
-sit amet, consectetuer adipiscing elit.\r
-\r
-*   Another item in the same list.\r
-</code></pre>\r
-\r
-<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>\r
-delimiters need to be indented:</p>\r
-\r
-<pre><code>*   A list item with a blockquote:\r
-\r
-    &gt; This is a blockquote\r
-    &gt; inside a list item.\r
-</code></pre>\r
-\r
-<p>To put a code block within a list item, the code block needs\r
-to be indented <em>twice</em> -- 8 spaces or two tabs:</p>\r
-\r
-<pre><code>*   A list item with a code block:\r
-\r
-        &lt;code goes here&gt;\r
-</code></pre>\r
-\r
-<p>It's worth noting that it's possible to trigger an ordered list by\r
-accident, by writing something like this:</p>\r
-\r
-<pre><code>1986. What a great season.\r
-</code></pre>\r
-\r
-<p>In other words, a <em>number-period-space</em> sequence at the beginning of a\r
-line. To avoid this, you can backslash-escape the period:</p>\r
-\r
-<pre><code>1986\. What a great season.\r
-</code></pre>\r
-\r
-<h3 id="precode">Code Blocks</h3>\r
-\r
-<p>Pre-formatted code blocks are used for writing about programming or\r
-markup source code. Rather than forming normal paragraphs, the lines\r
-of a code block are interpreted literally. Markdown wraps a code block\r
-in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>\r
-\r
-<p>To produce a code block in Markdown, simply indent every line of the\r
-block by at least 4 spaces or 1 tab. For example, given this input:</p>\r
-\r
-<pre><code>This is a normal paragraph:\r
-\r
-    This is a code block.\r
-</code></pre>\r
-\r
-<p>Markdown will generate:</p>\r
-\r
-<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;This is a code block.\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-\r
-<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each\r
-line of the code block. For example, this:</p>\r
-\r
-<pre><code>Here is an example of AppleScript:\r
-\r
-    tell application "Foo"\r
-        beep\r
-    end tell\r
-</code></pre>\r
-\r
-<p>will turn into:</p>\r
-\r
-<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;\r
-\r
-&lt;pre&gt;&lt;code&gt;tell application "Foo"\r
-    beep\r
-end tell\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-\r
-<p>A code block continues until it reaches a line that is not indented\r
-(or the end of the article).</p>\r
-\r
-<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)\r
-are automatically converted into HTML entities. This makes it very\r
-easy to include example HTML source code using Markdown -- just paste\r
-it and indent it, and Markdown will handle the hassle of encoding the\r
-ampersands and angle brackets. For example, this:</p>\r
-\r
-<pre><code>    &lt;div class="footer"&gt;\r
-        &amp;copy; 2004 Foo Corporation\r
-    &lt;/div&gt;\r
-</code></pre>\r
-\r
-<p>will turn into:</p>\r
-\r
-<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;\r
-    &amp;amp;copy; 2004 Foo Corporation\r
-&amp;lt;/div&amp;gt;\r
-&lt;/code&gt;&lt;/pre&gt;\r
-</code></pre>\r
-\r
-<p>Regular Markdown syntax is not processed within code blocks. E.g.,\r
-asterisks are just literal asterisks within a code block. This means\r
-it's also easy to use Markdown to write about Markdown's own syntax.</p>\r
-\r
-<h3 id="hr">Horizontal Rules</h3>\r
-\r
-<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or\r
-more hyphens, asterisks, or underscores on a line by themselves. If you\r
-wish, you may use spaces between the hyphens or asterisks. Each of the\r
-following lines will produce a horizontal rule:</p>\r
-\r
-<pre><code>* * *\r
-\r
-***\r
-\r
-*****\r
-\r
-- - -\r
-\r
----------------------------------------\r
-\r
-_ _ _\r
-</code></pre>\r
-\r
-<hr />\r
-\r
-<h2 id="span">Span Elements</h2>\r
-\r
-<h3 id="link">Links</h3>\r
-\r
-<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>\r
-\r
-<p>In both styles, the link text is delimited by [square brackets].</p>\r
-\r
-<p>To create an inline link, use a set of regular parentheses immediately\r
-after the link text's closing square bracket. Inside the parentheses,\r
-put the URL where you want the link to point, along with an <em>optional</em>\r
-title for the link, surrounded in quotes. For example:</p>\r
-\r
-<pre><code>This is [an example](http://example.com/ "Title") inline link.\r
-\r
-[This link](http://example.net/) has no title attribute.\r
-</code></pre>\r
-\r
-<p>Will produce:</p>\r
-\r
-<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;\r
-an example&lt;/a&gt; inline link.&lt;/p&gt;\r
-\r
-&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no\r
-title attribute.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>If you're referring to a local resource on the same server, you can\r
-use relative paths:</p>\r
-\r
-<pre><code>See my [About](/about/) page for details.\r
-</code></pre>\r
-\r
-<p>Reference-style links use a second set of square brackets, inside\r
-which you place a label of your choosing to identify the link:</p>\r
-\r
-<pre><code>This is [an example][id] reference-style link.\r
-</code></pre>\r
-\r
-<p>You can optionally use a space to separate the sets of brackets:</p>\r
-\r
-<pre><code>This is [an example] [id] reference-style link.\r
-</code></pre>\r
-\r
-<p>Then, anywhere in the document, you define your link label like this,\r
-on a line by itself:</p>\r
-\r
-<pre><code>[id]: http://example.com/  "Optional Title Here"\r
-</code></pre>\r
-\r
-<p>That is:</p>\r
-\r
-<ul>\r
-<li>Square brackets containing the link identifier (optionally\r
-indented from the left margin using up to three spaces);</li>\r
-<li>followed by a colon;</li>\r
-<li>followed by one or more spaces (or tabs);</li>\r
-<li>followed by the URL for the link;</li>\r
-<li>optionally followed by a title attribute for the link, enclosed\r
-in double or single quotes.</li>\r
-</ul>\r
-\r
-<p>The link URL may, optionally, be surrounded by angle brackets:</p>\r
-\r
-<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"\r
-</code></pre>\r
-\r
-<p>You can put the title attribute on the next line and use extra spaces\r
-or tabs for padding, which tends to look better with longer URLs:</p>\r
-\r
-<pre><code>[id]: http://example.com/longish/path/to/resource/here\r
-    "Optional Title Here"\r
-</code></pre>\r
-\r
-<p>Link definitions are only used for creating links during Markdown\r
-processing, and are stripped from your document in the HTML output.</p>\r
-\r
-<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>\r
-\r
-<pre><code>[link text][a]\r
-[link text][A]\r
-</code></pre>\r
-\r
-<p>are equivalent.</p>\r
-\r
-<p>The <em>implicit link name</em> shortcut allows you to omit the name of the\r
-link, in which case the link text itself is used as the name.\r
-Just use an empty set of square brackets -- e.g., to link the word\r
-"Google" to the google.com web site, you could simply write:</p>\r
-\r
-<pre><code>[Google][]\r
-</code></pre>\r
-\r
-<p>And then define the link:</p>\r
-\r
-<pre><code>[Google]: http://google.com/\r
-</code></pre>\r
-\r
-<p>Because link names may contain spaces, this shortcut even works for\r
-multiple words in the link text:</p>\r
-\r
-<pre><code>Visit [Daring Fireball][] for more information.\r
-</code></pre>\r
-\r
-<p>And then define the link:</p>\r
-\r
-<pre><code>[Daring Fireball]: http://daringfireball.net/\r
-</code></pre>\r
-\r
-<p>Link definitions can be placed anywhere in your Markdown document. I\r
-tend to put them immediately after each paragraph in which they're\r
-used, but if you want, you can put them all at the end of your\r
-document, sort of like footnotes.</p>\r
-\r
-<p>Here's an example of reference links in action:</p>\r
-\r
-<pre><code>I get 10 times more traffic from [Google] [1] than from\r
-[Yahoo] [2] or [MSN] [3].\r
-\r
-  [1]: http://google.com/        "Google"\r
-  [2]: http://search.yahoo.com/  "Yahoo Search"\r
-  [3]: http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-\r
-<p>Using the implicit link name shortcut, you could instead write:</p>\r
-\r
-<pre><code>I get 10 times more traffic from [Google][] than from\r
-[Yahoo][] or [MSN][].\r
-\r
-  [google]: http://google.com/        "Google"\r
-  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"\r
-  [msn]:    http://search.msn.com/    "MSN Search"\r
-</code></pre>\r
-\r
-<p>Both of the above examples will produce the following HTML output:</p>\r
-\r
-<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"\r
-title="Google"&gt;Google&lt;/a&gt; than from\r
-&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;\r
-or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>For comparison, here is the same paragraph written using\r
-Markdown's inline link style:</p>\r
-\r
-<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")\r
-than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or\r
-[MSN](http://search.msn.com/ "MSN Search").\r
-</code></pre>\r
-\r
-<p>The point of reference-style links is not that they're easier to\r
-write. The point is that with reference-style links, your document\r
-source is vastly more readable. Compare the above examples: using\r
-reference-style links, the paragraph itself is only 81 characters\r
-long; with inline-style links, it's 176 characters; and as raw HTML,\r
-it's 234 characters. In the raw HTML, there's more markup than there\r
-is text.</p>\r
-\r
-<p>With Markdown's reference-style links, a source document much more\r
-closely resembles the final output, as rendered in a browser. By\r
-allowing you to move the markup-related metadata out of the paragraph,\r
-you can add links without interrupting the narrative flow of your\r
-prose.</p>\r
-\r
-<h3 id="em">Emphasis</h3>\r
-\r
-<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of\r
-emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an\r
-HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML\r
-<code>&lt;strong&gt;</code> tag. E.g., this input:</p>\r
-\r
-<pre><code>*single asterisks*\r
-\r
-_single underscores_\r
-\r
-**double asterisks**\r
-\r
-__double underscores__\r
-</code></pre>\r
-\r
-<p>will produce:</p>\r
-\r
-<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;\r
-\r
-&lt;em&gt;single underscores&lt;/em&gt;\r
-\r
-&lt;strong&gt;double asterisks&lt;/strong&gt;\r
-\r
-&lt;strong&gt;double underscores&lt;/strong&gt;\r
-</code></pre>\r
-\r
-<p>You can use whichever style you prefer; the lone restriction is that\r
-the same character must be used to open and close an emphasis span.</p>\r
-\r
-<p>Emphasis can be used in the middle of a word:</p>\r
-\r
-<pre><code>un*fucking*believable\r
-</code></pre>\r
-\r
-<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a\r
-literal asterisk or underscore.</p>\r
-\r
-<p>To produce a literal asterisk or underscore at a position where it\r
-would otherwise be used as an emphasis delimiter, you can backslash\r
-escape it:</p>\r
-\r
-<pre><code>\*this text is surrounded by literal asterisks\*\r
-</code></pre>\r
-\r
-<h3 id="code">Code</h3>\r
-\r
-<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).\r
-Unlike a pre-formatted code block, a code span indicates code within a\r
-normal paragraph. For example:</p>\r
-\r
-<pre><code>Use the `printf()` function.\r
-</code></pre>\r
-\r
-<p>will produce:</p>\r
-\r
-<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>To include a literal backtick character within a code span, you can use\r
-multiple backticks as the opening and closing delimiters:</p>\r
-\r
-<pre><code>``There is a literal backtick (`) here.``\r
-</code></pre>\r
-\r
-<p>which will produce this:</p>\r
-\r
-<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>The backtick delimiters surrounding a code span may include spaces --\r
-one after the opening, one before the closing. This allows you to place\r
-literal backtick characters at the beginning or end of a code span:</p>\r
-\r
-<pre><code>A single backtick in a code span: `` ` ``\r
-\r
-A backtick-delimited string in a code span: `` `foo` ``\r
-</code></pre>\r
-\r
-<p>will produce:</p>\r
-\r
-<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;\r
-\r
-&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>With a code span, ampersands and angle brackets are encoded as HTML\r
-entities automatically, which makes it easy to include example HTML\r
-tags. Markdown will turn this:</p>\r
-\r
-<pre><code>Please don't use any `&lt;blink&gt;` tags.\r
-</code></pre>\r
-\r
-<p>into:</p>\r
-\r
-<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<p>You can write this:</p>\r
-\r
-<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.\r
-</code></pre>\r
-\r
-<p>to produce:</p>\r
-\r
-<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded\r
-equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;\r
-</code></pre>\r
-\r
-<h3 id="img">Images</h3>\r
-\r
-<p>Admittedly, it's fairly difficult to devise a "natural" syntax for\r
-placing images into a plain text document format.</p>\r
-\r
-<p>Markdown uses an image syntax that is intended to resemble the syntax\r
-for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>\r
-\r
-<p>Inline image syntax looks like this:</p>\r
-\r
-<pre><code>![Alt text](/path/to/img.jpg)\r
-\r
-![Alt text](/path/to/img.jpg "Optional title")\r
-</code></pre>\r
-\r
-<p>That is:</p>\r
-\r
-<ul>\r
-<li>An exclamation mark: <code>!</code>;</li>\r
-<li>followed by a set of square brackets, containing the <code>alt</code>\r
-attribute text for the image;</li>\r
-<li>followed by a set of parentheses, containing the URL or path to\r
-the image, and an optional <code>title</code> attribute enclosed in double\r
-or single quotes.</li>\r
-</ul>\r
-\r
-<p>Reference-style image syntax looks like this:</p>\r
-\r
-<pre><code>![Alt text][id]\r
-</code></pre>\r
-\r
-<p>Where "id" is the name of a defined image reference. Image references\r
-are defined using syntax identical to link references:</p>\r
-\r
-<pre><code>[id]: url/to/image  "Optional title attribute"\r
-</code></pre>\r
-\r
-<p>As of this writing, Markdown has no syntax for specifying the\r
-dimensions of an image; if this is important to you, you can simply\r
-use regular HTML <code>&lt;img&gt;</code> tags.</p>\r
-\r
-<hr />\r
-\r
-<h2 id="misc">Miscellaneous</h2>\r
-\r
-<h3 id="autolink">Automatic Links</h3>\r
-\r
-<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>\r
-\r
-<pre><code>&lt;http://example.com/&gt;\r
-</code></pre>\r
-\r
-<p>Markdown will turn this into:</p>\r
-\r
-<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;\r
-</code></pre>\r
-\r
-<p>Automatic links for email addresses work similarly, except that\r
-Markdown will also perform a bit of randomized decimal and hex\r
-entity-encoding to help obscure your address from address-harvesting\r
-spambots. For example, Markdown will turn this:</p>\r
-\r
-<pre><code>&lt;address@example.com&gt;\r
-</code></pre>\r
-\r
-<p>into something like this:</p>\r
-\r
-<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;\r
-&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;\r
-&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;\r
-&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;\r
-</code></pre>\r
-\r
-<p>which will render in a browser as a clickable link to "address@example.com".</p>\r
-\r
-<p>(This sort of entity-encoding trick will indeed fool many, if not\r
-most, address-harvesting bots, but it definitely won't fool all of\r
-them. It's better than nothing, but an address published in this way\r
-will probably eventually start receiving spam.)</p>\r
-\r
-<h3 id="backslash">Backslash Escapes</h3>\r
-\r
-<p>Markdown allows you to use backslash escapes to generate literal\r
-characters which would otherwise have special meaning in Markdown's\r
-formatting syntax. For example, if you wanted to surround a word with\r
-literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes\r
-before the asterisks, like this:</p>\r
-\r
-<pre><code>\*literal asterisks\*\r
-</code></pre>\r
-\r
-<p>Markdown provides backslash escapes for the following characters:</p>\r
-\r
-<pre><code>\   backslash\r
-`   backtick\r
-*   asterisk\r
-_   underscore\r
-{}  curly braces\r
-[]  square brackets\r
-()  parentheses\r
-#   hash mark\r
-+   plus sign\r
--   minus sign (hyphen)\r
-.   dot\r
-!   exclamation mark\r
-</code></pre>\r
+<h1>Markdown: Syntax</h1>
+
+<ul id="ProjectSubmenu">
+    <li><a href="/projects/markdown/" title="Markdown Project Page">Main</a></li>
+    <li><a href="/projects/markdown/basics" title="Markdown Basics">Basics</a></li>
+    <li><a class="selected" title="Markdown Syntax Documentation">Syntax</a></li>
+    <li><a href="/projects/markdown/license" title="Pricing and License Information">License</a></li>
+    <li><a href="/projects/markdown/dingus" title="Online Markdown Web Form">Dingus</a></li>
+</ul>
+
+<ul>
+<li><a href="#overview">Overview</a>
+<ul>
+<li><a href="#philosophy">Philosophy</a></li>
+<li><a href="#html">Inline HTML</a></li>
+<li><a href="#autoescape">Automatic Escaping for Special Characters</a></li>
+</ul></li>
+<li><a href="#block">Block Elements</a>
+<ul>
+<li><a href="#p">Paragraphs and Line Breaks</a></li>
+<li><a href="#header">Headers</a></li>
+<li><a href="#blockquote">Blockquotes</a></li>
+<li><a href="#list">Lists</a></li>
+<li><a href="#precode">Code Blocks</a></li>
+<li><a href="#hr">Horizontal Rules</a></li>
+</ul></li>
+<li><a href="#span">Span Elements</a>
+<ul>
+<li><a href="#link">Links</a></li>
+<li><a href="#em">Emphasis</a></li>
+<li><a href="#code">Code</a></li>
+<li><a href="#img">Images</a></li>
+</ul></li>
+<li><a href="#misc">Miscellaneous</a>
+<ul>
+<li><a href="#backslash">Backslash Escapes</a></li>
+<li><a href="#autolink">Automatic Links</a></li>
+</ul></li>
+</ul>
+
+<p><strong>Note:</strong> This document is itself written using Markdown; you
+can <a href="/projects/markdown/syntax.text">see the source for it by adding '.text' to the URL</a>.</p>
+
+<hr />
+
+<h2 id="overview">Overview</h2>
+
+<h3 id="philosophy">Philosophy</h3>
+
+<p>Markdown is intended to be as easy-to-read and easy-to-write as is feasible.</p>
+
+<p>Readability, however, is emphasized above all else. A Markdown-formatted
+document should be publishable as-is, as plain text, without looking
+like it's been marked up with tags or formatting instructions. While
+Markdown's syntax has been influenced by several existing text-to-HTML
+filters -- including <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a>, <a href="http://www.aaronsw.com/2002/atx/">atx</a>, <a href="http://textism.com/tools/textile/">Textile</a>, <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>,
+<a href="http://www.triptico.com/software/grutatxt.html">Grutatext</a>, and <a href="http://ettext.taint.org/doc/">EtText</a> -- the single biggest source of
+inspiration for Markdown's syntax is the format of plain text email.</p>
+
+<p>To this end, Markdown's syntax is comprised entirely of punctuation
+characters, which punctuation characters have been carefully chosen so
+as to look like what they mean. E.g., asterisks around a word actually
+look like *emphasis*. Markdown lists look like, well, lists. Even
+blockquotes look like quoted passages of text, assuming you've ever
+used email.</p>
+
+<h3 id="html">Inline HTML</h3>
+
+<p>Markdown's syntax is intended for one purpose: to be used as a
+format for <em>writing</em> for the web.</p>
+
+<p>Markdown is not a replacement for HTML, or even close to it. Its
+syntax is very small, corresponding only to a very small subset of
+HTML tags. The idea is <em>not</em> to create a syntax that makes it easier
+to insert HTML tags. In my opinion, HTML tags are already easy to
+insert. The idea for Markdown is to make it easy to read, write, and
+edit prose. HTML is a <em>publishing</em> format; Markdown is a <em>writing</em>
+format. Thus, Markdown's formatting syntax only addresses issues that
+can be conveyed in plain text.</p>
+
+<p>For any markup that is not covered by Markdown's syntax, you simply
+use HTML itself. There's no need to preface it or delimit it to
+indicate that you're switching from Markdown to HTML; you just use
+the tags.</p>
+
+<p>The only restrictions are that block-level HTML elements -- e.g. <code>&lt;div&gt;</code>,
+<code>&lt;table&gt;</code>, <code>&lt;pre&gt;</code>, <code>&lt;p&gt;</code>, etc. -- must be separated from surrounding
+content by blank lines, and the start and end tags of the block should
+not be indented with tabs or spaces. Markdown is smart enough not
+to add extra (unwanted) <code>&lt;p&gt;</code> tags around HTML block-level tags.</p>
+
+<p>For example, to add an HTML table to a Markdown article:</p>
+
+<pre><code>This is a regular paragraph.
+
+&lt;table&gt;
+    &lt;tr&gt;
+        &lt;td&gt;Foo&lt;/td&gt;
+    &lt;/tr&gt;
+&lt;/table&gt;
+
+This is another regular paragraph.
+</code></pre>
+
+<p>Note that Markdown formatting syntax is not processed within block-level
+HTML tags. E.g., you can't use Markdown-style <code>*emphasis*</code> inside an
+HTML block.</p>
+
+<p>Span-level HTML tags -- e.g. <code>&lt;span&gt;</code>, <code>&lt;cite&gt;</code>, or <code>&lt;del&gt;</code> -- can be
+used anywhere in a Markdown paragraph, list item, or header. If you
+want, you can even use HTML tags instead of Markdown formatting; e.g. if
+you'd prefer to use HTML <code>&lt;a&gt;</code> or <code>&lt;img&gt;</code> tags instead of Markdown's
+link or image syntax, go right ahead.</p>
+
+<p>Unlike block-level HTML tags, Markdown syntax <em>is</em> processed within
+span-level tags.</p>
+
+<h3 id="autoescape">Automatic Escaping for Special Characters</h3>
+
+<p>In HTML, there are two characters that demand special treatment: <code>&lt;</code>
+and <code>&amp;</code>. Left angle brackets are used to start tags; ampersands are
+used to denote HTML entities. If you want to use them as literal
+characters, you must escape them as entities, e.g. <code>&amp;lt;</code>, and
+<code>&amp;amp;</code>.</p>
+
+<p>Ampersands in particular are bedeviling for web writers. If you want to
+write about 'AT&amp;T', you need to write '<code>AT&amp;amp;T</code>'. You even need to
+escape ampersands within URLs. Thus, if you want to link to:</p>
+
+<pre><code>http://images.google.com/images?num=30&amp;q=larry+bird
+</code></pre>
+
+<p>you need to encode the URL as:</p>
+
+<pre><code>http://images.google.com/images?num=30&amp;amp;q=larry+bird
+</code></pre>
+
+<p>in your anchor tag <code>href</code> attribute. Needless to say, this is easy to
+forget, and is probably the single most common source of HTML validation
+errors in otherwise well-marked-up web sites.</p>
+
+<p>Markdown allows you to use these characters naturally, taking care of
+all the necessary escaping for you. If you use an ampersand as part of
+an HTML entity, it remains unchanged; otherwise it will be translated
+into <code>&amp;amp;</code>.</p>
+
+<p>So, if you want to include a copyright symbol in your article, you can write:</p>
+
+<pre><code>&amp;copy;
+</code></pre>
+
+<p>and Markdown will leave it alone. But if you write:</p>
+
+<pre><code>AT&amp;T
+</code></pre>
+
+<p>Markdown will translate it to:</p>
+
+<pre><code>AT&amp;amp;T
+</code></pre>
+
+<p>Similarly, because Markdown supports <a href="#html">inline HTML</a>, if you use
+angle brackets as delimiters for HTML tags, Markdown will treat them as
+such. But if you write:</p>
+
+<pre><code>4 &lt; 5
+</code></pre>
+
+<p>Markdown will translate it to:</p>
+
+<pre><code>4 &amp;lt; 5
+</code></pre>
+
+<p>However, inside Markdown code spans and blocks, angle brackets and
+ampersands are <em>always</em> encoded automatically. This makes it easy to use
+Markdown to write about HTML code. (As opposed to raw HTML, which is a
+terrible format for writing about HTML syntax, because every single <code>&lt;</code>
+and <code>&amp;</code> in your example code needs to be escaped.)</p>
+
+<hr />
+
+<h2 id="block">Block Elements</h2>
+
+<h3 id="p">Paragraphs and Line Breaks</h3>
+
+<p>A paragraph is simply one or more consecutive lines of text, separated
+by one or more blank lines. (A blank line is any line that looks like a
+blank line -- a line containing nothing but spaces or tabs is considered
+blank.) Normal paragraphs should not be intended with spaces or tabs.</p>
+
+<p>The implication of the "one or more consecutive lines of text" rule is
+that Markdown supports "hard-wrapped" text paragraphs. This differs
+significantly from most other text-to-HTML formatters (including Movable
+Type's "Convert Line Breaks" option) which translate every line break
+character in a paragraph into a <code>&lt;br /&gt;</code> tag.</p>
+
+<p>When you <em>do</em> want to insert a <code>&lt;br /&gt;</code> break tag using Markdown, you
+end a line with two or more spaces, then type return.</p>
+
+<p>Yes, this takes a tad more effort to create a <code>&lt;br /&gt;</code>, but a simplistic
+"every line break is a <code>&lt;br /&gt;</code>" rule wouldn't work for Markdown.
+Markdown's email-style <a href="#blockquote">blockquoting</a> and multi-paragraph <a href="#list">list items</a>
+work best -- and look better -- when you format them with hard breaks.</p>
+
+<h3 id="header">Headers</h3>
+
+<p>Markdown supports two styles of headers, <a href="http://docutils.sourceforge.net/mirror/setext.html">Setext</a> and <a href="http://www.aaronsw.com/2002/atx/">atx</a>.</p>
+
+<p>Setext-style headers are "underlined" using equal signs (for first-level
+headers) and dashes (for second-level headers). For example:</p>
+
+<pre><code>This is an H1
+=============
+
+This is an H2
+-------------
+</code></pre>
+
+<p>Any number of underlining <code>=</code>'s or <code>-</code>'s will work.</p>
+
+<p>Atx-style headers use 1-6 hash characters at the start of the line,
+corresponding to header levels 1-6. For example:</p>
+
+<pre><code># This is an H1
+
+## This is an H2
+
+###### This is an H6
+</code></pre>
+
+<p>Optionally, you may "close" atx-style headers. This is purely
+cosmetic -- you can use this if you think it looks better. The
+closing hashes don't even need to match the number of hashes
+used to open the header. (The number of opening hashes
+determines the header level.) :</p>
+
+<pre><code># This is an H1 #
+
+## This is an H2 ##
+
+### This is an H3 ######
+</code></pre>
+
+<h3 id="blockquote">Blockquotes</h3>
+
+<p>Markdown uses email-style <code>&gt;</code> characters for blockquoting. If you're
+familiar with quoting passages of text in an email message, then you
+know how to create a blockquote in Markdown. It looks best if you hard
+wrap the text and put a <code>&gt;</code> before every line:</p>
+
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+&gt; consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+&gt; Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+&gt; 
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+&gt; id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>Markdown allows you to be lazy and only put the <code>&gt;</code> before the first
+line of a hard-wrapped paragraph:</p>
+
+<pre><code>&gt; This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
+Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
+
+&gt; Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
+id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by
+adding additional levels of <code>&gt;</code>:</p>
+
+<pre><code>&gt; This is the first level of quoting.
+&gt;
+&gt; &gt; This is nested blockquote.
+&gt;
+&gt; Back to the first level.
+</code></pre>
+
+<p>Blockquotes can contain other Markdown elements, including headers, lists,
+and code blocks:</p>
+
+<pre><code>&gt; ## This is a header.
+&gt; 
+&gt; 1.   This is the first list item.
+&gt; 2.   This is the second list item.
+&gt; 
+&gt; Here's some example code:
+&gt; 
+&gt;     return shell_exec("echo $input | $markdown_script");
+</code></pre>
+
+<p>Any decent text editor should make email-style quoting easy. For
+example, with BBEdit, you can make a selection and choose Increase
+Quote Level from the Text menu.</p>
+
+<h3 id="list">Lists</h3>
+
+<p>Markdown supports ordered (numbered) and unordered (bulleted) lists.</p>
+
+<p>Unordered lists use asterisks, pluses, and hyphens -- interchangably
+-- as list markers:</p>
+
+<pre><code>*   Red
+*   Green
+*   Blue
+</code></pre>
+
+<p>is equivalent to:</p>
+
+<pre><code>+   Red
++   Green
++   Blue
+</code></pre>
+
+<p>and:</p>
+
+<pre><code>-   Red
+-   Green
+-   Blue
+</code></pre>
+
+<p>Ordered lists use numbers followed by periods:</p>
+
+<pre><code>1.  Bird
+2.  McHale
+3.  Parish
+</code></pre>
+
+<p>It's important to note that the actual numbers you use to mark the
+list have no effect on the HTML output Markdown produces. The HTML
+Markdown produces from the above list is:</p>
+
+<pre><code>&lt;ol&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;McHale&lt;/li&gt;
+&lt;li&gt;Parish&lt;/li&gt;
+&lt;/ol&gt;
+</code></pre>
+
+<p>If you instead wrote the list in Markdown like this:</p>
+
+<pre><code>1.  Bird
+1.  McHale
+1.  Parish
+</code></pre>
+
+<p>or even:</p>
+
+<pre><code>3. Bird
+1. McHale
+8. Parish
+</code></pre>
+
+<p>you'd get the exact same HTML output. The point is, if you want to,
+you can use ordinal numbers in your ordered Markdown lists, so that
+the numbers in your source match the numbers in your published HTML.
+But if you want to be lazy, you don't have to.</p>
+
+<p>If you do use lazy list numbering, however, you should still start the
+list with the number 1. At some point in the future, Markdown may support
+starting ordered lists at an arbitrary number.</p>
+
+<p>List markers typically start at the left margin, but may be indented by
+up to three spaces. List markers must be followed by one or more spaces
+or a tab.</p>
+
+<p>To make lists look nice, you can wrap items with hanging indents:</p>
+
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+    viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+    Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>But if you want to be lazy, you don't have to:</p>
+
+<pre><code>*   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
+viverra nec, fringilla in, laoreet vitae, risus.
+*   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
+Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>If list items are separated by blank lines, Markdown will wrap the
+items in <code>&lt;p&gt;</code> tags in the HTML output. For example, this input:</p>
+
+<pre><code>*   Bird
+*   Magic
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code>&lt;ul&gt;
+&lt;li&gt;Bird&lt;/li&gt;
+&lt;li&gt;Magic&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+
+<p>But this:</p>
+
+<pre><code>*   Bird
+
+*   Magic
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code>&lt;ul&gt;
+&lt;li&gt;&lt;p&gt;Bird&lt;/p&gt;&lt;/li&gt;
+&lt;li&gt;&lt;p&gt;Magic&lt;/p&gt;&lt;/li&gt;
+&lt;/ul&gt;
+</code></pre>
+
+<p>List items may consist of multiple paragraphs. Each subsequent
+paragraph in a list item must be intended by either 4 spaces
+or one tab:</p>
+
+<pre><code>1.  This is a list item with two paragraphs. Lorem ipsum dolor
+    sit amet, consectetuer adipiscing elit. Aliquam hendrerit
+    mi posuere lectus.
+
+    Vestibulum enim wisi, viverra nec, fringilla in, laoreet
+    vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
+    sit amet velit.
+
+2.  Suspendisse id sem consectetuer libero luctus adipiscing.
+</code></pre>
+
+<p>It looks nice if you indent every line of the subsequent
+paragraphs, but here again, Markdown will allow you to be
+lazy:</p>
+
+<pre><code>*   This is a list item with two paragraphs.
+
+    This is the second paragraph in the list item. You're
+only required to indent the first line. Lorem ipsum dolor
+sit amet, consectetuer adipiscing elit.
+
+*   Another item in the same list.
+</code></pre>
+
+<p>To put a blockquote within a list item, the blockquote's <code>&gt;</code>
+delimiters need to be indented:</p>
+
+<pre><code>*   A list item with a blockquote:
+
+    &gt; This is a blockquote
+    &gt; inside a list item.
+</code></pre>
+
+<p>To put a code block within a list item, the code block needs
+to be indented <em>twice</em> -- 8 spaces or two tabs:</p>
+
+<pre><code>*   A list item with a code block:
+
+        &lt;code goes here&gt;
+</code></pre>
+
+<p>It's worth noting that it's possible to trigger an ordered list by
+accident, by writing something like this:</p>
+
+<pre><code>1986. What a great season.
+</code></pre>
+
+<p>In other words, a <em>number-period-space</em> sequence at the beginning of a
+line. To avoid this, you can backslash-escape the period:</p>
+
+<pre><code>1986\. What a great season.
+</code></pre>
+
+<h3 id="precode">Code Blocks</h3>
+
+<p>Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both <code>&lt;pre&gt;</code> and <code>&lt;code&gt;</code> tags.</p>
+
+<p>To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab. For example, given this input:</p>
+
+<pre><code>This is a normal paragraph:
+
+    This is a code block.
+</code></pre>
+
+<p>Markdown will generate:</p>
+
+<pre><code>&lt;p&gt;This is a normal paragraph:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;This is a code block.
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+
+<p>One level of indentation -- 4 spaces or 1 tab -- is removed from each
+line of the code block. For example, this:</p>
+
+<pre><code>Here is an example of AppleScript:
+
+    tell application "Foo"
+        beep
+    end tell
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code>&lt;p&gt;Here is an example of AppleScript:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;tell application "Foo"
+    beep
+end tell
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+
+<p>A code block continues until it reaches a line that is not indented
+(or the end of the article).</p>
+
+<p>Within a code block, ampersands (<code>&amp;</code>) and angle brackets (<code>&lt;</code> and <code>&gt;</code>)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:</p>
+
+<pre><code>    &lt;div class="footer"&gt;
+        &amp;copy; 2004 Foo Corporation
+    &lt;/div&gt;
+</code></pre>
+
+<p>will turn into:</p>
+
+<pre><code>&lt;pre&gt;&lt;code&gt;&amp;lt;div class="footer"&amp;gt;
+    &amp;amp;copy; 2004 Foo Corporation
+&amp;lt;/div&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+</code></pre>
+
+<p>Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.</p>
+
+<h3 id="hr">Horizontal Rules</h3>
+
+<p>You can produce a horizontal rule tag (<code>&lt;hr /&gt;</code>) by placing three or
+more hyphens, asterisks, or underscores on a line by themselves. If you
+wish, you may use spaces between the hyphens or asterisks. Each of the
+following lines will produce a horizontal rule:</p>
+
+<pre><code>* * *
+
+***
+
+*****
+
+- - -
+
+---------------------------------------
+
+_ _ _
+</code></pre>
+
+<hr />
+
+<h2 id="span">Span Elements</h2>
+
+<h3 id="link">Links</h3>
+
+<p>Markdown supports two style of links: <em>inline</em> and <em>reference</em>.</p>
+
+<p>In both styles, the link text is delimited by [square brackets].</p>
+
+<p>To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an <em>optional</em>
+title for the link, surrounded in quotes. For example:</p>
+
+<pre><code>This is [an example](http://example.com/ "Title") inline link.
+
+[This link](http://example.net/) has no title attribute.
+</code></pre>
+
+<p>Will produce:</p>
+
+<pre><code>&lt;p&gt;This is &lt;a href="http://example.com/" title="Title"&gt;
+an example&lt;/a&gt; inline link.&lt;/p&gt;
+
+&lt;p&gt;&lt;a href="http://example.net/"&gt;This link&lt;/a&gt; has no
+title attribute.&lt;/p&gt;
+</code></pre>
+
+<p>If you're referring to a local resource on the same server, you can
+use relative paths:</p>
+
+<pre><code>See my [About](/about/) page for details.
+</code></pre>
+
+<p>Reference-style links use a second set of square brackets, inside
+which you place a label of your choosing to identify the link:</p>
+
+<pre><code>This is [an example][id] reference-style link.
+</code></pre>
+
+<p>You can optionally use a space to separate the sets of brackets:</p>
+
+<pre><code>This is [an example] [id] reference-style link.
+</code></pre>
+
+<p>Then, anywhere in the document, you define your link label like this,
+on a line by itself:</p>
+
+<pre><code>[id]: http://example.com/  "Optional Title Here"
+</code></pre>
+
+<p>That is:</p>
+
+<ul>
+<li>Square brackets containing the link identifier (optionally
+indented from the left margin using up to three spaces);</li>
+<li>followed by a colon;</li>
+<li>followed by one or more spaces (or tabs);</li>
+<li>followed by the URL for the link;</li>
+<li>optionally followed by a title attribute for the link, enclosed
+in double or single quotes.</li>
+</ul>
+
+<p>The link URL may, optionally, be surrounded by angle brackets:</p>
+
+<pre><code>[id]: &lt;http://example.com/&gt;  "Optional Title Here"
+</code></pre>
+
+<p>You can put the title attribute on the next line and use extra spaces
+or tabs for padding, which tends to look better with longer URLs:</p>
+
+<pre><code>[id]: http://example.com/longish/path/to/resource/here
+    "Optional Title Here"
+</code></pre>
+
+<p>Link definitions are only used for creating links during Markdown
+processing, and are stripped from your document in the HTML output.</p>
+
+<p>Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are <em>not</em> case sensitive. E.g. these two links:</p>
+
+<pre><code>[link text][a]
+[link text][A]
+</code></pre>
+
+<p>are equivalent.</p>
+
+<p>The <em>implicit link name</em> shortcut allows you to omit the name of the
+link, in which case the link text itself is used as the name.
+Just use an empty set of square brackets -- e.g., to link the word
+"Google" to the google.com web site, you could simply write:</p>
+
+<pre><code>[Google][]
+</code></pre>
+
+<p>And then define the link:</p>
+
+<pre><code>[Google]: http://google.com/
+</code></pre>
+
+<p>Because link names may contain spaces, this shortcut even works for
+multiple words in the link text:</p>
+
+<pre><code>Visit [Daring Fireball][] for more information.
+</code></pre>
+
+<p>And then define the link:</p>
+
+<pre><code>[Daring Fireball]: http://daringfireball.net/
+</code></pre>
+
+<p>Link definitions can be placed anywhere in your Markdown document. I
+tend to put them immediately after each paragraph in which they're
+used, but if you want, you can put them all at the end of your
+document, sort of like footnotes.</p>
+
+<p>Here's an example of reference links in action:</p>
+
+<pre><code>I get 10 times more traffic from [Google] [1] than from
+[Yahoo] [2] or [MSN] [3].
+
+  [1]: http://google.com/        "Google"
+  [2]: http://search.yahoo.com/  "Yahoo Search"
+  [3]: http://search.msn.com/    "MSN Search"
+</code></pre>
+
+<p>Using the implicit link name shortcut, you could instead write:</p>
+
+<pre><code>I get 10 times more traffic from [Google][] than from
+[Yahoo][] or [MSN][].
+
+  [google]: http://google.com/        "Google"
+  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
+  [msn]:    http://search.msn.com/    "MSN Search"
+</code></pre>
+
+<p>Both of the above examples will produce the following HTML output:</p>
+
+<pre><code>&lt;p&gt;I get 10 times more traffic from &lt;a href="http://google.com/"
+title="Google"&gt;Google&lt;/a&gt; than from
+&lt;a href="http://search.yahoo.com/" title="Yahoo Search"&gt;Yahoo&lt;/a&gt;
+or &lt;a href="http://search.msn.com/" title="MSN Search"&gt;MSN&lt;/a&gt;.&lt;/p&gt;
+</code></pre>
+
+<p>For comparison, here is the same paragraph written using
+Markdown's inline link style:</p>
+
+<pre><code>I get 10 times more traffic from [Google](http://google.com/ "Google")
+than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
+[MSN](http://search.msn.com/ "MSN Search").
+</code></pre>
+
+<p>The point of reference-style links is not that they're easier to
+write. The point is that with reference-style links, your document
+source is vastly more readable. Compare the above examples: using
+reference-style links, the paragraph itself is only 81 characters
+long; with inline-style links, it's 176 characters; and as raw HTML,
+it's 234 characters. In the raw HTML, there's more markup than there
+is text.</p>
+
+<p>With Markdown's reference-style links, a source document much more
+closely resembles the final output, as rendered in a browser. By
+allowing you to move the markup-related metadata out of the paragraph,
+you can add links without interrupting the narrative flow of your
+prose.</p>
+
+<h3 id="em">Emphasis</h3>
+
+<p>Markdown treats asterisks (<code>*</code>) and underscores (<code>_</code>) as indicators of
+emphasis. Text wrapped with one <code>*</code> or <code>_</code> will be wrapped with an
+HTML <code>&lt;em&gt;</code> tag; double <code>*</code>'s or <code>_</code>'s will be wrapped with an HTML
+<code>&lt;strong&gt;</code> tag. E.g., this input:</p>
+
+<pre><code>*single asterisks*
+
+_single underscores_
+
+**double asterisks**
+
+__double underscores__
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code>&lt;em&gt;single asterisks&lt;/em&gt;
+
+&lt;em&gt;single underscores&lt;/em&gt;
+
+&lt;strong&gt;double asterisks&lt;/strong&gt;
+
+&lt;strong&gt;double underscores&lt;/strong&gt;
+</code></pre>
+
+<p>You can use whichever style you prefer; the lone restriction is that
+the same character must be used to open and close an emphasis span.</p>
+
+<p>Emphasis can be used in the middle of a word:</p>
+
+<pre><code>un*fucking*believable
+</code></pre>
+
+<p>But if you surround an <code>*</code> or <code>_</code> with spaces, it'll be treated as a
+literal asterisk or underscore.</p>
+
+<p>To produce a literal asterisk or underscore at a position where it
+would otherwise be used as an emphasis delimiter, you can backslash
+escape it:</p>
+
+<pre><code>\*this text is surrounded by literal asterisks\*
+</code></pre>
+
+<h3 id="code">Code</h3>
+
+<p>To indicate a span of code, wrap it with backtick quotes (<code>`</code>).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:</p>
+
+<pre><code>Use the `printf()` function.
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code>&lt;p&gt;Use the &lt;code&gt;printf()&lt;/code&gt; function.&lt;/p&gt;
+</code></pre>
+
+<p>To include a literal backtick character within a code span, you can use
+multiple backticks as the opening and closing delimiters:</p>
+
+<pre><code>``There is a literal backtick (`) here.``
+</code></pre>
+
+<p>which will produce this:</p>
+
+<pre><code>&lt;p&gt;&lt;code&gt;There is a literal backtick (`) here.&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+
+<p>The backtick delimiters surrounding a code span may include spaces --
+one after the opening, one before the closing. This allows you to place
+literal backtick characters at the beginning or end of a code span:</p>
+
+<pre><code>A single backtick in a code span: `` ` ``
+
+A backtick-delimited string in a code span: `` `foo` ``
+</code></pre>
+
+<p>will produce:</p>
+
+<pre><code>&lt;p&gt;A single backtick in a code span: &lt;code&gt;`&lt;/code&gt;&lt;/p&gt;
+
+&lt;p&gt;A backtick-delimited string in a code span: &lt;code&gt;`foo`&lt;/code&gt;&lt;/p&gt;
+</code></pre>
+
+<p>With a code span, ampersands and angle brackets are encoded as HTML
+entities automatically, which makes it easy to include example HTML
+tags. Markdown will turn this:</p>
+
+<pre><code>Please don't use any `&lt;blink&gt;` tags.
+</code></pre>
+
+<p>into:</p>
+
+<pre><code>&lt;p&gt;Please don't use any &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;
+</code></pre>
+
+<p>You can write this:</p>
+
+<pre><code>`&amp;#8212;` is the decimal-encoded equivalent of `&amp;mdash;`.
+</code></pre>
+
+<p>to produce:</p>
+
+<pre><code>&lt;p&gt;&lt;code&gt;&amp;amp;#8212;&lt;/code&gt; is the decimal-encoded
+equivalent of &lt;code&gt;&amp;amp;mdash;&lt;/code&gt;.&lt;/p&gt;
+</code></pre>
+
+<h3 id="img">Images</h3>
+
+<p>Admittedly, it's fairly difficult to devise a "natural" syntax for
+placing images into a plain text document format.</p>
+
+<p>Markdown uses an image syntax that is intended to resemble the syntax
+for links, allowing for two styles: <em>inline</em> and <em>reference</em>.</p>
+
+<p>Inline image syntax looks like this:</p>
+
+<pre><code>![Alt text](/path/to/img.jpg)
+
+![Alt text](/path/to/img.jpg "Optional title")
+</code></pre>
+
+<p>That is:</p>
+
+<ul>
+<li>An exclamation mark: <code>!</code>;</li>
+<li>followed by a set of square brackets, containing the <code>alt</code>
+attribute text for the image;</li>
+<li>followed by a set of parentheses, containing the URL or path to
+the image, and an optional <code>title</code> attribute enclosed in double
+or single quotes.</li>
+</ul>
+
+<p>Reference-style image syntax looks like this:</p>
+
+<pre><code>![Alt text][id]
+</code></pre>
+
+<p>Where "id" is the name of a defined image reference. Image references
+are defined using syntax identical to link references:</p>
+
+<pre><code>[id]: url/to/image  "Optional title attribute"
+</code></pre>
+
+<p>As of this writing, Markdown has no syntax for specifying the
+dimensions of an image; if this is important to you, you can simply
+use regular HTML <code>&lt;img&gt;</code> tags.</p>
+
+<hr />
+
+<h2 id="misc">Miscellaneous</h2>
+
+<h3 id="autolink">Automatic Links</h3>
+
+<p>Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:</p>
+
+<pre><code>&lt;http://example.com/&gt;
+</code></pre>
+
+<p>Markdown will turn this into:</p>
+
+<pre><code>&lt;a href="http://example.com/"&gt;http://example.com/&lt;/a&gt;
+</code></pre>
+
+<p>Automatic links for email addresses work similarly, except that
+Markdown will also perform a bit of randomized decimal and hex
+entity-encoding to help obscure your address from address-harvesting
+spambots. For example, Markdown will turn this:</p>
+
+<pre><code>&lt;address@example.com&gt;
+</code></pre>
+
+<p>into something like this:</p>
+
+<pre><code>&lt;a href="&amp;#x6D;&amp;#x61;i&amp;#x6C;&amp;#x74;&amp;#x6F;:&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;
+&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;
+&amp;#109;"&gt;&amp;#x61;&amp;#x64;&amp;#x64;&amp;#x72;&amp;#x65;&amp;#115;&amp;#115;&amp;#64;&amp;#101;&amp;#120;&amp;#x61;
+&amp;#109;&amp;#x70;&amp;#x6C;e&amp;#x2E;&amp;#99;&amp;#111;&amp;#109;&lt;/a&gt;
+</code></pre>
+
+<p>which will render in a browser as a clickable link to "address@example.com".</p>
+
+<p>(This sort of entity-encoding trick will indeed fool many, if not
+most, address-harvesting bots, but it definitely won't fool all of
+them. It's better than nothing, but an address published in this way
+will probably eventually start receiving spam.)</p>
+
+<h3 id="backslash">Backslash Escapes</h3>
+
+<p>Markdown allows you to use backslash escapes to generate literal
+characters which would otherwise have special meaning in Markdown's
+formatting syntax. For example, if you wanted to surround a word with
+literal asterisks (instead of an HTML <code>&lt;em&gt;</code> tag), you can backslashes
+before the asterisks, like this:</p>
+
+<pre><code>\*literal asterisks\*
+</code></pre>
+
+<p>Markdown provides backslash escapes for the following characters:</p>
+
+<pre><code>\   backslash
+`   backtick
+*   asterisk
+_   underscore
+{}  curly braces
+[]  square brackets
+()  parentheses
+#   hash mark
++   plus sign
+-   minus sign (hyphen)
+.   dot
+!   exclamation mark
+</code></pre>
index 2a36d9c3dcbc7f5e2f0323d8276060499732dc13..d8ec7f8e03f716248ec0a9d747d6c68ea6f7ce73 100644 (file)
@@ -1,9 +1,9 @@
-<blockquote>\r
-  <p>foo</p>\r
-  \r
-  <blockquote>\r
-    <p>bar</p>\r
-  </blockquote>\r
-  \r
-  <p>foo</p>\r
-</blockquote>\r
+<blockquote>
+  <p>foo</p>
+  
+  <blockquote>
+    <p>bar</p>
+  </blockquote>
+  
+  <p>foo</p>
+</blockquote>
index 9c89d1334629aba4d027def64809f4ac7f4d44b3..ba71eab39516be33fcb99b31cae319210f4f5ab1 100644 (file)
-<h2>Unordered</h2>\r
-\r
-<p>Asterisks tight:</p>\r
-\r
-<ul>\r
-<li>asterisk 1</li>\r
-<li>asterisk 2</li>\r
-<li>asterisk 3</li>\r
-</ul>\r
-\r
-<p>Asterisks loose:</p>\r
-\r
-<ul>\r
-<li><p>asterisk 1</p></li>\r
-<li><p>asterisk 2</p></li>\r
-<li><p>asterisk 3</p></li>\r
-</ul>\r
-\r
-<hr />\r
-\r
-<p>Pluses tight:</p>\r
-\r
-<ul>\r
-<li>Plus 1</li>\r
-<li>Plus 2</li>\r
-<li>Plus 3</li>\r
-</ul>\r
-\r
-<p>Pluses loose:</p>\r
-\r
-<ul>\r
-<li><p>Plus 1</p></li>\r
-<li><p>Plus 2</p></li>\r
-<li><p>Plus 3</p></li>\r
-</ul>\r
-\r
-<hr />\r
-\r
-<p>Minuses tight:</p>\r
-\r
-<ul>\r
-<li>Minus 1</li>\r
-<li>Minus 2</li>\r
-<li>Minus 3</li>\r
-</ul>\r
-\r
-<p>Minuses loose:</p>\r
-\r
-<ul>\r
-<li><p>Minus 1</p></li>\r
-<li><p>Minus 2</p></li>\r
-<li><p>Minus 3</p></li>\r
-</ul>\r
-\r
-<h2>Ordered</h2>\r
-\r
-<p>Tight:</p>\r
-\r
-<ol>\r
-<li>First</li>\r
-<li>Second</li>\r
-<li>Third</li>\r
-</ol>\r
-\r
-<p>and:</p>\r
-\r
-<ol>\r
-<li>One</li>\r
-<li>Two</li>\r
-<li>Three</li>\r
-</ol>\r
-\r
-<p>Loose using tabs:</p>\r
-\r
-<ol>\r
-<li><p>First</p></li>\r
-<li><p>Second</p></li>\r
-<li><p>Third</p></li>\r
-</ol>\r
-\r
-<p>and using spaces:</p>\r
-\r
-<ol>\r
-<li><p>One</p></li>\r
-<li><p>Two</p></li>\r
-<li><p>Three</p></li>\r
-</ol>\r
-\r
-<p>Multiple paragraphs:</p>\r
-\r
-<ol>\r
-<li><p>Item 1, graf one.</p>\r
-\r
-<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's\r
-back.</p></li>\r
-<li><p>Item 2.</p></li>\r
-<li><p>Item 3.</p></li>\r
-</ol>\r
-\r
-<h2>Nested</h2>\r
-\r
-<ul>\r
-<li>Tab\r
-<ul>\r
-<li>Tab\r
-<ul>\r
-<li>Tab</li>\r
-</ul></li>\r
-</ul></li>\r
-</ul>\r
-\r
-<p>Here's another:</p>\r
-\r
-<ol>\r
-<li>First</li>\r
-<li>Second:\r
-<ul>\r
-<li>Fee</li>\r
-<li>Fie</li>\r
-<li>Foe</li>\r
-</ul></li>\r
-<li>Third</li>\r
-</ol>\r
-\r
-<p>Same thing but with paragraphs:</p>\r
-\r
-<ol>\r
-<li><p>First</p></li>\r
-<li><p>Second:</p>\r
-\r
-<ul>\r
-<li>Fee</li>\r
-<li>Fie</li>\r
-<li>Foe</li>\r
-</ul></li>\r
-<li><p>Third</p></li>\r
-</ol>\r
-\r
-\r
-<p>This was an error in Markdown 1.0.1:</p>\r
-\r
-<ul>\r
-<li><p>this</p>\r
-\r
-<ul><li>sub</li></ul>\r
-\r
-<p>that</p></li>\r
-</ul>\r
+<h2>Unordered</h2>
+
+<p>Asterisks tight:</p>
+
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
+
+<p>Asterisks loose:</p>
+
+<ul>
+<li><p>asterisk 1</p></li>
+<li><p>asterisk 2</p></li>
+<li><p>asterisk 3</p></li>
+</ul>
+
+<hr />
+
+<p>Pluses tight:</p>
+
+<ul>
+<li>Plus 1</li>
+<li>Plus 2</li>
+<li>Plus 3</li>
+</ul>
+
+<p>Pluses loose:</p>
+
+<ul>
+<li><p>Plus 1</p></li>
+<li><p>Plus 2</p></li>
+<li><p>Plus 3</p></li>
+</ul>
+
+<hr />
+
+<p>Minuses tight:</p>
+
+<ul>
+<li>Minus 1</li>
+<li>Minus 2</li>
+<li>Minus 3</li>
+</ul>
+
+<p>Minuses loose:</p>
+
+<ul>
+<li><p>Minus 1</p></li>
+<li><p>Minus 2</p></li>
+<li><p>Minus 3</p></li>
+</ul>
+
+<h2>Ordered</h2>
+
+<p>Tight:</p>
+
+<ol>
+<li>First</li>
+<li>Second</li>
+<li>Third</li>
+</ol>
+
+<p>and:</p>
+
+<ol>
+<li>One</li>
+<li>Two</li>
+<li>Three</li>
+</ol>
+
+<p>Loose using tabs:</p>
+
+<ol>
+<li><p>First</p></li>
+<li><p>Second</p></li>
+<li><p>Third</p></li>
+</ol>
+
+<p>and using spaces:</p>
+
+<ol>
+<li><p>One</p></li>
+<li><p>Two</p></li>
+<li><p>Three</p></li>
+</ol>
+
+<p>Multiple paragraphs:</p>
+
+<ol>
+<li><p>Item 1, graf one.</p>
+
+<p>Item 2. graf two. The quick brown fox jumped over the lazy dog's
+back.</p></li>
+<li><p>Item 2.</p></li>
+<li><p>Item 3.</p></li>
+</ol>
+
+<h2>Nested</h2>
+
+<ul>
+<li>Tab
+<ul>
+<li>Tab
+<ul>
+<li>Tab</li>
+</ul></li>
+</ul></li>
+</ul>
+
+<p>Here's another:</p>
+
+<ol>
+<li>First</li>
+<li>Second:
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul></li>
+<li>Third</li>
+</ol>
+
+<p>Same thing but with paragraphs:</p>
+
+<ol>
+<li><p>First</p></li>
+<li><p>Second:</p>
+
+<ul>
+<li>Fee</li>
+<li>Fie</li>
+<li>Foe</li>
+</ul></li>
+<li><p>Third</p></li>
+</ol>
+
+
+<p>This was an error in Markdown 1.0.1:</p>
+
+<ul>
+<li><p>this</p>
+
+<ul><li>sub</li></ul>
+
+<p>that</p></li>
+</ul>
index 3404517b04fd37f26cee54f6dafd5eca9d4b19b9..71ec78c70928f04eff9f4053401b70e51544ea13 100644 (file)
@@ -1,7 +1,7 @@
-<p><strong><em>This is strong and em.</em></strong></p>\r
-\r
-<p>So is <strong><em>this</em></strong> word.</p>\r
-\r
-<p><strong><em>This is strong and em.</em></strong></p>\r
-\r
-<p>So is <strong><em>this</em></strong> word.</p>\r
+<p><strong><em>This is strong and em.</em></strong></p>
+
+<p>So is <strong><em>this</em></strong> word.</p>
+
+<p><strong><em>This is strong and em.</em></strong></p>
+
+<p>So is <strong><em>this</em></strong> word.</p>
index c83fd98b28b8766a2483b7a9afdcf09d0ada2a25..3301ba803b7770d6e789349233f1eba273b95110 100644 (file)
@@ -1,25 +1,25 @@
-<ul>\r
-<li><p>this is a list item\r
-indented with tabs</p></li>\r
-<li><p>this is a list item\r
-indented with spaces</p></li>\r
-</ul>\r
-\r
-<p>Code:</p>\r
-\r
-<pre><code>this code block is indented by one tab\r
-</code></pre>\r
-\r
-<p>And:</p>\r
-\r
-<pre><code>    this code block is indented by two tabs\r
-</code></pre>\r
-\r
-<p>And:</p>\r
-\r
-<pre><code>+   this is an example list item\r
-    indented with tabs\r
-\r
-+   this is an example list item\r
-    indented with spaces\r
-</code></pre>\r
+<ul>
+<li><p>this is a list item
+indented with tabs</p></li>
+<li><p>this is a list item
+indented with spaces</p></li>
+</ul>
+
+<p>Code:</p>
+
+<pre><code>this code block is indented by one tab
+</code></pre>
+
+<p>And:</p>
+
+<pre><code>    this code block is indented by two tabs
+</code></pre>
+
+<p>And:</p>
+
+<pre><code>+   this is an example list item
+    indented with tabs
+
++   this is an example list item
+    indented with spaces
+</code></pre>
index 320efec299f67a9c8d2a0a5cb4dbea7f1dbdcc5f..f2a8ce70f5777c168fdcb557f096a49b33fcdefc 100644 (file)
@@ -1,8 +1,8 @@
-<blockquote>\r
-<p>A list within a blockquote:</p>\r
-<ul>\r
-<li>asterisk 1</li>\r
-<li>asterisk 2</li>\r
-<li>asterisk 3</li>\r
-</ul>\r
-</blockquote>\r
+<blockquote>
+<p>A list within a blockquote:</p>
+<ul>
+<li>asterisk 1</li>
+<li>asterisk 2</li>
+<li>asterisk 3</li>
+</ul>
+</blockquote>
index 9be67d2cdb9d18845486b96d22b4b92c6e6a1512..097aa0de9add44da13e58d6f08aad13ca9f663b2 100644 (file)
@@ -1,25 +1,25 @@
-[DEFAULT]\r
-input_ext=.text\r
-normalize=1\r
-# comment out next line to run these tests\r
-#skip=1\r
-\r
-[Images]\r
-# the attributes don't get ordered the same so we skip this\r
-skip=1\r
-\r
-[Code Blocks]\r
-# some weird whitespace issue\r
-skip=1\r
-\r
-[Links, reference style]\r
-# weird issue with nested brackets TODO: fixme\r
-skip=1\r
-\r
-[Backslash escapes]\r
-# backticks in raw html attributes TODO: fixme\r
-skip=1\r
-\r
-[Code Spans]\r
-# more backticks in raw html attributes TODO: fixme\r
-skip=1\r
+DEFAULT:
+    input_ext: .text
+    normalize: True
+    # comment out next line to run these tests
+    #skip: True
+
+Images:
+    # the attributes don't get ordered the same so we skip this
+    skip: True
+
+Code Blocks:
+    # some weird whitespace issue
+    skip: True
+
+Links, reference style:
+    # weird issue with nested brackets TODO: fixme
+    skip: True
+
+Backslash escapes:
+    # backticks in raw html attributes TODO: fixme
+    skip: True
+
+Code Spans:
+    # more backticks in raw html attributes TODO: fixme
+    skip: True
index 61b6a7a1902ec9418bfc254f0f5a7e33519b0fc2..12bac5541315922f37292514bac8fd2a5b36757a 100644 (file)
-import traceback\r
-from .util import MarkdownSyntaxError\r
-from nose.plugins import Plugin\r
-from nose.plugins.errorclass import ErrorClass, ErrorClassPlugin\r
-\r
-class Markdown(ErrorClassPlugin):\r
-    """ Add MarkdownSyntaxError and ensure proper formatting. """\r
-    mdsyntax = ErrorClass(MarkdownSyntaxError, \r
-                          label='MarkdownSyntaxError', \r
-                          isfailure=True)\r
-    enabled = True\r
-\r
-    def configure(self, options, conf):\r
-        self.conf = conf\r
-\r
-    def addError(self, test, err):\r
-        """ Ensure other plugins see the error by returning nothing here. """\r
-        pass\r
-\r
-    def formatError(self, test, err):\r
-        """ Remove unnessecary and unhelpful traceback from error report. """\r
-        et, ev, tb = err\r
-        if et.__name__ == 'MarkdownSyntaxError':\r
-            return et, ev, ''\r
-        return err\r
-\r
-\r
-def escape(html):\r
-    """ Escape HTML for display as source within HTML. """\r
-    html = html.replace('&', '&amp;')\r
-    html = html.replace('<', '&lt;')\r
-    html = html.replace('>', '&gt;')\r
-    return html\r
-\r
-\r
-class HtmlOutput(Plugin):\r
-    """Output test results as ugly, unstyled html. """\r
-    \r
-    name = 'html-output'\r
-    score = 2 # run late\r
-    enabled = True\r
-    \r
-    def __init__(self):\r
-        super(HtmlOutput, self).__init__()\r
-        self.html = [ '<html><head>',\r
-                      '<title>Test output</title>',\r
-                      '</head><body>' ]\r
-   \r
-    def configure(self, options, conf):\r
-        self.conf = conf\r
-\r
-    def addSuccess(self, test):\r
-        self.html.append('<span>ok</span>')\r
-    \r
-    def addError(self, test, err):\r
-        err = self.formatErr(err)\r
-        self.html.append('<span>ERROR</span>')\r
-        self.html.append('<pre>%s</pre>' % escape(err))\r
-            \r
-    def addFailure(self, test, err):\r
-        err = self.formatErr(err)\r
-        self.html.append('<span>FAIL</span>')\r
-        self.html.append('<pre>%s</pre>' % escape(err))\r
-\r
-    def finalize(self, result):\r
-        self.html.append('<div>')\r
-        self.html.append("Ran %d test%s" %\r
-                         (result.testsRun, result.testsRun != 1 and "s" \r
-or ""))\r
-        self.html.append('</div>')\r
-        self.html.append('<div>')\r
-        if not result.wasSuccessful():\r
-            self.html.extend(['<span>FAILED (',\r
-                              'failures=%d ' % len(result.failures),\r
-                              'errors=%d' % len(result.errors)])\r
-            for cls in list(result.errorClasses.keys()):\r
-                storage, label, isfail = result.errorClasses[cls]\r
-                if len(storage):\r
-                    self.html.append(' %ss=%d' % (label, len(storage)))\r
-            self.html.append(')</span>')\r
-        else:\r
-            self.html.append('OK')\r
-        self.html.append('</div></body></html>')\r
-        f = open('test-output.html', 'w')\r
-        for l in self.html:\r
-            f.write(l)\r
-        f.close()\r
-\r
-    def formatErr(self, err):\r
-        exctype, value, tb = err\r
-        return ''.join(traceback.format_exception(exctype, value, tb))\r
-    \r
-    def startContext(self, ctx):\r
-        try:\r
-            n = ctx.__name__\r
-        except AttributeError:\r
-            n = str(ctx).replace('<', '').replace('>', '')\r
-        self.html.extend(['<fieldset>', '<legend>', n, '</legend>'])\r
-        try:\r
-            path = ctx.__file__.replace('.pyc', '.py')\r
-            self.html.extend(['<div>', path, '</div>'])\r
-        except AttributeError:\r
-            pass\r
-\r
-    def stopContext(self, ctx):\r
-        self.html.append('</fieldset>')\r
-    \r
-    def startTest(self, test):\r
-        self.html.extend([ '<div><span>',\r
-                           test.shortDescription() or str(test),\r
-                           '</span>' ])\r
-        \r
-    def stopTest(self, test):\r
-        self.html.append('</div>')\r
-\r
+import traceback
+from nose.plugins import Plugin
+from nose.plugins.errorclass import ErrorClass, ErrorClassPlugin
+
+
+class MarkdownSyntaxError(Exception):
+    pass
+
+
+class Markdown(ErrorClassPlugin):
+    """ Add MarkdownSyntaxError and ensure proper formatting. """
+    mdsyntax = ErrorClass(MarkdownSyntaxError, 
+                          label='MarkdownSyntaxError', 
+                          isfailure=True)
+    enabled = True
+
+    def configure(self, options, conf):
+        self.conf = conf
+
+    def addError(self, test, err):
+        """ Ensure other plugins see the error by returning nothing here. """
+        pass
+
+    def formatError(self, test, err):
+        """ Remove unnessecary and unhelpful traceback from error report. """
+        et, ev, tb = err
+        if et.__name__ == 'MarkdownSyntaxError':
+            return et, ev, ''
+        return err
+
+
+def escape(html):
+    """ Escape HTML for display as source within HTML. """
+    html = html.replace('&', '&amp;')
+    html = html.replace('<', '&lt;')
+    html = html.replace('>', '&gt;')
+    return html
+
+
+class HtmlOutput(Plugin):
+    """Output test results as ugly, unstyled html. """
+    
+    name = 'html-output'
+    score = 2 # run late
+    enabled = True
+    
+    def __init__(self):
+        super(HtmlOutput, self).__init__()
+        self.html = [ '<html><head>',
+                      '<title>Test output</title>',
+                      '</head><body>' ]
+   
+    def configure(self, options, conf):
+        self.conf = conf
+
+    def addSuccess(self, test):
+        self.html.append('<span>ok</span>')
+    
+    def addError(self, test, err):
+        err = self.formatErr(err)
+        self.html.append('<span>ERROR</span>')
+        self.html.append('<pre>%s</pre>' % escape(err))
+            
+    def addFailure(self, test, err):
+        err = self.formatErr(err)
+        self.html.append('<span>FAIL</span>')
+        self.html.append('<pre>%s</pre>' % escape(err))
+
+    def finalize(self, result):
+        self.html.append('<div>')
+        self.html.append("Ran %d test%s" %
+                         (result.testsRun, result.testsRun != 1 and "s" 
+or ""))
+        self.html.append('</div>')
+        self.html.append('<div>')
+        if not result.wasSuccessful():
+            self.html.extend(['<span>FAILED (',
+                              'failures=%d ' % len(result.failures),
+                              'errors=%d' % len(result.errors)])
+            for cls in list(result.errorClasses.keys()):
+                storage, label, isfail = result.errorClasses[cls]
+                if len(storage):
+                    self.html.append(' %ss=%d' % (label, len(storage)))
+            self.html.append(')</span>')
+        else:
+            self.html.append('OK')
+        self.html.append('</div></body></html>')
+        f = open('test-output.html', 'w')
+        for l in self.html:
+            f.write(l)
+        f.close()
+
+    def formatErr(self, err):
+        exctype, value, tb = err
+        return ''.join(traceback.format_exception(exctype, value, tb))
+    
+    def startContext(self, ctx):
+        try:
+            n = ctx.__name__
+        except AttributeError:
+            n = str(ctx).replace('<', '').replace('>', '')
+        self.html.extend(['<fieldset>', '<legend>', n, '</legend>'])
+        try:
+            path = ctx.__file__.replace('.pyc', '.py')
+            self.html.extend(['<div>', path, '</div>'])
+        except AttributeError:
+            pass
+
+    def stopContext(self, ctx):
+        self.html.append('</fieldset>')
+    
+    def startTest(self, test):
+        self.html.extend([ '<div><span>',
+                           test.shortDescription() or str(test),
+                           '</span>' ])
+        
+    def stopTest(self, test):
+        self.html.append('</div>')
+
index f02bdd39e7ba70bc9f1b4143a37d4ecaacb1ca1c..62d24e47f076622974079a63eaf21c83c214225c 100644 (file)
@@ -1,6 +1,6 @@
-<p>to:</p>\r
-<p>&lt;td /&gt;&lt;td style="text-align: center; white-space: nowrap;"&gt;&lt;br /&gt;</p>\r
-<blockquote>\r
-<p>3) You don't need to alter all localization files.\r
-   Adding the new labels to the en_US files will do it.</p>\r
+<p>to:</p>
+<p>&lt;td /&gt;&lt;td style="text-align: center; white-space: nowrap;"&gt;&lt;br /&gt;</p>
+<blockquote>
+<p>3) You don't need to alter all localization files.
+   Adding the new labels to the en_US files will do it.</p>
 </blockquote>
\ No newline at end of file
index 3e07c5d0265d44eff369b6d8e8b9fcb8941130e1..544df677d94b7af2eac559db6cb95921b2c72985 100644 (file)
@@ -1,6 +1,6 @@
-to:\r
-\r
-<td /><td style="text-align: center; white-space: nowrap;"><br />\r
-\r
-> 3) You don't need to alter all localization files.\r
->    Adding the new labels to the en_US files will do it.\r
+to:
+
+<td /><td style="text-align: center; white-space: nowrap;"><br />
+
+> 3) You don't need to alter all localization files.
+>    Adding the new labels to the en_US files will do it.
index 269b9f4c62cdb8ca9271078e8694e25d0f45f9fc..e9dd2ec0113378269560663bdd007180d5b994e0 100644 (file)
@@ -1,11 +1,11 @@
-<p>Simple block on one line:</p>\r
-<p>&lt;div&gt;foo&lt;/div&gt;</p>\r
-<p>And nested without indentation:</p>\r
-<p>&lt;div&gt;\r
-&lt;div&gt;\r
-&lt;div&gt;\r
-foo\r
-&lt;/div&gt;\r
-&lt;/div&gt;\r
-&lt;div&gt;bar&lt;/div&gt;\r
+<p>Simple block on one line:</p>
+<p>&lt;div&gt;foo&lt;/div&gt;</p>
+<p>And nested without indentation:</p>
+<p>&lt;div&gt;
+&lt;div&gt;
+&lt;div&gt;
+foo
+&lt;/div&gt;
+&lt;/div&gt;
+&lt;div&gt;bar&lt;/div&gt;
 &lt;/div&gt;</p>
\ No newline at end of file
index 72c22c3a16caac4d402bbe83308b98c61a414aad..9d71ddcc174b33fc2a5a8d76008a8a6e3cc71014 100644 (file)
@@ -1,14 +1,14 @@
-Simple block on one line:\r
-\r
-<div>foo</div>\r
-\r
-And nested without indentation:\r
-\r
-<div>\r
-<div>\r
-<div>\r
-foo\r
-</div>\r
-</div>\r
-<div>bar</div>\r
-</div>\r
+Simple block on one line:
+
+<div>foo</div>
+
+And nested without indentation:
+
+<div>
+<div>
+<div>
+foo
+</div>
+</div>
+<div>bar</div>
+</div>
index 6f7f47a5b7c362ca5f0ab1b9419ebbb6dce0d81e..0f1e41780e6f9dfba836274c7146c894a17abf2a 100644 (file)
@@ -1,8 +1,8 @@
-<p>Paragraph one.</p>\r
-<p>&lt;!-- This is a simple comment --&gt;</p>\r
-<p>&lt;!--\r
-    This is another comment.\r
---&gt;</p>\r
-<p>Paragraph two.</p>\r
-<p>&lt;!-- one comment block -- -- with two comments --&gt;</p>\r
+<p>Paragraph one.</p>
+<p>&lt;!-- This is a simple comment --&gt;</p>
+<p>&lt;!--
+    This is another comment.
+--&gt;</p>
+<p>Paragraph two.</p>
+<p>&lt;!-- one comment block -- -- with two comments --&gt;</p>
 <p>The end.</p>
\ No newline at end of file
index 2faaca936b9f7047ae0b59e97c56fdba741f1711..41d830d0385feec59a07b3476dedd68ef52749c6 100644 (file)
@@ -1,13 +1,13 @@
-Paragraph one.\r
-\r
-<!-- This is a simple comment -->\r
-\r
-<!--\r
-       This is another comment.\r
--->\r
-\r
-Paragraph two.\r
-\r
-<!-- one comment block -- -- with two comments -->\r
-\r
-The end.\r
+Paragraph one.
+
+<!-- This is a simple comment -->
+
+<!--
+       This is another comment.
+-->
+
+Paragraph two.
+
+<!-- one comment block -- -- with two comments -->
+
+The end.
index 5defb51e086bf04dcd9c995f804f1fc006623710..1e5df1716b408b895c706901cd0235738c64dfd7 100644 (file)
@@ -1,46 +1,46 @@
-<p>Here's a simple block:</p>\r
-<p>&lt;div&gt;\r
-    foo\r
-&lt;/div&gt;</p>\r
-<p>This should be a code block, though:</p>\r
-<pre><code>&lt;div&gt;\r
-    foo\r
-&lt;/div&gt;\r
-</code></pre>\r
-<p>As should this:</p>\r
-<pre><code>&lt;div&gt;foo&lt;/div&gt;\r
-</code></pre>\r
-<p>Now, nested:</p>\r
-<p>&lt;div&gt;\r
-    &lt;div&gt;\r
-        &lt;div&gt;\r
-            foo\r
-        &lt;/div&gt;\r
-    &lt;/div&gt;\r
-&lt;/div&gt;</p>\r
-<p>This should just be an HTML comment:</p>\r
-<p>&lt;!-- Comment --&gt;</p>\r
-<p>Multiline:</p>\r
-<p>&lt;!--\r
-Blah\r
-Blah\r
---&gt;</p>\r
-<p>Code block:</p>\r
-<pre><code>&lt;!-- Comment --&gt;\r
-</code></pre>\r
-<p>Just plain comment, with trailing spaces on the line:</p>\r
-<p>&lt;!-- foo --&gt;   </p>\r
-<p>Code:</p>\r
-<pre><code>&lt;hr /&gt;\r
-</code></pre>\r
-<p>Hr's:</p>\r
-<p>&lt;hr&gt;</p>\r
-<p>&lt;hr/&gt;</p>\r
-<p>&lt;hr /&gt;</p>\r
-<p>&lt;hr&gt;   </p>\r
-<p>&lt;hr/&gt;  </p>\r
-<p>&lt;hr /&gt; </p>\r
-<p>&lt;hr class="foo" id="bar" /&gt;</p>\r
-<p>&lt;hr class="foo" id="bar"/&gt;</p>\r
-<p>&lt;hr class="foo" id="bar" &gt;</p>\r
+<p>Here's a simple block:</p>
+<p>&lt;div&gt;
+    foo
+&lt;/div&gt;</p>
+<p>This should be a code block, though:</p>
+<pre><code>&lt;div&gt;
+    foo
+&lt;/div&gt;
+</code></pre>
+<p>As should this:</p>
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+<p>Now, nested:</p>
+<p>&lt;div&gt;
+    &lt;div&gt;
+        &lt;div&gt;
+            foo
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;</p>
+<p>This should just be an HTML comment:</p>
+<p>&lt;!-- Comment --&gt;</p>
+<p>Multiline:</p>
+<p>&lt;!--
+Blah
+Blah
+--&gt;</p>
+<p>Code block:</p>
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+<p>Just plain comment, with trailing spaces on the line:</p>
+<p>&lt;!-- foo --&gt;   </p>
+<p>Code:</p>
+<pre><code>&lt;hr /&gt;
+</code></pre>
+<p>Hr's:</p>
+<p>&lt;hr&gt;</p>
+<p>&lt;hr/&gt;</p>
+<p>&lt;hr /&gt;</p>
+<p>&lt;hr&gt;   </p>
+<p>&lt;hr/&gt;  </p>
+<p>&lt;hr /&gt; </p>
+<p>&lt;hr class="foo" id="bar" /&gt;</p>
+<p>&lt;hr class="foo" id="bar"/&gt;</p>
+<p>&lt;hr class="foo" id="bar" &gt;</p>
 <p>&lt;some <a href="http://example.com">weird</a> stuff&gt;</p>
\ No newline at end of file
index 503d25b5ae0cd02bef119fcbcc90086d3dad58cf..7210750d824b9f443cdcdb4ac2ac46b19b7e3c8a 100644 (file)
@@ -1,70 +1,70 @@
-Here's a simple block:\r
-\r
-<div>\r
-       foo\r
-</div>\r
-\r
-This should be a code block, though:\r
-\r
-       <div>\r
-               foo\r
-       </div>\r
-\r
-As should this:\r
-\r
-       <div>foo</div>\r
-\r
-Now, nested:\r
-\r
-<div>\r
-       <div>\r
-               <div>\r
-                       foo\r
-               </div>\r
-       </div>\r
-</div>\r
-\r
-This should just be an HTML comment:\r
-\r
-<!-- Comment -->\r
-\r
-Multiline:\r
-\r
-<!--\r
-Blah\r
-Blah\r
--->\r
-\r
-Code block:\r
-\r
-       <!-- Comment -->\r
-\r
-Just plain comment, with trailing spaces on the line:\r
-\r
-<!-- foo -->   \r
-\r
-Code:\r
-\r
-       <hr />\r
-       \r
-Hr's:\r
-\r
-<hr>\r
-\r
-<hr/>\r
-\r
-<hr />\r
-\r
-<hr>   \r
-\r
-<hr/>  \r
-\r
-<hr /> \r
-\r
-<hr class="foo" id="bar" />\r
-\r
-<hr class="foo" id="bar"/>\r
-\r
-<hr class="foo" id="bar" >\r
-\r
-<some [weird](http://example.com) stuff>\r
+Here's a simple block:
+
+<div>
+       foo
+</div>
+
+This should be a code block, though:
+
+       <div>
+               foo
+       </div>
+
+As should this:
+
+       <div>foo</div>
+
+Now, nested:
+
+<div>
+       <div>
+               <div>
+                       foo
+               </div>
+       </div>
+</div>
+
+This should just be an HTML comment:
+
+<!-- Comment -->
+
+Multiline:
+
+<!--
+Blah
+Blah
+-->
+
+Code block:
+
+       <!-- Comment -->
+
+Just plain comment, with trailing spaces on the line:
+
+<!-- foo -->   
+
+Code:
+
+       <hr />
+       
+Hr's:
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>   
+
+<hr/>  
+
+<hr /> 
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
+<some [weird](http://example.com) stuff>
index 56ddec17d9a201f493f1c1561b6d57694d7d1a52..768ae5bbfe06e6af5ea21c541b1dabcbce392dc1 100644 (file)
@@ -1,2 +1,2 @@
-<p><a href="">XSS</a>\r
+<p><a href="">XSS</a>
 See http://security.stackexchange.com/q/30330/1261 for details.</p>
\ No newline at end of file
index a05e869e351c781d49dd95e9b6e805f73f214f9c..10eebda1d76b05837e9d37674ac454597a736554 100644 (file)
@@ -1,3 +1,3 @@
-[XSS](javascript://%0Aalert%28'XSS'%29;)\r
-See http://security.stackexchange.com/q/30330/1261 for details.\r
-\r
+[XSS](javascript://%0Aalert%28'XSS'%29;)
+See http://security.stackexchange.com/q/30330/1261 for details.
+
index 16b2a58edb6fb11ff5ca0c9799dc4fe91cbfcc69..d86b2b40f64c2c5be27a25c1c0ae61d5c9149f8a 100644 (file)
@@ -1,35 +1,35 @@
-<p>Here's a simple block:</p>\r
-<p></p>\r
-<p>This should be a code block, though:</p>\r
-<pre><code>&lt;div&gt;\r
-    foo\r
-&lt;/div&gt;\r
-</code></pre>\r
-<p>As should this:</p>\r
-<pre><code>&lt;div&gt;foo&lt;/div&gt;\r
-</code></pre>\r
-<p>Now, nested:</p>\r
-<p></p>\r
-<p>This should just be an HTML comment:</p>\r
-<p></p>\r
-<p>Multiline:</p>\r
-<p></p>\r
-<p>Code block:</p>\r
-<pre><code>&lt;!-- Comment --&gt;\r
-</code></pre>\r
-<p>Just plain comment, with trailing spaces on the line:</p>\r
-<p></p>\r
-<p>Code:</p>\r
-<pre><code>&lt;hr /&gt;\r
-</code></pre>\r
-<p>Hr's:</p>\r
-<p></p>\r
-<p></p>\r
-<p></p>\r
-<p></p>\r
-<p></p>\r
-<p></p>\r
-<p></p>\r
-<p></p>\r
-<p></p>\r
+<p>Here's a simple block:</p>
+<p></p>
+<p>This should be a code block, though:</p>
+<pre><code>&lt;div&gt;
+    foo
+&lt;/div&gt;
+</code></pre>
+<p>As should this:</p>
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+<p>Now, nested:</p>
+<p></p>
+<p>This should just be an HTML comment:</p>
+<p></p>
+<p>Multiline:</p>
+<p></p>
+<p>Code block:</p>
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+<p>Just plain comment, with trailing spaces on the line:</p>
+<p></p>
+<p>Code:</p>
+<pre><code>&lt;hr /&gt;
+</code></pre>
+<p>Hr's:</p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
+<p></p>
 <p></p>
\ No newline at end of file
index 503d25b5ae0cd02bef119fcbcc90086d3dad58cf..7210750d824b9f443cdcdb4ac2ac46b19b7e3c8a 100644 (file)
@@ -1,70 +1,70 @@
-Here's a simple block:\r
-\r
-<div>\r
-       foo\r
-</div>\r
-\r
-This should be a code block, though:\r
-\r
-       <div>\r
-               foo\r
-       </div>\r
-\r
-As should this:\r
-\r
-       <div>foo</div>\r
-\r
-Now, nested:\r
-\r
-<div>\r
-       <div>\r
-               <div>\r
-                       foo\r
-               </div>\r
-       </div>\r
-</div>\r
-\r
-This should just be an HTML comment:\r
-\r
-<!-- Comment -->\r
-\r
-Multiline:\r
-\r
-<!--\r
-Blah\r
-Blah\r
--->\r
-\r
-Code block:\r
-\r
-       <!-- Comment -->\r
-\r
-Just plain comment, with trailing spaces on the line:\r
-\r
-<!-- foo -->   \r
-\r
-Code:\r
-\r
-       <hr />\r
-       \r
-Hr's:\r
-\r
-<hr>\r
-\r
-<hr/>\r
-\r
-<hr />\r
-\r
-<hr>   \r
-\r
-<hr/>  \r
-\r
-<hr /> \r
-\r
-<hr class="foo" id="bar" />\r
-\r
-<hr class="foo" id="bar"/>\r
-\r
-<hr class="foo" id="bar" >\r
-\r
-<some [weird](http://example.com) stuff>\r
+Here's a simple block:
+
+<div>
+       foo
+</div>
+
+This should be a code block, though:
+
+       <div>
+               foo
+       </div>
+
+As should this:
+
+       <div>foo</div>
+
+Now, nested:
+
+<div>
+       <div>
+               <div>
+                       foo
+               </div>
+       </div>
+</div>
+
+This should just be an HTML comment:
+
+<!-- Comment -->
+
+Multiline:
+
+<!--
+Blah
+Blah
+-->
+
+Code block:
+
+       <!-- Comment -->
+
+Just plain comment, with trailing spaces on the line:
+
+<!-- foo -->   
+
+Code:
+
+       <hr />
+       
+Hr's:
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>   
+
+<hr/>  
+
+<hr /> 
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
+<some [weird](http://example.com) stuff>
index a893fb19ebdf0093d97f80ef989fc2bba85e7cf4..cb6bfb58da28635d1dacce8f1cd27077210d4e96 100644 (file)
@@ -1,35 +1,35 @@
-<p>Here's a simple block:</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>This should be a code block, though:</p>\r
-<pre><code>&lt;div&gt;\r
-    foo\r
-&lt;/div&gt;\r
-</code></pre>\r
-<p>As should this:</p>\r
-<pre><code>&lt;div&gt;foo&lt;/div&gt;\r
-</code></pre>\r
-<p>Now, nested:</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>This should just be an HTML comment:</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>Multiline:</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>Code block:</p>\r
-<pre><code>&lt;!-- Comment --&gt;\r
-</code></pre>\r
-<p>Just plain comment, with trailing spaces on the line:</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>Code:</p>\r
-<pre><code>&lt;hr /&gt;\r
-</code></pre>\r
-<p>Hr's:</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>[HTML_REMOVED]</p>\r
-<p>[HTML_REMOVED]</p>\r
+<p>Here's a simple block:</p>
+<p>[HTML_REMOVED]</p>
+<p>This should be a code block, though:</p>
+<pre><code>&lt;div&gt;
+    foo
+&lt;/div&gt;
+</code></pre>
+<p>As should this:</p>
+<pre><code>&lt;div&gt;foo&lt;/div&gt;
+</code></pre>
+<p>Now, nested:</p>
+<p>[HTML_REMOVED]</p>
+<p>This should just be an HTML comment:</p>
+<p>[HTML_REMOVED]</p>
+<p>Multiline:</p>
+<p>[HTML_REMOVED]</p>
+<p>Code block:</p>
+<pre><code>&lt;!-- Comment --&gt;
+</code></pre>
+<p>Just plain comment, with trailing spaces on the line:</p>
+<p>[HTML_REMOVED]</p>
+<p>Code:</p>
+<pre><code>&lt;hr /&gt;
+</code></pre>
+<p>Hr's:</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
+<p>[HTML_REMOVED]</p>
 <p>[HTML_REMOVED]</p>
\ No newline at end of file
index 503d25b5ae0cd02bef119fcbcc90086d3dad58cf..7210750d824b9f443cdcdb4ac2ac46b19b7e3c8a 100644 (file)
@@ -1,70 +1,70 @@
-Here's a simple block:\r
-\r
-<div>\r
-       foo\r
-</div>\r
-\r
-This should be a code block, though:\r
-\r
-       <div>\r
-               foo\r
-       </div>\r
-\r
-As should this:\r
-\r
-       <div>foo</div>\r
-\r
-Now, nested:\r
-\r
-<div>\r
-       <div>\r
-               <div>\r
-                       foo\r
-               </div>\r
-       </div>\r
-</div>\r
-\r
-This should just be an HTML comment:\r
-\r
-<!-- Comment -->\r
-\r
-Multiline:\r
-\r
-<!--\r
-Blah\r
-Blah\r
--->\r
-\r
-Code block:\r
-\r
-       <!-- Comment -->\r
-\r
-Just plain comment, with trailing spaces on the line:\r
-\r
-<!-- foo -->   \r
-\r
-Code:\r
-\r
-       <hr />\r
-       \r
-Hr's:\r
-\r
-<hr>\r
-\r
-<hr/>\r
-\r
-<hr />\r
-\r
-<hr>   \r
-\r
-<hr/>  \r
-\r
-<hr /> \r
-\r
-<hr class="foo" id="bar" />\r
-\r
-<hr class="foo" id="bar"/>\r
-\r
-<hr class="foo" id="bar" >\r
-\r
-<some [weird](http://example.com) stuff>\r
+Here's a simple block:
+
+<div>
+       foo
+</div>
+
+This should be a code block, though:
+
+       <div>
+               foo
+       </div>
+
+As should this:
+
+       <div>foo</div>
+
+Now, nested:
+
+<div>
+       <div>
+               <div>
+                       foo
+               </div>
+       </div>
+</div>
+
+This should just be an HTML comment:
+
+<!-- Comment -->
+
+Multiline:
+
+<!--
+Blah
+Blah
+-->
+
+Code block:
+
+       <!-- Comment -->
+
+Just plain comment, with trailing spaces on the line:
+
+<!-- foo -->   
+
+Code:
+
+       <hr />
+       
+Hr's:
+
+<hr>
+
+<hr/>
+
+<hr />
+
+<hr>   
+
+<hr/>  
+
+<hr /> 
+
+<hr class="foo" id="bar" />
+
+<hr class="foo" id="bar"/>
+
+<hr class="foo" id="bar" >
+
+<some [weird](http://example.com) stuff>
index e34c0b9a72a415718fb3a6c7fa45b96d26a493d8..6c1501b58eaa0fe867c3e0802e0078a7def44ccc 100644 (file)
@@ -1,20 +1,20 @@
-<p>This should be stripped/escaped in safe_mode.</p>\r
-<p>&lt;script&gt;\r
-alert("Hello world!")\r
-&lt;/script&gt;</p>\r
-<p>With blank lines.</p>\r
-<p>&lt;script&gt;</p>\r
-<p>alert("Hello world!")</p>\r
-<p>&lt;/script&gt;</p>\r
-<p>Now with some weirdness</p>\r
-<p><code>&lt;script &lt;!--\r
-alert("Hello world!")\r
-&lt;/script &lt;&gt;</code> `</p>\r
-<p>Try another way.</p>\r
-<p>&lt;script &lt;!--\r
-alert("Hello world!")\r
-&lt;/script &lt;&gt;</p>\r
-<p>This time with blank lines.</p>\r
-<p>&lt;script &lt;!--</p>\r
-<p>alert("Hello world!")</p>\r
+<p>This should be stripped/escaped in safe_mode.</p>
+<p>&lt;script&gt;
+alert("Hello world!")
+&lt;/script&gt;</p>
+<p>With blank lines.</p>
+<p>&lt;script&gt;</p>
+<p>alert("Hello world!")</p>
+<p>&lt;/script&gt;</p>
+<p>Now with some weirdness</p>
+<p><code>&lt;script &lt;!--
+alert("Hello world!")
+&lt;/script &lt;&gt;</code> `</p>
+<p>Try another way.</p>
+<p>&lt;script &lt;!--
+alert("Hello world!")
+&lt;/script &lt;&gt;</p>
+<p>This time with blank lines.</p>
+<p>&lt;script &lt;!--</p>
+<p>alert("Hello world!")</p>
 <p>&lt;/script &lt;&gt;</p>
\ No newline at end of file
index d56cd5639623bef6ae6260198411f78bc96c4ea2..44041c2f0be337cfa63c935cac3e221d2f903ecd 100644 (file)
@@ -1,33 +1,33 @@
-This should be stripped/escaped in safe_mode.\r
-\r
-<script>\r
-alert("Hello world!")\r
-</script>\r
-\r
-With blank lines.\r
-\r
-<script>\r
-\r
-alert("Hello world!")\r
-\r
-</script>\r
-\r
-Now with some weirdness\r
-\r
-``<script <!--\r
-alert("Hello world!")\r
-</script <>`` `\r
-\r
-Try another way.\r
-\r
-<script <!--\r
-alert("Hello world!")\r
-</script <>\r
-\r
-This time with blank lines.\r
-\r
-<script <!--\r
-\r
-alert("Hello world!")\r
-\r
-</script <>\r
+This should be stripped/escaped in safe_mode.
+
+<script>
+alert("Hello world!")
+</script>
+
+With blank lines.
+
+<script>
+
+alert("Hello world!")
+
+</script>
+
+Now with some weirdness
+
+``<script <!--
+alert("Hello world!")
+</script <>`` `
+
+Try another way.
+
+<script <!--
+alert("Hello world!")
+</script <>
+
+This time with blank lines.
+
+<script <!--
+
+alert("Hello world!")
+
+</script <>
index 717e8b0ed58723479878e769d3e4f55ed3211108..4e1720e87e5eaba6cecd56225e4982fd833d5adc 100644 (file)
@@ -1,8 +1,8 @@
-[DEFAULT]\r
-safe_mode=escape\r
-\r
-[remove]\r
-safe_mode=remove\r
-\r
-[replace]\r
-safe_mode=replace\r
+DEFAULT:
+    safe_mode: escape
+
+remove:
+    safe_mode: remove
+
+replace:
+    safe_mode: replace
index ce4c894be4dfa2a20400da87db856f3eaa837a9b..e617f35cf17e6c7dcf5b33a5d291ed9bab80e286 100644 (file)
@@ -1,20 +1,20 @@
-<p>These links should be unsafe and not allowed in safe_mode</p>\r
-<p><a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a>\r
-<a href="">link</a></p>\r
-<p><img alt="img" src="" />\r
-<a href="">ref</a>\r
-<img alt="imgref" src="" /></p>\r
-<p>These should work regardless:</p>\r
-<p><a href="relative/url.html">relative</a>\r
-<a href="mailto:foo@bar.com">email</a>\r
-<a href="news:some.news.group.com">news scheme</a>\r
+<p>These links should be unsafe and not allowed in safe_mode</p>
+<p><a href="">link</a>
+<a href="">link</a>
+<a href="">link</a>
+<a href="">link</a>
+<a href="">link</a>
+<a href="">link</a>
+<a href="">link</a>
+<a href="">link</a>
+<a href="">link</a>
+<a href="">link</a>
+<a href="">link</a></p>
+<p><img alt="img" src="" />
+<a href="">ref</a>
+<img alt="imgref" src="" /></p>
+<p>These should work regardless:</p>
+<p><a href="relative/url.html">relative</a>
+<a href="mailto:foo@bar.com">email</a>
+<a href="news:some.news.group.com">news scheme</a>
 <a href="http://example.com">http link</a></p>
\ No newline at end of file
index 59e6f143212a5d842766062f20fd03067c23214e..7bfd81dc3ab225f91a8a95e7d25fa417a8db8e72 100644 (file)
@@ -1,27 +1,27 @@
-These links should be unsafe and not allowed in safe_mode\r
-\r
-[link](javascript:alert%28'Hello%20world!'%29)\r
-[link](vbscript:msgbox%28%22Hello%20world!%22%29)\r
-[link](livescript:alert%28'Hello%20world!'%29)\r
-[link](mocha:[code])\r
-[link](jAvAsCrIpT:alert%28'Hello%20world!'%29)\r
-[link](ja&#32;vas&#32;cr&#32;ipt:alert%28'Hello%20world!'%29)\r
-[link](ja&#00032;vas&#32;cr&#32;ipt:alert%28'Hello%20world!'%29)\r
-[link](ja&#x00020;vas&#32;cr&#32;ipt:alert%28'Hello%20world!'%29)\r
-[link](ja%09&#x20;%0Avas&#32;cr&#x0a;ipt:alert%28'Hello%20world!'%29)\r
-[link](ja%20vas%20cr%20ipt:alert%28'Hello%20world!'%29)\r
-[link](live%20script:alert%28'Hello%20world!'%29)\r
-\r
-![img](javascript:alert%29'XSS'%29)\r
-[ref][]\r
-![imgref][]\r
-\r
-[ref]: javascript:alert%29'XSS'%29\r
-[imgref]: javascript:alert%29'XSS'%29\r
-\r
-These should work regardless:\r
-\r
-[relative](relative/url.html)\r
-[email](mailto:foo@bar.com)\r
-[news scheme](news:some.news.group.com)\r
-[http link](http://example.com)\r
+These links should be unsafe and not allowed in safe_mode
+
+[link](javascript:alert%28'Hello%20world!'%29)
+[link](vbscript:msgbox%28%22Hello%20world!%22%29)
+[link](livescript:alert%28'Hello%20world!'%29)
+[link](mocha:[code])
+[link](jAvAsCrIpT:alert%28'Hello%20world!'%29)
+[link](ja&#32;vas&#32;cr&#32;ipt:alert%28'Hello%20world!'%29)
+[link](ja&#00032;vas&#32;cr&#32;ipt:alert%28'Hello%20world!'%29)
+[link](ja&#x00020;vas&#32;cr&#32;ipt:alert%28'Hello%20world!'%29)
+[link](ja%09&#x20;%0Avas&#32;cr&#x0a;ipt:alert%28'Hello%20world!'%29)
+[link](ja%20vas%20cr%20ipt:alert%28'Hello%20world!'%29)
+[link](live%20script:alert%28'Hello%20world!'%29)
+
+![img](javascript:alert%29'XSS'%29)
+[ref][]
+![imgref][]
+
+[ref]: javascript:alert%29'XSS'%29
+[imgref]: javascript:alert%29'XSS'%29
+
+These should work regardless:
+
+[relative](relative/url.html)
+[email](mailto:foo@bar.com)
+[news scheme](news:some.news.group.com)
+[http link](http://example.com)
index 1305d03dd34d0327a53a91c9a41bf0fae07b02d7..b19db6276e4ba171747185412f5884b658f5eef1 100644 (file)
-#!/usr/bin/python\r
-"""\r
-Python-Markdown Regression Tests\r
-================================\r
-\r
-Tests of the various APIs with the python markdown lib.\r
-\r
-"""\r
-\r
-from __future__ import unicode_literals\r
-import unittest\r
-import sys\r
-import types\r
-import markdown\r
-import warnings\r
-\r
-PY3 = sys.version_info[0] == 3\r
-\r
-class TestMarkdownBasics(unittest.TestCase):\r
-    """ Tests basics of the Markdown class. """\r
-\r
-    def setUp(self):\r
-        """ Create instance of Markdown. """\r
-        self.md = markdown.Markdown()\r
-\r
-    def testBlankInput(self):\r
-        """ Test blank input. """\r
-        self.assertEqual(self.md.convert(''), '')\r
-\r
-    def testWhitespaceOnly(self):\r
-        """ Test input of only whitespace. """\r
-        self.assertEqual(self.md.convert(' '), '')\r
-\r
-    def testSimpleInput(self):\r
-        """ Test simple input. """\r
-        self.assertEqual(self.md.convert('foo'), '<p>foo</p>')\r
-\r
-class TestBlockParser(unittest.TestCase):\r
-    """ Tests of the BlockParser class. """\r
-\r
-    def setUp(self):\r
-        """ Create instance of BlockParser. """\r
-        self.parser = markdown.Markdown().parser\r
-\r
-    def testParseChunk(self):\r
-        """ Test BlockParser.parseChunk. """\r
-        root = markdown.util.etree.Element("div")\r
-        text = 'foo'\r
-        self.parser.parseChunk(root, text)\r
-        self.assertEqual(markdown.serializers.to_xhtml_string(root), \r
-                         "<div><p>foo</p></div>")\r
-\r
-    def testParseDocument(self):\r
-        """ Test BlockParser.parseDocument. """\r
-        lines = ['#foo', '', 'bar', '', '    baz']\r
-        tree = self.parser.parseDocument(lines)\r
-        self.assertTrue(isinstance(tree, markdown.util.etree.ElementTree))\r
-        self.assertTrue(markdown.util.etree.iselement(tree.getroot()))\r
-        self.assertEqual(markdown.serializers.to_xhtml_string(tree.getroot()),\r
-            "<div><h1>foo</h1><p>bar</p><pre><code>baz\n</code></pre></div>")\r
-\r
-\r
-class TestBlockParserState(unittest.TestCase):\r
-    """ Tests of the State class for BlockParser. """\r
-\r
-    def setUp(self):\r
-        self.state = markdown.blockparser.State()\r
-\r
-    def testBlankState(self):\r
-        """ Test State when empty. """\r
-        self.assertEqual(self.state, [])\r
-\r
-    def testSetSate(self):\r
-        """ Test State.set(). """\r
-        self.state.set('a_state')\r
-        self.assertEqual(self.state, ['a_state'])\r
-        self.state.set('state2')\r
-        self.assertEqual(self.state, ['a_state', 'state2'])\r
-\r
-    def testIsSate(self):\r
-        """ Test State.isstate(). """\r
-        self.assertEqual(self.state.isstate('anything'), False)\r
-        self.state.set('a_state')\r
-        self.assertEqual(self.state.isstate('a_state'), True)\r
-        self.state.set('state2')\r
-        self.assertEqual(self.state.isstate('state2'), True)\r
-        self.assertEqual(self.state.isstate('a_state'), False)\r
-        self.assertEqual(self.state.isstate('missing'), False)\r
-\r
-    def testReset(self):\r
-        """ Test State.reset(). """\r
-        self.state.set('a_state')\r
-        self.state.reset()\r
-        self.assertEqual(self.state, [])\r
-        self.state.set('state1')\r
-        self.state.set('state2')\r
-        self.state.reset()\r
-        self.assertEqual(self.state, ['state1'])\r
-\r
-class TestHtmlStash(unittest.TestCase):\r
-    """ Test Markdown's HtmlStash. """\r
-    \r
-    def setUp(self):\r
-        self.stash = markdown.util.HtmlStash()\r
-        self.placeholder = self.stash.store('foo')\r
-\r
-    def testSimpleStore(self):\r
-        """ Test HtmlStash.store. """\r
-        self.assertEqual(self.placeholder, self.stash.get_placeholder(0))\r
-        self.assertEqual(self.stash.html_counter, 1)\r
-        self.assertEqual(self.stash.rawHtmlBlocks, [('foo', False)])\r
-\r
-    def testStoreMore(self):\r
-        """ Test HtmlStash.store with additional blocks. """\r
-        placeholder = self.stash.store('bar')\r
-        self.assertEqual(placeholder, self.stash.get_placeholder(1))\r
-        self.assertEqual(self.stash.html_counter, 2)\r
-        self.assertEqual(self.stash.rawHtmlBlocks, \r
-                        [('foo', False), ('bar', False)])\r
-\r
-    def testSafeStore(self):\r
-        """ Test HtmlStash.store with 'safe' html. """\r
-        self.stash.store('bar', True)\r
-        self.assertEqual(self.stash.rawHtmlBlocks, \r
-                        [('foo', False), ('bar', True)])\r
-\r
-    def testReset(self):\r
-        """ Test HtmlStash.reset. """\r
-        self.stash.reset()\r
-        self.assertEqual(self.stash.html_counter, 0)\r
-        self.assertEqual(self.stash.rawHtmlBlocks, [])\r
-\r
-class TestOrderedDict(unittest.TestCase):\r
-    """ Test OrderedDict storage class. """\r
-\r
-    def setUp(self):\r
-        self.odict = markdown.odict.OrderedDict()\r
-        self.odict['first'] = 'This'\r
-        self.odict['third'] = 'a'\r
-        self.odict['fourth'] = 'self'\r
-        self.odict['fifth'] = 'test'\r
-\r
-    def testValues(self):\r
-        """ Test output of OrderedDict.values(). """\r
-        self.assertEqual(list(self.odict.values()), ['This', 'a', 'self', 'test'])\r
-\r
-    def testKeys(self):\r
-        """ Test output of OrderedDict.keys(). """\r
-        self.assertEqual(list(self.odict.keys()),\r
-                    ['first', 'third', 'fourth', 'fifth'])\r
-\r
-    def testItems(self):\r
-        """ Test output of OrderedDict.items(). """\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('third', 'a'), \r
-                    ('fourth', 'self'), ('fifth', 'test')])\r
-\r
-    def testAddBefore(self):\r
-        """ Test adding an OrderedDict item before a given key. """\r
-        self.odict.add('second', 'is', '<third')\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('second', 'is'), ('third', 'a'), \r
-                    ('fourth', 'self'), ('fifth', 'test')])\r
-\r
-    def testAddAfter(self):\r
-        """ Test adding an OrderDict item after a given key. """\r
-        self.odict.add('second', 'is', '>first')\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('second', 'is'), ('third', 'a'), \r
-                    ('fourth', 'self'), ('fifth', 'test')])\r
-\r
-    def testAddAfterEnd(self):\r
-        """ Test adding an OrderedDict item after the last key. """\r
-        self.odict.add('sixth', '.', '>fifth')\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('third', 'a'), \r
-                    ('fourth', 'self'), ('fifth', 'test'), ('sixth', '.')])\r
-\r
-    def testAdd_begin(self):\r
-        """ Test adding an OrderedDict item using "_begin". """\r
-        self.odict.add('zero', 'CRAZY', '_begin')\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('zero', 'CRAZY'), ('first', 'This'), ('third', 'a'), \r
-                    ('fourth', 'self'), ('fifth', 'test')])\r
-\r
-    def testAdd_end(self):\r
-        """ Test adding an OrderedDict item using "_end". """\r
-        self.odict.add('sixth', '.', '_end')\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('third', 'a'), \r
-                    ('fourth', 'self'), ('fifth', 'test'), ('sixth', '.')])\r
-\r
-    def testAddBadLocation(self):\r
-        """ Test Error on bad location in OrderedDict.add(). """\r
-        self.assertRaises(ValueError, self.odict.add, 'sixth', '.', '<seventh')\r
-        self.assertRaises(ValueError, self.odict.add, 'second', 'is', 'third')\r
-\r
-    def testDeleteItem(self):\r
-        """ Test deletion of an OrderedDict item. """\r
-        del self.odict['fourth']\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('third', 'a'), ('fifth', 'test')])\r
-\r
-    def testChangeValue(self):\r
-        """ Test OrderedDict change value. """\r
-        self.odict['fourth'] = 'CRAZY'\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('third', 'a'), \r
-                    ('fourth', 'CRAZY'), ('fifth', 'test')])\r
-\r
-    def testChangeOrder(self):\r
-        """ Test OrderedDict change order. """\r
-        self.odict.link('fourth', '<third')\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('fourth', 'self'),\r
-                    ('third', 'a'), ('fifth', 'test')])\r
-\r
-    def textBadLink(self):\r
-        """ Test OrderedDict change order with bad location. """\r
-        self.assertRaises(ValueError, self.odict.link('fourth', '<bad'))\r
-        # Check for data integrity ("fourth" wasn't deleted).'\r
-        self.assertEqual(list(self.odict.items()),\r
-                    [('first', 'This'), ('third', 'a'), \r
-                    ('fourth', 'self'), ('fifth', 'test')])\r
-\r
-class TestErrors(unittest.TestCase):\r
-    """ Test Error Reporting. """\r
-\r
-    def setUp(self):\r
-        # Set warnings to be raised as errors\r
-        warnings.simplefilter('error')\r
-\r
-    def tearDown(self):\r
-        # Reset warning behavior back to default\r
-        warnings.simplefilter('default')\r
-\r
-    def testNonUnicodeSource(self):\r
-        """ Test falure on non-unicode source text. """\r
-        if sys.version_info < (3, 0):\r
-            source = "foo".encode('utf-16') \r
-            self.assertRaises(UnicodeDecodeError, markdown.markdown, source)\r
-\r
-    def testBadOutputFormat(self):\r
-        """ Test failure on bad output_format. """\r
-        self.assertRaises(KeyError, markdown.Markdown, output_format='invalid')\r
-\r
-    def testLoadExtensionFailure(self):\r
-        """ Test failure of an extension to load. """\r
-        self.assertRaises(ImportError, \r
-                        markdown.Markdown, extensions=['non_existant_ext']) \r
-\r
-    def testLoadBadExtension(self):\r
-        """ Test loading of an Extension with no makeExtension function. """\r
-        _create_fake_extension(name='fake', has_factory_func=False)\r
-        self.assertRaises(AttributeError, markdown.Markdown, extensions=['fake'])\r
-\r
-    def testNonExtension(self):\r
-        """ Test loading a non Extension object as an extension. """\r
-        _create_fake_extension(name='fake', is_wrong_type=True)\r
-        self.assertRaises(TypeError, markdown.Markdown, extensions=['fake'])\r
-\r
-    def testBaseExtention(self):\r
-        """ Test that the base Extension class will raise NotImplemented. """\r
-        _create_fake_extension(name='fake')\r
-        self.assertRaises(NotImplementedError, \r
-                        markdown.Markdown, extensions=['fake'])\r
-\r
-\r
-def _create_fake_extension(name, has_factory_func=True, is_wrong_type=False):\r
-    """ Create a fake extension module for testing. """\r
-    mod_name = '_'.join(['mdx', name])\r
-    if not PY3:\r
-        # mod_name must be bytes in Python 2.x\r
-        mod_name = bytes(mod_name)\r
-    ext_mod = types.ModuleType(mod_name)\r
-    def makeExtension(configs=None):\r
-        if is_wrong_type:\r
-            return object\r
-        else:\r
-            return markdown.extensions.Extension(configs=configs)\r
-    if has_factory_func:\r
-        ext_mod.makeExtension = makeExtension\r
-    # Warning: this brute forces the extenson module onto the system. Either \r
-    # this needs to be specificly overriden or a new python session needs to \r
-    # be started to get rid of this. This should be ok in a testing context.\r
-    sys.modules[mod_name] =  ext_mod\r
-\r
-\r
-class testETreeComments(unittest.TestCase):\r
-    """ \r
-    Test that ElementTree Comments work.\r
-\r
-    These tests should only be a concern when using cElementTree with third\r
-    party serializers (including markdown's (x)html serializer). While markdown\r
-    doesn't use ElementTree.Comment itself, we should certainly support any\r
-    third party extensions which may. Therefore, these tests are included to\r
-    ensure such support is maintained.\r
-    """\r
-\r
-    def setUp(self):\r
-        # Create comment node\r
-        self.comment = markdown.util.etree.Comment('foo')\r
-        if hasattr(markdown.util.etree, 'test_comment'):\r
-            self.test_comment = markdown.util.etree.test_comment\r
-        else:\r
-            self.test_comment = markdown.util.etree.Comment\r
-\r
-    def testCommentIsComment(self):\r
-        """ Test that an ElementTree Comment passes the `is Comment` test. """\r
-        self.assertTrue(self.comment.tag is markdown.util.etree.test_comment)\r
-\r
-    def testCommentIsBlockLevel(self):\r
-        """ Test that an ElementTree Comment is recognized as BlockLevel. """\r
-        self.assertFalse(markdown.util.isBlockLevel(self.comment.tag))\r
-\r
-    def testCommentSerialization(self):\r
-        """ Test that an ElementTree Comment serializes properly. """\r
-        self.assertEqual(markdown.serializers.to_html_string(self.comment),\r
-                    '<!--foo-->')\r
-\r
-    def testCommentPrettify(self):\r
-        """ Test that an ElementTree Comment is prettified properly. """\r
-        pretty = markdown.treeprocessors.PrettifyTreeprocessor()\r
-        pretty.run(self.comment)\r
-        self.assertEqual(markdown.serializers.to_html_string(self.comment),\r
-                    '<!--foo-->\n')\r
-\r
-\r
-class testSerializers(unittest.TestCase):\r
-    """ Test the html and xhtml serializers. """\r
-\r
-    def testHtml(self):\r
-        """ Test HTML serialization. """\r
-        el = markdown.util.etree.Element('div')\r
-        p = markdown.util.etree.SubElement(el, 'p')\r
-        p.text = 'foo'\r
-        hr = markdown.util.etree.SubElement(el, 'hr')\r
-        self.assertEqual(markdown.serializers.to_html_string(el),\r
-                    '<div><p>foo</p><hr></div>')\r
-\r
-    def testXhtml(self):\r
-        """" Test XHTML serialization. """\r
-        el = markdown.util.etree.Element('div')\r
-        p = markdown.util.etree.SubElement(el, 'p')\r
-        p.text = 'foo'\r
-        hr = markdown.util.etree.SubElement(el, 'hr')\r
-        self.assertEqual(markdown.serializers.to_xhtml_string(el),\r
-                    '<div><p>foo</p><hr /></div>')\r
-\r
-    def testMixedCaseTags(self):\r
-        """" Test preservation of tag case. """\r
-        el = markdown.util.etree.Element('MixedCase')\r
-        el.text = 'not valid '\r
-        em = markdown.util.etree.SubElement(el, 'EMPHASIS')\r
-        em.text = 'html'\r
-        hr = markdown.util.etree.SubElement(el, 'HR')\r
-        self.assertEqual(markdown.serializers.to_xhtml_string(el),\r
-                    '<MixedCase>not valid <EMPHASIS>html</EMPHASIS><HR /></MixedCase>')\r
-\r
-\r
-    def buildExtension(self):\r
-        """ Build an extension which registers fakeSerializer. """\r
-        def fakeSerializer(elem):\r
-            # Ignore input and return hardcoded output\r
-            return '<div><p>foo</p></div>'\r
-\r
-        class registerFakeSerializer(markdown.extensions.Extension):\r
-            def extendMarkdown(self, md, md_globals):\r
-                md.output_formats['fake'] = fakeSerializer\r
-\r
-        return registerFakeSerializer()\r
-\r
-    def testRegisterSerializer(self):\r
-        self.assertEqual(markdown.markdown('baz', \r
-                extensions=[self.buildExtension()], output_format='fake'),\r
-                    '<p>foo</p>')\r
-\r
-\r
-class testAtomicString(unittest.TestCase):\r
-    """ Test that AtomicStrings are honored (not parsed). """\r
-\r
-    def setUp(self):\r
-        md = markdown.Markdown()\r
-        self.inlineprocessor = md.treeprocessors['inline']\r
-\r
-    def testString(self):\r
-        """ Test that a regular string is parsed. """\r
-        tree = markdown.util.etree.Element('div')\r
-        p = markdown.util.etree.SubElement(tree, 'p')\r
-        p.text = 'some *text*'\r
-        new = self.inlineprocessor.run(tree)\r
-        self.assertEqual(markdown.serializers.to_html_string(new), \r
-                    '<div><p>some <em>text</em></p></div>')\r
-\r
-    def testSimpleAtomicString(self):\r
-        """ Test that a simple AtomicString is not parsed. """\r
-        tree = markdown.util.etree.Element('div')\r
-        p = markdown.util.etree.SubElement(tree, 'p')\r
-        p.text = markdown.util.AtomicString('some *text*')\r
-        new = self.inlineprocessor.run(tree)\r
-        self.assertEqual(markdown.serializers.to_html_string(new), \r
-                    '<div><p>some *text*</p></div>')\r
-\r
-    def testNestedAtomicString(self):\r
-        """ Test that a nested AtomicString is not parsed. """\r
-        tree = markdown.util.etree.Element('div')\r
-        p = markdown.util.etree.SubElement(tree, 'p')\r
-        p.text = markdown.util.AtomicString('*some* ')\r
-        span1 = markdown.util.etree.SubElement(p, 'span')\r
-        span1.text = markdown.util.AtomicString('*more* ')\r
-        span2 = markdown.util.etree.SubElement(span1, 'span')\r
-        span2.text = markdown.util.AtomicString('*text* ')\r
-        span3 = markdown.util.etree.SubElement(span2, 'span')\r
-        span3.text = markdown.util.AtomicString('*here*')\r
-        span3.tail = markdown.util.AtomicString(' *to*')\r
-        span2.tail = markdown.util.AtomicString(' *test*')\r
-        span1.tail = markdown.util.AtomicString(' *with*')\r
-        new = self.inlineprocessor.run(tree)\r
-        self.assertEqual(markdown.serializers.to_html_string(new), \r
-            '<div><p>*some* <span>*more* <span>*text* <span>*here*</span> '\r
-            '*to*</span> *test*</span> *with*</p></div>')\r
-\r
-class TestConfigParsing(unittest.TestCase):\r
-    def assertParses(self, value, result):\r
-        self.assertIs(markdown.util.parseBoolValue(value, False), result)\r
-\r
-    def testBooleansParsing(self):\r
-        self.assertParses(True, True)\r
-        self.assertParses('novalue', None)\r
-        self.assertParses('yES', True)\r
-        self.assertParses('FALSE', False)\r
-        self.assertParses(0., False)\r
-\r
-    def testInvalidBooleansParsing(self):\r
-        self.assertRaises(ValueError, markdown.util.parseBoolValue, 'novalue')\r
+#!/usr/bin/python
+"""
+Python-Markdown Regression Tests
+================================
+
+Tests of the various APIs with the python markdown lib.
+
+"""
+
+from __future__ import unicode_literals
+import unittest
+import sys
+import os
+import types
+import markdown
+import warnings
+from markdown.__main__ import parse_options
+from logging import DEBUG, INFO, CRITICAL
+import yaml
+import tempfile
+
+PY3 = sys.version_info[0] == 3
+
+class TestMarkdownBasics(unittest.TestCase):
+    """ Tests basics of the Markdown class. """
+
+    def setUp(self):
+        """ Create instance of Markdown. """
+        self.md = markdown.Markdown()
+
+    def testBlankInput(self):
+        """ Test blank input. """
+        self.assertEqual(self.md.convert(''), '')
+
+    def testWhitespaceOnly(self):
+        """ Test input of only whitespace. """
+        self.assertEqual(self.md.convert(' '), '')
+
+    def testSimpleInput(self):
+        """ Test simple input. """
+        self.assertEqual(self.md.convert('foo'), '<p>foo</p>')
+
+    def testInstanceExtension(self):
+        """ Test Extension loading with a class instance. """
+        from markdown.extensions.footnotes import FootnoteExtension
+        markdown.Markdown(extensions=[FootnoteExtension()])
+
+    def testNamedExtension(self):
+        """ Test Extension loading with Name (`path.to.module`). """
+        markdown.Markdown(extensions=['markdown.extensions.footnotes'])
+
+    def TestNamedExtensionWithClass(self):
+        """ Test Extension loading with class name (`path.to.module:Class`). """
+        markdown.Markdown(extensions=['markdown.extensions.footnotes:FootnoteExtension'])
+
+class TestBlockParser(unittest.TestCase):
+    """ Tests of the BlockParser class. """
+
+    def setUp(self):
+        """ Create instance of BlockParser. """
+        self.parser = markdown.Markdown().parser
+
+    def testParseChunk(self):
+        """ Test BlockParser.parseChunk. """
+        root = markdown.util.etree.Element("div")
+        text = 'foo'
+        self.parser.parseChunk(root, text)
+        self.assertEqual(markdown.serializers.to_xhtml_string(root), 
+                         "<div><p>foo</p></div>")
+
+    def testParseDocument(self):
+        """ Test BlockParser.parseDocument. """
+        lines = ['#foo', '', 'bar', '', '    baz']
+        tree = self.parser.parseDocument(lines)
+        self.assertTrue(isinstance(tree, markdown.util.etree.ElementTree))
+        self.assertTrue(markdown.util.etree.iselement(tree.getroot()))
+        self.assertEqual(markdown.serializers.to_xhtml_string(tree.getroot()),
+            "<div><h1>foo</h1><p>bar</p><pre><code>baz\n</code></pre></div>")
+
+
+class TestBlockParserState(unittest.TestCase):
+    """ Tests of the State class for BlockParser. """
+
+    def setUp(self):
+        self.state = markdown.blockparser.State()
+
+    def testBlankState(self):
+        """ Test State when empty. """
+        self.assertEqual(self.state, [])
+
+    def testSetSate(self):
+        """ Test State.set(). """
+        self.state.set('a_state')
+        self.assertEqual(self.state, ['a_state'])
+        self.state.set('state2')
+        self.assertEqual(self.state, ['a_state', 'state2'])
+
+    def testIsSate(self):
+        """ Test State.isstate(). """
+        self.assertEqual(self.state.isstate('anything'), False)
+        self.state.set('a_state')
+        self.assertEqual(self.state.isstate('a_state'), True)
+        self.state.set('state2')
+        self.assertEqual(self.state.isstate('state2'), True)
+        self.assertEqual(self.state.isstate('a_state'), False)
+        self.assertEqual(self.state.isstate('missing'), False)
+
+    def testReset(self):
+        """ Test State.reset(). """
+        self.state.set('a_state')
+        self.state.reset()
+        self.assertEqual(self.state, [])
+        self.state.set('state1')
+        self.state.set('state2')
+        self.state.reset()
+        self.assertEqual(self.state, ['state1'])
+
+class TestHtmlStash(unittest.TestCase):
+    """ Test Markdown's HtmlStash. """
+    
+    def setUp(self):
+        self.stash = markdown.util.HtmlStash()
+        self.placeholder = self.stash.store('foo')
+
+    def testSimpleStore(self):
+        """ Test HtmlStash.store. """
+        self.assertEqual(self.placeholder, self.stash.get_placeholder(0))
+        self.assertEqual(self.stash.html_counter, 1)
+        self.assertEqual(self.stash.rawHtmlBlocks, [('foo', False)])
+
+    def testStoreMore(self):
+        """ Test HtmlStash.store with additional blocks. """
+        placeholder = self.stash.store('bar')
+        self.assertEqual(placeholder, self.stash.get_placeholder(1))
+        self.assertEqual(self.stash.html_counter, 2)
+        self.assertEqual(self.stash.rawHtmlBlocks, 
+                        [('foo', False), ('bar', False)])
+
+    def testSafeStore(self):
+        """ Test HtmlStash.store with 'safe' html. """
+        self.stash.store('bar', True)
+        self.assertEqual(self.stash.rawHtmlBlocks, 
+                        [('foo', False), ('bar', True)])
+
+    def testReset(self):
+        """ Test HtmlStash.reset. """
+        self.stash.reset()
+        self.assertEqual(self.stash.html_counter, 0)
+        self.assertEqual(self.stash.rawHtmlBlocks, [])
+
+    def testUnsafeHtmlInSafeMode(self):
+        """ Test that unsafe HTML gets escaped in safe_mode. """
+        output = markdown.markdown('foo', extensions=[self.build_extension()], safe_mode='escape')
+        self.assertEqual(output, '<p>&lt;script&gt;print(&quot;evil&quot;)&lt;/script&gt;</p>')
+
+    def build_extension(self):
+        """ Build an extention that addes unsafe html to Stash in same_mode. """
+        class Unsafe(markdown.treeprocessors.Treeprocessor):
+            def run(self, root):
+                el = root.find('p')
+                el.text = self.markdown.htmlStash.store('<script>print("evil")</script>', safe=False)
+                return root
+
+        class StoreUnsafeHtml(markdown.extensions.Extension):
+            def extendMarkdown(self, md, md_globals):
+                md.treeprocessors.add('unsafe', Unsafe(md), '_end')
+
+        return StoreUnsafeHtml()
+
+
+class TestOrderedDict(unittest.TestCase):
+    """ Test OrderedDict storage class. """
+
+    def setUp(self):
+        self.odict = markdown.odict.OrderedDict()
+        self.odict['first'] = 'This'
+        self.odict['third'] = 'a'
+        self.odict['fourth'] = 'self'
+        self.odict['fifth'] = 'test'
+
+    def testValues(self):
+        """ Test output of OrderedDict.values(). """
+        self.assertEqual(list(self.odict.values()), ['This', 'a', 'self', 'test'])
+
+    def testKeys(self):
+        """ Test output of OrderedDict.keys(). """
+        self.assertEqual(list(self.odict.keys()),
+                    ['first', 'third', 'fourth', 'fifth'])
+
+    def testItems(self):
+        """ Test output of OrderedDict.items(). """
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('third', 'a'), 
+                    ('fourth', 'self'), ('fifth', 'test')])
+
+    def testAddBefore(self):
+        """ Test adding an OrderedDict item before a given key. """
+        self.odict.add('second', 'is', '<third')
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('second', 'is'), ('third', 'a'), 
+                    ('fourth', 'self'), ('fifth', 'test')])
+
+    def testAddAfter(self):
+        """ Test adding an OrderDict item after a given key. """
+        self.odict.add('second', 'is', '>first')
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('second', 'is'), ('third', 'a'), 
+                    ('fourth', 'self'), ('fifth', 'test')])
+
+    def testAddAfterEnd(self):
+        """ Test adding an OrderedDict item after the last key. """
+        self.odict.add('sixth', '.', '>fifth')
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('third', 'a'), 
+                    ('fourth', 'self'), ('fifth', 'test'), ('sixth', '.')])
+
+    def testAdd_begin(self):
+        """ Test adding an OrderedDict item using "_begin". """
+        self.odict.add('zero', 'CRAZY', '_begin')
+        self.assertEqual(list(self.odict.items()),
+                    [('zero', 'CRAZY'), ('first', 'This'), ('third', 'a'), 
+                    ('fourth', 'self'), ('fifth', 'test')])
+
+    def testAdd_end(self):
+        """ Test adding an OrderedDict item using "_end". """
+        self.odict.add('sixth', '.', '_end')
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('third', 'a'), 
+                    ('fourth', 'self'), ('fifth', 'test'), ('sixth', '.')])
+
+    def testAddBadLocation(self):
+        """ Test Error on bad location in OrderedDict.add(). """
+        self.assertRaises(ValueError, self.odict.add, 'sixth', '.', '<seventh')
+        self.assertRaises(ValueError, self.odict.add, 'second', 'is', 'third')
+
+    def testDeleteItem(self):
+        """ Test deletion of an OrderedDict item. """
+        del self.odict['fourth']
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('third', 'a'), ('fifth', 'test')])
+
+    def testChangeValue(self):
+        """ Test OrderedDict change value. """
+        self.odict['fourth'] = 'CRAZY'
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('third', 'a'), 
+                    ('fourth', 'CRAZY'), ('fifth', 'test')])
+
+    def testChangeOrder(self):
+        """ Test OrderedDict change order. """
+        self.odict.link('fourth', '<third')
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('fourth', 'self'),
+                    ('third', 'a'), ('fifth', 'test')])
+
+    def textBadLink(self):
+        """ Test OrderedDict change order with bad location. """
+        self.assertRaises(ValueError, self.odict.link('fourth', '<bad'))
+        # Check for data integrity ("fourth" wasn't deleted).'
+        self.assertEqual(list(self.odict.items()),
+                    [('first', 'This'), ('third', 'a'), 
+                    ('fourth', 'self'), ('fifth', 'test')])
+
+class TestErrors(unittest.TestCase):
+    """ Test Error Reporting. """
+
+    def setUp(self):
+        # Set warnings to be raised as errors
+        warnings.simplefilter('error')
+
+    def tearDown(self):
+        # Reset warning behavior back to default
+        warnings.simplefilter('default')
+
+    def testNonUnicodeSource(self):
+        """ Test falure on non-unicode source text. """
+        if sys.version_info < (3, 0):
+            source = "foo".encode('utf-16') 
+            self.assertRaises(UnicodeDecodeError, markdown.markdown, source)
+
+    def testBadOutputFormat(self):
+        """ Test failure on bad output_format. """
+        self.assertRaises(KeyError, markdown.Markdown, output_format='invalid')
+
+    def testLoadExtensionFailure(self):
+        """ Test failure of an extension to load. """
+        self.assertRaises(ImportError, 
+                        markdown.Markdown, extensions=['non_existant_ext']) 
+
+    def testLoadBadExtension(self):
+        """ Test loading of an Extension with no makeExtension function. """
+        _create_fake_extension(name='fake_a', has_factory_func=False)
+        self.assertRaises(AttributeError, markdown.Markdown, extensions=['fake_a'])
+
+    def testNonExtension(self):
+        """ Test loading a non Extension object as an extension. """
+        _create_fake_extension(name='fake_b', is_wrong_type=True)
+        self.assertRaises(TypeError, markdown.Markdown, extensions=['fake_b'])
+
+    def testBaseExtention(self):
+        """ Test that the base Extension class will raise NotImplemented. """
+        _create_fake_extension(name='fake_c')
+        self.assertRaises(NotImplementedError, 
+                        markdown.Markdown, extensions=['fake_c'])
+
+    def testMdxExtention(self):
+        """ Test that appending mdx_ raises a PendingDeprecationWarning. """
+        _create_fake_extension(name='fake_d', use_old_style=True)
+        self.assertRaises(PendingDeprecationWarning, 
+                        markdown.Markdown, extensions=['fake_d'])
+
+    def testShortNameExtention(self):
+        """ Test that using a short name raises a PendingDeprecationWarning. """
+        self.assertRaises(PendingDeprecationWarning, 
+                        markdown.Markdown, extensions=['footnotes'])
+
+    def testStringConfigExtention(self):
+        """ Test that passing configs to an Extension in the name raises a PendingDeprecationWarning. """
+        self.assertRaises(PendingDeprecationWarning, 
+                        markdown.Markdown, extensions=['markdown.extension.footnotes(PLACE_MARKER=FOO)'])
+
+
+def _create_fake_extension(name, has_factory_func=True, is_wrong_type=False, use_old_style=False):
+    """ Create a fake extension module for testing. """
+    if use_old_style:
+        mod_name = '_'.join(['mdx', name])
+    else:
+        mod_name = name
+    if not PY3:
+        # mod_name must be bytes in Python 2.x
+        mod_name = bytes(mod_name)
+    ext_mod = types.ModuleType(mod_name)
+    def makeExtension(*args, **kwargs):
+        if is_wrong_type:
+            return object
+        else:
+            return markdown.extensions.Extension(*args, **kwargs)
+    if has_factory_func:
+        ext_mod.makeExtension = makeExtension
+    # Warning: this brute forces the extenson module onto the system. Either 
+    # this needs to be specificly overriden or a new python session needs to 
+    # be started to get rid of this. This should be ok in a testing context.
+    sys.modules[mod_name] =  ext_mod
+
+
+class testETreeComments(unittest.TestCase):
+    """ 
+    Test that ElementTree Comments work.
+
+    These tests should only be a concern when using cElementTree with third
+    party serializers (including markdown's (x)html serializer). While markdown
+    doesn't use ElementTree.Comment itself, we should certainly support any
+    third party extensions which may. Therefore, these tests are included to
+    ensure such support is maintained.
+    """
+
+    def setUp(self):
+        # Create comment node
+        self.comment = markdown.util.etree.Comment('foo')
+        if hasattr(markdown.util.etree, 'test_comment'):
+            self.test_comment = markdown.util.etree.test_comment
+        else:
+            self.test_comment = markdown.util.etree.Comment
+
+    def testCommentIsComment(self):
+        """ Test that an ElementTree Comment passes the `is Comment` test. """
+        self.assertTrue(self.comment.tag is markdown.util.etree.test_comment)
+
+    def testCommentIsBlockLevel(self):
+        """ Test that an ElementTree Comment is recognized as BlockLevel. """
+        self.assertFalse(markdown.util.isBlockLevel(self.comment.tag))
+
+    def testCommentSerialization(self):
+        """ Test that an ElementTree Comment serializes properly. """
+        self.assertEqual(markdown.serializers.to_html_string(self.comment),
+                    '<!--foo-->')
+
+    def testCommentPrettify(self):
+        """ Test that an ElementTree Comment is prettified properly. """
+        pretty = markdown.treeprocessors.PrettifyTreeprocessor()
+        pretty.run(self.comment)
+        self.assertEqual(markdown.serializers.to_html_string(self.comment),
+                    '<!--foo-->\n')
+
+
+class testSerializers(unittest.TestCase):
+    """ Test the html and xhtml serializers. """
+
+    def testHtml(self):
+        """ Test HTML serialization. """
+        el = markdown.util.etree.Element('div')
+        p = markdown.util.etree.SubElement(el, 'p')
+        p.text = 'foo'
+        hr = markdown.util.etree.SubElement(el, 'hr')
+        self.assertEqual(markdown.serializers.to_html_string(el),
+                    '<div><p>foo</p><hr></div>')
+
+    def testXhtml(self):
+        """" Test XHTML serialization. """
+        el = markdown.util.etree.Element('div')
+        p = markdown.util.etree.SubElement(el, 'p')
+        p.text = 'foo'
+        hr = markdown.util.etree.SubElement(el, 'hr')
+        self.assertEqual(markdown.serializers.to_xhtml_string(el),
+                    '<div><p>foo</p><hr /></div>')
+
+    def testMixedCaseTags(self):
+        """" Test preservation of tag case. """
+        el = markdown.util.etree.Element('MixedCase')
+        el.text = 'not valid '
+        em = markdown.util.etree.SubElement(el, 'EMPHASIS')
+        em.text = 'html'
+        hr = markdown.util.etree.SubElement(el, 'HR')
+        self.assertEqual(markdown.serializers.to_xhtml_string(el),
+                    '<MixedCase>not valid <EMPHASIS>html</EMPHASIS><HR /></MixedCase>')
+
+
+    def buildExtension(self):
+        """ Build an extension which registers fakeSerializer. """
+        def fakeSerializer(elem):
+            # Ignore input and return hardcoded output
+            return '<div><p>foo</p></div>'
+
+        class registerFakeSerializer(markdown.extensions.Extension):
+            def extendMarkdown(self, md, md_globals):
+                md.output_formats['fake'] = fakeSerializer
+
+        return registerFakeSerializer()
+
+    def testRegisterSerializer(self):
+        self.assertEqual(markdown.markdown('baz', 
+                extensions=[self.buildExtension()], output_format='fake'),
+                    '<p>foo</p>')
+
+
+class testAtomicString(unittest.TestCase):
+    """ Test that AtomicStrings are honored (not parsed). """
+
+    def setUp(self):
+        md = markdown.Markdown()
+        self.inlineprocessor = md.treeprocessors['inline']
+
+    def testString(self):
+        """ Test that a regular string is parsed. """
+        tree = markdown.util.etree.Element('div')
+        p = markdown.util.etree.SubElement(tree, 'p')
+        p.text = 'some *text*'
+        new = self.inlineprocessor.run(tree)
+        self.assertEqual(markdown.serializers.to_html_string(new), 
+                    '<div><p>some <em>text</em></p></div>')
+
+    def testSimpleAtomicString(self):
+        """ Test that a simple AtomicString is not parsed. """
+        tree = markdown.util.etree.Element('div')
+        p = markdown.util.etree.SubElement(tree, 'p')
+        p.text = markdown.util.AtomicString('some *text*')
+        new = self.inlineprocessor.run(tree)
+        self.assertEqual(markdown.serializers.to_html_string(new), 
+                    '<div><p>some *text*</p></div>')
+
+    def testNestedAtomicString(self):
+        """ Test that a nested AtomicString is not parsed. """
+        tree = markdown.util.etree.Element('div')
+        p = markdown.util.etree.SubElement(tree, 'p')
+        p.text = markdown.util.AtomicString('*some* ')
+        span1 = markdown.util.etree.SubElement(p, 'span')
+        span1.text = markdown.util.AtomicString('*more* ')
+        span2 = markdown.util.etree.SubElement(span1, 'span')
+        span2.text = markdown.util.AtomicString('*text* ')
+        span3 = markdown.util.etree.SubElement(span2, 'span')
+        span3.text = markdown.util.AtomicString('*here*')
+        span3.tail = markdown.util.AtomicString(' *to*')
+        span2.tail = markdown.util.AtomicString(' *test*')
+        span1.tail = markdown.util.AtomicString(' *with*')
+        new = self.inlineprocessor.run(tree)
+        self.assertEqual(markdown.serializers.to_html_string(new), 
+            '<div><p>*some* <span>*more* <span>*text* <span>*here*</span> '
+            '*to*</span> *test*</span> *with*</p></div>')
+
+class TestConfigParsing(unittest.TestCase):
+    def assertParses(self, value, result):
+        self.assertTrue(markdown.util.parseBoolValue(value, False) is result)
+
+    def testBooleansParsing(self):
+        self.assertParses(True, True)
+        self.assertParses('novalue', None)
+        self.assertParses('yES', True)
+        self.assertParses('FALSE', False)
+        self.assertParses(0., False)
+        self.assertParses('none', False)
+
+    def testPreserveNone(self):
+        self.assertTrue(markdown.util.parseBoolValue('None', preserve_none=True) is None)
+        self.assertTrue(markdown.util.parseBoolValue(None, preserve_none=True) is None)
+
+    def testInvalidBooleansParsing(self):
+        self.assertRaises(ValueError, markdown.util.parseBoolValue, 'novalue')
+
+class TestCliOptionParsing(unittest.TestCase):
+    """ Test parsing of Command Line Interface Options. """
+
+    def setUp(self):
+        self.default_options = {
+            'input': None,
+            'output': None,
+            'encoding': None,
+            'safe_mode': False,
+            'output_format': 'xhtml1',
+            'lazy_ol': True,
+            'extensions': [],
+            'extension_configs': {},  
+        }
+        self.tempfile = ''
+
+    def tearDown(self):
+        if os.path.isfile(self.tempfile):
+            os.remove(self.tempfile)
+
+    def testNoOptions(self):
+        options, logging_level = parse_options([])
+        self.assertEqual(options, self.default_options)
+        self.assertEqual(logging_level, CRITICAL)
+    
+    def testQuietOption(self):
+        options, logging_level = parse_options(['-q'])
+        self.assertTrue(logging_level > CRITICAL)
+
+    def testVerboseOption(self):
+        options, logging_level = parse_options(['-v'])
+        self.assertEqual(logging_level, INFO)
+
+    def testNoisyOption(self):
+        options, logging_level = parse_options(['--noisy'])
+        self.assertEqual(logging_level, DEBUG)
+
+    def testInputFileOption(self):
+        options, logging_level = parse_options(['foo.txt'])
+        self.default_options['input'] = 'foo.txt'
+        self.assertEqual(options, self.default_options)
+
+    def testOutputFileOption(self):
+        options, logging_level = parse_options(['-f', 'foo.html'])
+        self.default_options['output'] = 'foo.html'
+        self.assertEqual(options, self.default_options)
+
+    def testInputAndOutputFileOptions(self):
+        options, logging_level = parse_options(['-f', 'foo.html', 'foo.txt'])
+        self.default_options['output'] = 'foo.html'
+        self.default_options['input'] = 'foo.txt'
+        self.assertEqual(options, self.default_options)
+
+    def testEncodingOption(self):
+        options, logging_level = parse_options(['-e', 'utf-8'])
+        self.default_options['encoding'] = 'utf-8'
+        self.assertEqual(options, self.default_options)
+
+    def testSafeModeOption(self):
+        options, logging_level = parse_options(['-s', 'escape'])
+        self.default_options['safe_mode'] = 'escape'
+        self.assertEqual(options, self.default_options)
+
+    def testOutputFormatOption(self):
+        options, logging_level = parse_options(['-o', 'html5'])
+        self.default_options['output_format'] = 'html5'
+        self.assertEqual(options, self.default_options)
+
+    def testNoLazyOlOption(self):
+        options, logging_level = parse_options(['-n'])
+        self.default_options['lazy_ol'] = False
+        self.assertEqual(options, self.default_options)
+
+    def testExtensionOption(self):
+        options, logging_level = parse_options(['-x', 'markdown.extensions.footnotes'])
+        self.default_options['extensions'] = ['markdown.extensions.footnotes']
+        self.assertEqual(options, self.default_options)
+
+    def testMultipleExtensionOptions(self):
+        options, logging_level = parse_options(['-x', 'markdown.extensions.footnotes', 
+                                                '-x', 'markdown.extensions.smarty'])
+        self.default_options['extensions'] = ['markdown.extensions.footnotes', 
+                                              'markdown.extensions.smarty']
+        self.assertEqual(options, self.default_options)
+
+    def create_config_file(self, config):
+        """ Helper to create temp config files. """
+        if not isinstance(config, markdown.util.string_type):
+            # convert to string
+            config = yaml.dump(config)
+        fd, self.tempfile = tempfile.mkstemp('.yml')
+        with os.fdopen(fd, 'w') as fp:
+            fp.write(config)
+
+    def testExtensonConfigOption(self):
+        config = {
+        'markdown.extensions.wikilinks': {
+            'base_url': 'http://example.com/',
+            'end_url': '.html',
+            'html_class': 'test',
+            },
+        'markdown.extensions.footnotes:FootnotesExtension': {
+            'PLACE_MARKER': '~~~footnotes~~~'
+            }
+        }
+        self.create_config_file(config)
+        options, logging_level = parse_options(['-c', self.tempfile])
+        self.default_options['extension_configs'] = config
+        self.assertEqual(options, self.default_options)
+
+    def testExtensonConfigOptionAsJSON(self):
+        config = {
+        'markdown.extensions.wikilinks': {
+            'base_url': 'http://example.com/',
+            'end_url': '.html',
+            'html_class': 'test',
+            },
+        'markdown.extensions.footnotes:FootnotesExtension': {
+            'PLACE_MARKER': '~~~footnotes~~~'
+            }
+        }
+        import json
+        self.create_config_file(json.dumps(config))
+        options, logging_level = parse_options(['-c', self.tempfile])
+        self.default_options['extension_configs'] = config
+        self.assertEqual(options, self.default_options)
+
+    def testExtensonConfigOptionMissingFile(self):
+        self.assertRaises(IOError, parse_options, ['-c', 'missing_file.yaml'])
+
+    def testExtensonConfigOptionBadFormat(self):
+        config = """
+[footnotes] 
+PLACE_MARKER= ~~~footnotes~~~
+"""
+        self.create_config_file(config)
+        self.assertRaises(yaml.YAMLError, parse_options, ['-c', self.tempfile])
\ No newline at end of file
index e59e126feff860c1aedad571cafa15c3ecbdf91e..a21fd94d2f9a74db81f823d7310603f57f996b35 100644 (file)
-"""\r
-Python-Markdown Extension Regression Tests\r
-==========================================\r
-\r
-A collection of regression tests to confirm that the included extensions\r
-continue to work as advertised. This used to be accomplished by doctests.\r
-\r
-"""\r
-\r
-from __future__ import unicode_literals\r
-import unittest\r
-import markdown\r
-\r
-class TestAbbr(unittest.TestCase):\r
-    """ Test abbr extension. """\r
-\r
-    def setUp(self):\r
-        self.md = markdown.Markdown(extensions=['abbr'])\r
-\r
-    def testSimpleAbbr(self):\r
-        """ Test Abbreviations. """\r
-        text = 'Some text with an ABBR and a REF. Ignore REFERENCE and ref.' + \\r
-               '\n\n*[ABBR]: Abbreviation\n' + \\r
-               '*[REF]: Abbreviation Reference'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<p>Some text with an <abbr title="Abbreviation">ABBR</abbr> '\r
-            'and a <abbr title="Abbreviation Reference">REF</abbr>. Ignore '\r
-            'REFERENCE and ref.</p>')\r
-\r
-    def testNestedAbbr(self):\r
-        """ Test Nested Abbreviations. """\r
-        text = '[ABBR](/foo) and _ABBR_\n\n' + \\r
-               '*[ABBR]: Abreviation'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<p><a href="/foo"><abbr title="Abreviation">ABBR</abbr></a> '\r
-            'and <em><abbr title="Abreviation">ABBR</abbr></em></p>')\r
-\r
-\r
-class TestCodeHilite(unittest.TestCase):\r
-    """ Test codehilite extension. """\r
-\r
-    def setUp(self):\r
-        self.has_pygments = True\r
-        try:\r
-            import pygments\r
-        except ImportError:\r
-            self.has_pygments = False\r
-\r
-    def testBasicCodeHilite(self):\r
-        text = '\t# A Code Comment'\r
-        md = markdown.Markdown(extensions=['codehilite'])\r
-        if self.has_pygments:\r
-            self.assertEqual(md.convert(text),\r
-                '<div class="codehilite">'\r
-                '<pre><span class="c"># A Code Comment</span>\n'\r
-                '</pre></div>')\r
-        else:\r
-            self.assertEqual(md.convert(text),\r
-                '<pre class="codehilite"><code># A Code Comment'\r
-                '</code></pre>')\r
-    \r
-    def testLinenumsTrue(self):\r
-        text = '\t# A Code Comment'\r
-        md = markdown.Markdown(extensions=['codehilite(linenums=True)'])\r
-        if self.has_pygments:\r
-            # Differant versions of pygments output slightly different markup.\r
-            # So we use 'startwith' and test just enough to confirm that \r
-            # pygments received and processed linenums.\r
-            self.assertTrue(md.convert(text).startswith(\r
-                '<table class="codehilitetable"><tr><td class="linenos">'))\r
-        else:\r
-            self.assertEqual(md.convert(text),\r
-                '<pre class="codehilite"><code class="linenums"># A Code Comment'\r
-                '</code></pre>')\r
-\r
-    def testLinenumsFalse(self):\r
-        text = '\t#!Python\n\t# A Code Comment'\r
-        md = markdown.Markdown(extensions=['codehilite(linenums=False)'])\r
-        if self.has_pygments:\r
-            self.assertEqual(md.convert(text),\r
-                '<div class="codehilite">'\r
-                '<pre><span class="c"># A Code Comment</span>\n'\r
-                '</pre></div>')\r
-        else:\r
-            self.assertEqual(md.convert(text),\r
-                '<pre class="codehilite"><code class="language-python"># A Code Comment'\r
-                '</code></pre>')\r
-\r
-    def testLinenumsNone(self):\r
-        text = '\t# A Code Comment'\r
-        md = markdown.Markdown(extensions=['codehilite(linenums=None)'])\r
-        if self.has_pygments:\r
-            self.assertEqual(md.convert(text),\r
-                '<div class="codehilite">'\r
-                '<pre><span class="c"># A Code Comment</span>\n'\r
-                '</pre></div>')\r
-        else:\r
-            self.assertEqual(md.convert(text),\r
-                '<pre class="codehilite"><code># A Code Comment'\r
-                '</code></pre>')\r
-\r
-    def testLinenumsNoneWithShebang(self):\r
-        text = '\t#!Python\n\t# A Code Comment'\r
-        md = markdown.Markdown(extensions=['codehilite(linenums=None)'])\r
-        if self.has_pygments:\r
-            # Differant versions of pygments output slightly different markup.\r
-            # So we use 'startwith' and test just enough to confirm that \r
-            # pygments received and processed linenums.\r
-            self.assertTrue(md.convert(text).startswith(\r
-                '<table class="codehilitetable"><tr><td class="linenos">'))\r
-        else:\r
-            self.assertEqual(md.convert(text),\r
-                '<pre class="codehilite"><code class="language-python linenums"># A Code Comment'\r
-                '</code></pre>')\r
-\r
-    def testLinenumsNoneWithColon(self):\r
-        text = '\t:::Python\n\t# A Code Comment'\r
-        md = markdown.Markdown(extensions=['codehilite(linenums=None)'])\r
-        if self.has_pygments:\r
-            self.assertEqual(md.convert(text),\r
-                '<div class="codehilite">'\r
-                '<pre><span class="c"># A Code Comment</span>\n'\r
-                '</pre></div>')\r
-        else:\r
-            self.assertEqual(md.convert(text),\r
-                '<pre class="codehilite"><code class="language-python"># A Code Comment'\r
-                '</code></pre>')\r
-\r
-    def testHighlightLinesWithColon(self):\r
-        # Test with hl_lines delimited by single or double quotes.\r
-        text0 = '\t:::Python hl_lines="2"\n\t#line 1\n\t#line 2\n\t#line 3'\r
-        text1 = "\t:::Python hl_lines='2'\n\t#line 1\n\t#line 2\n\t#line 3"\r
-\r
-        for text in (text0, text1):\r
-            md = markdown.Markdown(extensions=['codehilite'])\r
-            if self.has_pygments:\r
-                self.assertEqual(md.convert(text),\r
-                    '<div class="codehilite"><pre>'\r
-                    '<span class="c">#line 1</span>\n'\r
-                    '<span class="hll"><span class="c">#line 2</span>\n</span>'\r
-                    '<span class="c">#line 3</span>\n'\r
-                    '</pre></div>')\r
-            else:\r
-                self.assertEqual(md.convert(text),\r
-                    '<pre class="codehilite">'\r
-                    '<code class="language-python">#line 1\n'\r
-                    '#line 2\n'\r
-                    '#line 3</code></pre>')\r
-\r
-class TestFencedCode(unittest.TestCase):\r
-    """ Test fenced_code extension. """\r
-\r
-    def setUp(self):\r
-        self.md = markdown.Markdown(extensions=['fenced_code'])\r
-        self.has_pygments = True\r
-        try:\r
-            import pygments\r
-        except ImportError:\r
-            self.has_pygments = False\r
-\r
-    def testBasicFence(self):\r
-        """ Test Fenced Code Blocks. """\r
-        text = '''\r
-A paragraph before a fenced code block:\r
-\r
-~~~\r
-Fenced code block\r
-~~~'''\r
-        self.assertEqual(self.md.convert(text),\r
-            '<p>A paragraph before a fenced code block:</p>\n'\r
-            '<pre><code>Fenced code block\n'\r
-            '</code></pre>')\r
-\r
-    def testSafeFence(self):\r
-        """ Test Fenced Code with safe_mode. """\r
-        text = '~~~\nCode\n~~~'\r
-        self.md.safeMode = 'replace'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<pre><code>Code\n'\r
-            '</code></pre>')\r
-\r
-    def testNestedFence(self):\r
-        """ Test nested fence. """\r
-\r
-        text = '''\r
-~~~~~~~~\r
-\r
-~~~~\r
-~~~~~~~~'''\r
-        self.assertEqual(self.md.convert(text),\r
-            '<pre><code>\n'\r
-            '~~~~\n'\r
-            '</code></pre>')\r
-\r
-    def testFencedLanguage(self):\r
-        """ Test Language Tags. """\r
-\r
-        text = '''\r
-~~~~{.python}\r
-# Some python code\r
-~~~~'''\r
-        self.assertEqual(self.md.convert(text),\r
-            '<pre><code class="python"># Some python code\n'\r
-            '</code></pre>')\r
-\r
-    def testFencedBackticks(self):\r
-        """ Test Code Fenced with Backticks. """\r
-\r
-        text = '''\r
-`````\r
-# Arbitrary code\r
-~~~~~ # these tildes will not close the block\r
-`````'''\r
-        self.assertEqual(self.md.convert(text),\r
-        '<pre><code># Arbitrary code\n'\r
-        '~~~~~ # these tildes will not close the block\n'\r
-        '</code></pre>')\r
-\r
-    def testFencedCodeWithHighlightLines(self):\r
-        """ Test Fenced Code with Highlighted Lines. """\r
-\r
-        text = '''\r
-```hl_lines="1 3"\r
-line 1\r
-line 2\r
-line 3\r
-```'''\r
-        md = markdown.Markdown(extensions=[\r
-            'codehilite(linenums=None,guess_lang=False)',\r
-            'fenced_code'])\r
-\r
-        if self.has_pygments:\r
-            self.assertEqual(md.convert(text),\r
-                '<div class="codehilite"><pre>'\r
-                '<span class="hll">line 1\n</span>'\r
-                'line 2\n'\r
-                '<span class="hll">line 3\n</span>'\r
-                '</pre></div>')\r
-        else:\r
-            self.assertEqual(md.convert(text),\r
-                '<pre class="codehilite"><code>line 1\n'\r
-                'line 2\n'\r
-                'line 3</code></pre>')\r
-\r
-    def testFencedLanguageAndHighlightLines(self):\r
-        """ Test Fenced Code with Highlighted Lines. """\r
-\r
-        text0 = '''\r
-```.python hl_lines="1 3"\r
-#line 1\r
-#line 2\r
-#line 3\r
-```'''\r
-        text1 = '''\r
-~~~{.python hl_lines='1 3'}\r
-#line 1\r
-#line 2\r
-#line 3\r
-~~~'''\r
-        for text in (text0, text1):\r
-            md = markdown.Markdown(extensions=[\r
-                'codehilite(linenums=None,guess_lang=False)',\r
-                'fenced_code'])\r
-\r
-            if self.has_pygments:\r
-                self.assertEqual(md.convert(text),\r
-                    '<div class="codehilite"><pre>'\r
-                    '<span class="hll"><span class="c">#line 1</span>\n</span>'\r
-                    '<span class="c">#line 2</span>\n'\r
-                    '<span class="hll"><span class="c">#line 3</span>\n</span>'\r
-                    '</pre></div>')\r
-            else:\r
-                self.assertEqual(md.convert(text),\r
-                    '<pre class="codehilite"><code class="language-python">#line 1\n'\r
-                    '#line 2\n'\r
-                    '#line 3</code></pre>')\r
-\r
-class TestHeaderId(unittest.TestCase):\r
-    """ Test HeaderId Extension. """\r
-\r
-    def setUp(self):\r
-        self.md = markdown.Markdown(extensions=['headerid'])\r
-\r
-    def testBasicHeaderId(self):\r
-        """ Test Basic HeaderID """\r
-\r
-        text = "# Some Header #"\r
-        self.assertEqual(self.md.convert(text),\r
-            '<h1 id="some-header">Some Header</h1>')\r
-\r
-    def testUniqueFunc(self):\r
-        """ Test 'unique' function. """\r
-        from markdown.extensions.headerid import unique\r
-        ids = set(['foo'])\r
-        self.assertEqual(unique('foo', ids), 'foo_1')\r
-        self.assertEqual(ids, set(['foo', 'foo_1']))\r
-\r
-    def testUniqueIds(self):\r
-        """ Test Unique IDs. """\r
-\r
-        text = '#Header\n#Header\n#Header'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<h1 id="header">Header</h1>\n'\r
-            '<h1 id="header_1">Header</h1>\n'\r
-            '<h1 id="header_2">Header</h1>')\r
-\r
-    def testBaseLevel(self):\r
-        """ Test Header Base Level. """\r
-\r
-        text = '#Some Header\n## Next Level'\r
-        self.assertEqual(markdown.markdown(text, ['headerid(level=3)']),\r
-            '<h3 id="some-header">Some Header</h3>\n'\r
-            '<h4 id="next-level">Next Level</h4>')\r
-\r
-    def testHeaderInlineMarkup(self):\r
-        """ Test Header IDs with inline markup. """\r
-\r
-        text = '#Some *Header* with [markup](http://example.com).'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<h1 id="some-header-with-markup">Some <em>Header</em> with '\r
-            '<a href="http://example.com">markup</a>.</h1>')\r
-\r
-    def testHtmlEntities(self):\r
-        """ Test HeaderIDs with HTML Entities. """\r
-        text = '# Foo &amp; bar'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<h1 id="foo-bar">Foo &amp; bar</h1>')\r
-\r
-    def testRawHtml(self):\r
-        """ Test HeaderIDs with raw HTML. """\r
-        text = '# Foo <b>Bar</b> Baz.'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<h1 id="foo-bar-baz">Foo <b>Bar</b> Baz.</h1>')\r
-\r
-    def testNoAutoIds(self):\r
-        """ Test HeaderIDs with no auto generated IDs. """\r
-\r
-        text = '# Some Header\n# Another Header'\r
-        self.assertEqual(markdown.markdown(text, ['headerid(forceid=False)']),\r
-            '<h1>Some Header</h1>\n'\r
-            '<h1>Another Header</h1>')\r
-\r
-    def testHeaderIdWithMetaData(self):\r
-        """ Test Header IDs with MetaData extension. """\r
-\r
-        text = '''header_level: 2\r
-header_forceid: Off\r
-\r
-# A Header'''\r
-        self.assertEqual(markdown.markdown(text, ['headerid', 'meta']),\r
-            '<h2>A Header</h2>')\r
-\r
-    def testHeaderIdWithAttr_List(self):\r
-        """ Test HeaderIDs with Attr_List extension. """\r
-        \r
-        text = '# Header1 {: #foo }\n# Header2 {: .bar }'\r
-        self.assertEqual(markdown.markdown(text, ['headerid', 'attr_list']),\r
-            '<h1 id="foo">Header1</h1>\n'\r
-            '<h1 class="bar" id="header2">Header2</h1>')\r
-        # Switch order extensions are loaded - should be no change in behavior.\r
-        self.assertEqual(markdown.markdown(text, ['attr_list', 'headerid']),\r
-            '<h1 id="foo">Header1</h1>\n'\r
-            '<h1 class="bar" id="header2">Header2</h1>')\r
-\r
-class TestMetaData(unittest.TestCase):\r
-    """ Test MetaData extension. """\r
-\r
-    def setUp(self):\r
-        self.md = markdown.Markdown(extensions=['meta'])\r
-\r
-    def testBasicMetaData(self):\r
-        """ Test basic metadata. """\r
-\r
-        text = '''Title: A Test Doc.\r
-Author: Waylan Limberg\r
-        John Doe\r
-Blank_Data:\r
-\r
-The body. This is paragraph one.'''\r
-        self.assertEqual(self.md.convert(text),\r
-            '<p>The body. This is paragraph one.</p>')\r
-        self.assertEqual(self.md.Meta,\r
-            {'author': ['Waylan Limberg', 'John Doe'],\r
-             'blank_data': [''],\r
-             'title': ['A Test Doc.']})\r
-\r
-    def testMissingMetaData(self):\r
-        """ Test document without Meta Data. """\r
-\r
-        text = '    Some Code - not extra lines of meta data.'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<pre><code>Some Code - not extra lines of meta data.\n'\r
-            '</code></pre>')\r
-        self.assertEqual(self.md.Meta, {})\r
-\r
-    def testMetaDataWithoutNewline(self):\r
-        """ Test doocument with only metadata and no newline at end."""\r
-        text = 'title: No newline'\r
-        self.assertEqual(self.md.convert(text), '')\r
-        self.assertEqual(self.md.Meta, {'title': ['No newline']})\r
-\r
-\r
-class TestWikiLinks(unittest.TestCase):\r
-    """ Test Wikilinks Extension. """\r
-\r
-    def setUp(self):\r
-        self.md = markdown.Markdown(extensions=['wikilinks'])\r
-        self.text = "Some text with a [[WikiLink]]."\r
-\r
-    def testBasicWikilinks(self):\r
-        """ Test [[wikilinks]]. """\r
-\r
-        self.assertEqual(self.md.convert(self.text),\r
-            '<p>Some text with a '\r
-            '<a class="wikilink" href="/WikiLink/">WikiLink</a>.</p>')\r
-\r
-    def testWikilinkWhitespace(self):\r
-        """ Test whitespace in wikilinks. """\r
-        self.assertEqual(self.md.convert('[[ foo bar_baz ]]'),\r
-            '<p><a class="wikilink" href="/foo_bar_baz/">foo bar_baz</a></p>')\r
-        self.assertEqual(self.md.convert('foo [[ ]] bar'),\r
-            '<p>foo  bar</p>')\r
-\r
-    def testSimpleSettings(self):\r
-        """ Test Simple Settings. """\r
-\r
-        self.assertEqual(markdown.markdown(self.text,\r
-            ['wikilinks(base_url=/wiki/,end_url=.html,html_class=foo)']),\r
-            '<p>Some text with a '\r
-            '<a class="foo" href="/wiki/WikiLink.html">WikiLink</a>.</p>')\r
-\r
-    def testComplexSettings(self):\r
-        """ Test Complex Settings. """\r
-\r
-        md = markdown.Markdown(\r
-            extensions = ['wikilinks'],\r
-            extension_configs = {'wikilinks': [\r
-                                        ('base_url', 'http://example.com/'),\r
-                                        ('end_url', '.html'),\r
-                                        ('html_class', '') ]},\r
-            safe_mode = True)\r
-        self.assertEqual(md.convert(self.text),\r
-            '<p>Some text with a '\r
-            '<a href="http://example.com/WikiLink.html">WikiLink</a>.</p>')\r
-\r
-    def testWikilinksMetaData(self):\r
-        """ test MetaData with Wikilinks Extension. """\r
-\r
-        text = """wiki_base_url: http://example.com/\r
-wiki_end_url:   .html\r
-wiki_html_class:\r
-\r
-Some text with a [[WikiLink]]."""\r
-        md = markdown.Markdown(extensions=['meta', 'wikilinks'])\r
-        self.assertEqual(md.convert(text),\r
-            '<p>Some text with a '\r
-            '<a href="http://example.com/WikiLink.html">WikiLink</a>.</p>')\r
-\r
-        # MetaData should not carry over to next document:\r
-        self.assertEqual(md.convert("No [[MetaData]] here."),\r
-            '<p>No <a class="wikilink" href="/MetaData/">MetaData</a> '\r
-            'here.</p>')\r
-\r
-    def testURLCallback(self):\r
-        """ Test used of a custom URL builder. """\r
-\r
-        def my_url_builder(label, base, end):\r
-            return '/bar/'\r
-        md = markdown.Markdown(extensions=['wikilinks'],\r
-            extension_configs={'wikilinks' : [('build_url', my_url_builder)]})\r
-        self.assertEqual(md.convert('[[foo]]'),\r
-            '<p><a class="wikilink" href="/bar/">foo</a></p>')\r
-\r
-class TestAdmonition(unittest.TestCase):\r
-    """ Test Admonition Extension. """\r
-\r
-    def setUp(self):\r
-        self.md = markdown.Markdown(extensions=['admonition'])\r
-\r
-    def testRE(self):\r
-        RE = self.md.parser.blockprocessors['admonition'].RE\r
-        tests = [\r
-            ('!!! note', ('note', None)),\r
-            ('!!! note "Please Note"', ('note', 'Please Note')),\r
-            ('!!! note ""', ('note', '')),\r
-        ]\r
-        for test, expected in tests:\r
-            self.assertEqual(RE.match(test).groups(), expected)\r
-\r
-class TestTOC(unittest.TestCase):\r
-    """ Test TOC Extension. """\r
-    \r
-    def setUp(self):\r
-        self.md = markdown.Markdown(extensions=['toc'])\r
-\r
-    def testMarker(self):\r
-        """ Test TOC with a Marker. """\r
-        text = '[TOC]\n\n# Header 1\n\n## Header 2'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<div class="toc">\n'\r
-              '<ul>\n'\r
-                '<li><a href="#header-1">Header 1</a>'\r
-                  '<ul>\n'\r
-                    '<li><a href="#header-2">Header 2</a></li>\n'\r
-                  '</ul>\n'\r
-                '</li>\n'\r
-              '</ul>\n'\r
-            '</div>\n'\r
-            '<h1 id="header-1">Header 1</h1>\n'\r
-            '<h2 id="header-2">Header 2</h2>')\r
-    \r
-    def testNoMarker(self):\r
-        """ Test TOC without a Marker. """\r
-        text = '# Header 1\n\n## Header 2'\r
-        self.assertEqual(self.md.convert(text),\r
-            '<h1 id="header-1">Header 1</h1>\n'\r
-            '<h2 id="header-2">Header 2</h2>')\r
-        self.assertEqual(self.md.toc,\r
-            '<div class="toc">\n'\r
-              '<ul>\n'\r
-                '<li><a href="#header-1">Header 1</a>'\r
-                  '<ul>\n'\r
-                    '<li><a href="#header-2">Header 2</a></li>\n'\r
-                  '</ul>\n'\r
-                '</li>\n'\r
-              '</ul>\n'\r
-            '</div>\n')\r
+"""
+Python-Markdown Extension Regression Tests
+==========================================
+
+A collection of regression tests to confirm that the included extensions
+continue to work as advertised. This used to be accomplished by doctests.
+
+"""
+
+from __future__ import unicode_literals
+import unittest
+import markdown
+
+class TestExtensionClass(unittest.TestCase):
+    """ Test markdown.extensions.Extension. """
+
+    def setUp(self):
+        class TestExtension(markdown.extensions.Extension):
+            config = {
+                'foo': ['bar', 'Description of foo'],
+                'bar': ['baz', 'Description of bar']
+            }
+
+        self.ext = TestExtension()
+        self.ExtKlass = TestExtension
+
+    def testGetConfig(self):
+        self.assertEqual(self.ext.getConfig('foo'), 'bar')
+
+    def testGetConfigDefault(self):
+        self.assertEqual(self.ext.getConfig('baz'), '')
+        self.assertEqual(self.ext.getConfig('baz', default='missing'), 'missing')
+
+    def testGetConfigs(self):
+        self.assertEqual(self.ext.getConfigs(), {'foo': 'bar', 'bar': 'baz'})
+
+    def testGetConfigInfo(self):
+        self.assertEqual(dict(self.ext.getConfigInfo()), 
+                         dict([('foo', 'Description of foo'),
+                               ('bar', 'Description of bar')]))
+
+    def testSetConfig(self):
+        self.ext.setConfig('foo', 'baz')
+        self.assertEqual(self.ext.getConfigs(), {'foo': 'baz', 'bar': 'baz'})
+
+    def testSetConfigWithBadKey(self):
+        # self.ext.setConfig('bad', 'baz) ==> KeyError
+        self.assertRaises(KeyError, self.ext.setConfig, 'bad', 'baz')
+
+    def testConfigAsKwargsOnInit(self):
+        ext = self.ExtKlass(foo='baz', bar='blah')
+        self.assertEqual(ext.getConfigs(), {'foo': 'baz', 'bar': 'blah'})
+
+
+class TestAbbr(unittest.TestCase):
+    """ Test abbr extension. """
+
+    def setUp(self):
+        self.md = markdown.Markdown(extensions=['markdown.extensions.abbr'])
+
+    def testSimpleAbbr(self):
+        """ Test Abbreviations. """
+        text = 'Some text with an ABBR and a REF. Ignore REFERENCE and ref.' + \
+               '\n\n*[ABBR]: Abbreviation\n' + \
+               '*[REF]: Abbreviation Reference'
+        self.assertEqual(self.md.convert(text),
+            '<p>Some text with an <abbr title="Abbreviation">ABBR</abbr> '
+            'and a <abbr title="Abbreviation Reference">REF</abbr>. Ignore '
+            'REFERENCE and ref.</p>')
+
+    def testNestedAbbr(self):
+        """ Test Nested Abbreviations. """
+        text = '[ABBR](/foo) and _ABBR_\n\n' + \
+               '*[ABBR]: Abreviation'
+        self.assertEqual(self.md.convert(text),
+            '<p><a href="/foo"><abbr title="Abreviation">ABBR</abbr></a> '
+            'and <em><abbr title="Abreviation">ABBR</abbr></em></p>')
+
+
+class TestCodeHilite(unittest.TestCase):
+    """ Test codehilite extension. """
+
+    def setUp(self):
+        self.has_pygments = True
+        try:
+            import pygments
+        except ImportError:
+            self.has_pygments = False
+
+    def testBasicCodeHilite(self):
+        text = '\t# A Code Comment'
+        md = markdown.Markdown(extensions=['markdown.extensions.codehilite'])
+        if self.has_pygments:
+            self.assertEqual(md.convert(text),
+                '<div class="codehilite">'
+                '<pre><span class="c"># A Code Comment</span>\n'
+                '</pre></div>')
+        else:
+            self.assertEqual(md.convert(text),
+                '<pre class="codehilite"><code># A Code Comment'
+                '</code></pre>')
+    
+    def testLinenumsTrue(self):
+        text = '\t# A Code Comment'
+        md = markdown.Markdown(
+            extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=True)])
+        if self.has_pygments:
+            # Differant versions of pygments output slightly different markup.
+            # So we use 'startwith' and test just enough to confirm that 
+            # pygments received and processed linenums.
+            self.assertTrue(md.convert(text).startswith(
+                '<table class="codehilitetable"><tr><td class="linenos">'))
+        else:
+            self.assertEqual(md.convert(text),
+                '<pre class="codehilite"><code class="linenums"># A Code Comment'
+                '</code></pre>')
+
+    def testLinenumsFalse(self):
+        text = '\t#!Python\n\t# A Code Comment'
+        md = markdown.Markdown(
+            extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=False)])
+        if self.has_pygments:
+            self.assertEqual(md.convert(text),
+                '<div class="codehilite">'
+                '<pre><span class="c"># A Code Comment</span>\n'
+                '</pre></div>')
+        else:
+            self.assertEqual(md.convert(text),
+                '<pre class="codehilite"><code class="language-python"># A Code Comment'
+                '</code></pre>')
+
+    def testLinenumsNone(self):
+        text = '\t# A Code Comment'
+        md = markdown.Markdown(
+            extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=None)])
+        if self.has_pygments:
+            self.assertEqual(md.convert(text),
+                '<div class="codehilite">'
+                '<pre><span class="c"># A Code Comment</span>\n'
+                '</pre></div>')
+        else:
+            self.assertEqual(md.convert(text),
+                '<pre class="codehilite"><code># A Code Comment'
+                '</code></pre>')
+
+    def testLinenumsNoneWithShebang(self):
+        text = '\t#!Python\n\t# A Code Comment'
+        md = markdown.Markdown(
+            extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=None)])
+        if self.has_pygments:
+            # Differant versions of pygments output slightly different markup.
+            # So we use 'startwith' and test just enough to confirm that 
+            # pygments received and processed linenums.
+            self.assertTrue(md.convert(text).startswith(
+                '<table class="codehilitetable"><tr><td class="linenos">'))
+        else:
+            self.assertEqual(md.convert(text),
+                '<pre class="codehilite"><code class="language-python linenums"># A Code Comment'
+                '</code></pre>')
+
+    def testLinenumsNoneWithColon(self):
+        text = '\t:::Python\n\t# A Code Comment'
+        md = markdown.Markdown(
+            extensions=[markdown.extensions.codehilite.CodeHiliteExtension(linenums=None)])
+        if self.has_pygments:
+            self.assertEqual(md.convert(text),
+                '<div class="codehilite">'
+                '<pre><span class="c"># A Code Comment</span>\n'
+                '</pre></div>')
+        else:
+            self.assertEqual(md.convert(text),
+                '<pre class="codehilite"><code class="language-python"># A Code Comment'
+                '</code></pre>')
+
+    def testHighlightLinesWithColon(self):
+        # Test with hl_lines delimited by single or double quotes.
+        text0 = '\t:::Python hl_lines="2"\n\t#line 1\n\t#line 2\n\t#line 3'
+        text1 = "\t:::Python hl_lines='2'\n\t#line 1\n\t#line 2\n\t#line 3"
+
+        for text in (text0, text1):
+            md = markdown.Markdown(extensions=['markdown.extensions.codehilite'])
+            if self.has_pygments:
+                self.assertEqual(md.convert(text),
+                    '<div class="codehilite"><pre>'
+                    '<span class="c">#line 1</span>\n'
+                    '<span class="hll"><span class="c">#line 2</span>\n</span>'
+                    '<span class="c">#line 3</span>\n'
+                    '</pre></div>')
+            else:
+                self.assertEqual(md.convert(text),
+                    '<pre class="codehilite">'
+                    '<code class="language-python">#line 1\n'
+                    '#line 2\n'
+                    '#line 3</code></pre>')
+
+class TestFencedCode(unittest.TestCase):
+    """ Test fenced_code extension. """
+
+    def setUp(self):
+        self.md = markdown.Markdown(extensions=['markdown.extensions.fenced_code'])
+        self.has_pygments = True
+        try:
+            import pygments
+        except ImportError:
+            self.has_pygments = False
+
+    def testBasicFence(self):
+        """ Test Fenced Code Blocks. """
+        text = '''
+A paragraph before a fenced code block:
+
+~~~
+Fenced code block
+~~~'''
+        self.assertEqual(self.md.convert(text),
+            '<p>A paragraph before a fenced code block:</p>\n'
+            '<pre><code>Fenced code block\n'
+            '</code></pre>')
+
+    def testSafeFence(self):
+        """ Test Fenced Code with safe_mode. """
+        text = '~~~\nCode\n~~~'
+        self.md.safeMode = 'replace'
+        self.assertEqual(self.md.convert(text),
+            '<pre><code>Code\n'
+            '</code></pre>')
+
+    def testNestedFence(self):
+        """ Test nested fence. """
+
+        text = '''
+~~~~~~~~
+
+~~~~
+~~~~~~~~'''
+        self.assertEqual(self.md.convert(text),
+            '<pre><code>\n'
+            '~~~~\n'
+            '</code></pre>')
+
+    def testFencedLanguage(self):
+        """ Test Language Tags. """
+
+        text = '''
+~~~~{.python}
+# Some python code
+~~~~'''
+        self.assertEqual(self.md.convert(text),
+            '<pre><code class="python"># Some python code\n'
+            '</code></pre>')
+
+    def testFencedBackticks(self):
+        """ Test Code Fenced with Backticks. """
+
+        text = '''
+`````
+# Arbitrary code
+~~~~~ # these tildes will not close the block
+`````'''
+        self.assertEqual(self.md.convert(text),
+        '<pre><code># Arbitrary code\n'
+        '~~~~~ # these tildes will not close the block\n'
+        '</code></pre>')
+
+    def testFencedCodeWithHighlightLines(self):
+        """ Test Fenced Code with Highlighted Lines. """
+
+        text = '''
+```hl_lines="1 3"
+line 1
+line 2
+line 3
+```'''
+        md = markdown.Markdown(extensions=[
+             markdown.extensions.codehilite.CodeHiliteExtension(linenums=None, guess_lang=False),
+            'markdown.extensions.fenced_code'])
+
+        if self.has_pygments:
+            self.assertEqual(md.convert(text),
+                '<div class="codehilite"><pre>'
+                '<span class="hll">line 1\n</span>'
+                'line 2\n'
+                '<span class="hll">line 3\n</span>'
+                '</pre></div>')
+        else:
+            self.assertEqual(md.convert(text),
+                '<pre class="codehilite"><code>line 1\n'
+                'line 2\n'
+                'line 3</code></pre>')
+
+    def testFencedLanguageAndHighlightLines(self):
+        """ Test Fenced Code with Highlighted Lines. """
+
+        text0 = '''
+```.python hl_lines="1 3"
+#line 1
+#line 2
+#line 3
+```'''
+        text1 = '''
+~~~{.python hl_lines='1 3'}
+#line 1
+#line 2
+#line 3
+~~~'''
+        for text in (text0, text1):
+            md = markdown.Markdown(extensions=[
+                 markdown.extensions.codehilite.CodeHiliteExtension(linenums=None, guess_lang=False),
+                'markdown.extensions.fenced_code'])
+
+            if self.has_pygments:
+                self.assertEqual(md.convert(text),
+                    '<div class="codehilite"><pre>'
+                    '<span class="hll"><span class="c">#line 1</span>\n</span>'
+                    '<span class="c">#line 2</span>\n'
+                    '<span class="hll"><span class="c">#line 3</span>\n</span>'
+                    '</pre></div>')
+            else:
+                self.assertEqual(md.convert(text),
+                    '<pre class="codehilite"><code class="language-python">#line 1\n'
+                    '#line 2\n'
+                    '#line 3</code></pre>')
+
+class TestHeaderId(unittest.TestCase):
+    """ Test HeaderId Extension. """
+
+    def setUp(self):
+        self.md = markdown.Markdown(extensions=['markdown.extensions.headerid'])
+
+    def testBasicHeaderId(self):
+        """ Test Basic HeaderID """
+
+        text = "# Some Header #"
+        self.assertEqual(self.md.convert(text),
+            '<h1 id="some-header">Some Header</h1>')
+
+    def testUniqueFunc(self):
+        """ Test 'unique' function. """
+        from markdown.extensions.headerid import unique
+        ids = set(['foo'])
+        self.assertEqual(unique('foo', ids), 'foo_1')
+        self.assertEqual(ids, set(['foo', 'foo_1']))
+
+    def testUniqueIds(self):
+        """ Test Unique IDs. """
+
+        text = '#Header\n#Header\n#Header'
+        self.assertEqual(self.md.convert(text),
+            '<h1 id="header">Header</h1>\n'
+            '<h1 id="header_1">Header</h1>\n'
+            '<h1 id="header_2">Header</h1>')
+
+    def testBaseLevel(self):
+        """ Test Header Base Level. """
+
+        text = '#Some Header\n## Next Level'
+        self.assertEqual(
+            markdown.markdown(text, [markdown.extensions.headerid.HeaderIdExtension(level=3)]),
+            '<h3 id="some-header">Some Header</h3>\n'
+            '<h4 id="next-level">Next Level</h4>')
+
+    def testHeaderInlineMarkup(self):
+        """ Test Header IDs with inline markup. """
+
+        text = '#Some *Header* with [markup](http://example.com).'
+        self.assertEqual(self.md.convert(text),
+            '<h1 id="some-header-with-markup">Some <em>Header</em> with '
+            '<a href="http://example.com">markup</a>.</h1>')
+
+    def testHtmlEntities(self):
+        """ Test HeaderIDs with HTML Entities. """
+        text = '# Foo &amp; bar'
+        self.assertEqual(self.md.convert(text),
+            '<h1 id="foo-bar">Foo &amp; bar</h1>')
+
+    def testRawHtml(self):
+        """ Test HeaderIDs with raw HTML. """
+        text = '# Foo <b>Bar</b> Baz.'
+        self.assertEqual(self.md.convert(text),
+            '<h1 id="foo-bar-baz">Foo <b>Bar</b> Baz.</h1>')
+
+    def testNoAutoIds(self):
+        """ Test HeaderIDs with no auto generated IDs. """
+
+        text = '# Some Header\n# Another Header'
+        self.assertEqual(
+            markdown.markdown(text, [markdown.extensions.headerid.HeaderIdExtension(forceid=False)]),
+            '<h1>Some Header</h1>\n'
+            '<h1>Another Header</h1>')
+
+    def testHeaderIdWithMetaData(self):
+        """ Test Header IDs with MetaData extension. """
+
+        text = '''header_level: 2
+header_forceid: Off
+
+# A Header'''
+        self.assertEqual(markdown.markdown(text, ['markdown.extensions.headerid', 'markdown.extensions.meta']),
+            '<h2>A Header</h2>')
+
+    def testHeaderIdWithAttr_List(self):
+        """ Test HeaderIDs with Attr_List extension. """
+        
+        text = '# Header1 {: #foo }\n# Header2 {: .bar }'
+        self.assertEqual(markdown.markdown(text, ['markdown.extensions.headerid', 'markdown.extensions.attr_list']),
+            '<h1 id="foo">Header1</h1>\n'
+            '<h1 class="bar" id="header2">Header2</h1>')
+        # Switch order extensions are loaded - should be no change in behavior.
+        self.assertEqual(markdown.markdown(text, ['markdown.extensions.attr_list', 'markdown.extensions.headerid']),
+            '<h1 id="foo">Header1</h1>\n'
+            '<h1 class="bar" id="header2">Header2</h1>')
+
+class TestMetaData(unittest.TestCase):
+    """ Test MetaData extension. """
+
+    def setUp(self):
+        self.md = markdown.Markdown(extensions=['markdown.extensions.meta'])
+
+    def testBasicMetaData(self):
+        """ Test basic metadata. """
+
+        text = '''Title: A Test Doc.
+Author: Waylan Limberg
+        John Doe
+Blank_Data:
+
+The body. This is paragraph one.'''
+        self.assertEqual(self.md.convert(text),
+            '<p>The body. This is paragraph one.</p>')
+        self.assertEqual(self.md.Meta,
+            {'author': ['Waylan Limberg', 'John Doe'],
+             'blank_data': [''],
+             'title': ['A Test Doc.']})
+
+    def testMissingMetaData(self):
+        """ Test document without Meta Data. """
+
+        text = '    Some Code - not extra lines of meta data.'
+        self.assertEqual(self.md.convert(text),
+            '<pre><code>Some Code - not extra lines of meta data.\n'
+            '</code></pre>')
+        self.assertEqual(self.md.Meta, {})
+
+    def testMetaDataWithoutNewline(self):
+        """ Test doocument with only metadata and no newline at end."""
+        text = 'title: No newline'
+        self.assertEqual(self.md.convert(text), '')
+        self.assertEqual(self.md.Meta, {'title': ['No newline']})
+
+
+class TestWikiLinks(unittest.TestCase):
+    """ Test Wikilinks Extension. """
+
+    def setUp(self):
+        self.md = markdown.Markdown(extensions=['markdown.extensions.wikilinks'])
+        self.text = "Some text with a [[WikiLink]]."
+
+    def testBasicWikilinks(self):
+        """ Test [[wikilinks]]. """
+
+        self.assertEqual(self.md.convert(self.text),
+            '<p>Some text with a '
+            '<a class="wikilink" href="/WikiLink/">WikiLink</a>.</p>')
+
+    def testWikilinkWhitespace(self):
+        """ Test whitespace in wikilinks. """
+        self.assertEqual(self.md.convert('[[ foo bar_baz ]]'),
+            '<p><a class="wikilink" href="/foo_bar_baz/">foo bar_baz</a></p>')
+        self.assertEqual(self.md.convert('foo [[ ]] bar'),
+            '<p>foo  bar</p>')
+
+    def testSimpleSettings(self):
+        """ Test Simple Settings. """
+
+        self.assertEqual(markdown.markdown(self.text,
+            [markdown.extensions.wikilinks.WikiLinkExtension(base_url='/wiki/', 
+                                                             end_url='.html', 
+                                                             html_class='foo')]),
+            '<p>Some text with a '
+            '<a class="foo" href="/wiki/WikiLink.html">WikiLink</a>.</p>')
+
+    def testComplexSettings(self):
+        """ Test Complex Settings. """
+
+        md = markdown.Markdown(
+            extensions = ['markdown.extensions.wikilinks'],
+            extension_configs = {'markdown.extensions.wikilinks': [
+                                        ('base_url', 'http://example.com/'),
+                                        ('end_url', '.html'),
+                                        ('html_class', '') ]},
+            safe_mode = True)
+        self.assertEqual(md.convert(self.text),
+            '<p>Some text with a '
+            '<a href="http://example.com/WikiLink.html">WikiLink</a>.</p>')
+
+    def testWikilinksMetaData(self):
+        """ test MetaData with Wikilinks Extension. """
+
+        text = """wiki_base_url: http://example.com/
+wiki_end_url:   .html
+wiki_html_class:
+
+Some text with a [[WikiLink]]."""
+        md = markdown.Markdown(extensions=['markdown.extensions.meta', 'markdown.extensions.wikilinks'])
+        self.assertEqual(md.convert(text),
+            '<p>Some text with a '
+            '<a href="http://example.com/WikiLink.html">WikiLink</a>.</p>')
+
+        # MetaData should not carry over to next document:
+        self.assertEqual(md.convert("No [[MetaData]] here."),
+            '<p>No <a class="wikilink" href="/MetaData/">MetaData</a> '
+            'here.</p>')
+
+    def testURLCallback(self):
+        """ Test used of a custom URL builder. """
+        
+        from markdown.extensions.wikilinks import WikiLinkExtension
+
+        def my_url_builder(label, base, end):
+            return '/bar/'
+        md = markdown.Markdown(extensions=[WikiLinkExtension(build_url=my_url_builder)])
+        self.assertEqual(md.convert('[[foo]]'),
+            '<p><a class="wikilink" href="/bar/">foo</a></p>')
+
+class TestAdmonition(unittest.TestCase):
+    """ Test Admonition Extension. """
+
+    def setUp(self):
+        self.md = markdown.Markdown(extensions=['markdown.extensions.admonition'])
+
+    def testRE(self):
+        RE = self.md.parser.blockprocessors['admonition'].RE
+        tests = [
+            ('!!! note', ('note', None)),
+            ('!!! note "Please Note"', ('note', 'Please Note')),
+            ('!!! note ""', ('note', '')),
+        ]
+        for test, expected in tests:
+            self.assertEqual(RE.match(test).groups(), expected)
+
+class TestTOC(unittest.TestCase):
+    """ Test TOC Extension. """
+    
+    def setUp(self):
+        self.md = markdown.Markdown(extensions=['markdown.extensions.toc'])
+
+    def testMarker(self):
+        """ Test TOC with a Marker. """
+        text = '[TOC]\n\n# Header 1\n\n## Header 2'
+        self.assertEqual(self.md.convert(text),
+            '<div class="toc">\n'
+              '<ul>\n'
+                '<li><a href="#header-1">Header 1</a>'
+                  '<ul>\n'
+                    '<li><a href="#header-2">Header 2</a></li>\n'
+                  '</ul>\n'
+                '</li>\n'
+              '</ul>\n'
+            '</div>\n'
+            '<h1 id="header-1">Header 1</h1>\n'
+            '<h2 id="header-2">Header 2</h2>')
+    
+    def testNoMarker(self):
+        """ Test TOC without a Marker. """
+        text = '# Header 1\n\n## Header 2'
+        self.assertEqual(self.md.convert(text),
+            '<h1 id="header-1">Header 1</h1>\n'
+            '<h2 id="header-2">Header 2</h2>')
+        self.assertEqual(self.md.toc,
+            '<div class="toc">\n'
+              '<ul>\n'
+                '<li><a href="#header-1">Header 1</a>'
+                  '<ul>\n'
+                    '<li><a href="#header-2">Header 2</a></li>\n'
+                  '</ul>\n'
+                '</li>\n'
+              '</ul>\n'
+            '</div>\n')
+
+
+class TestSmarty(unittest.TestCase):
+    def setUp(self):
+        config = {
+                'markdown.extensions.smarty': [
+                    ('smart_angled_quotes', True),
+                    ('substitutions', {
+                        'ndash': '\u2013',
+                        'mdash': '\u2014',
+                        'ellipsis': '\u2026',
+                        'left-single-quote': '&sbquo;', # sb is not a typo!
+                        'right-single-quote': '&lsquo;',
+                        'left-double-quote': '&bdquo;',
+                        'right-double-quote': '&ldquo;',
+                        'left-angle-quote': '[',
+                        'right-angle-quote': ']',
+                    }),]
+        }
+        self.md = markdown.Markdown(extensions=['markdown.extensions.smarty'],
+                                    extension_configs=config)
+        
+    def testCustomSubstitutions(self):
+        text = \
+"""<< The "Unicode char of the year 2014"
+is the 'mdash': ---
+Must not be confused with 'ndash'  (--) ... >>
+"""
+        correct = \
+"""<p>[ The &bdquo;Unicode char of the year 2014&ldquo;
+is the &sbquo;mdash&lsquo;: \u2014
+Must not be confused with &sbquo;ndash&lsquo;  (\u2013) \u2026 ]</p>"""
+        self.assertEqual(self.md.convert(text), correct)
diff --git a/tests/util.py b/tests/util.py
deleted file mode 100644 (file)
index 778d611..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-import sys\r
-if sys.version_info[0] == 3:\r
-    from configparser import ConfigParser\r
-else:\r
-    from ConfigParser import SafeConfigParser as ConfigParser\r
-\r
-class MarkdownSyntaxError(Exception):\r
-    pass\r
-\r
-\r
-class CustomConfigParser(ConfigParser):\r
-    def get(self, section, option):\r
-        value = ConfigParser.get(self, section, option)\r
-        if option == 'extensions':\r
-            if len(value.strip()):\r
-                return value.split(',')\r
-            else:\r
-                return []\r
-        if value.lower() in ['yes', 'true', 'on', '1']:\r
-            return True\r
-        if value.lower() in ['no', 'false', 'off', '0']:\r
-            return False\r
-        return value\r
diff --git a/tox.ini b/tox.ini
index a03c5f5369c1471f48f6765346bd44acace079f7..5ccefce2ef9922afcd00c5e08ffb7f701f3f71ae 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -1,8 +1,11 @@
-[tox]\r
-envlist = py26, py27, py31, py32, py33\r
-\r
-[testenv]\r
-downloadcache = {toxworkdir}/cache\r
-deps = nose\r
-       git+https://github.com/waylan/pytidylib.git#egg=PyTidyLib\r
-commands = {envpython} {toxinidir}/run-tests.py {posargs}\r
+[tox]
+envlist = py27, py31, py32, py33, py34
+
+[testenv]
+downloadcache = {toxworkdir}/cache
+deps = nose
+       coverage
+       pyyaml
+       pytidylib
+commands = coverage run --source=markdown {toxinidir}/run-tests.py {posargs}
+           coverage report --show-missing