Module:User:Theknightwho/wikitext parser/testcases

local concat = table.concat local format = string.format local insert = table.insert local nowiki = require("Module:string utilities").nowiki local tostring = tostring

local frame = mw.getCurrentFrame local function preprocess(text) return frame:preprocess(text) end

local function dump_object(object) if type(object) ~= "table" then return object end return tostring(object) end

local Token = {} Token.__index = Token

Token.__tostring = function(t) return t[1] end

function Token:new(type) return setmetatable({		type	}, Token) end

local tests = require("Module:UnitTests") local parser = require("Module:User:Theknightwho/wikitext parser")

function tests:compare(test, expected) tests:equals(		{nowiki(test), test},		dump_object(parser.parse(test)),		expected,		{nowiki = true}	) end

function tests:compare_preprocess(test, expected) local preprocessed = preprocess(test) tests:equals(		{nowiki(test), preprocessed},		dump_object(parser.parse(preprocessed)),		expected,		{nowiki = true}	) end

--[==[ function tests:test_headings local tests = { {"\n=foo=", {"\n", HeadingStart:new{1}, "foo", HeadingEnd}}, }	self:iterate(tests, "compare") end ]==]

function tests:test_magic_links local tests = { "ISBN", {"ISBN 1413304540", "ISBN&#32;1413304540"}, {"ISBN 0", "ISBN&#32;0"}, {"ISBN 0123456789", "ISBN&#32;0123456789"}, {"ISBN 1413304540-", "ISBN&#32;1413304540-"}, {"ISBN 1413304540&", "ISBN&#32;1413304540&#38;"}, {"ISBN 1413304540…", "ISBN&#32;1413304540…"}, {"ISBN 14133045405", "ISBN&#32;14133045405"}, {"ISBN 1413304540q", "ISBN&#32;1413304540q"}, {"ISBN 1413304540é", "ISBN&#32;1413304540é"}, {"ISBN 1413304540𠀀", "ISBN&#32;1413304540𠀀"}, {"ISBN 141330454X", "ISBN&#32;141330454X"}, {"ISBN 141330454x", "ISBN&#32;141330454x"}, {"ISBN 141330454-0", "ISBN&#32;141330454-0"}, {"ISBN 14-1330-454-0", "ISBN&#32;14-1330-454-0"}, {"ISBN 141330454-X", "ISBN&#32;141330454-X"}, {"ISBN 141330454-x", "ISBN&#32;141330454-x"}, {"ISBN 1-4-1-3-3-0-4-5-4-0", "ISBN&#32;1-4-1-3-3-0-4-5-4-0"}, {"ISBN 1-4-1-3-3-0-4-5-4-X", "ISBN&#32;1-4-1-3-3-0-4-5-4-X"}, {"ISBN 141330454", "ISBN&#32;141330454"}, {"ISBN 14133045X", "ISBN&#32;14133045X"}, {"ISBN 14133045x", "ISBN&#32;14133045x"}, {"ISBN 14133045400", "ISBN&#32;14133045400"}, {"ISBN 141330454x0", "ISBN&#32;141330454x0"}, {"ISBN 1413304540X", "ISBN&#32;1413304540X"}, {"ISBN -1413304540", "ISBN&#32;-1413304540"}, {"ISBN 1413304540-0", "ISBN&#32;1413304540-0"}, {"ISBN 141330454x-0", "ISBN&#32;141330454x-0"}, {"ISBN 1413304540-X", "ISBN&#32;1413304540-X"}, {"ISBN 141330454-00", "ISBN&#32;141330454-00"}, {"ISBN 141330454-x0", "ISBN&#32;141330454-x0"}, {"ISBN 141330454-0X", "ISBN&#32;141330454-0X"}, {"ISBN 141330454-0-0", "ISBN&#32;141330454-0-0"}, {"ISBN 141330454-x-0", "ISBN&#32;141330454-x-0"}, {"ISBN 141330454-0-X", "ISBN&#32;141330454-0-X"}, {"ISBN 1-4-1-3-3-0-4-5-4-0-0", "ISBN&#32;1-4-1-3-3-0-4-5-4-0-0"}, {"ISBN 1-4-1-3-3-0-4-5-4-x-0", "ISBN&#32;1-4-1-3-3-0-4-5-4-x-0"}, {"ISBN 1-4-1-3-3-0-4-5-4-0-X", "ISBN&#32;1-4-1-3-3-0-4-5-4-0-X"}, {"ISBN 141x304540", "ISBN&#32;141x304540"}, {"ISBN 141X30454X", "ISBN&#32;141X30454X"}, {"ISBN 141x304540X", "ISBN&#32;141x304540X"}, {"ISBN 141X30454-0", "ISBN&#32;141X30454-0"}, {"ISBN 141X30454-x", "ISBN&#32;141X30454-x"}, {"ISBN 141x304540-X", "ISBN&#32;141x304540-X"}, {"ISBN 141x30454-0X", "ISBN&#32;141x30454-0X"}, {"ISBN 141x30454-0-X", "ISBN&#32;141x30454-0-X"}, {"ISBN 14-1X30-454-0", "ISBN&#32;14-1X30-454-0"}, {"ISBN 14-1X30-454-x", "ISBN&#32;14-1X30-454-x"}, {"ISBN 14-1x30-4540-X", "ISBN&#32;14-1x30-4540-X"}, {"ISBN 14-1x30-454-0X", "ISBN&#32;14-1x30-454-0X"}, {"ISBN 14-1x30-454-0-X", "ISBN&#32;14-1x30-454-0-X"}, {"ISBN 1-4-1-X-3-0-4-5-4-0", "ISBN&#32;1-4-1-X-3-0-4-5-4-0"}, {"ISBN 1-4-1-X-3-0-4-5-4-x", "ISBN&#32;1-4-1-X-3-0-4-5-4-x"}, {"ISBN 1-4-1-X-3-0-4-5-4-0-X", "ISBN&#32;1-4-1-X-3-0-4-5-4-0-X"}, {"ISBN 1413304540&#x35;", "ISBN&#32;14133045405"}, {"ISBN 1413304540&#x71;", "ISBN&#32;1413304540&#113;"}, {"ISBN 1413304540&eacute;", "ISBN&#32;1413304540é"}, {"ISBN 1413304540&#131072;", "ISBN&#32;1413304540𠀀"}, {"ISBN \194\160 1413304540", "ISBN&#32;1413304540"}, {"ISBN\225\154\128\226\129\159\226\128\131　1413304540", "ISBN&#32;1413304540"}, {"ISBN 1413304540", "ISBN&#32;1413304540"}, {"ISBN&#160;1413304540", "ISBN&#32;1413304540"}, {"ISBN&#0000160;1413304540", "ISBN&#32;1413304540"}, {"ISBN&#xA0;1413304540", "ISBN&#32;1413304540"}, {"ISBN&#x000a0;1413304540", "ISBN&#32;1413304540"}, {"ISBN&#x0A0;&#160; 1413304540", "ISBN&#32;1413304540"}, {"ISBN&NonBreakingSpace;1413304540", "ISBN&#160;1413304540"}, {"ISBN&#x20;1413304540", "ISBN&#32;1413304540"}, {"ISBN&#32;1413304540", "ISBN&#32;1413304540"}, {"ISBN&#x2002;1413304540", "ISBN&#8194;1413304540"}, {"ISBN 1413304540 0", "ISBN&#32;1413304540 0"}, {"ISBN 141330454x 0", "ISBN&#32;141330454x 0"}, {"ISBN 1413304540 X", "ISBN&#32;1413304540 X"}, {"ISBN 141-3304540 0", "ISBN&#32;141-3304540 0"}, {"ISBN 1-4133 0454x 0", "ISBN&#32;1-4133 0454x 0"}, {"ISBN 1&#x000a0;4133 0454x 0", "ISBN&#32;1&#160;4133&#160;0454x 0"}, {"ISBN-1413304540", "ISBN-1413304540"}, {"ISBN&#45;1413304540", "ISBN-1413304540"}, {"ISBN 14133&#x30;4540", "ISBN&#32;1413304540"}, {"ISBN 14133&#x2d;0454x", "ISBN&#32;14133-0454x"}, {"ISBN 14133 -04540", "ISBN&#32;14133 -04540"}, {"ISBN 14133- 04540", "ISBN&#32;14133- 04540"}, {"ISBN 14133- 04540", "ISBN&#32;14133-&#160;04540"}, {"ISBN 14 13304540", "ISBN&#32;14  13304540"}, {"ISBN 14133\226\128\130 04540", "ISBN&#32;14133\226\128\130 04540"}, {"ISBN 14--133 04540", "ISBN&#32;14--133 04540"}, {"ISBN 14&NonBreakingSpace;13304540", "ISBN&#32;14&#160;13304540"}, {"ISBN 1413304&#x2007;540", "ISBN&#32;1413304\226\128\135540"}, {"ISBN 9780306406157", "ISBN&#32;9780306406157"}, {"ISBN 9780306406157-", "ISBN&#32;9780306406157-"}, {"ISBN 9780306406157&", "ISBN&#32;9780306406157&#38;"}, {"ISBN 9780306406157…", "ISBN&#32;9780306406157…"}, {"ISBN 97803064061575", "ISBN&#32;97803064061575"}, {"ISBN 9780306406157q", "ISBN&#32;9780306406157q"}, {"ISBN 9780306406157é", "ISBN&#32;9780306406157é"}, {"ISBN 9780306406157𠀀", "ISBN&#32;9780306406157𠀀"}, {"ISBN 9780306406157&#x35;", "ISBN&#32;97803064061575"}, {"ISBN 9780306406157&#x71;", "ISBN&#32;9780306406157&#113;"}, {"ISBN 9780306406157&eacute;", "ISBN&#32;9780306406157é"}, {"ISBN 9780306406157&#131072;", "ISBN&#32;9780306406157𠀀"}, {"ISBN 9790306406157", "ISBN&#32;9790306406157"}, {"ISBN 978030640615X", "ISBN&#32;978030640615X"}, {"ISBN 978030640615x", "ISBN&#32;978030640615x"}, {"ISBN 978-0-306-40615-7", "ISBN&#32;978-0-306-40615-7"}, {"ISBN 978-0-306-40615-X", "ISBN&#32;978-0-306-40615-X"}, {"ISBN 978-0-306-40615-x", "ISBN&#32;978-0-306-40615-x"}, {"ISBN 9-7-8-0-3-0-6-4-0-6-1-5-7", "ISBN&#32;9-7-8-0-3-0-6-4-0-6-1-5-7"}, {"ISBN 9-7-8-0-3-0-6-4-0-6-1-5-X", "ISBN&#32;9-7-8-0-3-0-6-4-0-6-1-5-X"}, {"ISBN 9780306406 157", "ISBN&#32;9780306406 157"}, {"ISBN 9780306406 157", "ISBN&#32;9780306406&#160;157"}, {"ISBN 9770306406157", "ISBN&#32;9770306406157"}, {"ISBN 9680306406157", "ISBN&#32;9680306406157"}, {"ISBN 8780306406157", "ISBN&#32;8780306406157"}, {"ISBN 9-780306406157", "ISBN&#32;9-780306406157"}, {"ISBN 97-80306406157", "ISBN&#32;97-80306406157"}, {"ISBN 978-0306406157", "ISBN&#32;978-0306406157"}, {"ISBN 97803064061", "ISBN&#32;97803064061"}, {"ISBN 9780306406X", "ISBN&#32;9780306406X"}, {"ISBN 9780306406x", "ISBN&#32;9780306406x"}, {"ISBN 97803064061570", "ISBN&#32;97803064061570"}, {"ISBN 9780306406157X", "ISBN&#32;9780306406157X"}, {"ISBN 9780306406157x", "ISBN&#32;9780306406157x"}, {"ISBN 97803064061x0", "ISBN&#32;97803064061x0"}, {"ISBN -9780306406157", "ISBN&#32;-9780306406157"}, {"ISBN 9780306406157-0", "ISBN&#32;9780306406157-0"}, {"ISBN 978030640615x-0", "ISBN&#32;978030640615x-0"}, {"ISBN 9780306406157-X", "ISBN&#32;9780306406157-X"}, {"ISBN 978030640615-00", "ISBN&#32;978030640615-00"}, {"ISBN 978030640615-x0", "ISBN&#32;978030640615-x0"}, {"ISBN 978030640615-0X", "ISBN&#32;978030640615-0X"}, {"ISBN 978030640615-7-0", "ISBN&#32;978030640615-7-0"}, {"ISBN 978030640615-x-0", "ISBN&#32;978030640615-x-0"}, {"ISBN 978030640615-7-X", "ISBN&#32;978030640615-7-X"}, {"ISBN 978-0-3-0-6-4-0-6-1-5-7-0", "ISBN&#32;978-0-3-0-6-4-0-6-1-5-7-0"}, {"ISBN 978-0-3-0-6-4-0-6-1-5-x-0", "ISBN&#32;978-0-3-0-6-4-0-6-1-5-x-0"}, {"ISBN 978-0-3-0-6-4-0-6-1-5-7-X", "ISBN&#32;978-0-3-0-6-4-0-6-1-5-7-X"}, {"ISBN 978-0-3-0-6-4-0-6-1-5", "ISBN&#32;978-0-3-0-6-4-0-6-1-5"}, {"ISBN 978-0-3-0-6-4-0-6-1-x", "ISBN&#32;978-0-3-0-6-4-0-6-1-x"}, {"ISBN 978-0-3-0-6-4-0-6-1", "ISBN&#32;978-0-3-0-6-4-0-6-1"}, {"ISBN 978-0-3-0-6-4-0-6-X", "ISBN&#32;978-0-3-0-6-4-0-6-X"}, {"ISBN 978-0-3-0-6-4-0-6", "ISBN&#32;978-0-3-0-6-4-0-6"}, {"ISBN 978-0-3-0-6-4-0-X", "ISBN&#32;978-0-3-0-6-4-0-X"}, {"ISBN 9-7-8-0-3-0-6-4-0-6-1-5-7-0", "ISBN&#32;9-7-8-0-3-0-6-4-0-6-1-5-7-0"}, {"ISBN 9-7-8-0-3-0-6-4-0-6-1-5-x-0", "ISBN&#32;9-7-8-0-3-0-6-4-0-6-1-5-x-0"}, {"ISBN 9-7-8-0-3-0-6-4-0-6-1-5-7-X", "ISBN&#32;9-7-8-0-3-0-6-4-0-6-1-5-7-X"}, "PMID", {"PMID 11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID 0", "[//www.ncbi.nlm.nih.gov/pubmed/0?dopt&#61;Abstract PMID&#32;0]"}, {"PMID 0123456789", "[//www.ncbi.nlm.nih.gov/pubmed/0123456789?dopt&#61;Abstract PMID&#32;0123456789]"}, {"PMID 11209037-", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]-"}, {"PMID 11209037&", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]&#38;"}, {"PMID 11209037…", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]…"}, {"PMID 112090375", "[//www.ncbi.nlm.nih.gov/pubmed/112090375?dopt&#61;Abstract PMID&#32;112090375]"}, {"PMID 11209037q", "PMID&#32;11209037q"}, {"PMID 11209037é", "PMID&#32;11209037é"}, {"PMID 11209037𠀀", "PMID&#32;11209037𠀀"}, {"PMID 11209037&#x35;", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]5"}, {"PMID 11209037&#x71;", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]q"}, {"PMID 11209037&eacute;", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]é"}, {"PMID 11209037&#131072;", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]𠀀"}, {"PMID \194\160 11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID\225\154\128\226\129\159\226\128\131　11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID 11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID&#160;11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID&#0000160;11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID&#xA0;11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID&#x000a0;11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID&#x0A0;&#160; 11209037", "[//www.ncbi.nlm.nih.gov/pubmed/11209037?dopt&#61;Abstract PMID&#32;11209037]"}, {"PMID&NonBreakingSpace;11209037", "PMID&#160;11209037"}, {"PMID&#x20;11209037", "PMID&#32;11209037"}, {"PMID&#32;11209037", "PMID&#32;11209037"}, {"PMID&#x2002;11209037", "PMID&#8194;11209037"}, "RFC", {"RFC 5620", "RFC&#32;5620"}, {"RFC 0", "RFC&#32;0"}, {"RFC 0123456789", "RFC&#32;0123456789"}, {"RFC 5620-", "RFC&#32;5620-"}, {"RFC 5620&", "RFC&#32;5620&#38;"}, {"RFC 5620…", "RFC&#32;5620…"}, {"RFC 56205", "RFC&#32;56205"}, {"RFC 5620q", "RFC&#32;5620q"}, {"RFC 5620é", "RFC&#32;5620é"}, {"RFC 5620𠀀", "RFC&#32;5620𠀀"}, {"RFC 5620&#x35;", "RFC&#32;56205"}, {"RFC 5620&#x71;", "RFC&#32;5620q"}, {"RFC 5620&eacute;", "RFC&#32;5620é"}, {"RFC 5620&#131072;", "RFC&#32;5620𠀀"}, {"RFC \194\160 5620", "RFC&#32;5620"}, {"RFC\225\154\128\226\129\159\226\128\131　5620", "RFC&#32;5620"}, {"RFC 5620", "RFC&#32;5620"}, {"RFC&#160;5620", "RFC&#32;5620"}, {"RFC&#0000160;5620", "RFC&#32;5620"}, {"RFC&#xA0;5620", "RFC&#32;5620"}, {"RFC&#x000a0;5620", "RFC&#32;5620"}, {"RFC&#x0A0;&#160; 5620", "RFC&#32;5620"}, {"RFC&NonBreakingSpace;5620", "RFC&#160;5620"}, {"RFC&#x20;5620", "RFC&#32;5620"}, {"RFC&#32;5620", "RFC&#32;5620"}, {"RFC&#x2002;5620", "RFC&#8194;5620"}, }	self:iterate(tests, "compare") end

function tests:test_strip_markers local tests = { {" foo ", "foo"}, {" foo ", "&#91;&#91;foo&#93;&#93;"}, {" ", "&#91;https&#58;//en.wiktionary.org/&#93;"}, {" https://en.wiktionary.org/ ", "https&#58;//en.wiktionary.org/"}, {" &amp; ", "&#38;"}, {" &acE; ", "∾̳"}, }	self:iterate(tests, "compare_preprocess") end

function tests:test_wikilinks local tests = { {"foo", "foo"}, {"f%6Fo", "foo"}, {"fo%6f", "foo"}, {"%66%6F%6f", "foo"}, {"f&", "foo"}, {"fo&", "foo"}, {"fo&", "foo"}, {"&", "foo"}, {"&", "foo"}, {"f%26%23%78%36%46%3bo", "foo"}, {"%26%23%78%36%36%3B%26%23%31%31%31%3b%26%23%58%36%66%3B", "foo"}, {"f%25%36%66o", "&#91;&#91;f%25%36%66o&#93;&#93;"}, {"f&", "&#91;&#91;f%6fo&#93;&#93;"}, {"[foo", "&#91;&#91;&#91;foo&#93;&#93;"}, {"foo]", "foo&#93;"}, {"[foo]", "&#91;&#91;&#91;foo&#93;&#93;&#93;"}, {"[[foo", "&#91;&#91;foo"},		{"foo]]", "foo&#93;&#93;"}, {"[[foo]", "&#91;&#91;foo&#93;"},		{"[foo]]", "&#91;&#91;&#91;foo&#93;&#93;&#93;&#93;"}, {"[[foo]]", "&#91;&#91;foo&#93;&#93;"}, {"[[[foo", "&#91;&#91;&#91;&#91;&#91;foo&#93;&#93;"},		{"foo]]]", "foo&#93;&#93;&#93;"}, {"[[[foo]", "&#91;&#91;&#91;&#91;&#91;foo&#93;&#93;&#93;"},		{"[foo]]]", "&#91;&#91;&#91;foo&#93;&#93;&#93;&#93;&#93;"}, {"[[[foo]]", "&#91;&#91;&#91;&#91;&#91;foo&#93;&#93;&#93;&#93;"}, {"[[foo]]]", "&#91;&#91;foo&#93;&#93;&#93;"}, {"[[[foo]]]", "&#91;&#91;&#91;&#91;&#91;foo&#93;&#93;&#93;&#93;&#93;"}, {"[[[[foo", "&#91;&#91;&#91;&#91;foo"},		{"foo]]]]", "foo&#93;&#93;&#93;&#93;"}, {"[[[[foo]", "&#91;&#91;&#91;&#91;foo&#93;"},		{"[foo]]]]", "&#91;&#91;&#91;foo&#93;&#93;&#93;&#93;&#93;&#93;"}, {"[[foo", "&#91;&#91;&#91;&#91;foo&#93;&#93;"},		{"[[[[foo]]]]]]", "&#91;&#91;foo&#93;&#93;&#93;&#93;"}, {"[[[[foo]]]", "&#91;&#91;&#91;&#91;foo&#93;&#93;&#93;"},		{"[[[foo]]]]", "&#91;&#91;&#91;&#91;&#91;foo&#93;&#93;&#93;&#93;&#93;&#93;"}, {"[[[[foo]]]]", "&#91;&#91;&#91;&#91;foo&#93;&#93;&#93;&#93;"}, {"bar", "bar"}, {"bar", "&#91;&#91;&#91;foo&#124;bar&#93;&#93;"}, {"bar]", "bar&#93;"}, {"bar]", "&#91;&#91;&#91;foo&#124;bar&#93;&#93;&#93;"}, {"bar", "&#91;&#91;bar"},		{"bar]]", "bar&#93;&#93;"}, {"bar]", "&#91;&#91;bar&#93;"},		{"bar]]", "&#91;&#91;&#91;foo&#124;bar&#93;&#93;&#93;&#93;"}, {"bar]]", "&#91;&#91;bar&#93;&#93;"}, {"bar", "&#91;&#91;&#91;&#91;&#91;foo&#124;bar&#93;&#93;"},		{"bar]]]", "bar&#93;&#93;&#93;"}, {"bar]", "&#91;&#91;&#91;&#91;&#91;foo&#124;bar&#93;&#93;&#93;"},		{"bar]]]", "&#91;&#91;&#91;foo&#124;bar&#93;&#93;&#93;&#93;&#93;"}, {"bar]]", "&#91;&#91;&#91;&#91;&#91;foo&#124;bar&#93;&#93;&#93;&#93;"}, {"bar]]]", "&#91;&#91;bar&#93;&#93;&#93;"}, {"bar]]]", "&#91;&#91;&#91;&#91;&#91;foo&#124;bar&#93;&#93;&#93;&#93;&#93;"}, {"bar", "&#91;&#91;&#91;&#91;bar"},		{"bar]]]]", "bar&#93;&#93;&#93;&#93;"}, {"bar]", "&#91;&#91;&#91;&#91;bar&#93;"},		{"bar]]]]", "&#91;&#91;&#91;foo&#124;bar&#93;&#93;&#93;&#93;&#93;&#93;"}, {"bar]]", "&#91;&#91;&#91;&#91;bar&#93;&#93;"},		{"bar]]]]", "&#91;&#91;bar&#93;&#93;&#93;&#93;"}, {"bar]]]", "&#91;&#91;&#91;&#91;bar&#93;&#93;&#93;"},		{"bar]]]]", "&#91;&#91;&#91;&#91;&#91;foo&#124;bar&#93;&#93;&#93;&#93;&#93;&#93;"}, {"bar]]]]", "&#91;&#91;&#91;&#91;bar&#93;&#93;&#93;&#93;"}, {"[bar", "&#91;bar"}, {"[bar", "&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;"}, {"[bar]", "&#91;bar&#93;"}, {"[bar]", "&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;"}, {"[bar", "&#91;&#91;&#91;bar"},		{"[bar]]", "&#91;bar&#93;&#93;"}, {"[bar]", "&#91;&#91;&#91;bar&#93;"},		{"[bar]]", "&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;&#93;"}, {"[bar]]", "&#91;&#91;&#91;bar&#93;&#93;"}, {"[bar", "&#91;&#91;&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;"},		{"[bar]]]", "&#91;bar&#93;&#93;&#93;"}, {"[bar]", "&#91;&#91;&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;"},		{"[bar]]]", "&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;&#93;&#93;"}, {"[bar]]", "&#91;&#91;&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;&#93;"}, {"[bar]]]", "&#91;&#91;&#91;bar&#93;&#93;&#93;"}, {"[bar]]]", "&#91;&#91;&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;&#93;&#93;"}, {"[bar", "&#91;&#91;&#91;&#91;&#91;bar"},		{"[bar]]]]", "&#91;bar&#93;&#93;&#93;&#93;"}, {"[bar]]]]]", "&#91;bar&#93;&#93;&#93;&#93;&#93;"}, {"[bar]", "&#91;&#91;&#91;&#91;&#91;bar&#93;"},		{"[bar]]]]", "&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;&#93;&#93;&#93;"}, {"[bar]]]]]", "&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;&#93;&#93;&#93;&#93;"}, {"[bar]]", "&#91;&#91;&#91;&#91;&#91;bar&#93;&#93;"},		{"[bar]]]]", "&#91;&#91;&#91;bar&#93;&#93;&#93;&#93;"}, {"[bar]]]]]", "&#91;&#91;&#91;bar&#93;&#93;&#93;&#93;&#93;"}, {"[bar]]]", "&#91;&#91;&#91;&#91;&#91;bar&#93;&#93;&#93;"},		{"[bar]]]]", "&#91;&#91;&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;&#93;&#93;&#93;"}, {"[bar]]]]]", "&#91;&#91;&#91;&#91;&#91;foo&#124;&#91;bar&#93;&#93;&#93;&#93;&#93;&#93;&#93;"}, {"[bar]]]]", "&#91;&#91;&#91;&#91;&#91;bar&#93;&#93;&#93;&#93;"}, {"[bar]]]]]", "&#91;&#91;&#91;&#91;&#91;bar&#93;&#93;&#93;&#93;&#93;"}, {"][][][][", "&#93;&#91;&#93;&#91;&#93;&#91;&#93;&#91;"}, {"[][][][][", "&#91;&#93;&#91;&#93;&#91;&#93;&#91;&#93;&#91;"}, {"][][][][]", "&#93;&#91;&#93;&#91;&#93;&#91;&#93;&#91;&#93;"}, {"[][][][][]", "&#91;&#93;&#91;&#93;&#91;&#93;&#91;&#93;&#91;&#93;"}, {"][][[][][", "&#91;&#91;foo&#124;&#93;&#91;&#93;&#91;&#91;&#93;&#91;&#93;&#91;&#93;&#93;"},		{"[][][[][][", "&#91;&#91;foo&#124;&#91;&#93;&#91;&#93;&#91;&#91;&#93;&#91;&#93;&#91;&#93;&#93;"},		{"][][[][][]", "&#91;&#91;foo&#124;&#93;&#91;&#93;&#91;&#91;&#93;&#91;&#93;&#91;&#93;&#93;&#93;"},		{"[][][[][][]", "&#91;&#91;foo&#124;&#91;&#93;&#91;&#93;&#91;&#91;&#93;&#91;&#93;&#91;&#93;&#93;&#93;"},		{"foo[[bar", "&#91;&#91;foobar"},		{"foobar]]", "foobar&#93;&#93;"},		{"foo\000bar","foobar"},		{"foo\1bar", "&#91;&#91;foo\1bar&#93;&#93;"},		{"foo\2bar", "&#91;&#91;foo\2bar&#93;&#93;"},		{"foo\3bar", "&#91;&#91;foo\3bar&#93;&#93;"},		{"foo\4bar", "&#91;&#91;foo\4bar&#93;&#93;"},		{"foo\5bar", "&#91;&#91;foo\5bar&#93;&#93;"},		{"foo\6bar", "&#91;&#91;foo\6bar&#93;&#93;"},		{"foo\abar", "&#91;&#91;foo\abar&#93;&#93;"},		{"foo\bbar", "&#91;&#91;foo\bbar&#93;&#93;"},		{"foo\tbar", "&#91;&#91;foo\tbar&#93;&#93;"},		{"foo\nbar", "&#91;&#91;foo\nbar&#93;&#93;"},		{"foo\vbar", "&#91;&#91;foo\vbar&#93;&#93;"},		{"foo\fbar", "&#91;&#91;foo\fbar&#93;&#93;"},		{"foo\rbar", "&#91;&#91;foo\nbar&#93;&#93;"},		{"foo\14bar", "&#91;&#91;foo\14bar&#93;&#93;"},		{"foo\15bar", "&#91;&#91;foo\15bar&#93;&#93;"},		{"foo\16bar", "&#91;&#91;foo\16bar&#93;&#93;"},		{"foo\17bar", "&#91;&#91;foo\17bar&#93;&#93;"},		{"foo\18bar", "&#91;&#91;foo\18bar&#93;&#93;"},		{"foo\19bar", "&#91;&#91;foo\19bar&#93;&#93;"},		{"foo\20bar", "&#91;&#91;foo\20bar&#93;&#93;"},		{"foo\21bar", "&#91;&#91;foo\21bar&#93;&#93;"},		{"foo\22bar", "&#91;&#91;foo\22bar&#93;&#93;"},		{"foo\23bar", "&#91;&#91;foo\23bar&#93;&#93;"},		{"foo\24bar", "&#91;&#91;foo\24bar&#93;&#93;"},		{"foo\25bar", "&#91;&#91;foo\25bar&#93;&#93;"},		{"foo\26bar", "&#91;&#91;foo\26bar&#93;&#93;"},		{"foo\27bar", "&#91;&#91;foo\27bar&#93;&#93;"},		{"foo\28bar", "&#91;&#91;foo\28bar&#93;&#93;"},		{"foo\29bar", "&#91;&#91;foo\29bar&#93;&#93;"},		{"foo\30bar", "&#91;&#91;foo\30bar&#93;&#93;"},		{"foo\31bar", "&#91;&#91;foo\31bar&#93;&#93;"},		{"foo bar", "foo bar"},		{"foobar", "&#91;&#91;foo&#62;bar&#93;&#93;"},		{"foo[bar", "&#91;&#91;foo&#91;bar&#93;&#93;"},		{"foo]bar", "&#91;&#91;foo&#93;bar&#93;&#93;"},		{"foo{bar", "&#91;&#91;foo&#123;bar&#93;&#93;"},		{"foo}bar", "&#91;&#91;foo&#125;bar&#93;&#93;"},		{"foo~bar", "foo~bar"},		{"foo\127bar", "&#91;&#91;foo\127bar&#93;&#93;"},		{"foo%00bar", "&#91;&#91;foo%00bar&#93;&#93;"},		{"foo%01bar", "&#91;&#91;foo%01bar&#93;&#93;"},		{"foo%02bar", "&#91;&#91;foo%02bar&#93;&#93;"},		{"foo%03bar", "&#91;&#91;foo%03bar&#93;&#93;"},		{"foo%04bar", "&#91;&#91;foo%04bar&#93;&#93;"},		{"foo%05bar", "&#91;&#91;foo%05bar&#93;&#93;"},		{"foo%06bar", "&#91;&#91;foo%06bar&#93;&#93;"},		{"foo%07bar", "&#91;&#91;foo%07bar&#93;&#93;"},		{"foo%08bar", "&#91;&#91;foo%08bar&#93;&#93;"},		{"foo%09bar", "&#91;&#91;foo%09bar&#93;&#93;"},		{"foo%0Abar", "&#91;&#91;foo%0Abar&#93;&#93;"},		{"foo%0abar", "&#91;&#91;foo%0abar&#93;&#93;"},		{"foo%0Bbar", "&#91;&#91;foo%0Bbar&#93;&#93;"},		{"foo%0bbar", "&#91;&#91;foo%0bbar&#93;&#93;"},		{"foo%0Cbar", "&#91;&#91;foo%0Cbar&#93;&#93;"},		{"foo%0cbar", "&#91;&#91;foo%0cbar&#93;&#93;"},		{"foo%0Dbar", "&#91;&#91;foo%0Dbar&#93;&#93;"},		{"foo%0dbar", "&#91;&#91;foo%0dbar&#93;&#93;"},		{"foo%0Ebar", "&#91;&#91;foo%0Ebar&#93;&#93;"},		{"foo%0ebar", "&#91;&#91;foo%0ebar&#93;&#93;"},		{"foo%0Fbar", "&#91;&#91;foo%0Fbar&#93;&#93;"},		{"foo%0fbar", "&#91;&#91;foo%0fbar&#93;&#93;"},		{"foo%10bar", "&#91;&#91;foo%10bar&#93;&#93;"},		{"foo%11bar", "&#91;&#91;foo%11bar&#93;&#93;"},		{"foo%12bar", "&#91;&#91;foo%12bar&#93;&#93;"},		{"foo%13bar", "&#91;&#91;foo%13bar&#93;&#93;"},		{"foo%14bar", "&#91;&#91;foo%14bar&#93;&#93;"},		{"foo%15bar", "&#91;&#91;foo%15bar&#93;&#93;"},		{"foo%16bar", "&#91;&#91;foo%16bar&#93;&#93;"},		{"foo%17bar", "&#91;&#91;foo%17bar&#93;&#93;"},		{"foo%18bar", "&#91;&#91;foo%18bar&#93;&#93;"},		{"foo%19bar", "&#91;&#91;foo%19bar&#93;&#93;"},		{"foo%1Abar", "&#91;&#91;foo%1Abar&#93;&#93;"},		{"foo%1abar", "&#91;&#91;foo%1abar&#93;&#93;"},		{"foo%1Bbar", "&#91;&#91;foo%1Bbar&#93;&#93;"},		{"foo%1bbar", "&#91;&#91;foo%1bbar&#93;&#93;"},		{"foo%1Cbar", "&#91;&#91;foo%1Cbar&#93;&#93;"},		{"foo%1cbar", "&#91;&#91;foo%1cbar&#93;&#93;"},		{"foo%1Dbar", "&#91;&#91;foo%1Dbar&#93;&#93;"},		{"foo%1dbar", "&#91;&#91;foo%1dbar&#93;&#93;"},		{"foo%1Ebar", "&#91;&#91;foo%1Ebar&#93;&#93;"},		{"foo%1ebar", "&#91;&#91;foo%1ebar&#93;&#93;"},		{"foo%1Fbar", "&#91;&#91;foo%1Fbar&#93;&#93;"},		{"foo%1fbar", "&#91;&#91;foo%1fbar&#93;&#93;"},		{"foo%20bar", "foo bar"},		{"foo%3Cbar", "&#91;&#91;foo%3Cbar&#93;&#93;"},		{"foo%3cbar", "&#91;&#91;foo%3cbar&#93;&#93;"},		{"foo%3Dbar", "foo&#61;bar"},		{"foo%3dbar", "foo&#61;bar"},		{"foo%3Ebar", "&#91;&#91;foo%3Ebar&#93;&#93;"},		{"foo%3ebar", "&#91;&#91;foo%3ebar&#93;&#93;"},		{"foo%5Bbar", "&#91;&#91;foo%5Bbar&#93;&#93;"},		{"foo%5bbar", "&#91;&#91;foo%5bbar&#93;&#93;"},		{"foo%5Dbar", "&#91;&#91;foo%5Dbar&#93;&#93;"},		{"foo%5dbar", "&#91;&#91;foo%5dbar&#93;&#93;"},		{"foo%7Bbar", "&#91;&#91;foo%7Bbar&#93;&#93;"},		{"foo%7bbar", "&#91;&#91;foo%7bbar&#93;&#93;"},		{"foo%7Cbar", "&#91;&#91;foo%7Cbar&#93;&#93;"},		{"foo%7cbar", "&#91;&#91;foo%7cbar&#93;&#93;"},		{"foo%7Dbar", "&#91;&#91;foo%7Dbar&#93;&#93;"},		{"foo%7dbar", "&#91;&#91;foo%7dbar&#93;&#93;"},		{"foo%7Ebar", "foo~bar"},		{"foo%7ebar", "foo~bar"},		{"foo%7Fbar", "&#91;&#91;foo%7Fbar&#93;&#93;"},		{"foo%7fbar", "&#91;&#91;foo%7fbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#0&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#1&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#2&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#3&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#4&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#5&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#6&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#7&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#8&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo\tbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo\nbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#11&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#12&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#13&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#14&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#15&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#16&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#17&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#18&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#19&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#20&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#21&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#22&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#23&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#24&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#25&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#26&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#27&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#28&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#29&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#30&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#31&#59;bar&#93;&#93;"},		{"foo&", "foo bar"},		{"foo&", "&#91;&#91;foo&#60;bar&#93;&#93;"},		{"foo&", "foo&#61;bar"},		{"foo&", "&#91;&#91;foo&#62;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#91;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#93;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#123;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#124;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#125;bar&#93;&#93;"},		{"foo&", "foo~bar"},		{"foo&", "&#91;&#91;foo&#38;#127&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x0&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X0&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x2&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X2&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x3&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X3&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x4&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X4&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x5&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X5&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x6&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X6&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x7&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X7&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x8&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X8&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo\tbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo\tbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo\nbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo\nbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo\nbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo\nbar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xB&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#XB&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xb&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#Xb&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xC&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#XC&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xc&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#Xc&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xD&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#XD&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xd&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#Xd&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xE&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#XE&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xe&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#Xe&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xF&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#XF&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#xf&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#Xf&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x10&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X10&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x11&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X11&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x12&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X12&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x13&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X13&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x14&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X14&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x15&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X15&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x16&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X16&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x17&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X17&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x18&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X18&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x19&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X19&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1A&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1A&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1a&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1a&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1B&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1B&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1b&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1b&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1C&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1C&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1c&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1c&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1D&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1D&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1d&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1d&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1E&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1E&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1e&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1e&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1F&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1F&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x1f&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X1f&#59;bar&#93;&#93;"},		{"foo&", "foo bar"},		{"foo&", "foo bar"},		{"foo&", "&#91;&#91;foo&#60;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#60;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#60;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#60;bar&#93;&#93;"},		{"foo&", "foo&#61;bar"},		{"foo&", "foo&#61;bar"},		{"foo&", "foo&#61;bar"},		{"foo&", "foo&#61;bar"},		{"foo&", "&#91;&#91;foo&#62;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#62;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#62;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#62;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#91;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#91;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#91;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#91;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#93;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#93;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#93;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#93;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#123;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#123;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#123;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#123;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#124;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#124;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#124;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#124;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#125;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#125;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#125;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#125;bar&#93;&#93;"},		{"foo&", "foo~bar"},		{"foo&", "foo~bar"},		{"foo&", "foo~bar"},		{"foo&", "foo~bar"},		{"foo&", "&#91;&#91;foo&#38;#x7F&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X7F&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#x7f&#59;bar&#93;&#93;"},		{"foo&", "&#91;&#91;foo&#38;#X7f&#59;bar&#93;&#93;"},		{"foo&Tab;bar", "&#91;&#91;foo\tbar&#93;&#93;"},		{"foo&NewLine;bar", "&#91;&#91;foo\nbar&#93;&#93;"},		{"foo&lt;bar", "&#91;&#91;foo&#60;bar&#93;&#93;"},		{"foo&equals;bar", "foo&#61;bar"},		{"foo&LT;bar", "&#91;&#91;foo&#60;bar&#93;&#93;"},		{"foo&gt;bar", "&#91;&#91;foo&#62;bar&#93;&#93;"},		{"foo&GT;bar", "&#91;&#91;foo&#62;bar&#93;&#93;"},		{"foo&lsqb;bar", "&#91;&#91;foo&#91;bar&#93;&#93;"},		{"foo&lbrack;bar", "&#91;&#91;foo&#91;bar&#93;&#93;"},		{"foo&rsqb;bar", "&#91;&#91;foo&#93;bar&#93;&#93;"},		{"foo&rbrack;bar", "&#91;&#91;foo&#93;bar&#93;&#93;"},		{"foo&lcub;bar", "&#91;&#91;foo&#123;bar&#93;&#93;"},		{"foo&lbrace;bar", "&#91;&#91;foo&#123;bar&#93;&#93;"},		{"foo&verbar;bar", "&#91;&#91;foo&#124;bar&#93;&#93;"},		{"foo&vert;bar", "&#91;&#91;foo&#124;bar&#93;&#93;"},		{"foo&VerticalLine;bar", "&#91;&#91;foo&#124;bar&#93;&#93;"},		{"foo&rcub;bar", "&#91;&#91;foo&#125;bar&#93;&#93;"},		{"foo&rbrace;bar", "&#91;&#91;foo&#125;bar&#93;&#93;"},		{"foo", "foo#bar"},	}	self:iterate(tests, "compare") end

return tests