1const std = @import("std");
2const url = @import("url");
3const expect = @import("expect").expect;
4
5// zig fmt: off
6
7pub fn parseFail(input: []const u8, base: ?[]const u8) !void {
8 const allocator = std.testing.allocator;
9 const u = url.URL.parse(allocator, input, base) catch |err| switch (err) {
10 error.InvalidURL => return,
11 error.OutOfMemory => return error.OutOfMemory,
12 };
13 defer allocator.free(u.href);
14 return error.FailZigTest;
15}
16
17pub fn parsePass(input: []const u8, base: ?[]const u8, href: []const u8, origin: []const u8, protocol: []const u8, username: []const u8, password: []const u8, host: []const u8, hostname: []const u8, port: []const u8, pathname: []const u8, search: []const u8, hash: []const u8) !void {
18 const allocator = std.testing.allocator;
19 const u = try url.URL.parse(allocator, input, base);
20 defer allocator.free(u.href);
21 _ = origin;
22 try expect(u.protocol).toEqualString(protocol);
23 try expect(u.username).toEqualString(username);
24 try expect(u.password).toEqualString(password);
25 try expect(u.hostname).toEqualString(hostname);
26 try expect(u.port).toEqualString(port);
27 try expect(u.host).toEqualString(host);
28 try expect(u.pathname).toEqualString(pathname);
29 try expect(u.search).toEqualString(search);
30 try expect(u.hash).toEqualString(hash);
31 try expect(u.href).toEqualString(href);
32}
33
34pub fn parseIDNAFail(comptime input: []const u8) !void {
35 const allocator = std.testing.allocator;
36 const u = url.URL.parse(allocator, "https://" ++ input ++ "/x", null) catch |err| switch (err) {
37 error.InvalidURL => return,
38 error.OutOfMemory => return error.OutOfMemory,
39 };
40 defer allocator.free(u.href);
41 return error.FailZigTest;
42}
43
44pub fn parseIDNAPass(comptime input: []const u8, comptime output: []const u8) !void {
45 // new URL('https://{idnaTest.input}/x');
46 const allocator = std.testing.allocator;
47 const u = try url.URL.parse(allocator, "https://" ++ input ++ "/x", null);
48 defer allocator.free(u.href);
49 try expect(u.hostname).toEqualString(output);
50 try expect(u.host).toEqualString(output);
51 try expect(u.pathname).toEqualString("/x");
52 // assert_equals(url.href, 'https://{idnaTest.output}/x');
53}
54
55test { try parseFail("file://example:1/", null); }
56test { try parseFail("file://example:test/", null); }
57test { try parseFail("file://example%/", null); }
58test { try parseFail("file://[example]/", null); }
59test { try parseFail("http://user:pass@/", null); }
60test { try parseFail("http://foo:-80/", null); }
61test { try parseFail("http:/:@/www.example.com", null); }
62test { try parseFail("http://user@/www.example.com", null); }
63test { try parseFail("http:@/www.example.com", null); }
64test { try parseFail("http:/@/www.example.com", null); }
65test { try parseFail("http://@/www.example.com", null); }
66test { try parseFail("https:@/www.example.com", null); }
67test { try parseFail("http:a:b@/www.example.com", null); }
68test { try parseFail("http:/a:b@/www.example.com", null); }
69test { try parseFail("http://a:b@/www.example.com", null); }
70test { try parseFail("http::@/www.example.com", null); }
71test { try parseFail("http:@:www.example.com", null); }
72test { try parseFail("http:/@:www.example.com", null); }
73test { try parseFail("http://@:www.example.com", null); }
74test { try parseFail("https://\xef\xbf\xbd", null); }
75test { try parseFail("https://%EF%BF%BD", null); }
76test { try parseFail("http://a.b.c.xn--pokxncvks", null); }
77test { try parseFail("http://10.0.0.xn--pokxncvks", null); }
78test { try parseFail("http://a.b.c.XN--pokxncvks", null); }
79test { try parseFail("http://a.b.c.Xn--pokxncvks", null); }
80test { try parseFail("http://10.0.0.XN--pokxncvks", null); }
81test { try parseFail("http://10.0.0.xN--pokxncvks", null); }
82test { try parseFail("https://x x:12", null); }
83test { try parseFail("http://[www.google.com]/", null); }
84test { try parseFail("sc://@/", null); }
85test { try parseFail("sc://te@s:t@/", null); }
86test { try parseFail("sc://:/", null); }
87test { try parseFail("sc://:12/", null); }
88test { try parseFail("sc://a\x00b/", null); }
89test { try parseFail("sc://a b/", null); }
90test { try parseFail("sc://a<b", null); }
91test { try parseFail("sc://a>b", null); }
92test { try parseFail("sc://a[b/", null); }
93test { try parseFail("sc://a\\b/", null); }
94test { try parseFail("sc://a]b/", null); }
95test { try parseFail("sc://a^b", null); }
96test { try parseFail("sc://a|b/", null); }
97test { try parseFail("http://a\x00b/", null); }
98test { try parseFail("http://a\x01b/", null); }
99test { try parseFail("http://a\x02b/", null); }
100test { try parseFail("http://a\x03b/", null); }
101test { try parseFail("http://a\x04b/", null); }
102test { try parseFail("http://a\x05b/", null); }
103test { try parseFail("http://a\x06b/", null); }
104test { try parseFail("http://a\x07b/", null); }
105test { try parseFail("http://a\x08b/", null); }
106test { try parseFail("http://a\x0bb/", null); }
107test { try parseFail("http://a\x0cb/", null); }
108test { try parseFail("http://a\x0eb/", null); }
109test { try parseFail("http://a\x0fb/", null); }
110test { try parseFail("http://a\x10b/", null); }
111test { try parseFail("http://a\x11b/", null); }
112test { try parseFail("http://a\x12b/", null); }
113test { try parseFail("http://a\x13b/", null); }
114test { try parseFail("http://a\x14b/", null); }
115test { try parseFail("http://a\x15b/", null); }
116test { try parseFail("http://a\x16b/", null); }
117test { try parseFail("http://a\x17b/", null); }
118test { try parseFail("http://a\x18b/", null); }
119test { try parseFail("http://a\x19b/", null); }
120test { try parseFail("http://a\x1ab/", null); }
121test { try parseFail("http://a\x1bb/", null); }
122test { try parseFail("http://a\x1cb/", null); }
123test { try parseFail("http://a\x1db/", null); }
124test { try parseFail("http://a\x1eb/", null); }
125test { try parseFail("http://a\x1fb/", null); }
126test { try parseFail("http://a b/", null); }
127test { try parseFail("http://a%b/", null); }
128test { try parseFail("http://a<b", null); }
129test { try parseFail("http://a>b", null); }
130test { try parseFail("http://a[b/", null); }
131test { try parseFail("http://a]b/", null); }
132test { try parseFail("http://a^b", null); }
133test { try parseFail("http://a|b/", null); }
134test { try parseFail("http://a\x7fb/", null); }
135test { try parseFail("http://ho%00st/", null); }
136test { try parseFail("http://ho%01st/", null); }
137test { try parseFail("http://ho%02st/", null); }
138test { try parseFail("http://ho%03st/", null); }
139test { try parseFail("http://ho%04st/", null); }
140test { try parseFail("http://ho%05st/", null); }
141test { try parseFail("http://ho%06st/", null); }
142test { try parseFail("http://ho%07st/", null); }
143test { try parseFail("http://ho%08st/", null); }
144test { try parseFail("http://ho%09st/", null); }
145test { try parseFail("http://ho%0Ast/", null); }
146test { try parseFail("http://ho%0Bst/", null); }
147test { try parseFail("http://ho%0Cst/", null); }
148test { try parseFail("http://ho%0Dst/", null); }
149test { try parseFail("http://ho%0Est/", null); }
150test { try parseFail("http://ho%0Fst/", null); }
151test { try parseFail("http://ho%10st/", null); }
152test { try parseFail("http://ho%11st/", null); }
153test { try parseFail("http://ho%12st/", null); }
154test { try parseFail("http://ho%13st/", null); }
155test { try parseFail("http://ho%14st/", null); }
156test { try parseFail("http://ho%15st/", null); }
157test { try parseFail("http://ho%16st/", null); }
158test { try parseFail("http://ho%17st/", null); }
159test { try parseFail("http://ho%18st/", null); }
160test { try parseFail("http://ho%19st/", null); }
161test { try parseFail("http://ho%1Ast/", null); }
162test { try parseFail("http://ho%1Bst/", null); }
163test { try parseFail("http://ho%1Cst/", null); }
164test { try parseFail("http://ho%1Dst/", null); }
165test { try parseFail("http://ho%1Est/", null); }
166test { try parseFail("http://ho%1Fst/", null); }
167test { try parseFail("http://ho%20st/", null); }
168test { try parseFail("http://ho%23st/", null); }
169test { try parseFail("http://ho%25st/", null); }
170test { try parseFail("http://ho%2Fst/", null); }
171test { try parseFail("http://ho%3Ast/", null); }
172test { try parseFail("http://ho%3Cst/", null); }
173test { try parseFail("http://ho%3Est/", null); }
174test { try parseFail("http://ho%3Fst/", null); }
175test { try parseFail("http://ho%40st/", null); }
176test { try parseFail("http://ho%5Bst/", null); }
177test { try parseFail("http://ho%5Cst/", null); }
178test { try parseFail("http://ho%5Dst/", null); }
179test { try parseFail("http://ho%7Cst/", null); }
180test { try parseFail("http://ho%7Fst/", null); }
181test { try parseFail("ftp://example.com%80/", null); }
182test { try parseFail("ftp://example.com%A0/", null); }
183test { try parseFail("https://example.com%80/", null); }
184test { try parseFail("https://example.com%A0/", null); }
185test { try parseFail("https://0x100000000/test", null); }
186test { try parseFail("https://256.0.0.1/test", null); }
187test { try parseFail("file://%43%3A", null); }
188test { try parseFail("file://%43%7C", null); }
189test { try parseFail("file://%43|", null); }
190test { try parseFail("file://C%7C", null); }
191test { try parseFail("file://%43%7C/", null); }
192test { try parseFail("https://%43%7C/", null); }
193test { try parseFail("asdf://%43|/", null); }
194test { try parseFail("\\\\\\.\\Y:", null); }
195test { try parseFail("\\\\\\.\\y:", null); }
196test { try parseFail("https://[0::0::0]", null); }
197test { try parseFail("https://[0:.0]", null); }
198test { try parseFail("https://[0:0:]", null); }
199test { try parseFail("https://[0:1:2:3:4:5:6:7.0.0.0.1]", null); }
200test { try parseFail("https://[0:1.00.0.0.0]", null); }
201test { try parseFail("https://[0:1.290.0.0.0]", null); }
202test { try parseFail("https://[0:1.23.23]", null); }
203test { try parseFail("http://?", null); }
204test { try parseFail("http://#", null); }
205test { try parseFail("non-special://[:80/", null); }
206test { try parseFail("http://[::127.0.0.0.1]", null); }
207test { try parseFail("a", null); }
208test { try parseFail("a/", null); }
209test { try parseFail("a//", null); }
210test { try parseFail("file://\xc2\xad/p", null); }
211test { try parseFail("file://%C2%AD/p", null); }
212test { try parseFail("file://xn--/p", null); }
213test { try parseFail("#", null); }
214test { try parseFail("?", null); }
215test { try parseFail("http://0..0x300/", null); }
216test { try parseFail("http://0..0x300./", null); }
217test { try parseFail("http://1.2.3.08", null); }
218test { try parseFail("http://1.2.3.08.", null); }
219test { try parseFail("http://1.2.3.09", null); }
220test { try parseFail("http://09.2.3.4", null); }
221test { try parseFail("http://09.2.3.4.", null); }
222test { try parseFail("http://01.2.3.4.5", null); }
223test { try parseFail("http://01.2.3.4.5.", null); }
224test { try parseFail("http://0x100.2.3.4", null); }
225test { try parseFail("http://0x100.2.3.4.", null); }
226test { try parseFail("http://0x1.2.3.4.5", null); }
227test { try parseFail("http://0x1.2.3.4.5.", null); }
228test { try parseFail("http://foo.1.2.3.4", null); }
229test { try parseFail("http://foo.1.2.3.4.", null); }
230test { try parseFail("http://foo.2.3.4", null); }
231test { try parseFail("http://foo.2.3.4.", null); }
232test { try parseFail("http://foo.09", null); }
233test { try parseFail("http://foo.09.", null); }
234test { try parseFail("http://foo.0x4", null); }
235test { try parseFail("http://foo.0x4.", null); }
236test { try parseFail("http://0999999999999999999/", null); }
237test { try parseFail("http://foo.0x", null); }
238test { try parseFail("http://foo.0XFfFfFfFfFfFfFfFfFfAcE123", null); }
239test { try parseFail("http://\xf0\x9f\x92\xa9.123/", null); }
240test { try parseFail("https://\x00y", null); }
241test { try parseFail("https://\xef\xbf\xbfy", null); }
242test { try parseFail("", null); }
243test { try parseFail("https://\xc2\xad/", null); }
244test { try parseFail("https://%C2%AD/", null); }
245test { try parseFail("https://xn--/", null); }
246test { try parseFail("data://:443", null); }
247test { try parseFail("data://test:test", null); }
248test { try parseFail("data://[:1]", null); }
249test { try parseFail("javascript://:443", null); }
250test { try parseFail("javascript://test:test", null); }
251test { try parseFail("javascript://[:1]", null); }
252test { try parseFail("mailto://:443", null); }
253test { try parseFail("mailto://test:test", null); }
254test { try parseFail("mailto://[:1]", null); }
255test { try parseFail("intent://:443", null); }
256test { try parseFail("intent://test:test", null); }
257test { try parseFail("intent://[:1]", null); }
258test { try parseFail("urn://:443", null); }
259test { try parseFail("urn://test:test", null); }
260test { try parseFail("urn://[:1]", null); }
261test { try parseFail("turn://:443", null); }
262test { try parseFail("turn://test:test", null); }
263test { try parseFail("turn://[:1]", null); }
264test { try parseFail("stun://:443", null); }
265test { try parseFail("stun://test:test", null); }
266test { try parseFail("stun://[:1]", null); }
267test { try parseFail("non-special://host\\a", null); }
268
269test { try parseFail("http://f:b/c", "http://example.org/foo/bar"); }
270test { try parseFail("http://f: /c", "http://example.org/foo/bar"); }
271test { try parseFail("http://f:fifty-two/c", "http://example.org/foo/bar"); }
272test { try parseFail("http://f:999999/c", "http://example.org/foo/bar"); }
273test { try parseFail("non-special://f:999999/c", "http://example.org/foo/bar"); }
274test { try parseFail("http://f: 21 / b ? d # e ", "http://example.org/foo/bar"); }
275test { try parseFail("http://[1::2]:3:4", "http://example.org/foo/bar"); }
276test { try parseFail("http://2001::1", "http://example.org/foo/bar"); }
277test { try parseFail("http://2001::1]", "http://example.org/foo/bar"); }
278test { try parseFail("http://2001::1]:80", "http://example.org/foo/bar"); }
279test { try parseFail("http://[::127.0.0.1.]", "http://example.org/foo/bar"); }
280test { try parseFail("http://example example.com", "http://other.com/"); }
281test { try parseFail("http://Goo%20 goo%7C|.com", "http://other.com/"); }
282test { try parseFail("http://[]", "http://other.com/"); }
283test { try parseFail("http://[:]", "http://other.com/"); }
284test { try parseFail("http://GOO\xc2\xa0\xe3\x80\x80goo.com", "http://other.com/"); }
285test { try parseFail("http://\xef\xb7\x90zyx.com", "http://other.com/"); }
286test { try parseFail("http://%ef%b7%90zyx.com", "http://other.com/"); }
287test { try parseFail("http://\xef\xbc\x85\xef\xbc\x94\xef\xbc\x91.com", "http://other.com/"); }
288test { try parseFail("http://%ef%bc%85%ef%bc%94%ef%bc%91.com", "http://other.com/"); }
289test { try parseFail("http://\xef\xbc\x85\xef\xbc\x90\xef\xbc\x90.com", "http://other.com/"); }
290test { try parseFail("http://%ef%bc%85%ef%bc%90%ef%bc%90.com", "http://other.com/"); }
291test { try parseFail("http://%zz%66%a.com", "http://other.com/"); }
292test { try parseFail("http://%25", "http://other.com/"); }
293test { try parseFail("http://hello%00", "http://other.com/"); }
294test { try parseFail("http://192.168.0.257", "http://other.com/"); }
295test { try parseFail("http://%3g%78%63%30%2e%30%32%35%30%2E.01", "http://other.com/"); }
296test { try parseFail("http://192.168.0.1 hello", "http://other.com/"); }
297test { try parseFail("http://[google.com]", "http://other.com/"); }
298test { try parseFail("http://[::1.2.3.4x]", "http://other.com/"); }
299test { try parseFail("http://[::1.2.3.]", "http://other.com/"); }
300test { try parseFail("http://[::1.2.]", "http://other.com/"); }
301test { try parseFail("http://[::.1.2]", "http://other.com/"); }
302test { try parseFail("http://[::1.]", "http://other.com/"); }
303test { try parseFail("http://[::.1]", "http://other.com/"); }
304test { try parseFail("http://[::%31]", "http://other.com/"); }
305test { try parseFail("http://%5B::1]", "http://other.com/"); }
306test { try parseFail("i", "sc:sd"); }
307test { try parseFail("i", "sc:sd/sd"); }
308test { try parseFail("../i", "sc:sd"); }
309test { try parseFail("../i", "sc:sd/sd"); }
310test { try parseFail("/i", "sc:sd"); }
311test { try parseFail("/i", "sc:sd/sd"); }
312test { try parseFail("?i", "sc:sd"); }
313test { try parseFail("?i", "sc:sd/sd"); }
314test { try parseFail("http:", "https://example.org/foo/bar"); }
315test { try parseFail("http://10000000000", "http://other.com/"); }
316test { try parseFail("http://4294967296", "http://other.com/"); }
317test { try parseFail("http://0xffffffff1", "http://other.com/"); }
318test { try parseFail("http://256.256.256.256", "http://other.com/"); }
319test { try parseFail("http://[0:1:2:3:4:5:6:7:8]", "http://example.net/"); }
320test { try parseFail("http://f:4294967377/c", "http://example.org/"); }
321test { try parseFail("http://f:18446744073709551697/c", "http://example.org/"); }
322test { try parseFail("http://f:340282366920938463463374607431768211537/c", "http://example.org/"); }
323test { try parseFail("test-a-colon.html", "a:"); }
324test { try parseFail("test-a-colon-b.html", "a:b"); }
325test { try parseFail("http://1.2.3.4.5", "http://other.com/"); }
326test { try parseFail("http://1.2.3.4.5.", "http://other.com/"); }
327test { try parseFail("http://256.256.256.256.256", "http://other.com/"); }
328test { try parseFail("http://256.256.256.256.256.", "http://other.com/"); }
329
330test { try parsePass("https://test:@test", null, "https://test@test/", "https://test", "https:", "test", "", "test", "test", "", "/", "", ""); }
331test { try parsePass("https://:@test", null, "https://test/", "https://test", "https:", "", "", "test", "test", "", "/", "", ""); }
332test { try parsePass("non-special://test:@test/x", null, "non-special://test@test/x", "null", "non-special:", "test", "", "test", "test", "", "/x", "", ""); }
333test { try parsePass("non-special://:@test/x", null, "non-special://test/x", "null", "non-special:", "", "", "test", "test", "", "/x", "", ""); }
334test { try parsePass("lolscheme:x x#x x", null, "lolscheme:x x#x%20x", "", "lolscheme:", "", "", "", "", "", "x x", "", "#x%20x"); }
335test { try parsePass("http://a:b@c\\", null, "http://a:b@c/", "http://c", "http:", "a", "b", "c", "c", "", "/", "", ""); }
336test { try parsePass("ws://a@b\\c", null, "ws://a@b/c", "ws://b", "ws:", "a", "", "b", "b", "", "/c", "", ""); }
337test { try parsePass("file:///w|m", null, "file:///w|m", "", "file:", "", "", "", "", "", "/w|m", "", ""); }
338test { try parsePass("file:///w||m", null, "file:///w||m", "", "file:", "", "", "", "", "", "/w||m", "", ""); }
339test { try parsePass("file:///w|/m", null, "file:///w:/m", "", "file:", "", "", "", "", "", "/w:/m", "", ""); }
340test { try parsePass("file:C|/m/", null, "file:///C:/m/", "", "file:", "", "", "", "", "", "/C:/m/", "", ""); }
341test { try parsePass("file:C||/m/", null, "file:///C||/m/", "", "file:", "", "", "", "", "", "/C||/m/", "", ""); }
342test { try parsePass("http://example.com/././foo", null, "http://example.com/foo", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo", "", ""); }
343test { try parsePass("http://example.com/./.foo", null, "http://example.com/.foo", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/.foo", "", ""); }
344test { try parsePass("http://example.com/foo/.", null, "http://example.com/foo/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/", "", ""); }
345test { try parsePass("http://example.com/foo/./", null, "http://example.com/foo/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/", "", ""); }
346test { try parsePass("http://example.com/foo/bar/..", null, "http://example.com/foo/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/", "", ""); }
347test { try parsePass("http://example.com/foo/bar/../", null, "http://example.com/foo/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/", "", ""); }
348test { try parsePass("http://example.com/foo/..bar", null, "http://example.com/foo/..bar", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/..bar", "", ""); }
349test { try parsePass("http://example.com/foo/bar/../ton", null, "http://example.com/foo/ton", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/ton", "", ""); }
350test { try parsePass("http://example.com/foo/bar/../ton/../../a", null, "http://example.com/a", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/a", "", ""); }
351test { try parsePass("http://example.com/foo/../../..", null, "http://example.com/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/", "", ""); }
352test { try parsePass("http://example.com/foo/../../../ton", null, "http://example.com/ton", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/ton", "", ""); }
353test { try parsePass("http://example.com/foo/%2e", null, "http://example.com/foo/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/", "", ""); }
354test { try parsePass("http://example.com/foo/%2e%2", null, "http://example.com/foo/%2e%2", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/%2e%2", "", ""); }
355test { try parsePass("http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar", null, "http://example.com/%2e.bar", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/%2e.bar", "", ""); }
356test { try parsePass("http://example.com////../..", null, "http://example.com//", "http://example.com", "http:", "", "", "example.com", "example.com", "", "//", "", ""); }
357test { try parsePass("http://example.com/foo/bar//../..", null, "http://example.com/foo/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/", "", ""); }
358test { try parsePass("http://example.com/foo/bar//..", null, "http://example.com/foo/bar/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo/bar/", "", ""); }
359test { try parsePass("http://example.com/foo", null, "http://example.com/foo", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo", "", ""); }
360test { try parsePass("http://example.com/%20foo", null, "http://example.com/%20foo", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/%20foo", "", ""); }
361test { try parsePass("http://example.com/foo%", null, "http://example.com/foo%", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo%", "", ""); }
362test { try parsePass("http://example.com/foo%2", null, "http://example.com/foo%2", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo%2", "", ""); }
363test { try parsePass("http://example.com/foo%2zbar", null, "http://example.com/foo%2zbar", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo%2zbar", "", ""); }
364test { try parsePass("http://example.com/foo%2\xc3\x82\xc2\xa9zbar", null, "http://example.com/foo%2%C3%82%C2%A9zbar", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo%2%C3%82%C2%A9zbar", "", ""); }
365test { try parsePass("http://example.com/foo%41%7a", null, "http://example.com/foo%41%7a", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo%41%7a", "", ""); }
366test { try parsePass("http://example.com/foo\t\xc2\x91%91", null, "http://example.com/foo%C2%91%91", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo%C2%91%91", "", ""); }
367test { try parsePass("http://example.com/foo%00%51", null, "http://example.com/foo%00%51", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foo%00%51", "", ""); }
368test { try parsePass("http://example.com/(%28:%3A%29)", null, "http://example.com/(%28:%3A%29)", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/(%28:%3A%29)", "", ""); }
369test { try parsePass("http://example.com/%3A%3a%3C%3c", null, "http://example.com/%3A%3a%3C%3c", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/%3A%3a%3C%3c", "", ""); }
370test { try parsePass("http://example.com/foo\tbar", null, "http://example.com/foobar", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/foobar", "", ""); }
371test { try parsePass("http://example.com\\\\foo\\\\bar", null, "http://example.com//foo//bar", "http://example.com", "http:", "", "", "example.com", "example.com", "", "//foo//bar", "", ""); }
372test { try parsePass("http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd", null, "http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/%7Ffp3%3Eju%3Dduvgw%3Dd", "", ""); }
373test { try parsePass("http://example.com/@asdf%40", null, "http://example.com/@asdf%40", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/@asdf%40", "", ""); }
374test { try parsePass("http://example.com/\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xbd\xa0\xe5\xa5\xbd", null, "http://example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD", "", ""); }
375test { try parsePass("http://example.com/\xe2\x80\xa5/foo", null, "http://example.com/%E2%80%A5/foo", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/%E2%80%A5/foo", "", ""); }
376test { try parsePass("http://example.com/\xef\xbb\xbf/foo", null, "http://example.com/%EF%BB%BF/foo", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/%EF%BB%BF/foo", "", ""); }
377test { try parsePass("http://example.com/\xe2\x80\xae/foo/\xe2\x80\xad/bar", null, "http://example.com/%E2%80%AE/foo/%E2%80%AD/bar", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/%E2%80%AE/foo/%E2%80%AD/bar", "", ""); }
378test { try parsePass("http://www.google.com/foo?bar=baz#", null, "http://www.google.com/foo?bar=baz#", "http://www.google.com", "http:", "", "", "www.google.com", "www.google.com", "", "/foo", "?bar=baz", ""); }
379test { try parsePass("http://www.google.com/foo?bar=baz# \xc2\xbb", null, "http://www.google.com/foo?bar=baz#%20%C2%BB", "http://www.google.com", "http:", "", "", "www.google.com", "www.google.com", "", "/foo", "?bar=baz", "#%20%C2%BB"); }
380test { try parsePass("data:test# \xc2\xbb", null, "data:test#%20%C2%BB", "null", "data:", "", "", "", "", "", "test", "", "#%20%C2%BB"); }
381test { try parsePass("http://www.google.com", null, "http://www.google.com/", "http://www.google.com", "http:", "", "", "www.google.com", "www.google.com", "", "/", "", ""); }
382test { try parsePass("http://192.0x00A80001", null, "http://192.168.0.1/", "http://192.168.0.1", "http:", "", "", "192.168.0.1", "192.168.0.1", "", "/", "", ""); }
383test { try parsePass("http://www/foo%2Ehtml", null, "http://www/foo%2Ehtml", "http://www", "http:", "", "", "www", "www", "", "/foo%2Ehtml", "", ""); }
384test { try parsePass("http://www/foo/%2E/html", null, "http://www/foo/html", "http://www", "http:", "", "", "www", "www", "", "/foo/html", "", ""); }
385test { try parsePass("http://%25DOMAIN:foobar@foodomain.com/", null, "http://%25DOMAIN:foobar@foodomain.com/", "http://foodomain.com", "http:", "%25DOMAIN", "foobar", "foodomain.com", "foodomain.com", "", "/", "", ""); }
386test { try parsePass("http:\\\\www.google.com\\foo", null, "http://www.google.com/foo", "http://www.google.com", "http:", "", "", "www.google.com", "www.google.com", "", "/foo", "", ""); }
387test { try parsePass("http://foo:80/", null, "http://foo/", "http://foo", "http:", "", "", "foo", "foo", "", "/", "", ""); }
388test { try parsePass("http://foo:81/", null, "http://foo:81/", "http://foo:81", "http:", "", "", "foo:81", "foo", "81", "/", "", ""); }
389test { try parsePass("httpa://foo:80/", null, "httpa://foo:80/", "null", "httpa:", "", "", "foo:80", "foo", "80", "/", "", ""); }
390test { try parsePass("https://foo:443/", null, "https://foo/", "https://foo", "https:", "", "", "foo", "foo", "", "/", "", ""); }
391test { try parsePass("https://foo:80/", null, "https://foo:80/", "https://foo:80", "https:", "", "", "foo:80", "foo", "80", "/", "", ""); }
392test { try parsePass("ftp://foo:21/", null, "ftp://foo/", "ftp://foo", "ftp:", "", "", "foo", "foo", "", "/", "", ""); }
393test { try parsePass("ftp://foo:80/", null, "ftp://foo:80/", "ftp://foo:80", "ftp:", "", "", "foo:80", "foo", "80", "/", "", ""); }
394test { try parsePass("gopher://foo:70/", null, "gopher://foo:70/", "null", "gopher:", "", "", "foo:70", "foo", "70", "/", "", ""); }
395test { try parsePass("gopher://foo:443/", null, "gopher://foo:443/", "null", "gopher:", "", "", "foo:443", "foo", "443", "/", "", ""); }
396test { try parsePass("ws://foo:80/", null, "ws://foo/", "ws://foo", "ws:", "", "", "foo", "foo", "", "/", "", ""); }
397test { try parsePass("ws://foo:81/", null, "ws://foo:81/", "ws://foo:81", "ws:", "", "", "foo:81", "foo", "81", "/", "", ""); }
398test { try parsePass("ws://foo:443/", null, "ws://foo:443/", "ws://foo:443", "ws:", "", "", "foo:443", "foo", "443", "/", "", ""); }
399test { try parsePass("ws://foo:815/", null, "ws://foo:815/", "ws://foo:815", "ws:", "", "", "foo:815", "foo", "815", "/", "", ""); }
400test { try parsePass("wss://foo:80/", null, "wss://foo:80/", "wss://foo:80", "wss:", "", "", "foo:80", "foo", "80", "/", "", ""); }
401test { try parsePass("wss://foo:81/", null, "wss://foo:81/", "wss://foo:81", "wss:", "", "", "foo:81", "foo", "81", "/", "", ""); }
402test { try parsePass("wss://foo:443/", null, "wss://foo/", "wss://foo", "wss:", "", "", "foo", "foo", "", "/", "", ""); }
403test { try parsePass("wss://foo:815/", null, "wss://foo:815/", "wss://foo:815", "wss:", "", "", "foo:815", "foo", "815", "/", "", ""); }
404test { try parsePass("http:/example.com/", null, "http://example.com/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/", "", ""); }
405test { try parsePass("ftp:/example.com/", null, "ftp://example.com/", "ftp://example.com", "ftp:", "", "", "example.com", "example.com", "", "/", "", ""); }
406test { try parsePass("https:/example.com/", null, "https://example.com/", "https://example.com", "https:", "", "", "example.com", "example.com", "", "/", "", ""); }
407test { try parsePass("madeupscheme:/example.com/", null, "madeupscheme:/example.com/", "null", "madeupscheme:", "", "", "", "", "", "/example.com/", "", ""); }
408test { try parsePass("file:/example.com/", null, "file:///example.com/", "", "file:", "", "", "", "", "", "/example.com/", "", ""); }
409test { try parsePass("ftps:/example.com/", null, "ftps:/example.com/", "null", "ftps:", "", "", "", "", "", "/example.com/", "", ""); }
410test { try parsePass("gopher:/example.com/", null, "gopher:/example.com/", "null", "gopher:", "", "", "", "", "", "/example.com/", "", ""); }
411test { try parsePass("ws:/example.com/", null, "ws://example.com/", "ws://example.com", "ws:", "", "", "example.com", "example.com", "", "/", "", ""); }
412test { try parsePass("wss:/example.com/", null, "wss://example.com/", "wss://example.com", "wss:", "", "", "example.com", "example.com", "", "/", "", ""); }
413test { try parsePass("data:/example.com/", null, "data:/example.com/", "null", "data:", "", "", "", "", "", "/example.com/", "", ""); }
414test { try parsePass("javascript:/example.com/", null, "javascript:/example.com/", "null", "javascript:", "", "", "", "", "", "/example.com/", "", ""); }
415test { try parsePass("mailto:/example.com/", null, "mailto:/example.com/", "null", "mailto:", "", "", "", "", "", "/example.com/", "", ""); }
416test { try parsePass("http:example.com/", null, "http://example.com/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/", "", ""); }
417test { try parsePass("ftp:example.com/", null, "ftp://example.com/", "ftp://example.com", "ftp:", "", "", "example.com", "example.com", "", "/", "", ""); }
418test { try parsePass("https:example.com/", null, "https://example.com/", "https://example.com", "https:", "", "", "example.com", "example.com", "", "/", "", ""); }
419test { try parsePass("madeupscheme:example.com/", null, "madeupscheme:example.com/", "null", "madeupscheme:", "", "", "", "", "", "example.com/", "", ""); }
420test { try parsePass("ftps:example.com/", null, "ftps:example.com/", "null", "ftps:", "", "", "", "", "", "example.com/", "", ""); }
421test { try parsePass("gopher:example.com/", null, "gopher:example.com/", "null", "gopher:", "", "", "", "", "", "example.com/", "", ""); }
422test { try parsePass("ws:example.com/", null, "ws://example.com/", "ws://example.com", "ws:", "", "", "example.com", "example.com", "", "/", "", ""); }
423test { try parsePass("wss:example.com/", null, "wss://example.com/", "wss://example.com", "wss:", "", "", "example.com", "example.com", "", "/", "", ""); }
424test { try parsePass("data:example.com/", null, "data:example.com/", "null", "data:", "", "", "", "", "", "example.com/", "", ""); }
425test { try parsePass("javascript:example.com/", null, "javascript:example.com/", "null", "javascript:", "", "", "", "", "", "example.com/", "", ""); }
426test { try parsePass("mailto:example.com/", null, "mailto:example.com/", "null", "mailto:", "", "", "", "", "", "example.com/", "", ""); }
427test { try parsePass("https://example.com/aaa/bbb/%2e%2e?query", null, "https://example.com/aaa/?query", "https://example.com", "https:", "", "", "example.com", "example.com", "", "/aaa/", "?query", ""); }
428test { try parsePass("http:@www.example.com", null, "http://www.example.com/", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/", "", ""); }
429test { try parsePass("http:/@www.example.com", null, "http://www.example.com/", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/", "", ""); }
430test { try parsePass("http://@www.example.com", null, "http://www.example.com/", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/", "", ""); }
431test { try parsePass("http:a:b@www.example.com", null, "http://a:b@www.example.com/", "http://www.example.com", "http:", "a", "b", "www.example.com", "www.example.com", "", "/", "", ""); }
432test { try parsePass("http:/a:b@www.example.com", null, "http://a:b@www.example.com/", "http://www.example.com", "http:", "a", "b", "www.example.com", "www.example.com", "", "/", "", ""); }
433test { try parsePass("http://a:b@www.example.com", null, "http://a:b@www.example.com/", "http://www.example.com", "http:", "a", "b", "www.example.com", "www.example.com", "", "/", "", ""); }
434test { try parsePass("http://@pple.com", null, "http://pple.com/", "http://pple.com", "http:", "", "", "pple.com", "pple.com", "", "/", "", ""); }
435test { try parsePass("http::b@www.example.com", null, "http://:b@www.example.com/", "http://www.example.com", "http:", "", "b", "www.example.com", "www.example.com", "", "/", "", ""); }
436test { try parsePass("http:/:b@www.example.com", null, "http://:b@www.example.com/", "http://www.example.com", "http:", "", "b", "www.example.com", "www.example.com", "", "/", "", ""); }
437test { try parsePass("http://:b@www.example.com", null, "http://:b@www.example.com/", "http://www.example.com", "http:", "", "b", "www.example.com", "www.example.com", "", "/", "", ""); }
438test { try parsePass("http:a:@www.example.com", null, "http://a@www.example.com/", "http://www.example.com", "http:", "a", "", "www.example.com", "www.example.com", "", "/", "", ""); }
439test { try parsePass("http:/a:@www.example.com", null, "http://a@www.example.com/", "http://www.example.com", "http:", "a", "", "www.example.com", "www.example.com", "", "/", "", ""); }
440test { try parsePass("http://a:@www.example.com", null, "http://a@www.example.com/", "http://www.example.com", "http:", "a", "", "www.example.com", "www.example.com", "", "/", "", ""); }
441test { try parsePass("http://www.@pple.com", null, "http://www.@pple.com/", "http://pple.com", "http:", "www.", "", "pple.com", "pple.com", "", "/", "", ""); }
442test { try parsePass("http://:@www.example.com", null, "http://www.example.com/", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/", "", ""); }
443test { try parsePass("file:.", null, "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
444test { try parsePass("\x00\x1b\x04\x12 http://example.com/\x1f \r ", null, "http://example.com/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/", "", ""); }
445test { try parsePass("non-special:opaque ", null, "non-special:opaque", "null", "non-special:", "", "", "", "", "", "opaque", "", ""); }
446test { try parsePass("non-special:opaque ?hi", null, "non-special:opaque %20?hi", "null", "non-special:", "", "", "", "", "", "opaque %20", "?hi", ""); }
447test { try parsePass("non-special:opaque #hi", null, "non-special:opaque %20#hi", "null", "non-special:", "", "", "", "", "", "opaque %20", "", "#hi"); }
448test { try parsePass("non-special:opaque x?hi", null, "non-special:opaque x?hi", "null", "non-special:", "", "", "", "", "", "opaque x", "?hi", ""); }
449test { try parsePass("non-special:opaque x#hi", null, "non-special:opaque x#hi", "null", "non-special:", "", "", "", "", "", "opaque x", "", "#hi"); }
450test { try parsePass("non-special:opaque \t\t \t#hi", null, "non-special:opaque %20#hi", "null", "non-special:", "", "", "", "", "", "opaque %20", "", "#hi"); }
451test { try parsePass("non-special:opaque \t\t #hi", null, "non-special:opaque %20#hi", "null", "non-special:", "", "", "", "", "", "opaque %20", "", "#hi"); }
452test { try parsePass("non-special:opaque\t\t \r #hi", null, "non-special:opaque %20#hi", "null", "non-special:", "", "", "", "", "", "opaque %20", "", "#hi"); }
453test { try parsePass("https://x/\xef\xbf\xbd?\xef\xbf\xbd#\xef\xbf\xbd", null, "https://x/%EF%BF%BD?%EF%BF%BD#%EF%BF%BD", "https://x", "https:", "", "", "x", "x", "", "/%EF%BF%BD", "?%EF%BF%BD", "#%EF%BF%BD"); }
454test { try parsePass("https://fa\xc3\x9f.ExAmPlE/", null, "https://xn--fa-hia.example/", "https://xn--fa-hia.example", "https:", "", "", "xn--fa-hia.example", "xn--fa-hia.example", "", "/", "", ""); }
455test { try parsePass("sc://fa\xc3\x9f.ExAmPlE/", null, "sc://fa%C3%9F.ExAmPlE/", "null", "sc:", "", "", "fa%C3%9F.ExAmPlE", "fa%C3%9F.ExAmPlE", "", "/", "", ""); }
456test { try parsePass("http://./", null, "http://./", "http://.", "http:", "", "", ".", ".", "", "/", "", ""); }
457test { try parsePass("http://../", null, "http://../", "http://..", "http:", "", "", "..", "..", "", "/", "", ""); }
458test { try parsePass("h://.", null, "h://.", "null", "h:", "", "", ".", ".", "", "", "", ""); }
459test { try parsePass("https://localhost?q=\xf0\x9f\x94\xa5", null, "https://localhost/?q=%F0%9F%94%A5", "https://localhost", "https:", "", "", "localhost", "localhost", "", "/", "?q=%F0%9F%94%A5", ""); }
460test { try parsePass("https://localhost#\xf0\x9f\x94\xa5", null, "https://localhost/#%F0%9F%94%A5", "https://localhost", "https:", "", "", "localhost", "localhost", "", "/", "", "#%F0%9F%94%A5"); }
461test { try parsePass("http://host/?'", null, "http://host/?%27", "http://host", "http:", "", "", "host", "host", "", "/", "?%27", ""); }
462test { try parsePass("notspecial://host/?'", null, "notspecial://host/?'", "null", "notspecial:", "", "", "host", "host", "", "/", "?'", ""); }
463test { try parsePass("about:/../", null, "about:/", "null", "about:", "", "", "", "", "", "/", "", ""); }
464test { try parsePass("data:/../", null, "data:/", "null", "data:", "", "", "", "", "", "/", "", ""); }
465test { try parsePass("javascript:/../", null, "javascript:/", "null", "javascript:", "", "", "", "", "", "/", "", ""); }
466test { try parsePass("mailto:/../", null, "mailto:/", "null", "mailto:", "", "", "", "", "", "/", "", ""); }
467test { try parsePass("sc://\xc3\xb1.test/", null, "sc://%C3%B1.test/", "null", "sc:", "", "", "%C3%B1.test", "%C3%B1.test", "", "/", "", ""); }
468test { try parsePass("sc://%/", null, "sc://%/", "", "sc:", "", "", "%", "%", "", "/", "", ""); }
469test { try parsePass("sc:\\../", null, "sc:\\../", "null", "sc:", "", "", "", "", "", "\\../", "", ""); }
470test { try parsePass("sc::a@example.net", null, "sc::a@example.net", "null", "sc:", "", "", "", "", "", ":a@example.net", "", ""); }
471test { try parsePass("wow:%NBD", null, "wow:%NBD", "null", "wow:", "", "", "", "", "", "%NBD", "", ""); }
472test { try parsePass("wow:%1G", null, "wow:%1G", "null", "wow:", "", "", "", "", "", "%1G", "", ""); }
473test { try parsePass("wow:\xef\xbf\xbf", null, "wow:%EF%BF%BF", "null", "wow:", "", "", "", "", "", "%EF%BF%BF", "", ""); }
474test { try parsePass("foo://ho\tst/", null, "foo://host/", "", "foo:", "", "", "host", "host", "", "/", "", ""); }
475test { try parsePass("foo://ho\nst/", null, "foo://host/", "", "foo:", "", "", "host", "host", "", "/", "", ""); }
476test { try parsePass("foo://ho\rst/", null, "foo://host/", "", "foo:", "", "", "host", "host", "", "/", "", ""); }
477test { try parsePass("http://ho\tst/", null, "http://host/", "", "http:", "", "", "host", "host", "", "/", "", ""); }
478test { try parsePass("http://ho\nst/", null, "http://host/", "", "http:", "", "", "host", "host", "", "/", "", ""); }
479test { try parsePass("http://ho\rst/", null, "http://host/", "", "http:", "", "", "host", "host", "", "/", "", ""); }
480test { try parsePass("http://!\"$&'()*+,-.;=_`{}~/", null, "http://!\"$&'()*+,-.;=_`{}~/", "http://!\"$&'()*+,-.;=_`{}~", "http:", "", "", "!\"$&'()*+,-.;=_`{}~", "!\"$&'()*+,-.;=_`{}~", "", "/", "", ""); }
481test { try parsePass("sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x7f!\"$%&'()*+,-.;=_`{}~/", null, "sc://%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~/", "null", "sc:", "", "", "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~", "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~", "", "/", "", ""); }
482test { try parsePass("ftp://%e2%98%83", null, "ftp://xn--n3h/", "ftp://xn--n3h", "ftp:", "", "", "xn--n3h", "xn--n3h", "", "/", "", ""); }
483test { try parsePass("https://%e2%98%83", null, "https://xn--n3h/", "https://xn--n3h", "https:", "", "", "xn--n3h", "xn--n3h", "", "/", "", ""); }
484test { try parsePass("http://127.0.0.1:10100/relative_import.html", null, "http://127.0.0.1:10100/relative_import.html", "http://127.0.0.1:10100", "http:", "", "", "127.0.0.1:10100", "127.0.0.1", "10100", "/relative_import.html", "", ""); }
485test { try parsePass("http://facebook.com/?foo=%7B%22abc%22", null, "http://facebook.com/?foo=%7B%22abc%22", "http://facebook.com", "http:", "", "", "facebook.com", "facebook.com", "", "/", "?foo=%7B%22abc%22", ""); }
486test { try parsePass("https://localhost:3000/jqueryui@1.2.3", null, "https://localhost:3000/jqueryui@1.2.3", "https://localhost:3000", "https:", "", "", "localhost:3000", "localhost", "3000", "/jqueryui@1.2.3", "", ""); }
487test { try parsePass("h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg", null, "http://host:9000/path?query#frag", "http://host:9000", "http:", "", "", "host:9000", "host", "9000", "/path", "?query", "#frag"); }
488test { try parsePass("http://foo.bar/baz?qux#foo\x08bar", null, "http://foo.bar/baz?qux#foo%08bar", "http://foo.bar", "http:", "", "", "foo.bar", "foo.bar", "", "/baz", "?qux", "#foo%08bar"); }
489test { try parsePass("http://foo.bar/baz?qux#foo\"bar", null, "http://foo.bar/baz?qux#foo%22bar", "http://foo.bar", "http:", "", "", "foo.bar", "foo.bar", "", "/baz", "?qux", "#foo%22bar"); }
490test { try parsePass("http://foo.bar/baz?qux#foo<bar", null, "http://foo.bar/baz?qux#foo%3Cbar", "http://foo.bar", "http:", "", "", "foo.bar", "foo.bar", "", "/baz", "?qux", "#foo%3Cbar"); }
491test { try parsePass("http://foo.bar/baz?qux#foo>bar", null, "http://foo.bar/baz?qux#foo%3Ebar", "http://foo.bar", "http:", "", "", "foo.bar", "foo.bar", "", "/baz", "?qux", "#foo%3Ebar"); }
492test { try parsePass("http://foo.bar/baz?qux#foo`bar", null, "http://foo.bar/baz?qux#foo%60bar", "http://foo.bar", "http:", "", "", "foo.bar", "foo.bar", "", "/baz", "?qux", "#foo%60bar"); }
493test { try parsePass("https://0x.0x.0", null, "https://0.0.0.0/", "https://0.0.0.0", "https:", "", "", "0.0.0.0", "0.0.0.0", "", "/", "", ""); }
494test { try parsePass("https://0x.0x.0x.0x", null, "https://0.0.0.0/", "https://0.0.0.0", "https:", "", "", "0.0.0.0", "0.0.0.0", "", "/", "", ""); }
495test { try parsePass("https://00.00.00.00", null, "https://0.0.0.0/", "https://0.0.0.0", "https:", "", "", "0.0.0.0", "0.0.0.0", "", "/", "", ""); }
496test { try parsePass("https://0000000000000000000000000000000000000000177.0.0.1", null, "https://127.0.0.1/", "https://127.0.0.1", "https:", "", "", "127.0.0.1", "127.0.0.1", "", "/", "", ""); }
497test { try parsePass("file:///C%3A/", null, "file:///C%3A/", "", "file:", "", "", "", "", "", "/C%3A/", "", ""); }
498test { try parsePass("file:///C%7C/", null, "file:///C%7C/", "", "file:", "", "", "", "", "", "/C%7C/", "", ""); }
499test { try parsePass("asdf://%43%7C/", null, "asdf://%43%7C/", "null", "asdf:", "", "", "%43%7C", "%43%7C", "", "/", "", ""); }
500test { try parsePass("file:\\\\//", null, "file:////", "", "file:", "", "", "", "", "", "//", "", ""); }
501test { try parsePass("file:\\\\\\\\", null, "file:////", "", "file:", "", "", "", "", "", "//", "", ""); }
502test { try parsePass("file:\\\\\\\\?fox", null, "file:////?fox", "", "file:", "", "", "", "", "", "//", "?fox", ""); }
503test { try parsePass("file:\\\\\\\\#guppy", null, "file:////#guppy", "", "file:", "", "", "", "", "", "//", "", "#guppy"); }
504test { try parsePass("file://spider///", null, "file://spider///", "", "file:", "", "", "spider", "spider", "", "///", "", ""); }
505test { try parsePass("file:\\\\localhost//", null, "file:////", "", "file:", "", "", "", "", "", "//", "", ""); }
506test { try parsePass("file:///localhost//cat", null, "file:///localhost//cat", "", "file:", "", "", "", "", "", "/localhost//cat", "", ""); }
507test { try parsePass("file://\\/localhost//cat", null, "file:////localhost//cat", "", "file:", "", "", "", "", "", "//localhost//cat", "", ""); }
508test { try parsePass("file://localhost//a//../..//", null, "file://///", "", "file:", "", "", "", "", "", "///", "", ""); }
509test { try parsePass("file://example.net/C:/", null, "file://example.net/C:/", "", "file:", "", "", "example.net", "example.net", "", "/C:/", "", ""); }
510test { try parsePass("file://1.2.3.4/C:/", null, "file://1.2.3.4/C:/", "", "file:", "", "", "1.2.3.4", "1.2.3.4", "", "/C:/", "", ""); }
511test { try parsePass("file://[1::8]/C:/", null, "file://[1::8]/C:/", "", "file:", "", "", "[1::8]", "[1::8]", "", "/C:/", "", ""); }
512test { try parsePass("file:/C|/", null, "file:///C:/", "", "file:", "", "", "", "", "", "/C:/", "", ""); }
513test { try parsePass("file://C|/", null, "file:///C:/", "", "file:", "", "", "", "", "", "/C:/", "", ""); }
514test { try parsePass("file:", null, "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
515test { try parsePass("file:?q=v", null, "file:///?q=v", "", "file:", "", "", "", "", "", "/", "?q=v", ""); }
516test { try parsePass("file:#frag", null, "file:///#frag", "", "file:", "", "", "", "", "", "/", "", "#frag"); }
517test { try parsePass("file:///Y:", null, "file:///Y:", "", "file:", "", "", "", "", "", "/Y:", "", ""); }
518test { try parsePass("file:///Y:/", null, "file:///Y:/", "", "file:", "", "", "", "", "", "/Y:/", "", ""); }
519test { try parsePass("file:///./Y", null, "file:///Y", "", "file:", "", "", "", "", "", "/Y", "", ""); }
520test { try parsePass("file:///./Y:", null, "file:///Y:", "", "file:", "", "", "", "", "", "/Y:", "", ""); }
521test { try parsePass("file:///y:", null, "file:///y:", "", "file:", "", "", "", "", "", "/y:", "", ""); }
522test { try parsePass("file:///y:/", null, "file:///y:/", "", "file:", "", "", "", "", "", "/y:/", "", ""); }
523test { try parsePass("file:///./y", null, "file:///y", "", "file:", "", "", "", "", "", "/y", "", ""); }
524test { try parsePass("file:///./y:", null, "file:///y:", "", "file:", "", "", "", "", "", "/y:", "", ""); }
525test { try parsePass("file://localhost//a//../..//foo", null, "file://///foo", "", "file:", "", "", "", "", "", "///foo", "", ""); }
526test { try parsePass("file://localhost////foo", null, "file://////foo", "", "file:", "", "", "", "", "", "////foo", "", ""); }
527test { try parsePass("file:////foo", null, "file:////foo", "", "file:", "", "", "", "", "", "//foo", "", ""); }
528test { try parsePass("file:.//p", null, "file:////p", "", "file:", "", "", "", "", "", "//p", "", ""); }
529test { try parsePass("file:/.//p", null, "file:////p", "", "file:", "", "", "", "", "", "//p", "", ""); }
530test { try parsePass("sc://\xc3\xb1", null, "sc://%C3%B1", "null", "sc:", "", "", "%C3%B1", "%C3%B1", "", "", "", ""); }
531test { try parsePass("sc://\xc3\xb1?x", null, "sc://%C3%B1?x", "null", "sc:", "", "", "%C3%B1", "%C3%B1", "", "", "?x", ""); }
532test { try parsePass("sc://\xc3\xb1#x", null, "sc://%C3%B1#x", "null", "sc:", "", "", "%C3%B1", "%C3%B1", "", "", "", "#x"); }
533test { try parsePass("sc://?", null, "sc://?", "", "sc:", "", "", "", "", "", "", "", ""); }
534test { try parsePass("sc://#", null, "sc://#", "", "sc:", "", "", "", "", "", "", "", ""); }
535test { try parsePass("tftp://foobar.com/someconfig;mode=netascii", null, "tftp://foobar.com/someconfig;mode=netascii", "null", "tftp:", "", "", "foobar.com", "foobar.com", "", "/someconfig;mode=netascii", "", ""); }
536test { try parsePass("telnet://user:pass@foobar.com:23/", null, "telnet://user:pass@foobar.com:23/", "null", "telnet:", "user", "pass", "foobar.com:23", "foobar.com", "23", "/", "", ""); }
537test { try parsePass("ut2004://10.10.10.10:7777/Index.ut2", null, "ut2004://10.10.10.10:7777/Index.ut2", "null", "ut2004:", "", "", "10.10.10.10:7777", "10.10.10.10", "7777", "/Index.ut2", "", ""); }
538test { try parsePass("redis://foo:bar@somehost:6379/0?baz=bam&qux=baz", null, "redis://foo:bar@somehost:6379/0?baz=bam&qux=baz", "null", "redis:", "foo", "bar", "somehost:6379", "somehost", "6379", "/0", "?baz=bam&qux=baz", ""); }
539test { try parsePass("rsync://foo@host:911/sup", null, "rsync://foo@host:911/sup", "null", "rsync:", "foo", "", "host:911", "host", "911", "/sup", "", ""); }
540test { try parsePass("git://github.com/foo/bar.git", null, "git://github.com/foo/bar.git", "null", "git:", "", "", "github.com", "github.com", "", "/foo/bar.git", "", ""); }
541test { try parsePass("irc://myserver.com:6999/channel?passwd", null, "irc://myserver.com:6999/channel?passwd", "null", "irc:", "", "", "myserver.com:6999", "myserver.com", "6999", "/channel", "?passwd", ""); }
542test { try parsePass("dns://fw.example.org:9999/foo.bar.org?type=TXT", null, "dns://fw.example.org:9999/foo.bar.org?type=TXT", "null", "dns:", "", "", "fw.example.org:9999", "fw.example.org", "9999", "/foo.bar.org", "?type=TXT", ""); }
543test { try parsePass("ldap://localhost:389/ou=People,o=JNDITutorial", null, "ldap://localhost:389/ou=People,o=JNDITutorial", "null", "ldap:", "", "", "localhost:389", "localhost", "389", "/ou=People,o=JNDITutorial", "", ""); }
544test { try parsePass("git+https://github.com/foo/bar", null, "git+https://github.com/foo/bar", "null", "git+https:", "", "", "github.com", "github.com", "", "/foo/bar", "", ""); }
545test { try parsePass("urn:ietf:rfc:2648", null, "urn:ietf:rfc:2648", "null", "urn:", "", "", "", "", "", "ietf:rfc:2648", "", ""); }
546test { try parsePass("tag:joe@example.org,2001:foo/bar", null, "tag:joe@example.org,2001:foo/bar", "null", "tag:", "", "", "", "", "", "joe@example.org,2001:foo/bar", "", ""); }
547test { try parsePass("non-spec:/.//", null, "non-spec:/.//", "", "non-spec:", "", "", "", "", "", "//", "", ""); }
548test { try parsePass("non-spec:/..//", null, "non-spec:/.//", "", "non-spec:", "", "", "", "", "", "//", "", ""); }
549test { try parsePass("non-spec:/a/..//", null, "non-spec:/.//", "", "non-spec:", "", "", "", "", "", "//", "", ""); }
550test { try parsePass("non-spec:/.//path", null, "non-spec:/.//path", "", "non-spec:", "", "", "", "", "", "//path", "", ""); }
551test { try parsePass("non-spec:/..//path", null, "non-spec:/.//path", "", "non-spec:", "", "", "", "", "", "//path", "", ""); }
552test { try parsePass("non-spec:/a/..//path", null, "non-spec:/.//path", "", "non-spec:", "", "", "", "", "", "//path", "", ""); }
553test { try parsePass("non-special://%E2%80%A0/", null, "non-special://%E2%80%A0/", "", "non-special:", "", "", "%E2%80%A0", "%E2%80%A0", "", "/", "", ""); }
554test { try parsePass("non-special://H%4fSt/path", null, "non-special://H%4fSt/path", "", "non-special:", "", "", "H%4fSt", "H%4fSt", "", "/path", "", ""); }
555test { try parsePass("non-special://[1:2:0:0:5:0:0:0]/", null, "non-special://[1:2:0:0:5::]/", "", "non-special:", "", "", "[1:2:0:0:5::]", "[1:2:0:0:5::]", "", "/", "", ""); }
556test { try parsePass("non-special://[1:2:0:0:0:0:0:3]/", null, "non-special://[1:2::3]/", "", "non-special:", "", "", "[1:2::3]", "[1:2::3]", "", "/", "", ""); }
557test { try parsePass("non-special://[1:2::3]:80/", null, "non-special://[1:2::3]:80/", "", "non-special:", "", "", "[1:2::3]:80", "[1:2::3]", "80", "/", "", ""); }
558test { try parsePass("blob:https://example.com:443/", null, "blob:https://example.com:443/", "https://example.com", "blob:", "", "", "", "", "", "https://example.com:443/", "", ""); }
559test { try parsePass("blob:http://example.org:88/", null, "blob:http://example.org:88/", "http://example.org:88", "blob:", "", "", "", "", "", "http://example.org:88/", "", ""); }
560test { try parsePass("blob:d3958f5c-0777-0845-9dcf-2cb28783acaf", null, "blob:d3958f5c-0777-0845-9dcf-2cb28783acaf", "null", "blob:", "", "", "", "", "", "d3958f5c-0777-0845-9dcf-2cb28783acaf", "", ""); }
561test { try parsePass("blob:", null, "blob:", "null", "blob:", "", "", "", "", "", "", "", ""); }
562test { try parsePass("blob:blob:", null, "blob:blob:", "null", "blob:", "", "", "", "", "", "blob:", "", ""); }
563test { try parsePass("blob:blob:https://example.org/", null, "blob:blob:https://example.org/", "null", "blob:", "", "", "", "", "", "blob:https://example.org/", "", ""); }
564test { try parsePass("blob:about:blank", null, "blob:about:blank", "null", "blob:", "", "", "", "", "", "about:blank", "", ""); }
565test { try parsePass("blob:file://host/path", null, "blob:file://host/path", "", "blob:", "", "", "", "", "", "file://host/path", "", ""); }
566test { try parsePass("blob:ftp://host/path", null, "blob:ftp://host/path", "null", "blob:", "", "", "", "", "", "ftp://host/path", "", ""); }
567test { try parsePass("blob:ws://example.org/", null, "blob:ws://example.org/", "null", "blob:", "", "", "", "", "", "ws://example.org/", "", ""); }
568test { try parsePass("blob:wss://example.org/", null, "blob:wss://example.org/", "null", "blob:", "", "", "", "", "", "wss://example.org/", "", ""); }
569test { try parsePass("blob:http%3a//example.org/", null, "blob:http%3a//example.org/", "null", "blob:", "", "", "", "", "", "http%3a//example.org/", "", ""); }
570test { try parsePass("http://0x7f.0.0.0x7g", null, "http://0x7f.0.0.0x7g/", "", "http:", "", "", "0x7f.0.0.0x7g", "0x7f.0.0.0x7g", "", "/", "", ""); }
571test { try parsePass("http://0X7F.0.0.0X7G", null, "http://0x7f.0.0.0x7g/", "", "http:", "", "", "0x7f.0.0.0x7g", "0x7f.0.0.0x7g", "", "/", "", ""); }
572test { try parsePass("http://[0:1:0:1:0:1:0:1]", null, "http://[0:1:0:1:0:1:0:1]/", "", "http:", "", "", "[0:1:0:1:0:1:0:1]", "[0:1:0:1:0:1:0:1]", "", "/", "", ""); }
573test { try parsePass("http://[1:0:1:0:1:0:1:0]", null, "http://[1:0:1:0:1:0:1:0]/", "", "http:", "", "", "[1:0:1:0:1:0:1:0]", "[1:0:1:0:1:0:1:0]", "", "/", "", ""); }
574test { try parsePass("http://example.org/test?\"", null, "http://example.org/test?%22", "", "http:", "", "", "example.org", "example.org", "", "/test", "?%22", ""); }
575test { try parsePass("http://example.org/test?#", null, "http://example.org/test?#", "", "http:", "", "", "example.org", "example.org", "", "/test", "", ""); }
576test { try parsePass("http://example.org/test?<", null, "http://example.org/test?%3C", "", "http:", "", "", "example.org", "example.org", "", "/test", "?%3C", ""); }
577test { try parsePass("http://example.org/test?>", null, "http://example.org/test?%3E", "", "http:", "", "", "example.org", "example.org", "", "/test", "?%3E", ""); }
578test { try parsePass("http://example.org/test?\xe2\x8c\xa3", null, "http://example.org/test?%E2%8C%A3", "", "http:", "", "", "example.org", "example.org", "", "/test", "?%E2%8C%A3", ""); }
579test { try parsePass("http://example.org/test?%23%23", null, "http://example.org/test?%23%23", "", "http:", "", "", "example.org", "example.org", "", "/test", "?%23%23", ""); }
580test { try parsePass("http://example.org/test?%GH", null, "http://example.org/test?%GH", "", "http:", "", "", "example.org", "example.org", "", "/test", "?%GH", ""); }
581test { try parsePass("http://example.org/test?a#%EF", null, "http://example.org/test?a#%EF", "", "http:", "", "", "example.org", "example.org", "", "/test", "?a", "#%EF"); }
582test { try parsePass("http://example.org/test?a#%GH", null, "http://example.org/test?a#%GH", "", "http:", "", "", "example.org", "example.org", "", "/test", "?a", "#%GH"); }
583test { try parsePass("http://example.org/test?a#b\x00c", null, "http://example.org/test?a#b%00c", "", "http:", "", "", "example.org", "example.org", "", "/test", "?a", "#b%00c"); }
584test { try parsePass("non-spec://example.org/test?a#b\x00c", null, "non-spec://example.org/test?a#b%00c", "", "non-spec:", "", "", "example.org", "example.org", "", "/test", "?a", "#b%00c"); }
585test { try parsePass("non-spec:/test?a#b\x00c", null, "non-spec:/test?a#b%00c", "", "non-spec:", "", "", "", "", "", "/test", "?a", "#b%00c"); }
586test { try parsePass("file://a\xc2\xadb/p", null, "file://ab/p", "", "file:", "", "", "ab", "ab", "", "/p", "", ""); }
587test { try parsePass("file://a%C2%ADb/p", null, "file://ab/p", "", "file:", "", "", "ab", "ab", "", "/p", "", ""); }
588test { try parsePass("file://loC\xf0\x9d\x90\x80\xf0\x9d\x90\x8b\xf0\x9d\x90\x87\xf0\x9d\x90\xa8\xf0\x9d\x90\xac\xf0\x9d\x90\xad/usr/bin", null, "file:///usr/bin", "", "file:", "", "", "", "", "", "/usr/bin", "", ""); }
589test { try parsePass("non-special:cannot-be-a-base-url-\x00\x01\x1f\x1e~\x7f\xc2\x80", null, "non-special:cannot-be-a-base-url-%00%01%1F%1E~%7F%C2%80", "null", "non-special:", "", "", "", "", "", "cannot-be-a-base-url-%00%01%1F%1E~%7F%C2%80", "", ""); }
590test { try parsePass("non-special:cannot-be-a-base-url-!\"$%&'()*+,-.;<=>@[\\]^_`{|}~@/", null, "non-special:cannot-be-a-base-url-!\"$%&'()*+,-.;<=>@[\\]^_`{|}~@/", "null", "non-special:", "", "", "", "", "", "cannot-be-a-base-url-!\"$%&'()*+,-.;<=>@[\\]^_`{|}~@/", "", ""); }
591test { try parsePass("https://www.example.com/path{\x7fpath.html?query'\x7f=query#fragment<\x7ffragment", null, "https://www.example.com/path%7B%7Fpath.html?query%27%7F=query#fragment%3C%7Ffragment", "https://www.example.com", "https:", "", "", "www.example.com", "www.example.com", "", "/path%7B%7Fpath.html", "?query%27%7F=query", "#fragment%3C%7Ffragment"); }
592test { try parsePass("foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/", null, "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/", "null", "foo:", "%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~", "", "host", "host", "", "/", "", ""); }
593test { try parsePass("wss:// !\"$%&'()*+,-.;<=>@[]^_`{|}~@host/", null, "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/", "wss://host", "wss:", "%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~", "", "host", "host", "", "/", "", ""); }
594test { try parsePass("foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/", null, "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/", "null", "foo:", "joe", "%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~", "host", "host", "", "/", "", ""); }
595test { try parsePass("wss://joe: !\"$%&'()*+,-.:;<=>@[]^_`{|}~@host/", null, "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/", "wss://host", "wss:", "joe", "%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~", "host", "host", "", "/", "", ""); }
596test { try parsePass("foo://!\"$%&'()*+,-.;=_`{}~/", null, "foo://!\"$%&'()*+,-.;=_`{}~/", "null", "foo:", "", "", "!\"$%&'()*+,-.;=_`{}~", "!\"$%&'()*+,-.;=_`{}~", "", "/", "", ""); }
597test { try parsePass("wss://!\"$&'()*+,-.;=_`{}~/", null, "wss://!\"$&'()*+,-.;=_`{}~/", "wss://!\"$&'()*+,-.;=_`{}~", "wss:", "", "", "!\"$&'()*+,-.;=_`{}~", "!\"$&'()*+,-.;=_`{}~", "", "/", "", ""); }
598test { try parsePass("foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~", null, "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]%5E_%60%7B|%7D~", "null", "foo:", "", "", "host", "host", "", "/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]%5E_%60%7B|%7D~", "", ""); }
599test { try parsePass("wss://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~", null, "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B|%7D~", "wss://host", "wss:", "", "", "host", "host", "", "/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B|%7D~", "", ""); }
600test { try parsePass("foo://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~", null, "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~", "null", "foo:", "", "", "host", "host", "", "/dir/", "?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~", ""); }
601test { try parsePass("wss://host/dir/? !\"$%&'()*+,-./:;<=>?@[\\]^_`{|}~", null, "wss://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~", "wss://host", "wss:", "", "", "host", "host", "", "/dir/", "?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~", ""); }
602test { try parsePass("foo://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", null, "foo://host/dir/#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~", "null", "foo:", "", "", "host", "host", "", "/dir/", "", "#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~"); }
603test { try parsePass("wss://host/dir/# !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", null, "wss://host/dir/#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~", "wss://host", "wss:", "", "", "host", "host", "", "/dir/", "", "#%20!%22#$%&'()*+,-./:;%3C=%3E?@[\\]^_%60{|}~"); }
604test { try parsePass("http://foo.09..", null, "http://foo.09../", "", "http:", "", "", "foo.09..", "foo.09..", "", "/", "", ""); }
605test { try parsePass("https://x/\x00y", null, "https://x/%00y", "", "https:", "", "", "x", "x", "", "/%00y", "", ""); }
606test { try parsePass("https://x/?\x00y", null, "https://x/?%00y", "", "https:", "", "", "x", "x", "", "/", "?%00y", ""); }
607test { try parsePass("https://x/?#\x00y", null, "https://x/?#%00y", "", "https:", "", "", "x", "x", "", "/", "", "#%00y"); }
608test { try parsePass("https://x/\xef\xbf\xbfy", null, "https://x/%EF%BF%BFy", "", "https:", "", "", "x", "x", "", "/%EF%BF%BFy", "", ""); }
609test { try parsePass("https://x/?\xef\xbf\xbfy", null, "https://x/?%EF%BF%BFy", "", "https:", "", "", "x", "x", "", "/", "?%EF%BF%BFy", ""); }
610test { try parsePass("https://x/?#\xef\xbf\xbfy", null, "https://x/?#%EF%BF%BFy", "", "https:", "", "", "x", "x", "", "/", "", "#%EF%BF%BFy"); }
611test { try parsePass("non-special:\x00y", null, "non-special:%00y", "", "non-special:", "", "", "", "", "", "%00y", "", ""); }
612test { try parsePass("non-special:x/\x00y", null, "non-special:x/%00y", "", "non-special:", "", "", "", "", "", "x/%00y", "", ""); }
613test { try parsePass("non-special:x/?\x00y", null, "non-special:x/?%00y", "", "non-special:", "", "", "", "", "", "x/", "?%00y", ""); }
614test { try parsePass("non-special:x/?#\x00y", null, "non-special:x/?#%00y", "", "non-special:", "", "", "", "", "", "x/", "", "#%00y"); }
615test { try parsePass("non-special:\xef\xbf\xbfy", null, "non-special:%EF%BF%BFy", "", "non-special:", "", "", "", "", "", "%EF%BF%BFy", "", ""); }
616test { try parsePass("non-special:x/\xef\xbf\xbfy", null, "non-special:x/%EF%BF%BFy", "", "non-special:", "", "", "", "", "", "x/%EF%BF%BFy", "", ""); }
617test { try parsePass("non-special:x/?\xef\xbf\xbfy", null, "non-special:x/?%EF%BF%BFy", "", "non-special:", "", "", "", "", "", "x/", "?%EF%BF%BFy", ""); }
618test { try parsePass("non-special:x/?#\xef\xbf\xbfy", null, "non-special:x/?#%EF%BF%BFy", "", "non-special:", "", "", "", "", "", "x/", "", "#%EF%BF%BFy"); }
619test { try parsePass("https://example.com/\"quoted\"", null, "https://example.com/%22quoted%22", "https://example.com", "https:", "", "", "example.com", "example.com", "", "/%22quoted%22", "", ""); }
620test { try parsePass("https://a%C2%ADb/", null, "https://ab/", "https://ab", "https:", "", "", "ab", "ab", "", "/", "", ""); }
621test { try parsePass("data://example.com:8080/pathname?search#hash", null, "data://example.com:8080/pathname?search#hash", "null", "data:", "", "", "example.com:8080", "example.com", "8080", "/pathname", "?search", "#hash"); }
622test { try parsePass("data:///test", null, "data:///test", "null", "data:", "", "", "", "", "", "/test", "", ""); }
623test { try parsePass("data://test/a/../b", null, "data://test/b", "null", "data:", "", "", "test", "test", "", "/b", "", ""); }
624test { try parsePass("javascript://example.com:8080/pathname?search#hash", null, "javascript://example.com:8080/pathname?search#hash", "null", "javascript:", "", "", "example.com:8080", "example.com", "8080", "/pathname", "?search", "#hash"); }
625test { try parsePass("javascript:///test", null, "javascript:///test", "null", "javascript:", "", "", "", "", "", "/test", "", ""); }
626test { try parsePass("javascript://test/a/../b", null, "javascript://test/b", "null", "javascript:", "", "", "test", "test", "", "/b", "", ""); }
627test { try parsePass("mailto://example.com:8080/pathname?search#hash", null, "mailto://example.com:8080/pathname?search#hash", "null", "mailto:", "", "", "example.com:8080", "example.com", "8080", "/pathname", "?search", "#hash"); }
628test { try parsePass("mailto:///test", null, "mailto:///test", "null", "mailto:", "", "", "", "", "", "/test", "", ""); }
629test { try parsePass("mailto://test/a/../b", null, "mailto://test/b", "null", "mailto:", "", "", "test", "test", "", "/b", "", ""); }
630test { try parsePass("intent://example.com:8080/pathname?search#hash", null, "intent://example.com:8080/pathname?search#hash", "null", "intent:", "", "", "example.com:8080", "example.com", "8080", "/pathname", "?search", "#hash"); }
631test { try parsePass("intent:///test", null, "intent:///test", "null", "intent:", "", "", "", "", "", "/test", "", ""); }
632test { try parsePass("intent://test/a/../b", null, "intent://test/b", "null", "intent:", "", "", "test", "test", "", "/b", "", ""); }
633test { try parsePass("urn://example.com:8080/pathname?search#hash", null, "urn://example.com:8080/pathname?search#hash", "null", "urn:", "", "", "example.com:8080", "example.com", "8080", "/pathname", "?search", "#hash"); }
634test { try parsePass("urn:///test", null, "urn:///test", "null", "urn:", "", "", "", "", "", "/test", "", ""); }
635test { try parsePass("urn://test/a/../b", null, "urn://test/b", "null", "urn:", "", "", "test", "test", "", "/b", "", ""); }
636test { try parsePass("turn://example.com:8080/pathname?search#hash", null, "turn://example.com:8080/pathname?search#hash", "null", "turn:", "", "", "example.com:8080", "example.com", "8080", "/pathname", "?search", "#hash"); }
637test { try parsePass("turn:///test", null, "turn:///test", "null", "turn:", "", "", "", "", "", "/test", "", ""); }
638test { try parsePass("turn://test/a/../b", null, "turn://test/b", "null", "turn:", "", "", "test", "test", "", "/b", "", ""); }
639test { try parsePass("stun://example.com:8080/pathname?search#hash", null, "stun://example.com:8080/pathname?search#hash", "null", "stun:", "", "", "example.com:8080", "example.com", "8080", "/pathname", "?search", "#hash"); }
640test { try parsePass("stun:///test", null, "stun:///test", "null", "stun:", "", "", "", "", "", "/test", "", ""); }
641test { try parsePass("stun://test/a/../b", null, "stun://test/b", "null", "stun:", "", "", "test", "test", "", "/b", "", ""); }
642test { try parsePass("w://x:0", null, "w://x:0", "null", "w:", "", "", "x:0", "x", "0", "", "", ""); }
643test { try parsePass("west://x:0", null, "west://x:0", "null", "west:", "", "", "x:0", "x", "0", "", "", ""); }
644test { try parsePass("android://x:0/a", null, "android://x:0/a", "null", "android:", "", "", "x:0", "x", "0", "/a", "", ""); }
645test { try parsePass("drivefs://x:0/a", null, "drivefs://x:0/a", "null", "drivefs:", "", "", "x:0", "x", "0", "/a", "", ""); }
646test { try parsePass("chromeos-steam://x:0/a", null, "chromeos-steam://x:0/a", "null", "chromeos-steam:", "", "", "x:0", "x", "0", "/a", "", ""); }
647test { try parsePass("steam://x:0/a", null, "steam://x:0/a", "null", "steam:", "", "", "x:0", "x", "0", "/a", "", ""); }
648test { try parsePass("materialized-view://x:0/a", null, "materialized-view://x:0/a", "null", "materialized-view:", "", "", "x:0", "x", "0", "/a", "", ""); }
649test { try parsePass("android-app://x:0", null, "android-app://x:0", "null", "android-app:", "", "", "x:0", "x", "0", "", "", ""); }
650test { try parsePass("chrome-distiller://x:0", null, "chrome-distiller://x:0", "null", "chrome-distiller:", "", "", "x:0", "x", "0", "", "", ""); }
651test { try parsePass("chrome-extension://x:0", null, "chrome-extension://x:0", "null", "chrome-extension:", "", "", "x:0", "x", "0", "", "", ""); }
652test { try parsePass("chrome-native://x:0", null, "chrome-native://x:0", "null", "chrome-native:", "", "", "x:0", "x", "0", "", "", ""); }
653test { try parsePass("chrome-resource://x:0", null, "chrome-resource://x:0", "null", "chrome-resource:", "", "", "x:0", "x", "0", "", "", ""); }
654test { try parsePass("chrome-search://x:0", null, "chrome-search://x:0", "null", "chrome-search:", "", "", "x:0", "x", "0", "", "", ""); }
655test { try parsePass("fuchsia-dir://x:0", null, "fuchsia-dir://x:0", "null", "fuchsia-dir:", "", "", "x:0", "x", "0", "", "", ""); }
656test { try parsePass("isolated-app://x:0", null, "isolated-app://x:0", "null", "isolated-app:", "", "", "x:0", "x", "0", "", "", ""); }
657test { try parsePass("non-special:\\\\opaque", null, "non-special:\\\\opaque", "null", "non-special:", "", "", "", "", "", "\\\\opaque", "", ""); }
658test { try parsePass("non-special:\\\\opaque/path", null, "non-special:\\\\opaque/path", "null", "non-special:", "", "", "", "", "", "\\\\opaque/path", "", ""); }
659test { try parsePass("non-special:\\\\opaque\\path", null, "non-special:\\\\opaque\\path", "null", "non-special:", "", "", "", "", "", "\\\\opaque\\path", "", ""); }
660test { try parsePass("non-special:\\/opaque", null, "non-special:\\/opaque", "null", "non-special:", "", "", "", "", "", "\\/opaque", "", ""); }
661test { try parsePass("non-special:/\\path", null, "non-special:/\\path", "null", "non-special:", "", "", "", "", "", "/\\path", "", ""); }
662test { try parsePass("non-special://host/a\\b", null, "non-special://host/a\\b", "null", "non-special:", "", "", "host", "host", "", "/a\\b", "", ""); }
663test { try parsePass("data:text/plain,test#<foo> <bar>", null, "data:text/plain,test#%3Cfoo%3E%20%3Cbar%3E", "", "data:", "", "", "", "", "", "text/plain,test", "", "#%3Cfoo%3E%20%3Cbar%3E"); }
664test { try parsePass("about:blank#<foo> <bar>", null, "about:blank#%3Cfoo%3E%20%3Cbar%3E", "", "about:", "", "", "", "", "", "blank", "", "#%3Cfoo%3E%20%3Cbar%3E"); }
665test { try parsePass("data:text/plain,test#\x00\x01\t\n\r\x1f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~\x7f\xc2\x80\xc2\x81\xc3\x89\xc3\xa9", null, "data:text/plain,test#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9", "", "data:", "", "", "", "", "", "text/plain,test", "", "#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"); }
666test { try parsePass("about:blank#\x00\x01\t\n\r\x1f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~\x7f\xc2\x80\xc2\x81\xc3\x89\xc3\xa9", null, "about:blank#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9", "", "about:", "", "", "", "", "", "blank", "", "#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"); }
667
668test { try parsePass("http://example\t.\norg", "http://example.org/foo/bar", "http://example.org/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/", "", ""); }
669test { try parsePass("http://user:pass@foo:21/bar;par?b#c", "http://example.org/foo/bar", "http://user:pass@foo:21/bar;par?b#c", "http://foo:21", "http:", "user", "pass", "foo:21", "foo", "21", "/bar;par", "?b", "#c"); }
670test { try parsePass("http:foo.com", "http://example.org/foo/bar", "http://example.org/foo/foo.com", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/foo.com", "", ""); }
671test { try parsePass("\t :foo.com \n", "http://example.org/foo/bar", "http://example.org/foo/:foo.com", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:foo.com", "", ""); }
672test { try parsePass(" foo.com ", "http://example.org/foo/bar", "http://example.org/foo/foo.com", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/foo.com", "", ""); }
673test { try parsePass("a:\t foo.com", "http://example.org/foo/bar", "a: foo.com", "null", "a:", "", "", "", "", "", " foo.com", "", ""); }
674test { try parsePass("http://f:21/ b ? d # e ", "http://example.org/foo/bar", "http://f:21/%20b%20?%20d%20#%20e", "http://f:21", "http:", "", "", "f:21", "f", "21", "/%20b%20", "?%20d%20", "#%20e"); }
675test { try parsePass("http://f:/c", "http://example.org/foo/bar", "http://f/c", "http://f", "http:", "", "", "f", "f", "", "/c", "", ""); }
676test { try parsePass("http://f:0/c", "http://example.org/foo/bar", "http://f:0/c", "http://f:0", "http:", "", "", "f:0", "f", "0", "/c", "", ""); }
677test { try parsePass("http://f:00000000000000/c", "http://example.org/foo/bar", "http://f:0/c", "http://f:0", "http:", "", "", "f:0", "f", "0", "/c", "", ""); }
678test { try parsePass("http://f:00000000000000000000080/c", "http://example.org/foo/bar", "http://f/c", "http://f", "http:", "", "", "f", "f", "", "/c", "", ""); }
679test { try parsePass("http://f:\n/c", "http://example.org/foo/bar", "http://f/c", "http://f", "http:", "", "", "f", "f", "", "/c", "", ""); }
680test { try parsePass("", "http://example.org/foo/bar", "http://example.org/foo/bar", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", ""); }
681test { try parsePass(" \t", "http://example.org/foo/bar", "http://example.org/foo/bar", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", ""); }
682test { try parsePass(":foo.com/", "http://example.org/foo/bar", "http://example.org/foo/:foo.com/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:foo.com/", "", ""); }
683test { try parsePass(":foo.com\\", "http://example.org/foo/bar", "http://example.org/foo/:foo.com/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:foo.com/", "", ""); }
684test { try parsePass(":", "http://example.org/foo/bar", "http://example.org/foo/:", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:", "", ""); }
685test { try parsePass(":a", "http://example.org/foo/bar", "http://example.org/foo/:a", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:a", "", ""); }
686test { try parsePass(":/", "http://example.org/foo/bar", "http://example.org/foo/:/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:/", "", ""); }
687test { try parsePass(":\\", "http://example.org/foo/bar", "http://example.org/foo/:/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:/", "", ""); }
688test { try parsePass(":#", "http://example.org/foo/bar", "http://example.org/foo/:#", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:", "", ""); }
689test { try parsePass("#", "http://example.org/foo/bar", "http://example.org/foo/bar#", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", ""); }
690test { try parsePass("#/", "http://example.org/foo/bar", "http://example.org/foo/bar#/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", "#/"); }
691test { try parsePass("#\\", "http://example.org/foo/bar", "http://example.org/foo/bar#\\", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", "#\\"); }
692test { try parsePass("#;?", "http://example.org/foo/bar", "http://example.org/foo/bar#;?", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", "#;?"); }
693test { try parsePass("?", "http://example.org/foo/bar", "http://example.org/foo/bar?", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", ""); }
694test { try parsePass("/", "http://example.org/foo/bar", "http://example.org/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/", "", ""); }
695test { try parsePass(":23", "http://example.org/foo/bar", "http://example.org/foo/:23", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:23", "", ""); }
696test { try parsePass("/:23", "http://example.org/foo/bar", "http://example.org/:23", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/:23", "", ""); }
697test { try parsePass("\\x", "http://example.org/foo/bar", "http://example.org/x", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/x", "", ""); }
698test { try parsePass("\\\\x\\hello", "http://example.org/foo/bar", "http://x/hello", "http://x", "http:", "", "", "x", "x", "", "/hello", "", ""); }
699test { try parsePass("::", "http://example.org/foo/bar", "http://example.org/foo/::", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/::", "", ""); }
700test { try parsePass("::23", "http://example.org/foo/bar", "http://example.org/foo/::23", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/::23", "", ""); }
701test { try parsePass("foo://", "http://example.org/foo/bar", "foo://", "null", "foo:", "", "", "", "", "", "", "", ""); }
702test { try parsePass("http://a:b@c:29/d", "http://example.org/foo/bar", "http://a:b@c:29/d", "http://c:29", "http:", "a", "b", "c:29", "c", "29", "/d", "", ""); }
703test { try parsePass("http::@c:29", "http://example.org/foo/bar", "http://example.org/foo/:@c:29", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/:@c:29", "", ""); }
704test { try parsePass("http://&a:foo(b]c@d:2/", "http://example.org/foo/bar", "http://&a:foo(b%5Dc@d:2/", "http://d:2", "http:", "&a", "foo(b%5Dc", "d:2", "d", "2", "/", "", ""); }
705test { try parsePass("http://::@c@d:2", "http://example.org/foo/bar", "http://:%3A%40c@d:2/", "http://d:2", "http:", "", "%3A%40c", "d:2", "d", "2", "/", "", ""); }
706test { try parsePass("http://foo.com:b@d/", "http://example.org/foo/bar", "http://foo.com:b@d/", "http://d", "http:", "foo.com", "b", "d", "d", "", "/", "", ""); }
707test { try parsePass("http://foo.com/\\@", "http://example.org/foo/bar", "http://foo.com//@", "http://foo.com", "http:", "", "", "foo.com", "foo.com", "", "//@", "", ""); }
708test { try parsePass("http:\\\\foo.com\\", "http://example.org/foo/bar", "http://foo.com/", "http://foo.com", "http:", "", "", "foo.com", "foo.com", "", "/", "", ""); }
709test { try parsePass("http:\\\\a\\b:c\\d@foo.com\\", "http://example.org/foo/bar", "http://a/b:c/d@foo.com/", "http://a", "http:", "", "", "a", "a", "", "/b:c/d@foo.com/", "", ""); }
710test { try parsePass("foo:/", "http://example.org/foo/bar", "foo:/", "null", "foo:", "", "", "", "", "", "/", "", ""); }
711test { try parsePass("foo:/bar.com/", "http://example.org/foo/bar", "foo:/bar.com/", "null", "foo:", "", "", "", "", "", "/bar.com/", "", ""); }
712test { try parsePass("foo://///////", "http://example.org/foo/bar", "foo://///////", "null", "foo:", "", "", "", "", "", "///////", "", ""); }
713test { try parsePass("foo://///////bar.com/", "http://example.org/foo/bar", "foo://///////bar.com/", "null", "foo:", "", "", "", "", "", "///////bar.com/", "", ""); }
714test { try parsePass("foo:////://///", "http://example.org/foo/bar", "foo:////://///", "null", "foo:", "", "", "", "", "", "//://///", "", ""); }
715test { try parsePass("c:/foo", "http://example.org/foo/bar", "c:/foo", "null", "c:", "", "", "", "", "", "/foo", "", ""); }
716test { try parsePass("//foo/bar", "http://example.org/foo/bar", "http://foo/bar", "http://foo", "http:", "", "", "foo", "foo", "", "/bar", "", ""); }
717test { try parsePass("http://foo/path;a??e#f#g", "http://example.org/foo/bar", "http://foo/path;a??e#f#g", "http://foo", "http:", "", "", "foo", "foo", "", "/path;a", "??e", "#f#g"); }
718test { try parsePass("http://foo/abcd?efgh?ijkl", "http://example.org/foo/bar", "http://foo/abcd?efgh?ijkl", "http://foo", "http:", "", "", "foo", "foo", "", "/abcd", "?efgh?ijkl", ""); }
719test { try parsePass("http://foo/abcd#foo?bar", "http://example.org/foo/bar", "http://foo/abcd#foo?bar", "http://foo", "http:", "", "", "foo", "foo", "", "/abcd", "", "#foo?bar"); }
720test { try parsePass("[61:24:74]:98", "http://example.org/foo/bar", "http://example.org/foo/[61:24:74]:98", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/[61:24:74]:98", "", ""); }
721test { try parsePass("http:[61:27]/:foo", "http://example.org/foo/bar", "http://example.org/foo/[61:27]/:foo", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/[61:27]/:foo", "", ""); }
722test { try parsePass("http://[2001::1]", "http://example.org/foo/bar", "http://[2001::1]/", "http://[2001::1]", "http:", "", "", "[2001::1]", "[2001::1]", "", "/", "", ""); }
723test { try parsePass("http://[::127.0.0.1]", "http://example.org/foo/bar", "http://[::7f00:1]/", "http://[::7f00:1]", "http:", "", "", "[::7f00:1]", "[::7f00:1]", "", "/", "", ""); }
724test { try parsePass("http://[0:0:0:0:0:0:13.1.68.3]", "http://example.org/foo/bar", "http://[::d01:4403]/", "http://[::d01:4403]", "http:", "", "", "[::d01:4403]", "[::d01:4403]", "", "/", "", ""); }
725test { try parsePass("http://[2001::1]:80", "http://example.org/foo/bar", "http://[2001::1]/", "http://[2001::1]", "http:", "", "", "[2001::1]", "[2001::1]", "", "/", "", ""); }
726test { try parsePass("http:/example.com/", "http://example.org/foo/bar", "http://example.org/example.com/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/example.com/", "", ""); }
727test { try parsePass("http:/", "http://example.com/", "http://example.com/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/", "", ""); }
728test { try parsePass("ftp:/example.com/", "http://example.org/foo/bar", "ftp://example.com/", "ftp://example.com", "ftp:", "", "", "example.com", "example.com", "", "/", "", ""); }
729test { try parsePass("https:/example.com/", "http://example.org/foo/bar", "https://example.com/", "https://example.com", "https:", "", "", "example.com", "example.com", "", "/", "", ""); }
730test { try parsePass("madeupscheme:/example.com/", "http://example.org/foo/bar", "madeupscheme:/example.com/", "null", "madeupscheme:", "", "", "", "", "", "/example.com/", "", ""); }
731test { try parsePass("file:/example.com/", "http://example.org/foo/bar", "file:///example.com/", "", "file:", "", "", "", "", "", "/example.com/", "", ""); }
732test { try parsePass("ftps:/example.com/", "http://example.org/foo/bar", "ftps:/example.com/", "null", "ftps:", "", "", "", "", "", "/example.com/", "", ""); }
733test { try parsePass("gopher:/example.com/", "http://example.org/foo/bar", "gopher:/example.com/", "null", "gopher:", "", "", "", "", "", "/example.com/", "", ""); }
734test { try parsePass("ws:/example.com/", "http://example.org/foo/bar", "ws://example.com/", "ws://example.com", "ws:", "", "", "example.com", "example.com", "", "/", "", ""); }
735test { try parsePass("wss:/example.com/", "http://example.org/foo/bar", "wss://example.com/", "wss://example.com", "wss:", "", "", "example.com", "example.com", "", "/", "", ""); }
736test { try parsePass("data:/example.com/", "http://example.org/foo/bar", "data:/example.com/", "null", "data:", "", "", "", "", "", "/example.com/", "", ""); }
737test { try parsePass("javascript:/example.com/", "http://example.org/foo/bar", "javascript:/example.com/", "null", "javascript:", "", "", "", "", "", "/example.com/", "", ""); }
738test { try parsePass("mailto:/example.com/", "http://example.org/foo/bar", "mailto:/example.com/", "null", "mailto:", "", "", "", "", "", "/example.com/", "", ""); }
739test { try parsePass("http:example.com/", "http://example.org/foo/bar", "http://example.org/foo/example.com/", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/example.com/", "", ""); }
740test { try parsePass("ftp:example.com/", "http://example.org/foo/bar", "ftp://example.com/", "ftp://example.com", "ftp:", "", "", "example.com", "example.com", "", "/", "", ""); }
741test { try parsePass("https:example.com/", "http://example.org/foo/bar", "https://example.com/", "https://example.com", "https:", "", "", "example.com", "example.com", "", "/", "", ""); }
742test { try parsePass("madeupscheme:example.com/", "http://example.org/foo/bar", "madeupscheme:example.com/", "null", "madeupscheme:", "", "", "", "", "", "example.com/", "", ""); }
743test { try parsePass("ftps:example.com/", "http://example.org/foo/bar", "ftps:example.com/", "null", "ftps:", "", "", "", "", "", "example.com/", "", ""); }
744test { try parsePass("gopher:example.com/", "http://example.org/foo/bar", "gopher:example.com/", "null", "gopher:", "", "", "", "", "", "example.com/", "", ""); }
745test { try parsePass("ws:example.com/", "http://example.org/foo/bar", "ws://example.com/", "ws://example.com", "ws:", "", "", "example.com", "example.com", "", "/", "", ""); }
746test { try parsePass("wss:example.com/", "http://example.org/foo/bar", "wss://example.com/", "wss://example.com", "wss:", "", "", "example.com", "example.com", "", "/", "", ""); }
747test { try parsePass("data:example.com/", "http://example.org/foo/bar", "data:example.com/", "null", "data:", "", "", "", "", "", "example.com/", "", ""); }
748test { try parsePass("javascript:example.com/", "http://example.org/foo/bar", "javascript:example.com/", "null", "javascript:", "", "", "", "", "", "example.com/", "", ""); }
749test { try parsePass("mailto:example.com/", "http://example.org/foo/bar", "mailto:example.com/", "null", "mailto:", "", "", "", "", "", "example.com/", "", ""); }
750test { try parsePass("/a/b/c", "http://example.org/foo/bar", "http://example.org/a/b/c", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/a/b/c", "", ""); }
751test { try parsePass("/a/ /c", "http://example.org/foo/bar", "http://example.org/a/%20/c", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/a/%20/c", "", ""); }
752test { try parsePass("/a%2fc", "http://example.org/foo/bar", "http://example.org/a%2fc", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/a%2fc", "", ""); }
753test { try parsePass("/a/%2f/c", "http://example.org/foo/bar", "http://example.org/a/%2f/c", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/a/%2f/c", "", ""); }
754test { try parsePass("#\xce\xb2", "http://example.org/foo/bar", "http://example.org/foo/bar#%CE%B2", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", "#%CE%B2"); }
755test { try parsePass("data:text/html,test#test", "http://example.org/foo/bar", "data:text/html,test#test", "null", "data:", "", "", "", "", "", "text/html,test", "", "#test"); }
756test { try parsePass("tel:1234567890", "http://example.org/foo/bar", "tel:1234567890", "null", "tel:", "", "", "", "", "", "1234567890", "", ""); }
757test { try parsePass("ssh://example.com/foo/bar.git", "http://example.org/", "ssh://example.com/foo/bar.git", "null", "ssh:", "", "", "example.com", "example.com", "", "/foo/bar.git", "", ""); }
758test { try parsePass("file:c:\\foo\\bar.html", "file:///tmp/mock/path", "file:///c:/foo/bar.html", "", "file:", "", "", "", "", "", "/c:/foo/bar.html", "", ""); }
759test { try parsePass(" File:c|////foo\\bar.html", "file:///tmp/mock/path", "file:///c:////foo/bar.html", "", "file:", "", "", "", "", "", "/c:////foo/bar.html", "", ""); }
760test { try parsePass("C|/foo/bar", "file:///tmp/mock/path", "file:///C:/foo/bar", "", "file:", "", "", "", "", "", "/C:/foo/bar", "", ""); }
761test { try parsePass("/C|\\foo\\bar", "file:///tmp/mock/path", "file:///C:/foo/bar", "", "file:", "", "", "", "", "", "/C:/foo/bar", "", ""); }
762test { try parsePass("//C|/foo/bar", "file:///tmp/mock/path", "file:///C:/foo/bar", "", "file:", "", "", "", "", "", "/C:/foo/bar", "", ""); }
763test { try parsePass("//server/file", "file:///tmp/mock/path", "file://server/file", "", "file:", "", "", "server", "server", "", "/file", "", ""); }
764test { try parsePass("\\\\server\\file", "file:///tmp/mock/path", "file://server/file", "", "file:", "", "", "server", "server", "", "/file", "", ""); }
765test { try parsePass("/\\server/file", "file:///tmp/mock/path", "file://server/file", "", "file:", "", "", "server", "server", "", "/file", "", ""); }
766test { try parsePass("file:///foo/bar.txt", "file:///tmp/mock/path", "file:///foo/bar.txt", "", "file:", "", "", "", "", "", "/foo/bar.txt", "", ""); }
767test { try parsePass("file:///home/me", "file:///tmp/mock/path", "file:///home/me", "", "file:", "", "", "", "", "", "/home/me", "", ""); }
768test { try parsePass("//", "file:///tmp/mock/path", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
769test { try parsePass("///", "file:///tmp/mock/path", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
770test { try parsePass("///test", "file:///tmp/mock/path", "file:///test", "", "file:", "", "", "", "", "", "/test", "", ""); }
771test { try parsePass("file://test", "file:///tmp/mock/path", "file://test/", "", "file:", "", "", "test", "test", "", "/", "", ""); }
772test { try parsePass("file://localhost", "file:///tmp/mock/path", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
773test { try parsePass("file://localhost/", "file:///tmp/mock/path", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
774test { try parsePass("file://localhost/test", "file:///tmp/mock/path", "file:///test", "", "file:", "", "", "", "", "", "/test", "", ""); }
775test { try parsePass("test", "file:///tmp/mock/path", "file:///tmp/mock/test", "", "file:", "", "", "", "", "", "/tmp/mock/test", "", ""); }
776test { try parsePass("file:test", "file:///tmp/mock/path", "file:///tmp/mock/test", "", "file:", "", "", "", "", "", "/tmp/mock/test", "", ""); }
777test { try parsePass("/", "http://www.example.com/test", "http://www.example.com/", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/", "", ""); }
778test { try parsePass("/test.txt", "http://www.example.com/test", "http://www.example.com/test.txt", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/test.txt", "", ""); }
779test { try parsePass(".", "http://www.example.com/test", "http://www.example.com/", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/", "", ""); }
780test { try parsePass("..", "http://www.example.com/test", "http://www.example.com/", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/", "", ""); }
781test { try parsePass("test.txt", "http://www.example.com/test", "http://www.example.com/test.txt", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/test.txt", "", ""); }
782test { try parsePass("./test.txt", "http://www.example.com/test", "http://www.example.com/test.txt", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/test.txt", "", ""); }
783test { try parsePass("../test.txt", "http://www.example.com/test", "http://www.example.com/test.txt", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/test.txt", "", ""); }
784test { try parsePass("../aaa/test.txt", "http://www.example.com/test", "http://www.example.com/aaa/test.txt", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/aaa/test.txt", "", ""); }
785test { try parsePass("../../test.txt", "http://www.example.com/test", "http://www.example.com/test.txt", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/test.txt", "", ""); }
786test { try parsePass("\xe4\xb8\xad/test.txt", "http://www.example.com/test", "http://www.example.com/%E4%B8%AD/test.txt", "http://www.example.com", "http:", "", "", "www.example.com", "www.example.com", "", "/%E4%B8%AD/test.txt", "", ""); }
787test { try parsePass("http://www.example2.com", "http://www.example.com/test", "http://www.example2.com/", "http://www.example2.com", "http:", "", "", "www.example2.com", "www.example2.com", "", "/", "", ""); }
788test { try parsePass("//www.example2.com", "http://www.example.com/test", "http://www.example2.com/", "http://www.example2.com", "http:", "", "", "www.example2.com", "www.example2.com", "", "/", "", ""); }
789test { try parsePass("file:...", "http://www.example.com/test", "file:///...", "", "file:", "", "", "", "", "", "/...", "", ""); }
790test { try parsePass("file:..", "http://www.example.com/test", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
791test { try parsePass("file:a", "http://www.example.com/test", "file:///a", "", "file:", "", "", "", "", "", "/a", "", ""); }
792test { try parsePass("file:.", "http://www.example.com/test", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
793test { try parsePass("http://ExAmPlE.CoM", "http://other.com/", "http://example.com/", "http://example.com", "http:", "", "", "example.com", "example.com", "", "/", "", ""); }
794test { try parsePass("http://GOO\xe2\x80\x8b\xe2\x81\xa0\xef\xbb\xbfgoo.com", "http://other.com/", "http://googoo.com/", "http://googoo.com", "http:", "", "", "googoo.com", "googoo.com", "", "/", "", ""); }
795test { try parsePass("http://www.foo\xe3\x80\x82bar.com", "http://other.com/", "http://www.foo.bar.com/", "http://www.foo.bar.com", "http:", "", "", "www.foo.bar.com", "www.foo.bar.com", "", "/", "", ""); }
796test { try parsePass("http://\xef\xbc\xa7\xef\xbd\x8f.com", "http://other.com/", "http://go.com/", "http://go.com", "http:", "", "", "go.com", "go.com", "", "/", "", ""); }
797test { try parsePass("http://\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xbd\xa0\xe5\xa5\xbd", "http://other.com/", "http://xn--6qqa088eba/", "http://xn--6qqa088eba", "http:", "", "", "xn--6qqa088eba", "xn--6qqa088eba", "", "/", "", ""); }
798test { try parsePass("http://%30%78%63%30%2e%30%32%35%30.01", "http://other.com/", "http://192.168.0.1/", "http://192.168.0.1", "http:", "", "", "192.168.0.1", "192.168.0.1", "", "/", "", ""); }
799test { try parsePass("http://%30%78%63%30%2e%30%32%35%30.01%2e", "http://other.com/", "http://192.168.0.1/", "http://192.168.0.1", "http:", "", "", "192.168.0.1", "192.168.0.1", "", "/", "", ""); }
800test { try parsePass("http://\xef\xbc\x90\xef\xbc\xb8\xef\xbd\x83\xef\xbc\x90\xef\xbc\x8e\xef\xbc\x90\xef\xbc\x92\xef\xbc\x95\xef\xbc\x90\xef\xbc\x8e\xef\xbc\x90\xef\xbc\x91", "http://other.com/", "http://192.168.0.1/", "http://192.168.0.1", "http:", "", "", "192.168.0.1", "192.168.0.1", "", "/", "", ""); }
801test { try parsePass("http://foo:\xf0\x9f\x92\xa9@example.com/bar", "http://other.com/", "http://foo:%F0%9F%92%A9@example.com/bar", "http://example.com", "http:", "foo", "%F0%9F%92%A9", "example.com", "example.com", "", "/bar", "", ""); }
802test { try parsePass("#", "test:test", "test:test#", "null", "test:", "", "", "", "", "", "test", "", ""); }
803test { try parsePass("#x", "mailto:x@x.com", "mailto:x@x.com#x", "null", "mailto:", "", "", "", "", "", "x@x.com", "", "#x"); }
804test { try parsePass("#x", "data:,", "data:,#x", "null", "data:", "", "", "", "", "", ",", "", "#x"); }
805test { try parsePass("#x", "about:blank", "about:blank#x", "null", "about:", "", "", "", "", "", "blank", "", "#x"); }
806test { try parsePass("#x:y", "about:blank", "about:blank#x:y", "null", "about:", "", "", "", "", "", "blank", "", "#x:y"); }
807test { try parsePass("#", "test:test?test", "test:test?test#", "null", "test:", "", "", "", "", "", "test", "?test", ""); }
808test { try parsePass("https://@test@test@example:800/", "http://doesnotmatter/", "https://%40test%40test@example:800/", "https://example:800", "https:", "%40test%40test", "", "example:800", "example", "800", "/", "", ""); }
809test { try parsePass("https://@@@example", "http://doesnotmatter/", "https://%40%40@example/", "https://example", "https:", "%40%40", "", "example", "example", "", "/", "", ""); }
810test { try parsePass("http://`{}:`{}@h/`{}?`{}", "http://doesnotmatter/", "http://%60%7B%7D:%60%7B%7D@h/%60%7B%7D?`{}", "http://h", "http:", "%60%7B%7D", "%60%7B%7D", "h", "h", "", "/%60%7B%7D", "?`{}", ""); }
811test { try parsePass("/some/path", "http://user@example.org/smth", "http://user@example.org/some/path", "http://example.org", "http:", "user", "", "example.org", "example.org", "", "/some/path", "", ""); }
812test { try parsePass("", "http://user:pass@example.org:21/smth", "http://user:pass@example.org:21/smth", "http://example.org:21", "http:", "user", "pass", "example.org:21", "example.org", "21", "/smth", "", ""); }
813test { try parsePass("/some/path", "http://user:pass@example.org:21/smth", "http://user:pass@example.org:21/some/path", "http://example.org:21", "http:", "user", "pass", "example.org:21", "example.org", "21", "/some/path", "", ""); }
814test { try parsePass("i", "sc:/pa/pa", "sc:/pa/i", "null", "sc:", "", "", "", "", "", "/pa/i", "", ""); }
815test { try parsePass("i", "sc://ho/pa", "sc://ho/i", "null", "sc:", "", "", "ho", "ho", "", "/i", "", ""); }
816test { try parsePass("i", "sc:///pa/pa", "sc:///pa/i", "null", "sc:", "", "", "", "", "", "/pa/i", "", ""); }
817test { try parsePass("../i", "sc:/pa/pa", "sc:/i", "null", "sc:", "", "", "", "", "", "/i", "", ""); }
818test { try parsePass("../i", "sc://ho/pa", "sc://ho/i", "null", "sc:", "", "", "ho", "ho", "", "/i", "", ""); }
819test { try parsePass("../i", "sc:///pa/pa", "sc:///i", "null", "sc:", "", "", "", "", "", "/i", "", ""); }
820test { try parsePass("/i", "sc:/pa/pa", "sc:/i", "null", "sc:", "", "", "", "", "", "/i", "", ""); }
821test { try parsePass("/i", "sc://ho/pa", "sc://ho/i", "null", "sc:", "", "", "ho", "ho", "", "/i", "", ""); }
822test { try parsePass("/i", "sc:///pa/pa", "sc:///i", "null", "sc:", "", "", "", "", "", "/i", "", ""); }
823test { try parsePass("?i", "sc:/pa/pa", "sc:/pa/pa?i", "null", "sc:", "", "", "", "", "", "/pa/pa", "?i", ""); }
824test { try parsePass("?i", "sc://ho/pa", "sc://ho/pa?i", "null", "sc:", "", "", "ho", "ho", "", "/pa", "?i", ""); }
825test { try parsePass("?i", "sc:///pa/pa", "sc:///pa/pa?i", "null", "sc:", "", "", "", "", "", "/pa/pa", "?i", ""); }
826test { try parsePass("#i", "sc:sd", "sc:sd#i", "null", "sc:", "", "", "", "", "", "sd", "", "#i"); }
827test { try parsePass("#i", "sc:sd/sd", "sc:sd/sd#i", "null", "sc:", "", "", "", "", "", "sd/sd", "", "#i"); }
828test { try parsePass("#i", "sc:/pa/pa", "sc:/pa/pa#i", "null", "sc:", "", "", "", "", "", "/pa/pa", "", "#i"); }
829test { try parsePass("#i", "sc://ho/pa", "sc://ho/pa#i", "null", "sc:", "", "", "ho", "ho", "", "/pa", "", "#i"); }
830test { try parsePass("#i", "sc:///pa/pa", "sc:///pa/pa#i", "null", "sc:", "", "", "", "", "", "/pa/pa", "", "#i"); }
831test { try parsePass("x", "sc://\xc3\xb1", "sc://%C3%B1/x", "null", "sc:", "", "", "%C3%B1", "%C3%B1", "", "/x", "", ""); }
832test { try parsePass("?a=b&c=d", "http://example.org/foo/bar", "http://example.org/foo/bar?a=b&c=d", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "?a=b&c=d", ""); }
833test { try parsePass("??a=b&c=d", "http://example.org/foo/bar", "http://example.org/foo/bar??a=b&c=d", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "??a=b&c=d", ""); }
834test { try parsePass("http:", "http://example.org/foo/bar", "http://example.org/foo/bar", "http://example.org", "http:", "", "", "example.org", "example.org", "", "/foo/bar", "", ""); }
835test { try parsePass("sc:", "https://example.org/foo/bar", "sc:", "null", "sc:", "", "", "", "", "", "", "", ""); }
836test { try parsePass("http://1.2.3.4/", "http://other.com/", "http://1.2.3.4/", "http://1.2.3.4", "http:", "", "", "1.2.3.4", "1.2.3.4", "", "/", "", ""); }
837test { try parsePass("http://1.2.3.4./", "http://other.com/", "http://1.2.3.4/", "http://1.2.3.4", "http:", "", "", "1.2.3.4", "1.2.3.4", "", "/", "", ""); }
838test { try parsePass("http://192.168.257", "http://other.com/", "http://192.168.1.1/", "http://192.168.1.1", "http:", "", "", "192.168.1.1", "192.168.1.1", "", "/", "", ""); }
839test { try parsePass("http://192.168.257.", "http://other.com/", "http://192.168.1.1/", "http://192.168.1.1", "http:", "", "", "192.168.1.1", "192.168.1.1", "", "/", "", ""); }
840test { try parsePass("http://192.168.257.com", "http://other.com/", "http://192.168.257.com/", "http://192.168.257.com", "http:", "", "", "192.168.257.com", "192.168.257.com", "", "/", "", ""); }
841test { try parsePass("http://256", "http://other.com/", "http://0.0.1.0/", "http://0.0.1.0", "http:", "", "", "0.0.1.0", "0.0.1.0", "", "/", "", ""); }
842test { try parsePass("http://256.com", "http://other.com/", "http://256.com/", "http://256.com", "http:", "", "", "256.com", "256.com", "", "/", "", ""); }
843test { try parsePass("http://999999999", "http://other.com/", "http://59.154.201.255/", "http://59.154.201.255", "http:", "", "", "59.154.201.255", "59.154.201.255", "", "/", "", ""); }
844test { try parsePass("http://999999999.", "http://other.com/", "http://59.154.201.255/", "http://59.154.201.255", "http:", "", "", "59.154.201.255", "59.154.201.255", "", "/", "", ""); }
845test { try parsePass("http://999999999.com", "http://other.com/", "http://999999999.com/", "http://999999999.com", "http:", "", "", "999999999.com", "999999999.com", "", "/", "", ""); }
846test { try parsePass("http://10000000000.com", "http://other.com/", "http://10000000000.com/", "http://10000000000.com", "http:", "", "", "10000000000.com", "10000000000.com", "", "/", "", ""); }
847test { try parsePass("http://4294967295", "http://other.com/", "http://255.255.255.255/", "http://255.255.255.255", "http:", "", "", "255.255.255.255", "255.255.255.255", "", "/", "", ""); }
848test { try parsePass("http://0xffffffff", "http://other.com/", "http://255.255.255.255/", "http://255.255.255.255", "http:", "", "", "255.255.255.255", "255.255.255.255", "", "/", "", ""); }
849test { try parsePass("pix/submit.gif", "file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/anchor.html", "file:///C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif", "", "file:", "", "", "", "", "", "/C:/Users/Domenic/Dropbox/GitHub/tmpvar/jsdom/test/level2/html/files/pix/submit.gif", "", ""); }
850test { try parsePass("..", "file:///C:/", "file:///C:/", "", "file:", "", "", "", "", "", "/C:/", "", ""); }
851test { try parsePass("..", "file:///", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
852test { try parsePass("/", "file:///C:/a/b", "file:///C:/", "", "file:", "", "", "", "", "", "/C:/", "", ""); }
853test { try parsePass("/", "file://h/C:/a/b", "file://h/C:/", "", "file:", "", "", "h", "h", "", "/C:/", "", ""); }
854test { try parsePass("/", "file://h/a/b", "file://h/", "", "file:", "", "", "h", "h", "", "/", "", ""); }
855test { try parsePass("//d:", "file:///C:/a/b", "file:///d:", "", "file:", "", "", "", "", "", "/d:", "", ""); }
856test { try parsePass("//d:/..", "file:///C:/a/b", "file:///d:/", "", "file:", "", "", "", "", "", "/d:/", "", ""); }
857test { try parsePass("..", "file:///ab:/", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
858test { try parsePass("..", "file:///1:/", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
859test { try parsePass("", "file:///test?test#test", "file:///test?test", "", "file:", "", "", "", "", "", "/test", "?test", ""); }
860test { try parsePass("file:", "file:///test?test#test", "file:///test?test", "", "file:", "", "", "", "", "", "/test", "?test", ""); }
861test { try parsePass("?x", "file:///test?test#test", "file:///test?x", "", "file:", "", "", "", "", "", "/test", "?x", ""); }
862test { try parsePass("file:?x", "file:///test?test#test", "file:///test?x", "", "file:", "", "", "", "", "", "/test", "?x", ""); }
863test { try parsePass("#x", "file:///test?test#test", "file:///test?test#x", "", "file:", "", "", "", "", "", "/test", "?test", "#x"); }
864test { try parsePass("file:#x", "file:///test?test#test", "file:///test?test#x", "", "file:", "", "", "", "", "", "/test", "?test", "#x"); }
865test { try parsePass("/////mouse", "file:///elephant", "file://///mouse", "", "file:", "", "", "", "", "", "///mouse", "", ""); }
866test { try parsePass("\\//pig", "file://lion/", "file:///pig", "", "file:", "", "", "", "", "", "/pig", "", ""); }
867test { try parsePass("\\/localhost//pig", "file://lion/", "file:////pig", "", "file:", "", "", "", "", "", "//pig", "", ""); }
868test { try parsePass("//localhost//pig", "file://lion/", "file:////pig", "", "file:", "", "", "", "", "", "//pig", "", ""); }
869test { try parsePass("/..//localhost//pig", "file://lion/", "file://lion//localhost//pig", "", "file:", "", "", "lion", "lion", "", "//localhost//pig", "", ""); }
870test { try parsePass("file://", "file://ape/", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
871test { try parsePass("/rooibos", "file://tea/", "file://tea/rooibos", "", "file:", "", "", "tea", "tea", "", "/rooibos", "", ""); }
872test { try parsePass("/?chai", "file://tea/", "file://tea/?chai", "", "file:", "", "", "tea", "tea", "", "/", "?chai", ""); }
873test { try parsePass("C|", "file://host/dir/file", "file://host/C:", "", "file:", "", "", "host", "host", "", "/C:", "", ""); }
874test { try parsePass("C|", "file://host/D:/dir1/dir2/file", "file://host/C:", "", "file:", "", "", "host", "host", "", "/C:", "", ""); }
875test { try parsePass("C|#", "file://host/dir/file", "file://host/C:#", "", "file:", "", "", "host", "host", "", "/C:", "", ""); }
876test { try parsePass("C|?", "file://host/dir/file", "file://host/C:?", "", "file:", "", "", "host", "host", "", "/C:", "", ""); }
877test { try parsePass("C|/", "file://host/dir/file", "file://host/C:/", "", "file:", "", "", "host", "host", "", "/C:/", "", ""); }
878test { try parsePass("C|\n/", "file://host/dir/file", "file://host/C:/", "", "file:", "", "", "host", "host", "", "/C:/", "", ""); }
879test { try parsePass("C|\\", "file://host/dir/file", "file://host/C:/", "", "file:", "", "", "host", "host", "", "/C:/", "", ""); }
880test { try parsePass("C", "file://host/dir/file", "file://host/dir/C", "", "file:", "", "", "host", "host", "", "/dir/C", "", ""); }
881test { try parsePass("C|a", "file://host/dir/file", "file://host/dir/C|a", "", "file:", "", "", "host", "host", "", "/dir/C|a", "", ""); }
882test { try parsePass("/c:/foo/bar", "file:///c:/baz/qux", "file:///c:/foo/bar", "", "file:", "", "", "", "", "", "/c:/foo/bar", "", ""); }
883test { try parsePass("/c|/foo/bar", "file:///c:/baz/qux", "file:///c:/foo/bar", "", "file:", "", "", "", "", "", "/c:/foo/bar", "", ""); }
884test { try parsePass("file:\\c:\\foo\\bar", "file:///c:/baz/qux", "file:///c:/foo/bar", "", "file:", "", "", "", "", "", "/c:/foo/bar", "", ""); }
885test { try parsePass("/c:/foo/bar", "file://host/path", "file://host/c:/foo/bar", "", "file:", "", "", "host", "host", "", "/c:/foo/bar", "", ""); }
886test { try parsePass("..", "abc://x/y/z/C:/", "abc://x/y/z/", "", "abc:", "", "", "x", "x", "", "/y/z/", "", ""); }
887test { try parsePass("..", "file://x/C:/", "file://x/C:/", "", "file:", "", "", "x", "x", "", "/C:/", "", ""); }
888test { try parsePass("C|/", "file://host/", "file://host/C:/", "", "file:", "", "", "host", "host", "", "/C:/", "", ""); }
889test { try parsePass("/C:/", "file://host/", "file://host/C:/", "", "file:", "", "", "host", "host", "", "/C:/", "", ""); }
890test { try parsePass("file:C:/", "file://host/", "file://host/C:/", "", "file:", "", "", "host", "host", "", "/C:/", "", ""); }
891test { try parsePass("file:/C:/", "file://host/", "file://host/C:/", "", "file:", "", "", "host", "host", "", "/C:/", "", ""); }
892test { try parsePass("//C:/", "file://host/", "file:///C:/", "", "file:", "", "", "", "", "", "/C:/", "", ""); }
893test { try parsePass("file://C:/", "file://host/", "file:///C:/", "", "file:", "", "", "", "", "", "/C:/", "", ""); }
894test { try parsePass("///C:/", "file://host/", "file:///C:/", "", "file:", "", "", "", "", "", "/C:/", "", ""); }
895test { try parsePass("file:///C:/", "file://host/", "file:///C:/", "", "file:", "", "", "", "", "", "/C:/", "", ""); }
896test { try parsePass("file:///one/two", "file:///", "file:///one/two", "", "file:", "", "", "", "", "", "/one/two", "", ""); }
897test { try parsePass("file:////one/two", "file:///", "file:////one/two", "", "file:", "", "", "", "", "", "//one/two", "", ""); }
898test { try parsePass("//one/two", "file:///", "file://one/two", "", "file:", "", "", "one", "one", "", "/two", "", ""); }
899test { try parsePass("///one/two", "file:///", "file:///one/two", "", "file:", "", "", "", "", "", "/one/two", "", ""); }
900test { try parsePass("////one/two", "file:///", "file:////one/two", "", "file:", "", "", "", "", "", "//one/two", "", ""); }
901test { try parsePass("file:///.//", "file:////", "file:////", "", "file:", "", "", "", "", "", "//", "", ""); }
902test { try parsePass("http://[1:0::]", "http://example.net/", "http://[1::]/", "http://[1::]", "http:", "", "", "[1::]", "[1::]", "", "/", "", ""); }
903test { try parsePass("#x", "sc://\xc3\xb1", "sc://%C3%B1#x", "null", "sc:", "", "", "%C3%B1", "%C3%B1", "", "", "", "#x"); }
904test { try parsePass("?x", "sc://\xc3\xb1", "sc://%C3%B1?x", "null", "sc:", "", "", "%C3%B1", "%C3%B1", "", "", "?x", ""); }
905test { try parsePass("///", "sc://x/", "sc:///", "", "sc:", "", "", "", "", "", "/", "", ""); }
906test { try parsePass("////", "sc://x/", "sc:////", "", "sc:", "", "", "", "", "", "//", "", ""); }
907test { try parsePass("////x/", "sc://x/", "sc:////x/", "", "sc:", "", "", "", "", "", "//x/", "", ""); }
908test { try parsePass("/.//path", "non-spec:/p", "non-spec:/.//path", "", "non-spec:", "", "", "", "", "", "//path", "", ""); }
909test { try parsePass("/..//path", "non-spec:/p", "non-spec:/.//path", "", "non-spec:", "", "", "", "", "", "//path", "", ""); }
910test { try parsePass("..//path", "non-spec:/p", "non-spec:/.//path", "", "non-spec:", "", "", "", "", "", "//path", "", ""); }
911test { try parsePass("a/..//path", "non-spec:/p", "non-spec:/.//path", "", "non-spec:", "", "", "", "", "", "//path", "", ""); }
912test { try parsePass("", "non-spec:/..//p", "non-spec:/.//p", "", "non-spec:", "", "", "", "", "", "//p", "", ""); }
913test { try parsePass("path", "non-spec:/..//p", "non-spec:/.//path", "", "non-spec:", "", "", "", "", "", "//path", "", ""); }
914test { try parsePass("../path", "non-spec:/.//p", "non-spec:/path", "", "non-spec:", "", "", "", "", "", "/path", "", ""); }
915test { try parsePass("test-a-colon-slash.html", "a:/", "a:/test-a-colon-slash.html", "", "a:", "", "", "", "", "", "/test-a-colon-slash.html", "", ""); }
916test { try parsePass("test-a-colon-slash-slash.html", "a://", "a:///test-a-colon-slash-slash.html", "", "a:", "", "", "", "", "", "/test-a-colon-slash-slash.html", "", ""); }
917test { try parsePass("test-a-colon-slash-b.html", "a:/b", "a:/test-a-colon-slash-b.html", "", "a:", "", "", "", "", "", "/test-a-colon-slash-b.html", "", ""); }
918test { try parsePass("test-a-colon-slash-slash-b.html", "a://b", "a://b/test-a-colon-slash-slash-b.html", "", "a:", "", "", "b", "b", "", "/test-a-colon-slash-slash-b.html", "", ""); }
919test { try parsePass("10.0.0.7:8080/foo.html", "file:///some/dir/bar.html", "file:///some/dir/10.0.0.7:8080/foo.html", "", "file:", "", "", "", "", "", "/some/dir/10.0.0.7:8080/foo.html", "", ""); }
920test { try parsePass("a!@$*=/foo.html", "file:///some/dir/bar.html", "file:///some/dir/a!@$*=/foo.html", "", "file:", "", "", "", "", "", "/some/dir/a!@$*=/foo.html", "", ""); }
921test { try parsePass("a1234567890-+.:foo/bar", "http://example.com/dir/file", "a1234567890-+.:foo/bar", "", "a1234567890-+.:", "", "", "", "", "", "foo/bar", "", ""); }
922test { try parsePass("#link", "https://example.org/##link", "https://example.org/#link", "", "https:", "", "", "example.org", "example.org", "", "/", "", "#link"); }
923test { try parsePass("https://user:pass[\x7f@foo/bar", "http://example.org", "https://user:pass%5B%7F@foo/bar", "https://foo", "https:", "user", "pass%5B%7F", "foo", "foo", "", "/bar", "", ""); }
924test { try parsePass("abc:rootless", "abc://host/path", "abc:rootless", "", "abc:", "", "", "", "", "", "rootless", "", ""); }
925test { try parsePass("abc:rootless", "abc:/path", "abc:rootless", "", "abc:", "", "", "", "", "", "rootless", "", ""); }
926test { try parsePass("abc:rootless", "abc:path", "abc:rootless", "", "abc:", "", "", "", "", "", "rootless", "", ""); }
927test { try parsePass("abc:/rooted", "abc://host/path", "abc:/rooted", "", "abc:", "", "", "", "", "", "/rooted", "", ""); }
928test { try parsePass("///test", "http://example.org/", "http://test/", "", "http:", "", "", "test", "test", "", "/", "", ""); }
929test { try parsePass("///\\//\\//test", "http://example.org/", "http://test/", "", "http:", "", "", "test", "test", "", "/", "", ""); }
930test { try parsePass("///example.org/path", "http://example.org/", "http://example.org/path", "", "http:", "", "", "example.org", "example.org", "", "/path", "", ""); }
931test { try parsePass("///example.org/../path", "http://example.org/", "http://example.org/path", "", "http:", "", "", "example.org", "example.org", "", "/path", "", ""); }
932test { try parsePass("///example.org/../../", "http://example.org/", "http://example.org/", "", "http:", "", "", "example.org", "example.org", "", "/", "", ""); }
933test { try parsePass("///example.org/../path/../../", "http://example.org/", "http://example.org/", "", "http:", "", "", "example.org", "example.org", "", "/", "", ""); }
934test { try parsePass("///example.org/../path/../../path", "http://example.org/", "http://example.org/path", "", "http:", "", "", "example.org", "example.org", "", "/path", "", ""); }
935test { try parsePass("/\\/\\//example.org/../path", "http://example.org/", "http://example.org/path", "", "http:", "", "", "example.org", "example.org", "", "/path", "", ""); }
936test { try parsePass("///abcdef/../", "file:///", "file:///", "", "file:", "", "", "", "", "", "/", "", ""); }
937test { try parsePass("/\\//\\/a/../", "file:///", "file://////", "", "file:", "", "", "", "", "", "////", "", ""); }
938test { try parsePass("//a/../", "file:///", "file://a/", "", "file:", "", "", "a", "a", "", "/", "", ""); }
939test { try parsePass("\\a", "foo://foo/a", "foo://foo/\\a", "", "foo:", "", "", "foo", "foo", "", "/\\a", "", ""); }
940test { try parsePass("\\/a", "foo://foo/a", "foo://foo/\\/a", "", "foo:", "", "", "foo", "foo", "", "/\\/a", "", ""); }
941test { try parsePass("\\\\a", "foo://foo/a", "foo://foo/\\\\a", "", "foo:", "", "", "foo", "foo", "", "/\\\\a", "", ""); }
942
943test { try parseIDNAFail("a\xe2\x80\x8cb"); }
944test { try parseIDNAFail("A\xe2\x80\x8cB"); }
945test { try parseIDNAFail("A\xe2\x80\x8cb"); }
946test { try parseIDNAFail("xn--ab-j1t"); }
947test { try parseIDNAFail("a\xe2\x80\x8db"); }
948test { try parseIDNAFail("A\xe2\x80\x8dB"); }
949test { try parseIDNAFail("A\xe2\x80\x8db"); }
950test { try parseIDNAFail("xn--ab-m1t"); }
951test { try parseIDNAFail("xn--u-ccb"); }
952test { try parseIDNAFail("a\xe2\x92\x88com"); }
953test { try parseIDNAFail("A\xe2\x92\x88COM"); }
954test { try parseIDNAFail("A\xe2\x92\x88Com"); }
955test { try parseIDNAFail("xn--acom-0w1b"); }
956test { try parseIDNAFail("xn--a-ecp.ru"); }
957test { try parseIDNAFail("xn--0.pt"); }
958test { try parseIDNAFail("xn--a.pt"); }
959test { try parseIDNAFail("xn--a-\xc3\x84.pt"); }
960test { try parseIDNAFail("xn--a-A\xcc\x88.pt"); }
961test { try parseIDNAFail("xn--a-a\xcc\x88.pt"); }
962test { try parseIDNAFail("xn--a-\xc3\xa4.pt"); }
963test { try parseIDNAFail("XN--A-\xc3\x84.PT"); }
964test { try parseIDNAFail("XN--A-A\xcc\x88.PT"); }
965test { try parseIDNAFail("Xn--A-A\xcc\x88.pt"); }
966test { try parseIDNAFail("Xn--A-\xc3\x84.pt"); }
967test { try parseIDNAFail("xn--xn--a--gua.pt"); }
968test { try parseIDNAFail("1.a\xc3\x9f\xe2\x80\x8c\xe2\x80\x8db\xe2\x80\x8c\xe2\x80\x8dc\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9fd\xcf\x82\xcf\x83\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9fe\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9fx\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9fy\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xcc\x82\xc3\x9fz"); }
969test { try parseIDNAFail("1.ASS\xe2\x80\x8c\xe2\x80\x8dB\xe2\x80\x8c\xe2\x80\x8dCSSSSSSSSD\xce\xa3\xce\xa3SSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSS\xcc\x82SSZ"); }
970test { try parseIDNAFail("1.ASS\xe2\x80\x8c\xe2\x80\x8dB\xe2\x80\x8c\xe2\x80\x8dCSSSSSSSSD\xce\xa3\xce\xa3SSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSS\xc5\x9cSSZ"); }
971test { try parseIDNAFail("1.ass\xe2\x80\x8c\xe2\x80\x8db\xe2\x80\x8c\xe2\x80\x8dcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }
972test { try parseIDNAFail("1.ass\xe2\x80\x8c\xe2\x80\x8db\xe2\x80\x8c\xe2\x80\x8dcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\xcc\x82ssz"); }
973test { try parseIDNAFail("1.Ass\xe2\x80\x8c\xe2\x80\x8db\xe2\x80\x8c\xe2\x80\x8dcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\xcc\x82ssz"); }
974test { try parseIDNAFail("1.Ass\xe2\x80\x8c\xe2\x80\x8db\xe2\x80\x8c\xe2\x80\x8dcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }
975test { try parseIDNAFail("1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa69989dba9gc"); }
976test { try parseIDNAFail("1.A\xc3\x9f\xe2\x80\x8c\xe2\x80\x8db\xe2\x80\x8c\xe2\x80\x8dc\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9fd\xcf\x82\xcf\x83\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9fe\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9fx\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9fy\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xc3\x9f\xcc\x82\xc3\x9fz"); }
977test { try parseIDNAFail("1.xn--abcdexyz-qyacaaabaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaa010ze2isb1140zba8cc"); }
978test { try parseIDNAFail("\xe2\x80\x8cx\xe2\x80\x8dn\xe2\x80\x8c-\xe2\x80\x8d-b\xc3\x9f"); }
979test { try parseIDNAFail("\xe2\x80\x8cX\xe2\x80\x8dN\xe2\x80\x8c-\xe2\x80\x8d-BSS"); }
980test { try parseIDNAFail("\xe2\x80\x8cx\xe2\x80\x8dn\xe2\x80\x8c-\xe2\x80\x8d-bss"); }
981test { try parseIDNAFail("\xe2\x80\x8cX\xe2\x80\x8dn\xe2\x80\x8c-\xe2\x80\x8d-Bss"); }
982test { try parseIDNAFail("xn--xn--bss-7z6ccid"); }
983test { try parseIDNAFail("\xe2\x80\x8cX\xe2\x80\x8dn\xe2\x80\x8c-\xe2\x80\x8d-B\xc3\x9f"); }
984test { try parseIDNAFail("xn--xn--b-pqa5796ccahd"); }
985test { try parseIDNAFail("xn--xn---epa"); }
986test { try parseIDNAFail("a.b.\xcc\x88c.d"); }
987test { try parseIDNAFail("A.B.\xcc\x88C.D"); }
988test { try parseIDNAFail("A.b.\xcc\x88c.d"); }
989test { try parseIDNAFail("a.b.xn--c-bcb.d"); }
990test { try parseIDNAFail("\xe0\xae\xb9\xe2\x80\x8d"); }
991test { try parseIDNAFail("xn--dmc225h"); }
992test { try parseIDNAFail("\xe2\x80\x8d"); }
993test { try parseIDNAFail("xn--1ug"); }
994test { try parseIDNAFail("\xe0\xae\xb9\xe2\x80\x8c"); }
995test { try parseIDNAFail("xn--dmc025h"); }
996test { try parseIDNAFail("\xe2\x80\x8c"); }
997test { try parseIDNAFail("xn--0ug"); }
998test { try parseIDNAFail("\xdb\xaf\xe2\x80\x8c\xdb\xaf"); }
999test { try parseIDNAFail("xn--cmba004q"); }
1000test { try parseIDNAFail("a\xef\xbf\xbdz"); }
1001test { try parseIDNAFail("A\xef\xbf\xbdZ"); }
1002test { try parseIDNAFail("xn--"); }
1003test { try parseIDNAFail("xn---"); }
1004test { try parseIDNAFail("xn--ASCII-"); }
1005test { try parseIDNAFail("xn--unicode-.org"); }
1006test { try parseIDNAFail("\xe2\x92\x95\xe2\x88\x9d\xd9\x9f\xf2\x93\xa4\xa6\xef\xbc\x8e-\xf3\xa0\x84\xaf"); }
1007test { try parseIDNAFail("14.\xe2\x88\x9d\xd9\x9f\xf2\x93\xa4\xa6.-\xf3\xa0\x84\xaf"); }
1008test { try parseIDNAFail("14.xn--7hb713l3v90n.-"); }
1009test { try parseIDNAFail("xn--7hb713lfwbi1311b.-"); }
1010test { try parseIDNAFail("\xe2\x80\x8d\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe1\x82\xa0"); }
1011test { try parseIDNAFail("\xe2\x80\x8d=\xcc\xb8\xe1\xa2\x99>\xcc\xb8.\xe1\x84\x89\xe1\x85\xa9\xe1\x86\xbe-\xe1\xa1\xb4\xe1\x82\xa0"); }
1012test { try parseIDNAFail("\xe2\x80\x8d=\xcc\xb8\xe1\xa2\x99>\xcc\xb8.\xe1\x84\x89\xe1\x85\xa9\xe1\x86\xbe-\xe1\xa1\xb4\xe2\xb4\x80"); }
1013test { try parseIDNAFail("\xe2\x80\x8d\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }
1014test { try parseIDNAFail("xn--jbf929a90b0b.xn----p9j493ivi4l"); }
1015test { try parseIDNAFail("xn--jbf911clb.xn----6zg521d196p"); }
1016test { try parseIDNAFail("xn--jbf929a90b0b.xn----6zg521d196p"); }
1017test { try parseIDNAFail("\xf1\xaf\x9e\x9c\xef\xbc\x8e\xf0\x90\xbf\x87\xe0\xbe\xa2\xdd\xbd\xd8\x80"); }
1018test { try parseIDNAFail("\xf1\xaf\x9e\x9c\xef\xbc\x8e\xf0\x90\xbf\x87\xe0\xbe\xa1\xe0\xbe\xb7\xdd\xbd\xd8\x80"); }
1019test { try parseIDNAFail("\xf1\xaf\x9e\x9c.\xf0\x90\xbf\x87\xe0\xbe\xa1\xe0\xbe\xb7\xdd\xbd\xd8\x80"); }
1020test { try parseIDNAFail("xn--gw68a.xn--ifb57ev2psc6027m"); }
1021test { try parseIDNAFail("\xf0\xa3\xb3\x94\xcc\x83.\xf0\x91\x93\x82"); }
1022test { try parseIDNAFail("xn--nsa95820a.xn--wz1d"); }
1023test { try parseIDNAFail("\xe2\x80\x8c\xf2\x85\x8e\xad.\xe1\x82\xb2\xf0\x91\x87\x80"); }
1024test { try parseIDNAFail("\xe2\x80\x8c\xf2\x85\x8e\xad.\xe2\xb4\x92\xf0\x91\x87\x80"); }
1025test { try parseIDNAFail("xn--bn95b.xn--9kj2034e"); }
1026test { try parseIDNAFail("xn--0ug15083f.xn--9kj2034e"); }
1027test { try parseIDNAFail("xn--bn95b.xn--qnd6272k"); }
1028test { try parseIDNAFail("xn--0ug15083f.xn--qnd6272k"); }
1029test { try parseIDNAFail("\xe7\xb9\xb1\xf0\x91\x96\xbf\xe2\x80\x8d.\xef\xbc\x98\xef\xb8\x92"); }
1030test { try parseIDNAFail("xn--gl0as212a.xn--8-o89h"); }
1031test { try parseIDNAFail("xn--1ug6928ac48e.xn--8-o89h"); }
1032test { try parseIDNAFail("\xf3\xa0\x86\xbe\xef\xbc\x8e\xf0\x9e\x80\x88"); }
1033test { try parseIDNAFail("\xf3\xa0\x86\xbe.\xf0\x9e\x80\x88"); }
1034test { try parseIDNAFail(".xn--ph4h"); }
1035test { try parseIDNAFail("\xc3\x9f\xdb\xab\xe3\x80\x82\xe2\x80\x8d"); }
1036test { try parseIDNAFail("SS\xdb\xab\xe3\x80\x82\xe2\x80\x8d"); }
1037test { try parseIDNAFail("ss\xdb\xab\xe3\x80\x82\xe2\x80\x8d"); }
1038test { try parseIDNAFail("Ss\xdb\xab\xe3\x80\x82\xe2\x80\x8d"); }
1039test { try parseIDNAFail("xn--ss-59d.xn--1ug"); }
1040test { try parseIDNAFail("xn--zca012a.xn--1ug"); }
1041test { try parseIDNAFail("\xf3\xa0\x90\xb5\xe2\x80\x8c\xe2\x92\x88\xef\xbc\x8e\xf3\xa0\x8e\x87"); }
1042test { try parseIDNAFail("\xf3\xa0\x90\xb5\xe2\x80\x8c1..\xf3\xa0\x8e\x87"); }
1043test { try parseIDNAFail("xn--1-bs31m..xn--tv36e"); }
1044test { try parseIDNAFail("xn--1-rgn37671n..xn--tv36e"); }
1045test { try parseIDNAFail("xn--tshz2001k.xn--tv36e"); }
1046test { try parseIDNAFail("xn--0ug88o47900b.xn--tv36e"); }
1047test { try parseIDNAFail("\xf3\x9f\x88\xa3\xd9\x9f\xea\xaa\xb2\xc3\x9f\xe3\x80\x82\xf3\x8c\x93\xa7"); }
1048test { try parseIDNAFail("\xf3\x9f\x88\xa3\xd9\x9f\xea\xaa\xb2SS\xe3\x80\x82\xf3\x8c\x93\xa7"); }
1049test { try parseIDNAFail("\xf3\x9f\x88\xa3\xd9\x9f\xea\xaa\xb2ss\xe3\x80\x82\xf3\x8c\x93\xa7"); }
1050test { try parseIDNAFail("\xf3\x9f\x88\xa3\xd9\x9f\xea\xaa\xb2Ss\xe3\x80\x82\xf3\x8c\x93\xa7"); }
1051test { try parseIDNAFail("xn--ss-3xd2839nncy1m.xn--bb79d"); }
1052test { try parseIDNAFail("xn--zca92z0t7n5w96j.xn--bb79d"); }
1053test { try parseIDNAFail("\xdd\xb4\xe2\x80\x8c\xf0\x9e\xa4\xbf\xe3\x80\x82\xf0\xbd\x98\x90\xe4\x89\x9c\xe2\x80\x8d\xf1\xbf\xa4\xbc"); }
1054test { try parseIDNAFail("\xdd\xb4\xe2\x80\x8c\xf0\x9e\xa4\x9d\xe3\x80\x82\xf0\xbd\x98\x90\xe4\x89\x9c\xe2\x80\x8d\xf1\xbf\xa4\xbc"); }
1055test { try parseIDNAFail("xn--4pb2977v.xn--z0nt555ukbnv"); }
1056test { try parseIDNAFail("xn--4pb607jjt73a.xn--1ug236ke314donv1a"); }
1057test { try parseIDNAFail("\xe3\x85\xa4\xe0\xa5\x8d\xe1\x82\xa0\xe1\x9f\x90.\xe1\xa0\x8b"); }
1058test { try parseIDNAFail("\xe1\x85\xa0\xe0\xa5\x8d\xe1\x82\xa0\xe1\x9f\x90.\xe1\xa0\x8b"); }
1059test { try parseIDNAFail("\xe1\x85\xa0\xe0\xa5\x8d\xe2\xb4\x80\xe1\x9f\x90.\xe1\xa0\x8b"); }
1060test { try parseIDNAFail("xn--n3b445e53p."); }
1061test { try parseIDNAFail("\xe3\x85\xa4\xe0\xa5\x8d\xe2\xb4\x80\xe1\x9f\x90.\xe1\xa0\x8b"); }
1062test { try parseIDNAFail("xn--n3b742bkqf4ty."); }
1063test { try parseIDNAFail("xn--n3b468aoqa89r."); }
1064test { try parseIDNAFail("xn--n3b445e53po6d."); }
1065test { try parseIDNAFail("xn--n3b468azngju2a."); }
1066test { try parseIDNAFail("\xe2\x9d\xa3\xe2\x80\x8d\xef\xbc\x8e\xe0\xa7\x8d\xf0\x91\xb0\xbd\xd8\x92\xea\xa4\xa9"); }
1067test { try parseIDNAFail("\xe2\x9d\xa3\xe2\x80\x8d.\xe0\xa7\x8d\xf0\x91\xb0\xbd\xd8\x92\xea\xa4\xa9"); }
1068test { try parseIDNAFail("xn--pei.xn--0fb32q3w7q2g4d"); }
1069test { try parseIDNAFail("xn--1ugy10a.xn--0fb32q3w7q2g4d"); }
1070test { try parseIDNAFail("\xcd\x89\xe3\x80\x82\xf0\xa7\xa1\xab"); }
1071test { try parseIDNAFail("xn--nua.xn--bc6k"); }
1072test { try parseIDNAFail("\xf0\x91\xb0\xbf\xf3\xa0\x85\xa6\xef\xbc\x8e\xe1\x85\xa0"); }
1073test { try parseIDNAFail("\xf0\x91\xb0\xbf\xf3\xa0\x85\xa6.\xe1\x85\xa0"); }
1074test { try parseIDNAFail("xn--ok3d."); }
1075test { try parseIDNAFail("xn--ok3d.xn--psd"); }
1076test { try parseIDNAFail("\xe8\x94\x8f\xef\xbd\xa1\xf0\x91\xb0\xba"); }
1077test { try parseIDNAFail("\xe8\x94\x8f\xe3\x80\x82\xf0\x91\xb0\xba"); }
1078test { try parseIDNAFail("xn--uy1a.xn--jk3d"); }
1079test { try parseIDNAFail("xn--8g1d12120a.xn--5l6h"); }
1080test { try parseIDNAFail("\xf0\x91\x8b\xa7\xea\xa7\x802\xef\xbd\xa1\xe3\xa7\x89\xf2\x92\x96\x84"); }
1081test { try parseIDNAFail("\xf0\x91\x8b\xa7\xea\xa7\x802\xe3\x80\x82\xe3\xa7\x89\xf2\x92\x96\x84"); }
1082test { try parseIDNAFail("xn--2-5z4eu89y.xn--97l02706d"); }
1083test { try parseIDNAFail("\xe2\xa4\xb8\xcf\x82\xf0\xba\xb1\x80\xef\xbd\xa1\xef\xbe\xa0"); }
1084test { try parseIDNAFail("\xe2\xa4\xb8\xcf\x82\xf0\xba\xb1\x80\xe3\x80\x82\xe1\x85\xa0"); }
1085test { try parseIDNAFail("\xe2\xa4\xb8\xce\xa3\xf0\xba\xb1\x80\xe3\x80\x82\xe1\x85\xa0"); }
1086test { try parseIDNAFail("\xe2\xa4\xb8\xcf\x83\xf0\xba\xb1\x80\xe3\x80\x82\xe1\x85\xa0"); }
1087test { try parseIDNAFail("xn--4xa192qmp03d."); }
1088test { try parseIDNAFail("xn--3xa392qmp03d."); }
1089test { try parseIDNAFail("\xe2\xa4\xb8\xce\xa3\xf0\xba\xb1\x80\xef\xbd\xa1\xef\xbe\xa0"); }
1090test { try parseIDNAFail("\xe2\xa4\xb8\xcf\x83\xf0\xba\xb1\x80\xef\xbd\xa1\xef\xbe\xa0"); }
1091test { try parseIDNAFail("xn--4xa192qmp03d.xn--psd"); }
1092test { try parseIDNAFail("xn--3xa392qmp03d.xn--psd"); }
1093test { try parseIDNAFail("xn--4xa192qmp03d.xn--cl7c"); }
1094test { try parseIDNAFail("xn--3xa392qmp03d.xn--cl7c"); }
1095test { try parseIDNAFail("\xe2\x80\x8d\xf3\xaf\x91\x96\xf3\xa0\x81\x90\xef\xbc\x8e\xd6\xbd\xf0\x99\xae\xb0\xea\xa1\x9d\xf0\x90\x8b\xa1"); }
1096test { try parseIDNAFail("\xe2\x80\x8d\xf3\xaf\x91\x96\xf3\xa0\x81\x90.\xd6\xbd\xf0\x99\xae\xb0\xea\xa1\x9d\xf0\x90\x8b\xa1"); }
1097test { try parseIDNAFail("xn--b726ey18m.xn--ldb8734fg0qcyzzg"); }
1098test { try parseIDNAFail("xn--1ug66101lt8me.xn--ldb8734fg0qcyzzg"); }
1099test { try parseIDNAFail("\xe3\x80\x82\xf4\x83\x88\xb5\xcf\x82\xf1\x80\xa0\x87\xe3\x80\x82\xf0\x90\xae\x88"); }
1100test { try parseIDNAFail("\xe3\x80\x82\xf4\x83\x88\xb5\xce\xa3\xf1\x80\xa0\x87\xe3\x80\x82\xf0\x90\xae\x88"); }
1101test { try parseIDNAFail("\xe3\x80\x82\xf4\x83\x88\xb5\xcf\x83\xf1\x80\xa0\x87\xe3\x80\x82\xf0\x90\xae\x88"); }
1102test { try parseIDNAFail(".xn--4xa68573c7n64d.xn--f29c"); }
1103test { try parseIDNAFail(".xn--3xa88573c7n64d.xn--f29c"); }
1104test { try parseIDNAFail("\xe2\x92\x89\xf3\xa0\x8a\x93\xe2\x89\xa0\xef\xbd\xa1\xe1\x82\xbf\xe2\xac\xa3\xe1\x82\xa8"); }
1105test { try parseIDNAFail("\xe2\x92\x89\xf3\xa0\x8a\x93=\xcc\xb8\xef\xbd\xa1\xe1\x82\xbf\xe2\xac\xa3\xe1\x82\xa8"); }
1106test { try parseIDNAFail("2.\xf3\xa0\x8a\x93\xe2\x89\xa0\xe3\x80\x82\xe1\x82\xbf\xe2\xac\xa3\xe1\x82\xa8"); }
1107test { try parseIDNAFail("2.\xf3\xa0\x8a\x93=\xcc\xb8\xe3\x80\x82\xe1\x82\xbf\xe2\xac\xa3\xe1\x82\xa8"); }
1108test { try parseIDNAFail("2.\xf3\xa0\x8a\x93=\xcc\xb8\xe3\x80\x82\xe2\xb4\x9f\xe2\xac\xa3\xe2\xb4\x88"); }
1109test { try parseIDNAFail("2.\xf3\xa0\x8a\x93\xe2\x89\xa0\xe3\x80\x82\xe2\xb4\x9f\xe2\xac\xa3\xe2\xb4\x88"); }
1110test { try parseIDNAFail("2.xn--1chz4101l.xn--45iz7d6b"); }
1111test { try parseIDNAFail("\xe2\x92\x89\xf3\xa0\x8a\x93=\xcc\xb8\xef\xbd\xa1\xe2\xb4\x9f\xe2\xac\xa3\xe2\xb4\x88"); }
1112test { try parseIDNAFail("\xe2\x92\x89\xf3\xa0\x8a\x93\xe2\x89\xa0\xef\xbd\xa1\xe2\xb4\x9f\xe2\xac\xa3\xe2\xb4\x88"); }
1113test { try parseIDNAFail("xn--1ch07f91401d.xn--45iz7d6b"); }
1114test { try parseIDNAFail("2.xn--1chz4101l.xn--gnd9b297j"); }
1115test { try parseIDNAFail("xn--1ch07f91401d.xn--gnd9b297j"); }
1116test { try parseIDNAFail("-\xf3\xa0\x89\x96\xea\xa1\xa7\xef\xbc\x8e\xf3\xa0\x8a\x82\xf1\x87\x86\x83\xf0\x9f\x84\x89"); }
1117test { try parseIDNAFail("-\xf3\xa0\x89\x96\xea\xa1\xa7.\xf3\xa0\x8a\x82\xf1\x87\x86\x838,"); }
1118test { try parseIDNAFail("xn----hg4ei0361g.xn--8,-k362evu488a"); }
1119test { try parseIDNAFail("xn----hg4ei0361g.xn--207ht163h7m94c"); }
1120test { try parseIDNAFail("\xe2\x80\x8c\xef\xbd\xa1\xcd\x94"); }
1121test { try parseIDNAFail("\xe2\x80\x8c\xe3\x80\x82\xcd\x94"); }
1122test { try parseIDNAFail(".xn--yua"); }
1123test { try parseIDNAFail("xn--0ug.xn--yua"); }
1124test { try parseIDNAFail("xn--de6h.xn--mnd799a"); }
1125test { try parseIDNAFail("\xe0\xbe\xa4\xf1\xb1\xa4\xaf\xef\xbc\x8e\xf0\x9d\x9f\xad\xe1\x82\xbb"); }
1126test { try parseIDNAFail("\xe0\xbe\xa4\xf1\xb1\xa4\xaf.1\xe1\x82\xbb"); }
1127test { try parseIDNAFail("\xe0\xbe\xa4\xf1\xb1\xa4\xaf.1\xe2\xb4\x9b"); }
1128test { try parseIDNAFail("xn--0fd40533g.xn--1-tws"); }
1129test { try parseIDNAFail("\xe0\xbe\xa4\xf1\xb1\xa4\xaf\xef\xbc\x8e\xf0\x9d\x9f\xad\xe2\xb4\x9b"); }
1130test { try parseIDNAFail("xn--0fd40533g.xn--1-q1g"); }
1131test { try parseIDNAFail("\xcf\x82\xf2\x85\x9c\x8c\xef\xbc\x98.\xf0\x9e\xad\xa4"); }
1132test { try parseIDNAFail("\xcf\x82\xf2\x85\x9c\x8c8.\xf0\x9e\xad\xa4"); }
1133test { try parseIDNAFail("\xce\xa3\xf2\x85\x9c\x8c8.\xf0\x9e\xad\xa4"); }
1134test { try parseIDNAFail("\xcf\x83\xf2\x85\x9c\x8c8.\xf0\x9e\xad\xa4"); }
1135test { try parseIDNAFail("xn--8-zmb14974n.xn--su6h"); }
1136test { try parseIDNAFail("xn--8-xmb44974n.xn--su6h"); }
1137test { try parseIDNAFail("\xce\xa3\xf2\x85\x9c\x8c\xef\xbc\x98.\xf0\x9e\xad\xa4"); }
1138test { try parseIDNAFail("\xcf\x83\xf2\x85\x9c\x8c\xef\xbc\x98.\xf0\x9e\xad\xa4"); }
1139test { try parseIDNAFail("\xe2\x80\x8c\xea\xb8\x83.\xe6\xa6\xb6-"); }
1140test { try parseIDNAFail("\xe2\x80\x8c\xe1\x84\x80\xe1\x85\xb3\xe1\x86\xb2.\xe6\xa6\xb6-"); }
1141test { try parseIDNAFail("xn--0ug3307c.xn----d87b"); }
1142test { try parseIDNAFail("\xeb\x89\x93\xe6\xb3\x93\xf0\x9c\xb5\xbd.\xe0\xa7\x8d\xe2\x80\x8d"); }
1143test { try parseIDNAFail("\xe1\x84\x82\xe1\x85\xb0\xe1\x86\xbe\xe6\xb3\x93\xf0\x9c\xb5\xbd.\xe0\xa7\x8d\xe2\x80\x8d"); }
1144test { try parseIDNAFail("xn--lwwp69lqs7m.xn--b7b"); }
1145test { try parseIDNAFail("xn--lwwp69lqs7m.xn--b7b605i"); }
1146test { try parseIDNAFail("\xe1\xad\x84\xef\xbc\x8e\xe1\xae\xaa-\xe2\x89\xae\xe2\x89\xa0"); }
1147test { try parseIDNAFail("\xe1\xad\x84\xef\xbc\x8e\xe1\xae\xaa-<\xcc\xb8=\xcc\xb8"); }
1148test { try parseIDNAFail("\xe1\xad\x84.\xe1\xae\xaa-\xe2\x89\xae\xe2\x89\xa0"); }
1149test { try parseIDNAFail("\xe1\xad\x84.\xe1\xae\xaa-<\xcc\xb8=\xcc\xb8"); }
1150test { try parseIDNAFail("xn--1uf.xn----nmlz65aub"); }
1151test { try parseIDNAFail("\xe1\xaf\xb3\xe1\x82\xb1\xe1\x85\x9f\xef\xbc\x8e\xf0\x91\x84\xb4\xe2\x84\xb2"); }
1152test { try parseIDNAFail("\xe1\xaf\xb3\xe1\x82\xb1\xe1\x85\x9f.\xf0\x91\x84\xb4\xe2\x84\xb2"); }
1153test { try parseIDNAFail("\xe1\xaf\xb3\xe2\xb4\x91\xe1\x85\x9f.\xf0\x91\x84\xb4\xe2\x85\x8e"); }
1154test { try parseIDNAFail("\xe1\xaf\xb3\xe1\x82\xb1\xe1\x85\x9f.\xf0\x91\x84\xb4\xe2\x85\x8e"); }
1155test { try parseIDNAFail("xn--1zf224e.xn--73g3065g"); }
1156test { try parseIDNAFail("\xe1\xaf\xb3\xe2\xb4\x91\xe1\x85\x9f\xef\xbc\x8e\xf0\x91\x84\xb4\xe2\x85\x8e"); }
1157test { try parseIDNAFail("\xe1\xaf\xb3\xe1\x82\xb1\xe1\x85\x9f\xef\xbc\x8e\xf0\x91\x84\xb4\xe2\x85\x8e"); }
1158test { try parseIDNAFail("xn--pnd26a55x.xn--73g3065g"); }
1159test { try parseIDNAFail("xn--osd925cvyn.xn--73g3065g"); }
1160test { try parseIDNAFail("xn--pnd26a55x.xn--f3g7465g"); }
1161test { try parseIDNAFail("\xe1\x82\xa9\xe7\x8c\x95\xf3\xb9\x9b\xab\xe2\x89\xae\xef\xbc\x8e\xef\xb8\x92"); }
1162test { try parseIDNAFail("\xe1\x82\xa9\xe7\x8c\x95\xf3\xb9\x9b\xab<\xcc\xb8\xef\xbc\x8e\xef\xb8\x92"); }
1163test { try parseIDNAFail("\xe1\x82\xa9\xe7\x8c\x95\xf3\xb9\x9b\xab\xe2\x89\xae.\xe3\x80\x82"); }
1164test { try parseIDNAFail("\xe1\x82\xa9\xe7\x8c\x95\xf3\xb9\x9b\xab<\xcc\xb8.\xe3\x80\x82"); }
1165test { try parseIDNAFail("\xe2\xb4\x89\xe7\x8c\x95\xf3\xb9\x9b\xab<\xcc\xb8.\xe3\x80\x82"); }
1166test { try parseIDNAFail("\xe2\xb4\x89\xe7\x8c\x95\xf3\xb9\x9b\xab\xe2\x89\xae.\xe3\x80\x82"); }
1167test { try parseIDNAFail("xn--gdh892bbz0d5438s.."); }
1168test { try parseIDNAFail("\xe2\xb4\x89\xe7\x8c\x95\xf3\xb9\x9b\xab<\xcc\xb8\xef\xbc\x8e\xef\xb8\x92"); }
1169test { try parseIDNAFail("\xe2\xb4\x89\xe7\x8c\x95\xf3\xb9\x9b\xab\xe2\x89\xae\xef\xbc\x8e\xef\xb8\x92"); }
1170test { try parseIDNAFail("xn--gdh892bbz0d5438s.xn--y86c"); }
1171test { try parseIDNAFail("xn--hnd212gz32d54x5r.."); }
1172test { try parseIDNAFail("xn--hnd212gz32d54x5r.xn--y86c"); }
1173test { try parseIDNAFail("\xc3\x85\xeb\x91\x84-\xef\xbc\x8e\xe2\x80\x8c"); }
1174test { try parseIDNAFail("A\xcc\x8a\xe1\x84\x83\xe1\x85\xad\xe1\x86\xb7-\xef\xbc\x8e\xe2\x80\x8c"); }
1175test { try parseIDNAFail("\xc3\x85\xeb\x91\x84-.\xe2\x80\x8c"); }
1176test { try parseIDNAFail("A\xcc\x8a\xe1\x84\x83\xe1\x85\xad\xe1\x86\xb7-.\xe2\x80\x8c"); }
1177test { try parseIDNAFail("a\xcc\x8a\xe1\x84\x83\xe1\x85\xad\xe1\x86\xb7-.\xe2\x80\x8c"); }
1178test { try parseIDNAFail("\xc3\xa5\xeb\x91\x84-.\xe2\x80\x8c"); }
1179test { try parseIDNAFail("xn----1fa1788k.xn--0ug"); }
1180test { try parseIDNAFail("a\xcc\x8a\xe1\x84\x83\xe1\x85\xad\xe1\x86\xb7-\xef\xbc\x8e\xe2\x80\x8c"); }
1181test { try parseIDNAFail("\xc3\xa5\xeb\x91\x84-\xef\xbc\x8e\xe2\x80\x8c"); }
1182test { try parseIDNAFail("\xeb\xa3\xb1\xe2\x80\x8d\xf0\xb0\x8d\xa8\xe2\x80\x8c\xe3\x80\x82\xf0\x9d\xa8\x96\xef\xb8\x92"); }
1183test { try parseIDNAFail("\xe1\x84\x85\xe1\x85\xae\xe1\x86\xb0\xe2\x80\x8d\xf0\xb0\x8d\xa8\xe2\x80\x8c\xe3\x80\x82\xf0\x9d\xa8\x96\xef\xb8\x92"); }
1184test { try parseIDNAFail("\xeb\xa3\xb1\xe2\x80\x8d\xf0\xb0\x8d\xa8\xe2\x80\x8c\xe3\x80\x82\xf0\x9d\xa8\x96\xe3\x80\x82"); }
1185test { try parseIDNAFail("\xe1\x84\x85\xe1\x85\xae\xe1\x86\xb0\xe2\x80\x8d\xf0\xb0\x8d\xa8\xe2\x80\x8c\xe3\x80\x82\xf0\x9d\xa8\x96\xe3\x80\x82"); }
1186test { try parseIDNAFail("xn--ct2b0738h.xn--772h."); }
1187test { try parseIDNAFail("xn--0ugb3358ili2v.xn--772h."); }
1188test { try parseIDNAFail("xn--ct2b0738h.xn--y86cl899a"); }
1189test { try parseIDNAFail("xn--0ugb3358ili2v.xn--y86cl899a"); }
1190test { try parseIDNAFail("\xf0\x9f\x84\x84\xef\xbc\x8e\xe1\xb3\x9c\xe2\x92\x88\xc3\x9f"); }
1191test { try parseIDNAFail("3,.\xe1\xb3\x9c1.\xc3\x9f"); }
1192test { try parseIDNAFail("3,.\xe1\xb3\x9c1.SS"); }
1193test { try parseIDNAFail("3,.\xe1\xb3\x9c1.ss"); }
1194test { try parseIDNAFail("3,.\xe1\xb3\x9c1.Ss"); }
1195test { try parseIDNAFail("3,.xn--1-43l.ss"); }
1196test { try parseIDNAFail("3,.xn--1-43l.xn--zca"); }
1197test { try parseIDNAFail("\xf0\x9f\x84\x84\xef\xbc\x8e\xe1\xb3\x9c\xe2\x92\x88SS"); }
1198test { try parseIDNAFail("\xf0\x9f\x84\x84\xef\xbc\x8e\xe1\xb3\x9c\xe2\x92\x88ss"); }
1199test { try parseIDNAFail("\xf0\x9f\x84\x84\xef\xbc\x8e\xe1\xb3\x9c\xe2\x92\x88Ss"); }
1200test { try parseIDNAFail("3,.xn--ss-k1r094b"); }
1201test { try parseIDNAFail("3,.xn--zca344lmif"); }
1202test { try parseIDNAFail("xn--x07h.xn--ss-k1r094b"); }
1203test { try parseIDNAFail("xn--x07h.xn--zca344lmif"); }
1204test { try parseIDNAFail("\xe1\xb7\xbd\xe1\x80\xba\xe0\xa5\x8d\xef\xbc\x8e\xe2\x89\xa0\xe2\x80\x8d\xe3\x87\x9b"); }
1205test { try parseIDNAFail("\xe1\x80\xba\xe0\xa5\x8d\xe1\xb7\xbd\xef\xbc\x8e\xe2\x89\xa0\xe2\x80\x8d\xe3\x87\x9b"); }
1206test { try parseIDNAFail("\xe1\x80\xba\xe0\xa5\x8d\xe1\xb7\xbd\xef\xbc\x8e=\xcc\xb8\xe2\x80\x8d\xe3\x87\x9b"); }
1207test { try parseIDNAFail("\xe1\x80\xba\xe0\xa5\x8d\xe1\xb7\xbd.\xe2\x89\xa0\xe2\x80\x8d\xe3\x87\x9b"); }
1208test { try parseIDNAFail("\xe1\x80\xba\xe0\xa5\x8d\xe1\xb7\xbd.=\xcc\xb8\xe2\x80\x8d\xe3\x87\x9b"); }
1209test { try parseIDNAFail("xn--n3b956a9zm.xn--1ch912d"); }
1210test { try parseIDNAFail("xn--n3b956a9zm.xn--1ug63gz5w"); }
1211test { try parseIDNAFail("\xe1\xaf\xb3.-\xe9\x80\x8b\xf1\xb3\xa6\xad\xf3\x99\x99\xae"); }
1212test { try parseIDNAFail("xn--1zf.xn----483d46987byr50b"); }
1213test { try parseIDNAFail("xn--9ob.xn--4xa380e"); }
1214test { try parseIDNAFail("xn--9ob.xn--4xa380ebol"); }
1215test { try parseIDNAFail("xn--9ob.xn--3xa580ebol"); }
1216test { try parseIDNAFail("xn--9ob.xn--4xa574u"); }
1217test { try parseIDNAFail("xn--9ob.xn--4xa795lq2l"); }
1218test { try parseIDNAFail("xn--9ob.xn--3xa995lq2l"); }
1219test { try parseIDNAFail("\xe1\xa1\x86\xe1\x82\xa3\xef\xbd\xa1\xf3\x9e\xa2\xa7\xcc\x95\xe2\x80\x8d\xe2\x80\x8d"); }
1220test { try parseIDNAFail("\xe1\xa1\x86\xe1\x82\xa3\xe3\x80\x82\xf3\x9e\xa2\xa7\xcc\x95\xe2\x80\x8d\xe2\x80\x8d"); }
1221test { try parseIDNAFail("\xe1\xa1\x86\xe2\xb4\x83\xe3\x80\x82\xf3\x9e\xa2\xa7\xcc\x95\xe2\x80\x8d\xe2\x80\x8d"); }
1222test { try parseIDNAFail("xn--57e237h.xn--5sa98523p"); }
1223test { try parseIDNAFail("xn--57e237h.xn--5sa649la993427a"); }
1224test { try parseIDNAFail("\xe1\xa1\x86\xe2\xb4\x83\xef\xbd\xa1\xf3\x9e\xa2\xa7\xcc\x95\xe2\x80\x8d\xe2\x80\x8d"); }
1225test { try parseIDNAFail("xn--bnd320b.xn--5sa98523p"); }
1226test { try parseIDNAFail("xn--bnd320b.xn--5sa649la993427a"); }
1227test { try parseIDNAFail("\xf0\x9e\x80\xa8\xef\xbd\xa1\xe1\xad\x84\xf2\xa1\x9b\xa8\xf0\x9e\x8e\x87"); }
1228test { try parseIDNAFail("\xf0\x9e\x80\xa8\xe3\x80\x82\xe1\xad\x84\xf2\xa1\x9b\xa8\xf0\x9e\x8e\x87"); }
1229test { try parseIDNAFail("xn--mi4h.xn--1uf6843smg20c"); }
1230test { try parseIDNAFail("\xe1\xa2\x9b\xf3\xa8\x85\x9f\xc3\x9f.\xe1\x8c\xa7"); }
1231test { try parseIDNAFail("\xe1\xa2\x9b\xf3\xa8\x85\x9fSS.\xe1\x8c\xa7"); }
1232test { try parseIDNAFail("\xe1\xa2\x9b\xf3\xa8\x85\x9fss.\xe1\x8c\xa7"); }
1233test { try parseIDNAFail("\xe1\xa2\x9b\xf3\xa8\x85\x9fSs.\xe1\x8c\xa7"); }
1234test { try parseIDNAFail("xn--ss-7dp66033t.xn--p5d"); }
1235test { try parseIDNAFail("xn--zca562jc642x.xn--p5d"); }
1236test { try parseIDNAFail("\xe2\xae\x92\xe2\x80\x8c.\xf1\x92\x9a\x97\xe2\x80\x8c"); }
1237test { try parseIDNAFail("xn--b9i.xn--5p9y"); }
1238test { try parseIDNAFail("xn--0ugx66b.xn--0ugz2871c"); }
1239test { try parseIDNAFail("\xe2\x89\xaf\xf0\x91\x9c\xab\xf3\xa0\xad\x87.\xe1\x9c\xb4\xf1\x92\x9e\xa4\xf0\x91\x8d\xac\xe1\xa2\xa7"); }
1240test { try parseIDNAFail(">\xcc\xb8\xf0\x91\x9c\xab\xf3\xa0\xad\x87.\xe1\x9c\xb4\xf1\x92\x9e\xa4\xf0\x91\x8d\xac\xe1\xa2\xa7"); }
1241test { try parseIDNAFail("xn--hdhx157g68o0g.xn--c0e65eu616c34o7a"); }
1242test { try parseIDNAFail("ss.xn--lgd10cu829c"); }
1243test { try parseIDNAFail("xn--zca.xn--lgd10cu829c"); }
1244test { try parseIDNAFail("\xe1\xa9\x9a\xf0\x9b\xa6\x9d\xe0\xb1\x8d\xe3\x80\x82\xf0\x9a\x9d\xac\xf0\x9d\x9f\xb5"); }
1245test { try parseIDNAFail("\xe1\xa9\x9a\xf0\x9b\xa6\x9d\xe0\xb1\x8d\xe3\x80\x82\xf0\x9a\x9d\xac9"); }
1246test { try parseIDNAFail("xn--lqc703ebm93a.xn--9-000p"); }
1247test { try parseIDNAFail("\xe1\xa1\x96\xef\xbd\xa1\xcc\x9f\xf1\x97\x9b\xa8\xe0\xae\x82-"); }
1248test { try parseIDNAFail("\xe1\xa1\x96\xe3\x80\x82\xcc\x9f\xf1\x97\x9b\xa8\xe0\xae\x82-"); }
1249test { try parseIDNAFail("xn--m8e.xn----mdb555dkk71m"); }
1250test { try parseIDNAFail("\xd6\x96\xe1\x82\xab\xef\xbc\x8e\xf0\x9d\x9f\xb3\xe2\x89\xaf\xef\xb8\x92\xef\xb8\x8a"); }
1251test { try parseIDNAFail("\xd6\x96\xe1\x82\xab\xef\xbc\x8e\xf0\x9d\x9f\xb3>\xcc\xb8\xef\xb8\x92\xef\xb8\x8a"); }
1252test { try parseIDNAFail("\xd6\x96\xe1\x82\xab.7\xe2\x89\xaf\xe3\x80\x82\xef\xb8\x8a"); }
1253test { try parseIDNAFail("\xd6\x96\xe1\x82\xab.7>\xcc\xb8\xe3\x80\x82\xef\xb8\x8a"); }
1254test { try parseIDNAFail("\xd6\x96\xe2\xb4\x8b.7>\xcc\xb8\xe3\x80\x82\xef\xb8\x8a"); }
1255test { try parseIDNAFail("\xd6\x96\xe2\xb4\x8b.7\xe2\x89\xaf\xe3\x80\x82\xef\xb8\x8a"); }
1256test { try parseIDNAFail("xn--hcb613r.xn--7-pgo."); }
1257test { try parseIDNAFail("\xd6\x96\xe2\xb4\x8b\xef\xbc\x8e\xf0\x9d\x9f\xb3>\xcc\xb8\xef\xb8\x92\xef\xb8\x8a"); }
1258test { try parseIDNAFail("\xd6\x96\xe2\xb4\x8b\xef\xbc\x8e\xf0\x9d\x9f\xb3\xe2\x89\xaf\xef\xb8\x92\xef\xb8\x8a"); }
1259test { try parseIDNAFail("xn--hcb613r.xn--7-pgoy530h"); }
1260test { try parseIDNAFail("xn--hcb887c.xn--7-pgo."); }
1261test { try parseIDNAFail("xn--hcb887c.xn--7-pgoy530h"); }
1262test { try parseIDNAFail("\xf0\x9f\x84\x87\xe4\xbc\x90\xef\xb8\x92.\xf0\x9c\x99\x9a\xea\xa3\x84"); }
1263test { try parseIDNAFail("6,\xe4\xbc\x90\xe3\x80\x82.\xf0\x9c\x99\x9a\xea\xa3\x84"); }
1264test { try parseIDNAFail("xn--6,-7i3c..xn--0f9ao925c"); }
1265test { try parseIDNAFail("xn--6,-7i3cj157d.xn--0f9ao925c"); }
1266test { try parseIDNAFail("xn--woqs083bel0g.xn--0f9ao925c"); }
1267test { try parseIDNAFail("\xf3\xa0\x86\xa0\xef\xbc\x8e\xf1\xb7\x90\xb4\xf3\x8c\x9f\x88"); }
1268test { try parseIDNAFail("\xf3\xa0\x86\xa0.\xf1\xb7\x90\xb4\xf3\x8c\x9f\x88"); }
1269test { try parseIDNAFail(".xn--rx21bhv12i"); }
1270test { try parseIDNAFail("-.\xe1\xa2\x86\xf3\xa1\xb2\xa3-"); }
1271test { try parseIDNAFail("-.xn----pbkx6497q"); }
1272test { try parseIDNAFail("\xf3\x8f\x92\xb0\xef\xbc\x8e-\xf0\x9d\x9f\xbb\xc3\x9f"); }
1273test { try parseIDNAFail("\xf3\x8f\x92\xb0.-5\xc3\x9f"); }
1274test { try parseIDNAFail("\xf3\x8f\x92\xb0.-5SS"); }
1275test { try parseIDNAFail("\xf3\x8f\x92\xb0.-5ss"); }
1276test { try parseIDNAFail("xn--t960e.-5ss"); }
1277test { try parseIDNAFail("xn--t960e.xn---5-hia"); }
1278test { try parseIDNAFail("\xf3\x8f\x92\xb0\xef\xbc\x8e-\xf0\x9d\x9f\xbbSS"); }
1279test { try parseIDNAFail("\xf3\x8f\x92\xb0\xef\xbc\x8e-\xf0\x9d\x9f\xbbss"); }
1280test { try parseIDNAFail("\xf3\x8f\x92\xb0\xef\xbc\x8e-\xf0\x9d\x9f\xbbSs"); }
1281test { try parseIDNAFail("\xf3\x8f\x92\xb0.-5Ss"); }
1282test { try parseIDNAFail("\xe2\x80\x8d\xf0\x90\xa8\xbf.\xf0\x9f\xa4\x92\xe1\x83\x85\xf2\x91\xae\xb6"); }
1283test { try parseIDNAFail("\xe2\x80\x8d\xf0\x90\xa8\xbf.\xf0\x9f\xa4\x92\xe2\xb4\xa5\xf2\x91\xae\xb6"); }
1284test { try parseIDNAFail("xn--0s9c.xn--tljz038l0gz4b"); }
1285test { try parseIDNAFail("xn--1ug9533g.xn--tljz038l0gz4b"); }
1286test { try parseIDNAFail("xn--0s9c.xn--9nd3211w0gz4b"); }
1287test { try parseIDNAFail("xn--1ug9533g.xn--9nd3211w0gz4b"); }
1288test { try parseIDNAFail("\xf0\xb5\x8b\x85\xe3\x80\x82\xc3\x9f\xf0\xac\xb5\xa9\xe2\x80\x8d"); }
1289test { try parseIDNAFail("\xf0\xb5\x8b\x85\xe3\x80\x82SS\xf0\xac\xb5\xa9\xe2\x80\x8d"); }
1290test { try parseIDNAFail("\xf0\xb5\x8b\x85\xe3\x80\x82ss\xf0\xac\xb5\xa9\xe2\x80\x8d"); }
1291test { try parseIDNAFail("\xf0\xb5\x8b\x85\xe3\x80\x82Ss\xf0\xac\xb5\xa9\xe2\x80\x8d"); }
1292test { try parseIDNAFail("xn--ey1p.xn--ss-eq36b"); }
1293test { try parseIDNAFail("xn--ey1p.xn--ss-n1tx0508a"); }
1294test { try parseIDNAFail("xn--ey1p.xn--zca870nz438b"); }
1295test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xef\xbd\xa1\xf0\x91\x96\xbf\xe1\xaa\xbb\xcf\x82\xe2\x89\xa0"); }
1296test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xef\xbd\xa1\xf0\x91\x96\xbf\xe1\xaa\xbb\xcf\x82=\xcc\xb8"); }
1297test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xe3\x80\x82\xf0\x91\x96\xbf\xe1\xaa\xbb\xcf\x82\xe2\x89\xa0"); }
1298test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xe3\x80\x82\xf0\x91\x96\xbf\xe1\xaa\xbb\xcf\x82=\xcc\xb8"); }
1299test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xe3\x80\x82\xf0\x91\x96\xbf\xe1\xaa\xbb\xce\xa3=\xcc\xb8"); }
1300test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xe3\x80\x82\xf0\x91\x96\xbf\xe1\xaa\xbb\xce\xa3\xe2\x89\xa0"); }
1301test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xe3\x80\x82\xf0\x91\x96\xbf\xe1\xaa\xbb\xcf\x83\xe2\x89\xa0"); }
1302test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xe3\x80\x82\xf0\x91\x96\xbf\xe1\xaa\xbb\xcf\x83=\xcc\xb8"); }
1303test { try parseIDNAFail("xn--zb9h5968x.xn--4xa378i1mfjw7y"); }
1304test { try parseIDNAFail("xn--0ug3766p5nm1b.xn--4xa378i1mfjw7y"); }
1305test { try parseIDNAFail("xn--0ug3766p5nm1b.xn--3xa578i1mfjw7y"); }
1306test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xef\xbd\xa1\xf0\x91\x96\xbf\xe1\xaa\xbb\xce\xa3=\xcc\xb8"); }
1307test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xef\xbd\xa1\xf0\x91\x96\xbf\xe1\xaa\xbb\xce\xa3\xe2\x89\xa0"); }
1308test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xef\xbd\xa1\xf0\x91\x96\xbf\xe1\xaa\xbb\xcf\x83\xe2\x89\xa0"); }
1309test { try parseIDNAFail("\xf3\xa0\x85\xaf\xf2\x87\xbd\xad\xe2\x80\x8c\xf0\x9f\x9c\xad\xef\xbd\xa1\xf0\x91\x96\xbf\xe1\xaa\xbb\xcf\x83=\xcc\xb8"); }
1310test { try parseIDNAFail("\xe2\x92\x8b\xef\xbd\xa1\xe2\x92\x88\xe2\x80\x8d\xf2\xb3\xb4\xa2"); }
1311test { try parseIDNAFail("4.\xe3\x80\x821.\xe2\x80\x8d\xf2\xb3\xb4\xa2"); }
1312test { try parseIDNAFail("4..1.xn--sf51d"); }
1313test { try parseIDNAFail("4..1.xn--1ug64613i"); }
1314test { try parseIDNAFail("xn--wsh.xn--tsh07994h"); }
1315test { try parseIDNAFail("xn--wsh.xn--1ug58o74922a"); }
1316test { try parseIDNAFail("\xe1\x82\xb3\xf0\x91\x9c\xab\xe2\x80\x8d\xf2\x97\xad\x93\xef\xbc\x8e\xda\xa7\xf0\x91\xb0\xb6"); }
1317test { try parseIDNAFail("\xe1\x82\xb3\xf0\x91\x9c\xab\xe2\x80\x8d\xf2\x97\xad\x93.\xda\xa7\xf0\x91\xb0\xb6"); }
1318test { try parseIDNAFail("\xe2\xb4\x93\xf0\x91\x9c\xab\xe2\x80\x8d\xf2\x97\xad\x93.\xda\xa7\xf0\x91\xb0\xb6"); }
1319test { try parseIDNAFail("xn--blj6306ey091d.xn--9jb4223l"); }
1320test { try parseIDNAFail("xn--1ugy52cym7p7xu5e.xn--9jb4223l"); }
1321test { try parseIDNAFail("\xe2\xb4\x93\xf0\x91\x9c\xab\xe2\x80\x8d\xf2\x97\xad\x93\xef\xbc\x8e\xda\xa7\xf0\x91\xb0\xb6"); }
1322test { try parseIDNAFail("xn--rnd8945ky009c.xn--9jb4223l"); }
1323test { try parseIDNAFail("xn--rnd479ep20q7x12e.xn--9jb4223l"); }
1324test { try parseIDNAFail("\xf0\x90\xa8\xbf.\xf0\x9f\x84\x86\xe2\x80\x94"); }
1325test { try parseIDNAFail("\xf0\x90\xa8\xbf.5,\xe2\x80\x94"); }
1326test { try parseIDNAFail("xn--0s9c.xn--5,-81t"); }
1327test { try parseIDNAFail("xn--0s9c.xn--8ug8324p"); }
1328test { try parseIDNAFail("\xf2\x94\x8a\xb1\xf1\x81\xa6\xae\xdb\xb8\xe3\x80\x82\xf3\xa0\xbe\xad-"); }
1329test { try parseIDNAFail("xn--lmb18944c0g2z.xn----2k81m"); }
1330test { try parseIDNAFail("\xf0\x9f\x9e\x85\xf3\xa0\xb3\xa1\xf3\x9c\x8d\x99.\xf1\xb2\x96\xb7"); }
1331test { try parseIDNAFail("xn--ie9hi1349bqdlb.xn--oj69a"); }
1332test { try parseIDNAFail("\xe2\x83\xa7\xf1\xaf\xa1\x8e-\xf2\xab\xa3\x9d.4\xe1\x82\xa4\xe2\x80\x8c"); }
1333test { try parseIDNAFail("\xe2\x83\xa7\xf1\xaf\xa1\x8e-\xf2\xab\xa3\x9d.4\xe2\xb4\x84\xe2\x80\x8c"); }
1334test { try parseIDNAFail("xn----9snu5320fi76w.xn--4-ivs"); }
1335test { try parseIDNAFail("xn----9snu5320fi76w.xn--4-sgn589c"); }
1336test { try parseIDNAFail("xn----9snu5320fi76w.xn--4-f0g"); }
1337test { try parseIDNAFail("xn----9snu5320fi76w.xn--4-f0g649i"); }
1338test { try parseIDNAFail("\xf0\x91\x91\x84\xe2\x89\xaf\xef\xbd\xa1\xf0\x91\x9c\xa4"); }
1339test { try parseIDNAFail("\xf0\x91\x91\x84>\xcc\xb8\xef\xbd\xa1\xf0\x91\x9c\xa4"); }
1340test { try parseIDNAFail("\xf0\x91\x91\x84\xe2\x89\xaf\xe3\x80\x82\xf0\x91\x9c\xa4"); }
1341test { try parseIDNAFail("\xf0\x91\x91\x84>\xcc\xb8\xe3\x80\x82\xf0\x91\x9c\xa4"); }
1342test { try parseIDNAFail("xn--hdh5636g.xn--ci2d"); }
1343test { try parseIDNAFail("\xe1\x82\xab\xe2\x89\xae\xf0\xb1\xb2\x86\xe3\x80\x82\xe2\x80\x8d\xde\xa7\xf0\x90\x8b\xa3"); }
1344test { try parseIDNAFail("\xe1\x82\xab<\xcc\xb8\xf0\xb1\xb2\x86\xe3\x80\x82\xe2\x80\x8d\xde\xa7\xf0\x90\x8b\xa3"); }
1345test { try parseIDNAFail("\xe2\xb4\x8b<\xcc\xb8\xf0\xb1\xb2\x86\xe3\x80\x82\xe2\x80\x8d\xde\xa7\xf0\x90\x8b\xa3"); }
1346test { try parseIDNAFail("\xe2\xb4\x8b\xe2\x89\xae\xf0\xb1\xb2\x86\xe3\x80\x82\xe2\x80\x8d\xde\xa7\xf0\x90\x8b\xa3"); }
1347test { try parseIDNAFail("xn--gdhz03bxt42d.xn--lrb6479j"); }
1348test { try parseIDNAFail("xn--gdhz03bxt42d.xn--lrb506jqr4n"); }
1349test { try parseIDNAFail("xn--jnd802gsm17c.xn--lrb6479j"); }
1350test { try parseIDNAFail("xn--jnd802gsm17c.xn--lrb506jqr4n"); }
1351test { try parseIDNAFail("\xe1\x9f\x92.\xf2\x86\xbd\x92\xe2\x89\xaf"); }
1352test { try parseIDNAFail("\xe1\x9f\x92.\xf2\x86\xbd\x92>\xcc\xb8"); }
1353test { try parseIDNAFail("xn--u4e.xn--hdhx0084f"); }
1354test { try parseIDNAFail("\xf1\x8f\x81\x87\xe1\x9c\xb4\xef\xbc\x8e\xf0\x90\xa8\xba\xc3\x89\xe2\xac\x93\xf0\x91\x84\xb4"); }
1355test { try parseIDNAFail("\xf1\x8f\x81\x87\xe1\x9c\xb4\xef\xbc\x8e\xf0\x90\xa8\xbaE\xcc\x81\xe2\xac\x93\xf0\x91\x84\xb4"); }
1356test { try parseIDNAFail("\xf1\x8f\x81\x87\xe1\x9c\xb4.\xf0\x90\xa8\xba\xc3\x89\xe2\xac\x93\xf0\x91\x84\xb4"); }
1357test { try parseIDNAFail("\xf1\x8f\x81\x87\xe1\x9c\xb4.\xf0\x90\xa8\xbaE\xcc\x81\xe2\xac\x93\xf0\x91\x84\xb4"); }
1358test { try parseIDNAFail("\xf1\x8f\x81\x87\xe1\x9c\xb4.\xf0\x90\xa8\xbae\xcc\x81\xe2\xac\x93\xf0\x91\x84\xb4"); }
1359test { try parseIDNAFail("\xf1\x8f\x81\x87\xe1\x9c\xb4.\xf0\x90\xa8\xba\xc3\xa9\xe2\xac\x93\xf0\x91\x84\xb4"); }
1360test { try parseIDNAFail("xn--c0e34564d.xn--9ca207st53lg3f"); }
1361test { try parseIDNAFail("\xf1\x8f\x81\x87\xe1\x9c\xb4\xef\xbc\x8e\xf0\x90\xa8\xbae\xcc\x81\xe2\xac\x93\xf0\x91\x84\xb4"); }
1362test { try parseIDNAFail("\xf1\x8f\x81\x87\xe1\x9c\xb4\xef\xbc\x8e\xf0\x90\xa8\xba\xc3\xa9\xe2\xac\x93\xf0\x91\x84\xb4"); }
1363test { try parseIDNAFail("\xe1\x83\x83\xef\xbc\x8e\xd9\x93\xe1\xa2\xa4"); }
1364test { try parseIDNAFail("\xe1\x83\x83.\xd9\x93\xe1\xa2\xa4"); }
1365test { try parseIDNAFail("\xe2\xb4\xa3.\xd9\x93\xe1\xa2\xa4"); }
1366test { try parseIDNAFail("xn--rlj.xn--vhb294g"); }
1367test { try parseIDNAFail("\xe2\xb4\xa3\xef\xbc\x8e\xd9\x93\xe1\xa2\xa4"); }
1368test { try parseIDNAFail("xn--7nd.xn--vhb294g"); }
1369test { try parseIDNAFail("\xf3\xa0\x84\x88\xe0\xa0\x93\xef\xbc\x8e\xec\x8b\x89\xf2\x84\x86\xbb\xe1\x83\x84\xf2\x82\xa1\x90"); }
1370test { try parseIDNAFail("\xf3\xa0\x84\x88\xe0\xa0\x93\xef\xbc\x8e\xe1\x84\x89\xe1\x85\xb4\xe1\x86\xb0\xf2\x84\x86\xbb\xe1\x83\x84\xf2\x82\xa1\x90"); }
1371test { try parseIDNAFail("\xf3\xa0\x84\x88\xe0\xa0\x93.\xec\x8b\x89\xf2\x84\x86\xbb\xe1\x83\x84\xf2\x82\xa1\x90"); }
1372test { try parseIDNAFail("\xf3\xa0\x84\x88\xe0\xa0\x93.\xe1\x84\x89\xe1\x85\xb4\xe1\x86\xb0\xf2\x84\x86\xbb\xe1\x83\x84\xf2\x82\xa1\x90"); }
1373test { try parseIDNAFail("\xf3\xa0\x84\x88\xe0\xa0\x93.\xe1\x84\x89\xe1\x85\xb4\xe1\x86\xb0\xf2\x84\x86\xbb\xe2\xb4\xa4\xf2\x82\xa1\x90"); }
1374test { try parseIDNAFail("\xf3\xa0\x84\x88\xe0\xa0\x93.\xec\x8b\x89\xf2\x84\x86\xbb\xe2\xb4\xa4\xf2\x82\xa1\x90"); }
1375test { try parseIDNAFail("xn--oub.xn--sljz109bpe25dviva"); }
1376test { try parseIDNAFail("\xf3\xa0\x84\x88\xe0\xa0\x93\xef\xbc\x8e\xe1\x84\x89\xe1\x85\xb4\xe1\x86\xb0\xf2\x84\x86\xbb\xe2\xb4\xa4\xf2\x82\xa1\x90"); }
1377test { try parseIDNAFail("\xf3\xa0\x84\x88\xe0\xa0\x93\xef\xbc\x8e\xec\x8b\x89\xf2\x84\x86\xbb\xe2\xb4\xa4\xf2\x82\xa1\x90"); }
1378test { try parseIDNAFail("xn--oub.xn--8nd9522gpe69cviva"); }
1379test { try parseIDNAFail("\xea\xa8\xac\xf0\x91\xb2\xab\xe2\x89\xae\xef\xbc\x8e\xe2\xa4\x82"); }
1380test { try parseIDNAFail("\xea\xa8\xac\xf0\x91\xb2\xab<\xcc\xb8\xef\xbc\x8e\xe2\xa4\x82"); }
1381test { try parseIDNAFail("\xea\xa8\xac\xf0\x91\xb2\xab\xe2\x89\xae.\xe2\xa4\x82"); }
1382test { try parseIDNAFail("\xea\xa8\xac\xf0\x91\xb2\xab<\xcc\xb8.\xe2\xa4\x82"); }
1383test { try parseIDNAFail("xn--gdh1854cn19c.xn--kqi"); }
1384test { try parseIDNAFail("\xf0\x91\x81\x85\xe3\x80\x82-"); }
1385test { try parseIDNAFail("xn--210d.-"); }
1386test { try parseIDNAFail("\xea\xa1\xa6\xe1\xa1\x91\xe2\x80\x8d\xe2\x92\x88\xe3\x80\x82\xf0\x90\x8b\xa3-"); }
1387test { try parseIDNAFail("\xea\xa1\xa6\xe1\xa1\x91\xe2\x80\x8d1.\xe3\x80\x82\xf0\x90\x8b\xa3-"); }
1388test { try parseIDNAFail("xn--1-o7j663bdl7m..xn----381i"); }
1389test { try parseIDNAFail("xn--h8e863drj7h.xn----381i"); }
1390test { try parseIDNAFail("xn--h8e470bl0d838o.xn----381i"); }
1391test { try parseIDNAFail("\xe2\x92\x88\xe4\xb0\xb9\xe2\x80\x8d-\xe3\x80\x82\xec\x9b\x88"); }
1392test { try parseIDNAFail("\xe2\x92\x88\xe4\xb0\xb9\xe2\x80\x8d-\xe3\x80\x82\xe1\x84\x8b\xe1\x85\xae\xe1\x86\xbf"); }
1393test { try parseIDNAFail("1.\xe4\xb0\xb9\xe2\x80\x8d-\xe3\x80\x82\xec\x9b\x88"); }
1394test { try parseIDNAFail("1.\xe4\xb0\xb9\xe2\x80\x8d-\xe3\x80\x82\xe1\x84\x8b\xe1\x85\xae\xe1\x86\xbf"); }
1395test { try parseIDNAFail("1.xn----tgnz80r.xn--kp5b"); }
1396test { try parseIDNAFail("xn----dcp160o.xn--kp5b"); }
1397test { try parseIDNAFail("xn----tgnx5rjr6c.xn--kp5b"); }
1398test { try parseIDNAFail("\xe3\x81\xa6\xe3\x80\x82\xe2\x80\x8c\xf3\xa0\xb3\xbd\xdf\xb3"); }
1399test { try parseIDNAFail("xn--m9j.xn--rtb10784p"); }
1400test { try parseIDNAFail("xn--m9j.xn--rtb154j9l73w"); }
1401test { try parseIDNAFail("\xcf\x82\xef\xbd\xa1\xea\xa7\x80\xdb\xa7"); }
1402test { try parseIDNAFail("\xcf\x82\xe3\x80\x82\xea\xa7\x80\xdb\xa7"); }
1403test { try parseIDNAFail("\xce\xa3\xe3\x80\x82\xea\xa7\x80\xdb\xa7"); }
1404test { try parseIDNAFail("\xcf\x83\xe3\x80\x82\xea\xa7\x80\xdb\xa7"); }
1405test { try parseIDNAFail("xn--4xa.xn--3lb1944f"); }
1406test { try parseIDNAFail("xn--3xa.xn--3lb1944f"); }
1407test { try parseIDNAFail("\xce\xa3\xef\xbd\xa1\xea\xa7\x80\xdb\xa7"); }
1408test { try parseIDNAFail("\xcf\x83\xef\xbd\xa1\xea\xa7\x80\xdb\xa7"); }
1409test { try parseIDNAFail("\xe0\xaf\x8d\xf3\xa5\xab\x85\xf2\x8c\x89\x91.\xe1\x82\xa2\xe1\x82\xb5"); }
1410test { try parseIDNAFail("\xe0\xaf\x8d\xf3\xa5\xab\x85\xf2\x8c\x89\x91.\xe2\xb4\x82\xe2\xb4\x95"); }
1411test { try parseIDNAFail("\xe0\xaf\x8d\xf3\xa5\xab\x85\xf2\x8c\x89\x91.\xe1\x82\xa2\xe2\xb4\x95"); }
1412test { try parseIDNAFail("xn--xmc83135idcxza.xn--tkjwb"); }
1413test { try parseIDNAFail("xn--xmc83135idcxza.xn--9md086l"); }
1414test { try parseIDNAFail("xn--xmc83135idcxza.xn--9md2b"); }
1415test { try parseIDNAFail("\xe1\xb0\xb2\xf0\x9f\x84\x88\xe2\xbe\x9b\xd6\xa6\xef\xbc\x8e\xe2\x80\x8d\xf2\xaf\xa5\xa4\xdf\xbd"); }
1416test { try parseIDNAFail("\xe1\xb0\xb27,\xe8\xb5\xb0\xd6\xa6.\xe2\x80\x8d\xf2\xaf\xa5\xa4\xdf\xbd"); }
1417test { try parseIDNAFail("xn--7,-bid991urn3k.xn--1tb13454l"); }
1418test { try parseIDNAFail("xn--7,-bid991urn3k.xn--1tb334j1197q"); }
1419test { try parseIDNAFail("xn--xcb756i493fwi5o.xn--1tb13454l"); }
1420test { try parseIDNAFail("xn--xcb756i493fwi5o.xn--1tb334j1197q"); }
1421test { try parseIDNAFail("\xe1\xa2\x97\xef\xbd\xa1\xd3\x80\xf1\x9d\x84\xbb"); }
1422test { try parseIDNAFail("\xe1\xa2\x97\xe3\x80\x82\xd3\x80\xf1\x9d\x84\xbb"); }
1423test { try parseIDNAFail("\xe1\xa2\x97\xe3\x80\x82\xd3\x8f\xf1\x9d\x84\xbb"); }
1424test { try parseIDNAFail("xn--hbf.xn--s5a83117e"); }
1425test { try parseIDNAFail("\xe1\xa2\x97\xef\xbd\xa1\xd3\x8f\xf1\x9d\x84\xbb"); }
1426test { try parseIDNAFail("xn--hbf.xn--d5a86117e"); }
1427test { try parseIDNAFail("\xf0\x91\xb2\x98\xf3\xa0\x84\x92\xf0\x93\x91\xa1\xef\xbd\xa1\xf0\x9d\x9f\xaa\xe1\x82\xbc"); }
1428test { try parseIDNAFail("\xf0\x91\xb2\x98\xf3\xa0\x84\x92\xf0\x93\x91\xa1\xe3\x80\x828\xe1\x82\xbc"); }
1429test { try parseIDNAFail("\xf0\x91\xb2\x98\xf3\xa0\x84\x92\xf0\x93\x91\xa1\xe3\x80\x828\xe2\xb4\x9c"); }
1430test { try parseIDNAFail("xn--7m3d291b.xn--8-vws"); }
1431test { try parseIDNAFail("\xf0\x91\xb2\x98\xf3\xa0\x84\x92\xf0\x93\x91\xa1\xef\xbd\xa1\xf0\x9d\x9f\xaa\xe2\xb4\x9c"); }
1432test { try parseIDNAFail("xn--7m3d291b.xn--8-s1g"); }
1433test { try parseIDNAFail("\xe1\xae\xab\xef\xbd\xa1\xf0\x9f\x82\x89\xf3\xa0\x81\xb0"); }
1434test { try parseIDNAFail("\xe1\xae\xab\xe3\x80\x82\xf0\x9f\x82\x89\xf3\xa0\x81\xb0"); }
1435test { try parseIDNAFail("xn--zxf.xn--fx7ho0250c"); }
1436test { try parseIDNAFail("\xf3\xac\x9a\xb6\xf3\xb8\x8b\x96\xf2\x96\xa9\xb0-\xe3\x80\x82\xe2\x80\x8c"); }
1437test { try parseIDNAFail("xn----7i12hu122k9ire."); }
1438test { try parseIDNAFail("xn----7i12hu122k9ire.xn--0ug"); }
1439test { try parseIDNAFail("\xef\xb8\x92\xef\xbc\x8e\xef\xb8\xaf\xf0\x91\x91\x82"); }
1440test { try parseIDNAFail("\xef\xb8\x92\xef\xbc\x8e\xf0\x91\x91\x82\xef\xb8\xaf"); }
1441test { try parseIDNAFail("\xe3\x80\x82.\xf0\x91\x91\x82\xef\xb8\xaf"); }
1442test { try parseIDNAFail("..xn--s96cu30b"); }
1443test { try parseIDNAFail("xn--y86c.xn--s96cu30b"); }
1444test { try parseIDNAFail("\xea\xa4\xac\xe3\x80\x82\xe2\x80\x8d"); }
1445test { try parseIDNAFail("xn--zi9a."); }
1446test { try parseIDNAFail("xn--zi9a.xn--1ug"); }
1447test { try parseIDNAFail("\xf3\xa6\x88\x84\xe3\x80\x82-"); }
1448test { try parseIDNAFail("xn--xm38e.-"); }
1449test { try parseIDNAFail("\xe2\x8b\xa0\xf0\x90\x8b\xae\xef\xbc\x8e\xf2\xb6\x88\xae\xe0\xbc\x98\xc3\x9f\xe2\x89\xaf"); }
1450test { try parseIDNAFail("\xe2\x89\xbc\xcc\xb8\xf0\x90\x8b\xae\xef\xbc\x8e\xf2\xb6\x88\xae\xe0\xbc\x98\xc3\x9f>\xcc\xb8"); }
1451test { try parseIDNAFail("\xe2\x8b\xa0\xf0\x90\x8b\xae.\xf2\xb6\x88\xae\xe0\xbc\x98\xc3\x9f\xe2\x89\xaf"); }
1452test { try parseIDNAFail("\xe2\x89\xbc\xcc\xb8\xf0\x90\x8b\xae.\xf2\xb6\x88\xae\xe0\xbc\x98\xc3\x9f>\xcc\xb8"); }
1453test { try parseIDNAFail("\xe2\x89\xbc\xcc\xb8\xf0\x90\x8b\xae.\xf2\xb6\x88\xae\xe0\xbc\x98SS>\xcc\xb8"); }
1454test { try parseIDNAFail("\xe2\x8b\xa0\xf0\x90\x8b\xae.\xf2\xb6\x88\xae\xe0\xbc\x98SS\xe2\x89\xaf"); }
1455test { try parseIDNAFail("\xe2\x8b\xa0\xf0\x90\x8b\xae.\xf2\xb6\x88\xae\xe0\xbc\x98ss\xe2\x89\xaf"); }
1456test { try parseIDNAFail("\xe2\x89\xbc\xcc\xb8\xf0\x90\x8b\xae.\xf2\xb6\x88\xae\xe0\xbc\x98ss>\xcc\xb8"); }
1457test { try parseIDNAFail("\xe2\x89\xbc\xcc\xb8\xf0\x90\x8b\xae.\xf2\xb6\x88\xae\xe0\xbc\x98Ss>\xcc\xb8"); }
1458test { try parseIDNAFail("\xe2\x8b\xa0\xf0\x90\x8b\xae.\xf2\xb6\x88\xae\xe0\xbc\x98Ss\xe2\x89\xaf"); }
1459test { try parseIDNAFail("xn--pgh4639f.xn--ss-ifj426nle504a"); }
1460test { try parseIDNAFail("xn--pgh4639f.xn--zca593eo6oc013y"); }
1461test { try parseIDNAFail("\xe2\x89\xbc\xcc\xb8\xf0\x90\x8b\xae\xef\xbc\x8e\xf2\xb6\x88\xae\xe0\xbc\x98SS>\xcc\xb8"); }
1462test { try parseIDNAFail("\xe2\x8b\xa0\xf0\x90\x8b\xae\xef\xbc\x8e\xf2\xb6\x88\xae\xe0\xbc\x98SS\xe2\x89\xaf"); }
1463test { try parseIDNAFail("\xe2\x8b\xa0\xf0\x90\x8b\xae\xef\xbc\x8e\xf2\xb6\x88\xae\xe0\xbc\x98ss\xe2\x89\xaf"); }
1464test { try parseIDNAFail("\xe2\x89\xbc\xcc\xb8\xf0\x90\x8b\xae\xef\xbc\x8e\xf2\xb6\x88\xae\xe0\xbc\x98ss>\xcc\xb8"); }
1465test { try parseIDNAFail("\xe2\x89\xbc\xcc\xb8\xf0\x90\x8b\xae\xef\xbc\x8e\xf2\xb6\x88\xae\xe0\xbc\x98Ss>\xcc\xb8"); }
1466test { try parseIDNAFail("\xe2\x8b\xa0\xf0\x90\x8b\xae\xef\xbc\x8e\xf2\xb6\x88\xae\xe0\xbc\x98Ss\xe2\x89\xaf"); }
1467test { try parseIDNAFail("\xcc\xb0\xef\xbc\x8e\xf3\xb0\x9c\xb1\xe8\x9a\x80"); }
1468test { try parseIDNAFail("\xcc\xb0.\xf3\xb0\x9c\xb1\xe8\x9a\x80"); }
1469test { try parseIDNAFail("xn--xta.xn--e91aw9417e"); }
1470test { try parseIDNAFail("\xf0\x9f\xa2\x9f\xf0\x9f\x84\x88\xe2\x80\x8d\xea\xa1\x8e\xef\xbd\xa1\xe0\xbe\x84"); }
1471test { try parseIDNAFail("\xf0\x9f\xa2\x9f7,\xe2\x80\x8d\xea\xa1\x8e\xe3\x80\x82\xe0\xbe\x84"); }
1472test { try parseIDNAFail("xn--7,-gh9hg322i.xn--3ed"); }
1473test { try parseIDNAFail("xn--7,-n1t0654eqo3o.xn--3ed"); }
1474test { try parseIDNAFail("xn--nc9aq743ds0e.xn--3ed"); }
1475test { try parseIDNAFail("xn--1ug4874cfd0kbmg.xn--3ed"); }
1476test { try parseIDNAFail("\xea\xa1\x94\xe3\x80\x82\xe1\x80\xb9\xe1\xa2\x87"); }
1477test { try parseIDNAFail("xn--tc9a.xn--9jd663b"); }
1478test { try parseIDNAFail("\xe2\x83\xab\xe2\x89\xae.\xf0\x9d\xa8\x96"); }
1479test { try parseIDNAFail("\xe2\x83\xab<\xcc\xb8.\xf0\x9d\xa8\x96"); }
1480test { try parseIDNAFail("xn--e1g71d.xn--772h"); }
1481test { try parseIDNAFail("\xe2\x80\x8c.\xe2\x89\xaf"); }
1482test { try parseIDNAFail("\xe2\x80\x8c.>\xcc\xb8"); }
1483test { try parseIDNAFail("xn--0ug.xn--hdh"); }
1484test { try parseIDNAFail("\xf0\xb0\x85\xa7\xf1\xa3\xa9\xa0-\xef\xbc\x8e\xea\xaf\xad-\xe6\x82\x9c"); }
1485test { try parseIDNAFail("\xf0\xb0\x85\xa7\xf1\xa3\xa9\xa0-.\xea\xaf\xad-\xe6\x82\x9c"); }
1486test { try parseIDNAFail("xn----7m53aj640l.xn----8f4br83t"); }
1487test { try parseIDNAFail("\xe1\xa1\x89\xf0\xb6\x93\xa7\xe2\xac\x9e\xe1\xa2\x9c.-\xe2\x80\x8d\xf0\x9e\xa3\x91\xe2\x80\xae"); }
1488test { try parseIDNAFail("xn--87e0ol04cdl39e.xn----qinu247r"); }
1489test { try parseIDNAFail("xn--87e0ol04cdl39e.xn----ugn5e3763s"); }
1490test { try parseIDNAFail("xn--ynd2415j.xn--5-dug9054m"); }
1491test { try parseIDNAFail("\xe2\x80\x8d-\xe1\xa0\xb9\xef\xb9\xaa.\xe1\xb7\xa1\xe1\xa4\xa2"); }
1492test { try parseIDNAFail("\xe2\x80\x8d-\xe1\xa0\xb9%.\xe1\xb7\xa1\xe1\xa4\xa2"); }
1493test { try parseIDNAFail("xn---%-u4o.xn--gff52t"); }
1494test { try parseIDNAFail("xn---%-u4oy48b.xn--gff52t"); }
1495test { try parseIDNAFail("xn----c6jx047j.xn--gff52t"); }
1496test { try parseIDNAFail("xn----c6j614b1z4v.xn--gff52t"); }
1497test { try parseIDNAFail("\xf0\xa3\xa9\xab\xef\xbc\x8e\xf2\x8c\x91\xb2"); }
1498test { try parseIDNAFail("\xf0\xa3\xa9\xab.\xf2\x8c\x91\xb2"); }
1499test { try parseIDNAFail("xn--td3j.xn--4628b"); }
1500test { try parseIDNAFail("\xe0\xb1\x8d\xf0\x9d\xa8\xbe\xd6\xa9\xf0\x9d\x9f\xad\xe3\x80\x82-\xf0\x91\x9c\xa8"); }
1501test { try parseIDNAFail("\xe0\xb1\x8d\xf0\x9d\xa8\xbe\xd6\xa91\xe3\x80\x82-\xf0\x91\x9c\xa8"); }
1502test { try parseIDNAFail("xn--1-rfc312cdp45c.xn----nq0j"); }
1503test { try parseIDNAFail("\xf2\xa3\xbf\x88\xe3\x80\x82\xeb\x99\x8f"); }
1504test { try parseIDNAFail("\xf2\xa3\xbf\x88\xe3\x80\x82\xe1\x84\x84\xe1\x85\xab\xe1\x86\xae"); }
1505test { try parseIDNAFail("xn--ph26c.xn--281b"); }
1506test { try parseIDNAFail("\xf1\x95\xa8\x9a\xf3\xa0\x84\x8c\xf3\x91\xbd\x80\xe1\xa1\x80.\xe0\xa2\xb6"); }
1507test { try parseIDNAFail("xn--z7e98100evc01b.xn--czb"); }
1508test { try parseIDNAFail("\xe2\x80\x8d\xef\xbd\xa1\xf1\x85\x81\x9b"); }
1509test { try parseIDNAFail("\xe2\x80\x8d\xe3\x80\x82\xf1\x85\x81\x9b"); }
1510test { try parseIDNAFail(".xn--6x4u"); }
1511test { try parseIDNAFail("xn--1ug.xn--6x4u"); }
1512test { try parseIDNAFail("\xef\xbf\xb9\xe2\x80\x8c\xef\xbd\xa1\xe6\x9b\xb3\xe2\xbe\x91\xf0\x90\x8b\xb0\xe2\x89\xaf"); }
1513test { try parseIDNAFail("\xef\xbf\xb9\xe2\x80\x8c\xef\xbd\xa1\xe6\x9b\xb3\xe2\xbe\x91\xf0\x90\x8b\xb0>\xcc\xb8"); }
1514test { try parseIDNAFail("\xef\xbf\xb9\xe2\x80\x8c\xe3\x80\x82\xe6\x9b\xb3\xe8\xa5\xbe\xf0\x90\x8b\xb0\xe2\x89\xaf"); }
1515test { try parseIDNAFail("\xef\xbf\xb9\xe2\x80\x8c\xe3\x80\x82\xe6\x9b\xb3\xe8\xa5\xbe\xf0\x90\x8b\xb0>\xcc\xb8"); }
1516test { try parseIDNAFail("xn--vn7c.xn--hdh501y8wvfs5h"); }
1517test { try parseIDNAFail("xn--0ug2139f.xn--hdh501y8wvfs5h"); }
1518test { try parseIDNAFail("\xe2\x89\xaf\xe2\x92\x88\xe3\x80\x82\xc3\x9f"); }
1519test { try parseIDNAFail(">\xcc\xb8\xe2\x92\x88\xe3\x80\x82\xc3\x9f"); }
1520test { try parseIDNAFail(">\xcc\xb8\xe2\x92\x88\xe3\x80\x82SS"); }
1521test { try parseIDNAFail("\xe2\x89\xaf\xe2\x92\x88\xe3\x80\x82SS"); }
1522test { try parseIDNAFail("\xe2\x89\xaf\xe2\x92\x88\xe3\x80\x82ss"); }
1523test { try parseIDNAFail(">\xcc\xb8\xe2\x92\x88\xe3\x80\x82ss"); }
1524test { try parseIDNAFail(">\xcc\xb8\xe2\x92\x88\xe3\x80\x82Ss"); }
1525test { try parseIDNAFail("\xe2\x89\xaf\xe2\x92\x88\xe3\x80\x82Ss"); }
1526test { try parseIDNAFail("xn--hdh84f.ss"); }
1527test { try parseIDNAFail("xn--hdh84f.xn--zca"); }
1528test { try parseIDNAFail("\xe2\x80\x8c\xef\xbd\xa1\xe2\x89\xa0"); }
1529test { try parseIDNAFail("\xe2\x80\x8c\xef\xbd\xa1=\xcc\xb8"); }
1530test { try parseIDNAFail("\xe2\x80\x8c\xe3\x80\x82\xe2\x89\xa0"); }
1531test { try parseIDNAFail("\xe2\x80\x8c\xe3\x80\x82=\xcc\xb8"); }
1532test { try parseIDNAFail("xn--0ug.xn--1ch"); }
1533test { try parseIDNAFail("\xf0\x91\x96\xbf\xf0\x9d\xa8\x94.\xe1\xa1\x9f\xf0\x91\x96\xbf\xe1\xad\x82\xe2\x80\x8c"); }
1534test { try parseIDNAFail("xn--461dw464a.xn--v8e29loy65a"); }
1535test { try parseIDNAFail("xn--461dw464a.xn--v8e29ldzfo952a"); }
1536test { try parseIDNAFail("\xf2\x94\xa3\xb3\xe2\x80\x8d\xf2\x91\x9d\xb1.\xf0\x96\xac\xb4\xe2\x86\x83\xe2\x89\xa0-"); }
1537test { try parseIDNAFail("\xf2\x94\xa3\xb3\xe2\x80\x8d\xf2\x91\x9d\xb1.\xf0\x96\xac\xb4\xe2\x86\x83=\xcc\xb8-"); }
1538test { try parseIDNAFail("\xf2\x94\xa3\xb3\xe2\x80\x8d\xf2\x91\x9d\xb1.\xf0\x96\xac\xb4\xe2\x86\x84=\xcc\xb8-"); }
1539test { try parseIDNAFail("\xf2\x94\xa3\xb3\xe2\x80\x8d\xf2\x91\x9d\xb1.\xf0\x96\xac\xb4\xe2\x86\x84\xe2\x89\xa0-"); }
1540test { try parseIDNAFail("xn--6j00chy9a.xn----81n51bt713h"); }
1541test { try parseIDNAFail("xn--1ug15151gkb5a.xn----81n51bt713h"); }
1542test { try parseIDNAFail("xn--6j00chy9a.xn----61n81bt713h"); }
1543test { try parseIDNAFail("xn--1ug15151gkb5a.xn----61n81bt713h"); }
1544test { try parseIDNAFail("\xe2\x80\x8d\xe2\x94\xae\xf3\xa0\x87\x90\xef\xbc\x8e\xe0\xb0\x80\xe0\xb1\x8d\xe1\x9c\xb4\xe2\x80\x8d"); }
1545test { try parseIDNAFail("\xe2\x80\x8d\xe2\x94\xae\xf3\xa0\x87\x90.\xe0\xb0\x80\xe0\xb1\x8d\xe1\x9c\xb4\xe2\x80\x8d"); }
1546test { try parseIDNAFail("xn--kxh.xn--eoc8m432a"); }
1547test { try parseIDNAFail("xn--1ug04r.xn--eoc8m432a40i"); }
1548test { try parseIDNAFail("\xf2\xb9\x9a\xaa\xef\xbd\xa1\xf0\x9f\x84\x82"); }
1549test { try parseIDNAFail("\xf2\xb9\x9a\xaa\xe3\x80\x821,"); }
1550test { try parseIDNAFail("xn--n433d.1,"); }
1551test { try parseIDNAFail("xn--n433d.xn--v07h"); }
1552test { try parseIDNAFail("\xf0\x91\x8d\xa8\xe5\x88\x8d.\xf0\x9f\x9b\xa6"); }
1553test { try parseIDNAFail("xn--rbry728b.xn--y88h"); }
1554test { try parseIDNAFail("\xf3\xa0\x8c\x8f3\xef\xbd\xa1\xe1\xaf\xb1\xf0\x9d\x9f\x92"); }
1555test { try parseIDNAFail("\xf3\xa0\x8c\x8f3\xe3\x80\x82\xe1\xaf\xb14"); }
1556test { try parseIDNAFail("xn--3-ib31m.xn--4-pql"); }
1557test { try parseIDNAFail("\xea\xa1\xbd\xe2\x89\xaf\xef\xbc\x8e\xf2\xbb\xb2\x80\xf2\x92\xb3\x84"); }
1558test { try parseIDNAFail("\xea\xa1\xbd>\xcc\xb8\xef\xbc\x8e\xf2\xbb\xb2\x80\xf2\x92\xb3\x84"); }
1559test { try parseIDNAFail("\xea\xa1\xbd\xe2\x89\xaf.\xf2\xbb\xb2\x80\xf2\x92\xb3\x84"); }
1560test { try parseIDNAFail("\xea\xa1\xbd>\xcc\xb8.\xf2\xbb\xb2\x80\xf2\x92\xb3\x84"); }
1561test { try parseIDNAFail("xn--hdh8193c.xn--5z40cp629b"); }
1562test { try parseIDNAFail("\xf3\xa0\xb3\x9b\xef\xbc\x8e\xe2\x80\x8d\xe4\xa4\xab\xe2\x89\xa0\xe1\x82\xbe"); }
1563test { try parseIDNAFail("\xf3\xa0\xb3\x9b\xef\xbc\x8e\xe2\x80\x8d\xe4\xa4\xab=\xcc\xb8\xe1\x82\xbe"); }
1564test { try parseIDNAFail("\xf3\xa0\xb3\x9b.\xe2\x80\x8d\xe4\xa4\xab\xe2\x89\xa0\xe1\x82\xbe"); }
1565test { try parseIDNAFail("\xf3\xa0\xb3\x9b.\xe2\x80\x8d\xe4\xa4\xab=\xcc\xb8\xe1\x82\xbe"); }
1566test { try parseIDNAFail("\xf3\xa0\xb3\x9b.\xe2\x80\x8d\xe4\xa4\xab=\xcc\xb8\xe2\xb4\x9e"); }
1567test { try parseIDNAFail("\xf3\xa0\xb3\x9b.\xe2\x80\x8d\xe4\xa4\xab\xe2\x89\xa0\xe2\xb4\x9e"); }
1568test { try parseIDNAFail("xn--1t56e.xn--1ch153bqvw"); }
1569test { try parseIDNAFail("xn--1t56e.xn--1ug73gzzpwi3a"); }
1570test { try parseIDNAFail("\xf3\xa0\xb3\x9b\xef\xbc\x8e\xe2\x80\x8d\xe4\xa4\xab=\xcc\xb8\xe2\xb4\x9e"); }
1571test { try parseIDNAFail("\xf3\xa0\xb3\x9b\xef\xbc\x8e\xe2\x80\x8d\xe4\xa4\xab\xe2\x89\xa0\xe2\xb4\x9e"); }
1572test { try parseIDNAFail("xn--1t56e.xn--2nd141ghl2a"); }
1573test { try parseIDNAFail("xn--1t56e.xn--2nd159e9vb743e"); }
1574test { try parseIDNAFail("3.1.xn--110d.j"); }
1575test { try parseIDNAFail("xn--tshd3512p.j"); }
1576test { try parseIDNAFail("\xcd\x8a\xef\xbc\x8e\xf0\x90\xa8\x8e"); }
1577test { try parseIDNAFail("\xcd\x8a.\xf0\x90\xa8\x8e"); }
1578test { try parseIDNAFail("xn--oua.xn--mr9c"); }
1579test { try parseIDNAFail("\xed\x9b\x89\xe2\x89\xae\xef\xbd\xa1\xe0\xb8\xb4"); }
1580test { try parseIDNAFail("\xe1\x84\x92\xe1\x85\xae\xe1\x86\xac<\xcc\xb8\xef\xbd\xa1\xe0\xb8\xb4"); }
1581test { try parseIDNAFail("\xed\x9b\x89\xe2\x89\xae\xe3\x80\x82\xe0\xb8\xb4"); }
1582test { try parseIDNAFail("\xe1\x84\x92\xe1\x85\xae\xe1\x86\xac<\xcc\xb8\xe3\x80\x82\xe0\xb8\xb4"); }
1583test { try parseIDNAFail("xn--gdh2512e.xn--i4c"); }
1584test { try parseIDNAFail("xn--fc9a.xn----qmg787k869k"); }
1585test { try parseIDNAFail("\xe2\x89\xae\xf0\x9d\x85\xb6\xef\xbc\x8e\xf1\xb1\xb2\x81\xea\xab\xac\xe2\xb9\x88\xf3\xb0\xa5\xad"); }
1586test { try parseIDNAFail("<\xcc\xb8\xf0\x9d\x85\xb6\xef\xbc\x8e\xf1\xb1\xb2\x81\xea\xab\xac\xe2\xb9\x88\xf3\xb0\xa5\xad"); }
1587test { try parseIDNAFail("\xe2\x89\xae\xf0\x9d\x85\xb6.\xf1\xb1\xb2\x81\xea\xab\xac\xe2\xb9\x88\xf3\xb0\xa5\xad"); }
1588test { try parseIDNAFail("<\xcc\xb8\xf0\x9d\x85\xb6.\xf1\xb1\xb2\x81\xea\xab\xac\xe2\xb9\x88\xf3\xb0\xa5\xad"); }
1589test { try parseIDNAFail("xn--gdh.xn--4tjx101bsg00ds9pyc"); }
1590test { try parseIDNAFail("xn--gdh0880o.xn--4tjx101bsg00ds9pyc"); }
1591test { try parseIDNAFail("\xf0\x91\x91\x82\xef\xbd\xa1\xe2\x80\x8d\xf3\xa5\x9e\x80\xf0\x9f\x9e\x95\xf2\xa5\x81\x94"); }
1592test { try parseIDNAFail("\xf0\x91\x91\x82\xe3\x80\x82\xe2\x80\x8d\xf3\xa5\x9e\x80\xf0\x9f\x9e\x95\xf2\xa5\x81\x94"); }
1593test { try parseIDNAFail("xn--8v1d.xn--ye9h41035a2qqs"); }
1594test { try parseIDNAFail("xn--8v1d.xn--1ug1386plvx1cd8vya"); }
1595test { try parseIDNAFail("-\xe2\x80\x8c\xe2\x92\x99\xf0\x90\xab\xa5\xef\xbd\xa1\xf0\x9d\xa8\xb5"); }
1596test { try parseIDNAFail("-\xe2\x80\x8c18.\xf0\x90\xab\xa5\xe3\x80\x82\xf0\x9d\xa8\xb5"); }
1597test { try parseIDNAFail("-18.xn--rx9c.xn--382h"); }
1598test { try parseIDNAFail("xn---18-9m0a.xn--rx9c.xn--382h"); }
1599test { try parseIDNAFail("xn----ddps939g.xn--382h"); }
1600test { try parseIDNAFail("xn----sgn18r3191a.xn--382h"); }
1601test { try parseIDNAFail("\xef\xb8\x85\xef\xb8\x92\xe3\x80\x82\xf0\xa6\x80\xbe\xe1\xb3\xa0"); }
1602test { try parseIDNAFail("xn--y86c.xn--t6f5138v"); }
1603test { try parseIDNAFail("\xf3\xa0\x95\x8f\xef\xbc\x8e-\xc3\x9f\xe2\x80\x8c\xe2\x89\xa0"); }
1604test { try parseIDNAFail("\xf3\xa0\x95\x8f\xef\xbc\x8e-\xc3\x9f\xe2\x80\x8c=\xcc\xb8"); }
1605test { try parseIDNAFail("\xf3\xa0\x95\x8f.-\xc3\x9f\xe2\x80\x8c\xe2\x89\xa0"); }
1606test { try parseIDNAFail("\xf3\xa0\x95\x8f.-\xc3\x9f\xe2\x80\x8c=\xcc\xb8"); }
1607test { try parseIDNAFail("\xf3\xa0\x95\x8f.-SS\xe2\x80\x8c=\xcc\xb8"); }
1608test { try parseIDNAFail("\xf3\xa0\x95\x8f.-SS\xe2\x80\x8c\xe2\x89\xa0"); }
1609test { try parseIDNAFail("\xf3\xa0\x95\x8f.-ss\xe2\x80\x8c\xe2\x89\xa0"); }
1610test { try parseIDNAFail("\xf3\xa0\x95\x8f.-ss\xe2\x80\x8c=\xcc\xb8"); }
1611test { try parseIDNAFail("\xf3\xa0\x95\x8f.-Ss\xe2\x80\x8c=\xcc\xb8"); }
1612test { try parseIDNAFail("\xf3\xa0\x95\x8f.-Ss\xe2\x80\x8c\xe2\x89\xa0"); }
1613test { try parseIDNAFail("xn--u836e.xn---ss-gl2a"); }
1614test { try parseIDNAFail("xn--u836e.xn---ss-cn0at5l"); }
1615test { try parseIDNAFail("xn--u836e.xn----qfa750ve7b"); }
1616test { try parseIDNAFail("\xf3\xa0\x95\x8f\xef\xbc\x8e-SS\xe2\x80\x8c=\xcc\xb8"); }
1617test { try parseIDNAFail("\xf3\xa0\x95\x8f\xef\xbc\x8e-SS\xe2\x80\x8c\xe2\x89\xa0"); }
1618test { try parseIDNAFail("\xf3\xa0\x95\x8f\xef\xbc\x8e-ss\xe2\x80\x8c\xe2\x89\xa0"); }
1619test { try parseIDNAFail("\xf3\xa0\x95\x8f\xef\xbc\x8e-ss\xe2\x80\x8c=\xcc\xb8"); }
1620test { try parseIDNAFail("\xf3\xa0\x95\x8f\xef\xbc\x8e-Ss\xe2\x80\x8c=\xcc\xb8"); }
1621test { try parseIDNAFail("\xf3\xa0\x95\x8f\xef\xbc\x8e-Ss\xe2\x80\x8c\xe2\x89\xa0"); }
1622test { try parseIDNAFail("\xe1\xa1\x99\xe2\x80\x8c\xef\xbd\xa1\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0"); }
1623test { try parseIDNAFail("\xe1\xa1\x99\xe2\x80\x8c\xef\xbd\xa1>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8"); }
1624test { try parseIDNAFail("\xe1\xa1\x99\xe2\x80\x8c\xe3\x80\x82\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0"); }
1625test { try parseIDNAFail("\xe1\xa1\x99\xe2\x80\x8c\xe3\x80\x82>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8"); }
1626test { try parseIDNAFail("xn--p8e650b.xn--1ch3a7084l"); }
1627test { try parseIDNAFail("\xf2\xae\xb5\x9b\xd8\x93.\xe1\x82\xb5"); }
1628test { try parseIDNAFail("\xf2\xae\xb5\x9b\xd8\x93.\xe2\xb4\x95"); }
1629test { try parseIDNAFail("xn--1fb94204l.xn--dlj"); }
1630test { try parseIDNAFail("xn--1fb94204l.xn--tnd"); }
1631test { try parseIDNAFail("\xe2\x80\x8c\xf3\xa0\x84\xb7\xef\xbd\xa1\xf2\x92\x91\x81"); }
1632test { try parseIDNAFail("\xe2\x80\x8c\xf3\xa0\x84\xb7\xe3\x80\x82\xf2\x92\x91\x81"); }
1633test { try parseIDNAFail(".xn--w720c"); }
1634test { try parseIDNAFail("xn--0ug.xn--w720c"); }
1635test { try parseIDNAFail("\xe2\x92\x88\xe0\xb7\x96\xe7\x84\x85.\xf3\x97\xa1\x99\xe2\x80\x8d\xea\xa1\x9f"); }
1636test { try parseIDNAFail("1.\xe0\xb7\x96\xe7\x84\x85.\xf3\x97\xa1\x99\xe2\x80\x8d\xea\xa1\x9f"); }
1637test { try parseIDNAFail("1.xn--t1c6981c.xn--4c9a21133d"); }
1638test { try parseIDNAFail("1.xn--t1c6981c.xn--1ugz184c9lw7i"); }
1639test { try parseIDNAFail("xn--t1c337io97c.xn--4c9a21133d"); }
1640test { try parseIDNAFail("xn--t1c337io97c.xn--1ugz184c9lw7i"); }
1641test { try parseIDNAFail("\xf0\x91\x87\x80\xe2\x96\x8d.\xe2\x81\x9e\xe1\xa0\xb0"); }
1642test { try parseIDNAFail("xn--9zh3057f.xn--j7e103b"); }
1643test { try parseIDNAFail("-3.\xe2\x80\x8d\xe3\x83\x8c\xe1\xa2\x95"); }
1644test { try parseIDNAFail("-3.xn--fbf739aq5o"); }
1645test { try parseIDNAFail("\xe2\x84\xb2\xe1\x9f\x92\xe2\x80\x8d\xef\xbd\xa1\xe2\x89\xa0\xe2\x80\x8d\xe2\x80\x8c"); }
1646test { try parseIDNAFail("\xe2\x84\xb2\xe1\x9f\x92\xe2\x80\x8d\xef\xbd\xa1=\xcc\xb8\xe2\x80\x8d\xe2\x80\x8c"); }
1647test { try parseIDNAFail("\xe2\x84\xb2\xe1\x9f\x92\xe2\x80\x8d\xe3\x80\x82\xe2\x89\xa0\xe2\x80\x8d\xe2\x80\x8c"); }
1648test { try parseIDNAFail("\xe2\x84\xb2\xe1\x9f\x92\xe2\x80\x8d\xe3\x80\x82=\xcc\xb8\xe2\x80\x8d\xe2\x80\x8c"); }
1649test { try parseIDNAFail("\xe2\x85\x8e\xe1\x9f\x92\xe2\x80\x8d\xe3\x80\x82=\xcc\xb8\xe2\x80\x8d\xe2\x80\x8c"); }
1650test { try parseIDNAFail("\xe2\x85\x8e\xe1\x9f\x92\xe2\x80\x8d\xe3\x80\x82\xe2\x89\xa0\xe2\x80\x8d\xe2\x80\x8c"); }
1651test { try parseIDNAFail("xn--u4e823bq1a.xn--0ugb89o"); }
1652test { try parseIDNAFail("\xe2\x85\x8e\xe1\x9f\x92\xe2\x80\x8d\xef\xbd\xa1=\xcc\xb8\xe2\x80\x8d\xe2\x80\x8c"); }
1653test { try parseIDNAFail("\xe2\x85\x8e\xe1\x9f\x92\xe2\x80\x8d\xef\xbd\xa1\xe2\x89\xa0\xe2\x80\x8d\xe2\x80\x8c"); }
1654test { try parseIDNAFail("xn--u4e319b.xn--1ch"); }
1655test { try parseIDNAFail("xn--u4e823bcza.xn--0ugb89o"); }
1656test { try parseIDNAFail("\xf1\xba\x94\xaf\xe0\xbe\xa8\xef\xbc\x8e\xe2\x89\xaf"); }
1657test { try parseIDNAFail("\xf1\xba\x94\xaf\xe0\xbe\xa8\xef\xbc\x8e>\xcc\xb8"); }
1658test { try parseIDNAFail("\xf1\xba\x94\xaf\xe0\xbe\xa8.\xe2\x89\xaf"); }
1659test { try parseIDNAFail("\xf1\xba\x94\xaf\xe0\xbe\xa8.>\xcc\xb8"); }
1660test { try parseIDNAFail("xn--4fd57150h.xn--hdh"); }
1661test { try parseIDNAFail("\xf0\x90\xa8\xbf\xf3\xa0\x86\x8c\xe9\xb8\xae\xf0\x91\x9a\xb6.\xcf\x82"); }
1662test { try parseIDNAFail("\xf0\x90\xa8\xbf\xf3\xa0\x86\x8c\xe9\xb8\xae\xf0\x91\x9a\xb6.\xce\xa3"); }
1663test { try parseIDNAFail("\xf0\x90\xa8\xbf\xf3\xa0\x86\x8c\xe9\xb8\xae\xf0\x91\x9a\xb6.\xcf\x83"); }
1664test { try parseIDNAFail("xn--l76a726rt2h.xn--4xa"); }
1665test { try parseIDNAFail("xn--l76a726rt2h.xn--3xa"); }
1666test { try parseIDNAFail("\xcf\x82-\xe3\x80\x82\xe2\x80\x8c\xf0\x9d\x9f\xad-"); }
1667test { try parseIDNAFail("\xcf\x82-\xe3\x80\x82\xe2\x80\x8c1-"); }
1668test { try parseIDNAFail("\xce\xa3-\xe3\x80\x82\xe2\x80\x8c1-"); }
1669test { try parseIDNAFail("\xcf\x83-\xe3\x80\x82\xe2\x80\x8c1-"); }
1670test { try parseIDNAFail("xn----zmb.xn--1--i1t"); }
1671test { try parseIDNAFail("xn----xmb.xn--1--i1t"); }
1672test { try parseIDNAFail("\xce\xa3-\xe3\x80\x82\xe2\x80\x8c\xf0\x9d\x9f\xad-"); }
1673test { try parseIDNAFail("\xcf\x83-\xe3\x80\x82\xe2\x80\x8c\xf0\x9d\x9f\xad-"); }
1674test { try parseIDNAFail("\xe1\x9c\xb4-\xe0\xb3\xa2\xef\xbc\x8e\xf3\xa0\x84\xa9\xe1\x82\xa4"); }
1675test { try parseIDNAFail("\xe1\x9c\xb4-\xe0\xb3\xa2.\xf3\xa0\x84\xa9\xe1\x82\xa4"); }
1676test { try parseIDNAFail("\xe1\x9c\xb4-\xe0\xb3\xa2.\xf3\xa0\x84\xa9\xe2\xb4\x84"); }
1677test { try parseIDNAFail("xn----ggf830f.xn--vkj"); }
1678test { try parseIDNAFail("\xe1\x9c\xb4-\xe0\xb3\xa2\xef\xbc\x8e\xf3\xa0\x84\xa9\xe2\xb4\x84"); }
1679test { try parseIDNAFail("xn----ggf830f.xn--cnd"); }
1680test { try parseIDNAFail("\xe2\x80\x8d\xe3\x80\x82\xf0\x9e\x80\x98\xe2\x92\x88\xea\xa1\x8d\xe6\x93\x89"); }
1681test { try parseIDNAFail("\xe2\x80\x8d\xe3\x80\x82\xf0\x9e\x80\x981.\xea\xa1\x8d\xe6\x93\x89"); }
1682test { try parseIDNAFail(".xn--1-1p4r.xn--s7uv61m"); }
1683test { try parseIDNAFail("xn--1ug.xn--1-1p4r.xn--s7uv61m"); }
1684test { try parseIDNAFail(".xn--tsh026uql4bew9p"); }
1685test { try parseIDNAFail("xn--1ug.xn--tsh026uql4bew9p"); }
1686test { try parseIDNAFail("\xe2\xab\x90\xef\xbd\xa1\xe1\x83\x80-\xf3\x83\x90\xa2"); }
1687test { try parseIDNAFail("\xe2\xab\x90\xe3\x80\x82\xe1\x83\x80-\xf3\x83\x90\xa2"); }
1688test { try parseIDNAFail("\xe2\xab\x90\xe3\x80\x82\xe2\xb4\xa0-\xf3\x83\x90\xa2"); }
1689test { try parseIDNAFail("xn--r3i.xn----2wst7439i"); }
1690test { try parseIDNAFail("\xe2\xab\x90\xef\xbd\xa1\xe2\xb4\xa0-\xf3\x83\x90\xa2"); }
1691test { try parseIDNAFail("xn--r3i.xn----z1g58579u"); }
1692test { try parseIDNAFail("\xf0\x91\x91\x82\xe2\x97\x8a\xef\xbc\x8e\xe2\xa6\x9f\xe2\x88\xa0"); }
1693test { try parseIDNAFail("\xf0\x91\x91\x82\xe2\x97\x8a.\xe2\xa6\x9f\xe2\x88\xa0"); }
1694test { try parseIDNAFail("xn--01h3338f.xn--79g270a"); }
1695test { try parseIDNAFail("\xed\x97\x81\xf3\x98\x96\x99\xe0\xb8\xba\xf3\x9a\x8d\x9a\xe3\x80\x82\xda\xba\xf0\x9d\x9f\x9c"); }
1696test { try parseIDNAFail("\xe1\x84\x92\xe1\x85\xa4\xe1\x86\xbc\xf3\x98\x96\x99\xe0\xb8\xba\xf3\x9a\x8d\x9a\xe3\x80\x82\xda\xba\xf0\x9d\x9f\x9c"); }
1697test { try parseIDNAFail("\xed\x97\x81\xf3\x98\x96\x99\xe0\xb8\xba\xf3\x9a\x8d\x9a\xe3\x80\x82\xda\xba4"); }
1698test { try parseIDNAFail("\xe1\x84\x92\xe1\x85\xa4\xe1\x86\xbc\xf3\x98\x96\x99\xe0\xb8\xba\xf3\x9a\x8d\x9a\xe3\x80\x82\xda\xba4"); }
1699test { try parseIDNAFail("xn--o4c1723h8g85gt4ya.xn--4-dvc"); }
1700test { try parseIDNAFail("\xea\xa5\x93.\xcc\xbd\xf0\x91\x82\xbd\xe9\xa6\x8b"); }
1701test { try parseIDNAFail("xn--3j9a.xn--bua0708eqzrd"); }
1702test { try parseIDNAFail("\xf3\x88\xab\x9d\xf2\xaa\x9b\xb8\xe2\x80\x8d\xef\xbd\xa1\xe4\x9c\x96"); }
1703test { try parseIDNAFail("\xf3\x88\xab\x9d\xf2\xaa\x9b\xb8\xe2\x80\x8d\xe3\x80\x82\xe4\x9c\x96"); }
1704test { try parseIDNAFail("xn--g138cxw05a.xn--k0o"); }
1705test { try parseIDNAFail("xn--1ug30527h9mxi.xn--k0o"); }
1706test { try parseIDNAFail("\xe1\xa1\xaf\xe2\x9a\x89\xe5\xa7\xb6\xf0\x9f\x84\x89\xef\xbc\x8e\xdb\xb7\xe2\x80\x8d\xf0\x9f\x8e\xaa\xe2\x80\x8d"); }
1707test { try parseIDNAFail("\xe1\xa1\xaf\xe2\x9a\x89\xe5\xa7\xb68,.\xdb\xb7\xe2\x80\x8d\xf0\x9f\x8e\xaa\xe2\x80\x8d"); }
1708test { try parseIDNAFail("xn--8,-g9oy26fzu4d.xn--kmb859ja94998b"); }
1709test { try parseIDNAFail("xn--c9e433epi4b3j20a.xn--kmb6733w"); }
1710test { try parseIDNAFail("xn--c9e433epi4b3j20a.xn--kmb859ja94998b"); }
1711test { try parseIDNAFail("\xe1\x8d\x9f\xe1\xa1\x88\xe2\x80\x8c\xef\xbc\x8e\xef\xb8\x92-\xf0\x96\xbe\x90-"); }
1712test { try parseIDNAFail("\xe1\x8d\x9f\xe1\xa1\x88\xe2\x80\x8c.\xe3\x80\x82-\xf0\x96\xbe\x90-"); }
1713test { try parseIDNAFail("xn--b7d82w..xn-----pe4u"); }
1714test { try parseIDNAFail("xn--b7d82wo4h..xn-----pe4u"); }
1715test { try parseIDNAFail("xn--b7d82w.xn-----c82nz547a"); }
1716test { try parseIDNAFail("xn--b7d82wo4h.xn-----c82nz547a"); }
1717test { try parseIDNAFail("\xf0\x9d\xa9\x9c\xe3\x80\x82-\xe0\xad\x8d\xe1\x82\xab"); }
1718test { try parseIDNAFail("\xf0\x9d\xa9\x9c\xe3\x80\x82-\xe0\xad\x8d\xe2\xb4\x8b"); }
1719test { try parseIDNAFail("xn--792h.xn----bse820x"); }
1720test { try parseIDNAFail("xn--792h.xn----bse632b"); }
1721test { try parseIDNAFail("\xf0\x9d\x9f\xb5\xe9\x9a\x81\xe2\xaf\xae\xef\xbc\x8e\xe1\xa0\x8d\xe2\x80\x8c"); }
1722test { try parseIDNAFail("9\xe9\x9a\x81\xe2\xaf\xae.\xe1\xa0\x8d\xe2\x80\x8c"); }
1723test { try parseIDNAFail("xn--9-mfs8024b.xn--0ug"); }
1724test { try parseIDNAFail("\xe1\xae\xac\xe1\x82\xac\xe2\x80\x8c\xcc\xa5\xe3\x80\x82\xf0\x9d\x9f\xb8"); }
1725test { try parseIDNAFail("xn--mta176jjjm.c"); }
1726test { try parseIDNAFail("xn--mta176j97cl2q.c"); }
1727test { try parseIDNAFail("\xe1\xae\xac\xe2\xb4\x8c\xe2\x80\x8c\xcc\xa5\xe3\x80\x82\xf0\x9d\x9f\xb8"); }
1728test { try parseIDNAFail("xn--mta930emri.c"); }
1729test { try parseIDNAFail("xn--mta930emribme.c"); }
1730test { try parseIDNAFail("\xf3\xa0\x84\x81\xcd\x9f\xe2\xbe\xb6\xef\xbd\xa1\xe2\x82\x87\xef\xb8\x92\xeb\x88\x87\xe2\x89\xae"); }
1731test { try parseIDNAFail("\xf3\xa0\x84\x81\xcd\x9f\xe2\xbe\xb6\xef\xbd\xa1\xe2\x82\x87\xef\xb8\x92\xe1\x84\x82\xe1\x85\xae\xe1\x86\xaa<\xcc\xb8"); }
1732test { try parseIDNAFail("\xf3\xa0\x84\x81\xcd\x9f\xe9\xa3\x9b\xe3\x80\x827\xe3\x80\x82\xeb\x88\x87\xe2\x89\xae"); }
1733test { try parseIDNAFail("\xf3\xa0\x84\x81\xcd\x9f\xe9\xa3\x9b\xe3\x80\x827\xe3\x80\x82\xe1\x84\x82\xe1\x85\xae\xe1\x86\xaa<\xcc\xb8"); }
1734test { try parseIDNAFail("xn--9ua0567e.7.xn--gdh6767c"); }
1735test { try parseIDNAFail("xn--9ua0567e.xn--7-ngou006d1ttc"); }
1736test { try parseIDNAFail("\xe2\x80\x8c\xe3\x80\x82\xef\xbe\xa0\xe0\xbe\x84\xe0\xbe\x96"); }
1737test { try parseIDNAFail("\xe2\x80\x8c\xe3\x80\x82\xe1\x85\xa0\xe0\xbe\x84\xe0\xbe\x96"); }
1738test { try parseIDNAFail(".xn--3ed0b"); }
1739test { try parseIDNAFail("xn--0ug.xn--3ed0b"); }
1740test { try parseIDNAFail(".xn--3ed0b20h"); }
1741test { try parseIDNAFail("xn--0ug.xn--3ed0b20h"); }
1742test { try parseIDNAFail(".xn--3ed0by082k"); }
1743test { try parseIDNAFail("xn--0ug.xn--3ed0by082k"); }
1744test { try parseIDNAFail("\xe2\x89\xaf\xf2\x8d\x98\x85\xef\xbc\x8e\xe2\x80\x8d\xf0\x90\x85\xbc\xf2\xb2\x87\x9b"); }
1745test { try parseIDNAFail(">\xcc\xb8\xf2\x8d\x98\x85\xef\xbc\x8e\xe2\x80\x8d\xf0\x90\x85\xbc\xf2\xb2\x87\x9b"); }
1746test { try parseIDNAFail("\xe2\x89\xaf\xf2\x8d\x98\x85.\xe2\x80\x8d\xf0\x90\x85\xbc\xf2\xb2\x87\x9b"); }
1747test { try parseIDNAFail(">\xcc\xb8\xf2\x8d\x98\x85.\xe2\x80\x8d\xf0\x90\x85\xbc\xf2\xb2\x87\x9b"); }
1748test { try parseIDNAFail("xn--hdh84488f.xn--xy7cw2886b"); }
1749test { try parseIDNAFail("xn--hdh84488f.xn--1ug8099fbjp4e"); }
1750test { try parseIDNAFail("xn--d5a07sn4u297k.xn--2e1b"); }
1751test { try parseIDNAFail("\xea\xa3\xaa\xef\xbd\xa1\xf0\x96\x84\xbf\xf0\x91\x86\xbe\xf3\xa0\x87\x97"); }
1752test { try parseIDNAFail("\xea\xa3\xaa\xe3\x80\x82\xf0\x96\x84\xbf\xf0\x91\x86\xbe\xf3\xa0\x87\x97"); }
1753test { try parseIDNAFail("xn--3g9a.xn--ud1dz07k"); }
1754test { try parseIDNAFail("\xf3\x87\x93\x93\xf0\x91\x9a\xb3\xe3\x80\x82\xf1\x90\xb7\xbf\xe2\x89\xaf\xe2\xbe\x87"); }
1755test { try parseIDNAFail("\xf3\x87\x93\x93\xf0\x91\x9a\xb3\xe3\x80\x82\xf1\x90\xb7\xbf>\xcc\xb8\xe2\xbe\x87"); }
1756test { try parseIDNAFail("\xf3\x87\x93\x93\xf0\x91\x9a\xb3\xe3\x80\x82\xf1\x90\xb7\xbf\xe2\x89\xaf\xe8\x88\x9b"); }
1757test { try parseIDNAFail("\xf3\x87\x93\x93\xf0\x91\x9a\xb3\xe3\x80\x82\xf1\x90\xb7\xbf>\xcc\xb8\xe8\x88\x9b"); }
1758test { try parseIDNAFail("xn--3e2d79770c.xn--hdh0088abyy1c"); }
1759test { try parseIDNAFail("\xf1\xa1\x85\x88\xe7\xa0\xaa\xe2\x89\xaf\xe1\xa2\x91\xef\xbd\xa1\xe2\x89\xaf\xf0\x9d\xa9\x9a\xf2\x93\xb4\x94\xe2\x80\x8c"); }
1760test { try parseIDNAFail("\xf1\xa1\x85\x88\xe7\xa0\xaa>\xcc\xb8\xe1\xa2\x91\xef\xbd\xa1>\xcc\xb8\xf0\x9d\xa9\x9a\xf2\x93\xb4\x94\xe2\x80\x8c"); }
1761test { try parseIDNAFail("\xf1\xa1\x85\x88\xe7\xa0\xaa\xe2\x89\xaf\xe1\xa2\x91\xe3\x80\x82\xe2\x89\xaf\xf0\x9d\xa9\x9a\xf2\x93\xb4\x94\xe2\x80\x8c"); }
1762test { try parseIDNAFail("\xf1\xa1\x85\x88\xe7\xa0\xaa>\xcc\xb8\xe1\xa2\x91\xe3\x80\x82>\xcc\xb8\xf0\x9d\xa9\x9a\xf2\x93\xb4\x94\xe2\x80\x8c"); }
1763test { try parseIDNAFail("xn--bbf561cf95e57y3e.xn--hdh0834o7mj6b"); }
1764test { try parseIDNAFail("xn--bbf561cf95e57y3e.xn--0ugz6gc910ejro8c"); }
1765test { try parseIDNAFail("\xe1\x83\x85.\xf0\x91\x84\xb3\xe3\x8a\xb8"); }
1766test { try parseIDNAFail("\xe1\x83\x85.\xf0\x91\x84\xb343"); }
1767test { try parseIDNAFail("\xe2\xb4\xa5.\xf0\x91\x84\xb343"); }
1768test { try parseIDNAFail("xn--tlj.xn--43-274o"); }
1769test { try parseIDNAFail("\xe2\xb4\xa5.\xf0\x91\x84\xb3\xe3\x8a\xb8"); }
1770test { try parseIDNAFail("xn--9nd.xn--43-274o"); }
1771test { try parseIDNAFail("\xf1\x97\xaa\xa8\xf3\xa0\x84\x89\xef\xbe\xa0\xe0\xbe\xb7.\xf1\xb8\x9e\xb0\xea\xa5\x93"); }
1772test { try parseIDNAFail("\xf1\x97\xaa\xa8\xf3\xa0\x84\x89\xe1\x85\xa0\xe0\xbe\xb7.\xf1\xb8\x9e\xb0\xea\xa5\x93"); }
1773test { try parseIDNAFail("xn--kgd72212e.xn--3j9au7544a"); }
1774test { try parseIDNAFail("xn--kgd36f9z57y.xn--3j9au7544a"); }
1775test { try parseIDNAFail("xn--kgd7493jee34a.xn--3j9au7544a"); }
1776test { try parseIDNAFail("\xd8\x98.\xdb\xb3\xe2\x80\x8c\xea\xa5\x93"); }
1777test { try parseIDNAFail("xn--6fb.xn--gmb0524f"); }
1778test { try parseIDNAFail("xn--6fb.xn--gmb469jjf1h"); }
1779test { try parseIDNAFail("\xe1\xa1\x8c\xef\xbc\x8e\xef\xb8\x92\xe1\xa2\x91"); }
1780test { try parseIDNAFail("xn--c8e.xn--bbf9168i"); }
1781test { try parseIDNAFail("\xf0\x9e\xb7\x8f\xe3\x80\x82\xe1\xa0\xa2\xf2\x93\x98\x86"); }
1782test { try parseIDNAFail("xn--hd7h.xn--46e66060j"); }
1783test { try parseIDNAFail("\xf2\x8c\x8b\x94\xf3\xa0\x86\x8e\xf3\xa0\x86\x97\xf0\x91\xb2\x95\xe3\x80\x82\xe2\x89\xae"); }
1784test { try parseIDNAFail("\xf2\x8c\x8b\x94\xf3\xa0\x86\x8e\xf3\xa0\x86\x97\xf0\x91\xb2\x95\xe3\x80\x82<\xcc\xb8"); }
1785test { try parseIDNAFail("xn--4m3dv4354a.xn--gdh"); }
1786test { try parseIDNAFail("\xf3\xa0\x86\xa6.\xe0\xa3\xa3\xe6\x9a\x80\xe2\x89\xa0"); }
1787test { try parseIDNAFail("\xf3\xa0\x86\xa6.\xe0\xa3\xa3\xe6\x9a\x80=\xcc\xb8"); }
1788test { try parseIDNAFail(".xn--m0b461k3g2c"); }
1789test { try parseIDNAFail("\xe4\x82\xb9\xf3\xbe\x96\x85\xf0\x90\x8b\xa6\xef\xbc\x8e\xe2\x80\x8d"); }
1790test { try parseIDNAFail("\xe4\x82\xb9\xf3\xbe\x96\x85\xf0\x90\x8b\xa6.\xe2\x80\x8d"); }
1791test { try parseIDNAFail("xn--0on3543c5981i."); }
1792test { try parseIDNAFail("xn--0on3543c5981i.xn--1ug"); }
1793test { try parseIDNAFail("\xef\xb8\x92\xef\xbd\xa1\xe1\x82\xa3\xe2\x89\xaf"); }
1794test { try parseIDNAFail("\xef\xb8\x92\xef\xbd\xa1\xe1\x82\xa3>\xcc\xb8"); }
1795test { try parseIDNAFail("\xef\xb8\x92\xef\xbd\xa1\xe2\xb4\x83>\xcc\xb8"); }
1796test { try parseIDNAFail("\xef\xb8\x92\xef\xbd\xa1\xe2\xb4\x83\xe2\x89\xaf"); }
1797test { try parseIDNAFail("xn--y86c.xn--hdh782b"); }
1798test { try parseIDNAFail("..xn--bnd622g"); }
1799test { try parseIDNAFail("xn--y86c.xn--bnd622g"); }
1800test { try parseIDNAFail("\xe7\xae\x83\xe1\x83\x81-\xf3\xa0\x81\x9d\xef\xbd\xa1\xe2\x89\xa0-\xf0\x9f\xa4\x96"); }
1801test { try parseIDNAFail("\xe7\xae\x83\xe1\x83\x81-\xf3\xa0\x81\x9d\xef\xbd\xa1=\xcc\xb8-\xf0\x9f\xa4\x96"); }
1802test { try parseIDNAFail("\xe7\xae\x83\xe1\x83\x81-\xf3\xa0\x81\x9d\xe3\x80\x82\xe2\x89\xa0-\xf0\x9f\xa4\x96"); }
1803test { try parseIDNAFail("\xe7\xae\x83\xe1\x83\x81-\xf3\xa0\x81\x9d\xe3\x80\x82=\xcc\xb8-\xf0\x9f\xa4\x96"); }
1804test { try parseIDNAFail("\xe7\xae\x83\xe2\xb4\xa1-\xf3\xa0\x81\x9d\xe3\x80\x82=\xcc\xb8-\xf0\x9f\xa4\x96"); }
1805test { try parseIDNAFail("\xe7\xae\x83\xe2\xb4\xa1-\xf3\xa0\x81\x9d\xe3\x80\x82\xe2\x89\xa0-\xf0\x9f\xa4\x96"); }
1806test { try parseIDNAFail("xn----4wsr321ay823p.xn----tfot873s"); }
1807test { try parseIDNAFail("\xe7\xae\x83\xe2\xb4\xa1-\xf3\xa0\x81\x9d\xef\xbd\xa1=\xcc\xb8-\xf0\x9f\xa4\x96"); }
1808test { try parseIDNAFail("\xe7\xae\x83\xe2\xb4\xa1-\xf3\xa0\x81\x9d\xef\xbd\xa1\xe2\x89\xa0-\xf0\x9f\xa4\x96"); }
1809test { try parseIDNAFail("xn----11g3013fy8x5m.xn----tfot873s"); }
1810test { try parseIDNAFail("\xe1\x80\xba\xe2\x80\x8d\xe2\x80\x8c\xe3\x80\x82-\xe2\x80\x8c"); }
1811test { try parseIDNAFail("xn--bkd.-"); }
1812test { try parseIDNAFail("xn--bkd412fca.xn----sgn"); }
1813test { try parseIDNAFail("\xef\xb8\x92\xef\xbd\xa1\xe1\xad\x84\xe1\xa1\x89"); }
1814test { try parseIDNAFail("\xe3\x80\x82\xe3\x80\x82\xe1\xad\x84\xe1\xa1\x89"); }
1815test { try parseIDNAFail("..xn--87e93m"); }
1816test { try parseIDNAFail("xn--y86c.xn--87e93m"); }
1817test { try parseIDNAFail("-\xe1\xae\xab\xef\xb8\x92\xe2\x80\x8d.\xf1\x92\xb6\x88\xf1\xa5\xb9\x93"); }
1818test { try parseIDNAFail("-\xe1\xae\xab\xe3\x80\x82\xe2\x80\x8d.\xf1\x92\xb6\x88\xf1\xa5\xb9\x93"); }
1819test { try parseIDNAFail("xn----qml..xn--x50zy803a"); }
1820test { try parseIDNAFail("xn----qml.xn--1ug.xn--x50zy803a"); }
1821test { try parseIDNAFail("xn----qml1407i.xn--x50zy803a"); }
1822test { try parseIDNAFail("xn----qmlv7tw180a.xn--x50zy803a"); }
1823test { try parseIDNAFail("\xf3\xa0\xa6\xae.\xe2\x89\xaf\xf0\x9e\x80\x86"); }
1824test { try parseIDNAFail("\xf3\xa0\xa6\xae.>\xcc\xb8\xf0\x9e\x80\x86"); }
1825test { try parseIDNAFail("xn--t546e.xn--hdh5166o"); }
1826test { try parseIDNAFail("xn--skb.xn--osd737a"); }
1827test { try parseIDNAFail("\xe3\xa8\x9b\xf0\x98\xb1\x8e.\xef\xb8\x92\xf0\x9d\x9f\x95\xe0\xb4\x81"); }
1828test { try parseIDNAFail("xn--mbm8237g.xn--7-7hf1526p"); }
1829test { try parseIDNAFail("\xc3\x9f\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6"); }
1830test { try parseIDNAFail("\xc3\x9f\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6"); }
1831test { try parseIDNAFail("\xc3\x9f\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }
1832test { try parseIDNAFail("SS\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6"); }
1833test { try parseIDNAFail("ss\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }
1834test { try parseIDNAFail("Ss\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96"); }
1835test { try parseIDNAFail("xn--ss-4ep585bkm5p.xn--ifh802b6a"); }
1836test { try parseIDNAFail("xn--zca682johfi89m.xn--ifh802b6a"); }
1837test { try parseIDNAFail("\xc3\x9f\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }
1838test { try parseIDNAFail("SS\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6"); }
1839test { try parseIDNAFail("ss\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }
1840test { try parseIDNAFail("Ss\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96"); }
1841test { try parseIDNAFail("xn--ss-4epx629f.xn--5nd703gyrh"); }
1842test { try parseIDNAFail("xn--ss-4ep585bkm5p.xn--5nd703gyrh"); }
1843test { try parseIDNAFail("xn--ss-4epx629f.xn--undv409k"); }
1844test { try parseIDNAFail("xn--ss-4ep585bkm5p.xn--undv409k"); }
1845test { try parseIDNAFail("xn--zca682johfi89m.xn--undv409k"); }
1846test { try parseIDNAFail("\xe2\x80\x8d\xe3\x80\x82\xcf\x82\xf3\xa0\x81\x89"); }
1847test { try parseIDNAFail("\xe2\x80\x8d\xe3\x80\x82\xce\xa3\xf3\xa0\x81\x89"); }
1848test { try parseIDNAFail("\xe2\x80\x8d\xe3\x80\x82\xcf\x83\xf3\xa0\x81\x89"); }
1849test { try parseIDNAFail(".xn--4xa24344p"); }
1850test { try parseIDNAFail("xn--1ug.xn--4xa24344p"); }
1851test { try parseIDNAFail("xn--1ug.xn--3xa44344p"); }
1852test { try parseIDNAFail("\xe2\x92\x92\xf2\xa8\x98\x99\xf2\xb3\xb3\xa0\xf0\x91\x93\x80.-\xf3\x9e\xa1\x8a"); }
1853test { try parseIDNAFail("11.\xf2\xa8\x98\x99\xf2\xb3\xb3\xa0\xf0\x91\x93\x80.-\xf3\x9e\xa1\x8a"); }
1854test { try parseIDNAFail("11.xn--uz1d59632bxujd.xn----x310m"); }
1855test { try parseIDNAFail("xn--3shy698frsu9dt1me.xn----x310m"); }
1856test { try parseIDNAFail("-\xef\xbd\xa1\xe2\x80\x8d"); }
1857test { try parseIDNAFail("-\xe3\x80\x82\xe2\x80\x8d"); }
1858test { try parseIDNAFail("-.xn--1ug"); }
1859test { try parseIDNAFail("\xe1\x89\xac\xf2\x94\xa0\xbc\xf1\x81\x97\xb6\xef\xbd\xa1\xf0\x90\xa8\xac\xf0\x9d\x9f\xa0"); }
1860test { try parseIDNAFail("\xe1\x89\xac\xf2\x94\xa0\xbc\xf1\x81\x97\xb6\xe3\x80\x82\xf0\x90\xa8\xac8"); }
1861test { try parseIDNAFail("xn--d0d41273c887z.xn--8-ob5i"); }
1862test { try parseIDNAFail("\xcf\x82\xe2\x80\x8d-.\xe1\x83\x83\xf0\xa6\x9f\x99"); }
1863test { try parseIDNAFail("\xcf\x82\xe2\x80\x8d-.\xe2\xb4\xa3\xf0\xa6\x9f\x99"); }
1864test { try parseIDNAFail("\xce\xa3\xe2\x80\x8d-.\xe1\x83\x83\xf0\xa6\x9f\x99"); }
1865test { try parseIDNAFail("\xcf\x83\xe2\x80\x8d-.\xe2\xb4\xa3\xf0\xa6\x9f\x99"); }
1866test { try parseIDNAFail("xn----zmb048s.xn--rlj2573p"); }
1867test { try parseIDNAFail("xn----xmb348s.xn--rlj2573p"); }
1868test { try parseIDNAFail("xn----zmb.xn--7nd64871a"); }
1869test { try parseIDNAFail("xn----zmb048s.xn--7nd64871a"); }
1870test { try parseIDNAFail("xn----xmb348s.xn--7nd64871a"); }
1871test { try parseIDNAFail("\xf3\x85\xac\xbd.\xe8\xa0\x94"); }
1872test { try parseIDNAFail("xn--g747d.xn--xl2a"); }
1873test { try parseIDNAFail("\xe0\xa3\xa6\xe2\x80\x8d\xef\xbc\x8e\xeb\xbc\xbd"); }
1874test { try parseIDNAFail("\xe0\xa3\xa6\xe2\x80\x8d\xef\xbc\x8e\xe1\x84\x88\xe1\x85\xa8\xe1\x87\x80"); }
1875test { try parseIDNAFail("\xe0\xa3\xa6\xe2\x80\x8d.\xeb\xbc\xbd"); }
1876test { try parseIDNAFail("\xe0\xa3\xa6\xe2\x80\x8d.\xe1\x84\x88\xe1\x85\xa8\xe1\x87\x80"); }
1877test { try parseIDNAFail("xn--p0b.xn--e43b"); }
1878test { try parseIDNAFail("xn--p0b869i.xn--e43b"); }
1879test { try parseIDNAFail("\xf1\x8d\xa8\xbd\xef\xbc\x8e\xf1\x8b\xb8\x95"); }
1880test { try parseIDNAFail("\xf1\x8d\xa8\xbd.\xf1\x8b\xb8\x95"); }
1881test { try parseIDNAFail("xn--pr3x.xn--rv7w"); }
1882test { try parseIDNAFail("\xf0\x90\xaf\x80\xf0\x90\xb8\x89\xf0\x9e\xa7\x8f\xe3\x80\x82\xf1\xa2\x9a\xa7\xe2\x82\x84\xe1\x82\xab\xf1\x82\xb9\xab"); }
1883test { try parseIDNAFail("\xf0\x90\xaf\x80\xf0\x90\xb8\x89\xf0\x9e\xa7\x8f\xe3\x80\x82\xf1\xa2\x9a\xa74\xe1\x82\xab\xf1\x82\xb9\xab"); }
1884test { try parseIDNAFail("\xf0\x90\xaf\x80\xf0\x90\xb8\x89\xf0\x9e\xa7\x8f\xe3\x80\x82\xf1\xa2\x9a\xa74\xe2\xb4\x8b\xf1\x82\xb9\xab"); }
1885test { try parseIDNAFail("xn--039c42bq865a.xn--4-wvs27840bnrzm"); }
1886test { try parseIDNAFail("\xf0\x90\xaf\x80\xf0\x90\xb8\x89\xf0\x9e\xa7\x8f\xe3\x80\x82\xf1\xa2\x9a\xa7\xe2\x82\x84\xe2\xb4\x8b\xf1\x82\xb9\xab"); }
1887test { try parseIDNAFail("xn--039c42bq865a.xn--4-t0g49302fnrzm"); }
1888test { try parseIDNAFail("\xf0\x9d\x9f\x93\xe3\x80\x82\xdb\x97"); }
1889test { try parseIDNAFail("5\xe3\x80\x82\xdb\x97"); }
1890test { try parseIDNAFail("5.xn--nlb"); }
1891test { try parseIDNAFail("\xe2\x80\x8c\xf2\xba\xb8\xa9.\xe2\xbe\x95"); }
1892test { try parseIDNAFail("\xe2\x80\x8c\xf2\xba\xb8\xa9.\xe8\xb0\xb7"); }
1893test { try parseIDNAFail("xn--i183d.xn--6g3a"); }
1894test { try parseIDNAFail("xn--0ug26167i.xn--6g3a"); }
1895test { try parseIDNAFail("\xef\xb8\x92\xf3\x8e\xb0\x87\xe2\x80\x8d.-\xdc\xbc\xe2\x80\x8c"); }
1896test { try parseIDNAFail("\xe3\x80\x82\xf3\x8e\xb0\x87\xe2\x80\x8d.-\xdc\xbc\xe2\x80\x8c"); }
1897test { try parseIDNAFail(".xn--hh50e.xn----t2c"); }
1898test { try parseIDNAFail(".xn--1ug05310k.xn----t2c071q"); }
1899test { try parseIDNAFail("xn--y86c71305c.xn----t2c"); }
1900test { try parseIDNAFail("xn--1ug1658ftw26f.xn----t2c071q"); }
1901test { try parseIDNAFail("\xe2\x80\x8d\xef\xbc\x8e\xf0\x9d\x9f\x97"); }
1902test { try parseIDNAFail("\xe2\x80\x8d.j"); }
1903test { try parseIDNAFail("\xe2\x80\x8d.J"); }
1904test { try parseIDNAFail("xn--1ug.j"); }
1905test { try parseIDNAFail("\xe1\x82\xad\xf0\xbf\xa3\x8d\xea\xa1\xa8\xd6\xae\xe3\x80\x82\xe1\x82\xbe\xe2\x80\x8c\xe2\x80\x8c"); }
1906test { try parseIDNAFail("\xe2\xb4\x8d\xf0\xbf\xa3\x8d\xea\xa1\xa8\xd6\xae\xe3\x80\x82\xe2\xb4\x9e\xe2\x80\x8c\xe2\x80\x8c"); }
1907test { try parseIDNAFail("xn--5cb172r175fug38a.xn--mlj"); }
1908test { try parseIDNAFail("xn--5cb172r175fug38a.xn--0uga051h"); }
1909test { try parseIDNAFail("xn--5cb347co96jug15a.xn--2nd"); }
1910test { try parseIDNAFail("xn--5cb347co96jug15a.xn--2nd059ea"); }
1911test { try parseIDNAFail("\xf0\x90\x8b\xb0\xe3\x80\x82\xf3\x91\x93\xb1"); }
1912test { try parseIDNAFail("xn--k97c.xn--q031e"); }
1913test { try parseIDNAFail("\xe0\xa3\x9f\xe1\x82\xab\xf0\xb6\xbf\xb8\xea\xb7\xa4\xef\xbc\x8e\xf2\xa0\x85\xbc\xf0\x9d\x9f\xa2\xed\x9c\xaa\xe0\xab\xa3"); }
1914test { try parseIDNAFail("\xe0\xa3\x9f\xe1\x82\xab\xf0\xb6\xbf\xb8\xe1\x84\x80\xe1\x85\xb2\xe1\x86\xaf\xef\xbc\x8e\xf2\xa0\x85\xbc\xf0\x9d\x9f\xa2\xe1\x84\x92\xe1\x85\xb1\xe1\x86\xb9\xe0\xab\xa3"); }
1915test { try parseIDNAFail("\xe0\xa3\x9f\xe1\x82\xab\xf0\xb6\xbf\xb8\xea\xb7\xa4.\xf2\xa0\x85\xbc0\xed\x9c\xaa\xe0\xab\xa3"); }
1916test { try parseIDNAFail("\xe0\xa3\x9f\xe1\x82\xab\xf0\xb6\xbf\xb8\xe1\x84\x80\xe1\x85\xb2\xe1\x86\xaf.\xf2\xa0\x85\xbc0\xe1\x84\x92\xe1\x85\xb1\xe1\x86\xb9\xe0\xab\xa3"); }
1917test { try parseIDNAFail("\xe0\xa3\x9f\xe2\xb4\x8b\xf0\xb6\xbf\xb8\xe1\x84\x80\xe1\x85\xb2\xe1\x86\xaf.\xf2\xa0\x85\xbc0\xe1\x84\x92\xe1\x85\xb1\xe1\x86\xb9\xe0\xab\xa3"); }
1918test { try parseIDNAFail("\xe0\xa3\x9f\xe2\xb4\x8b\xf0\xb6\xbf\xb8\xea\xb7\xa4.\xf2\xa0\x85\xbc0\xed\x9c\xaa\xe0\xab\xa3"); }
1919test { try parseIDNAFail("xn--i0b436pkl2g2h42a.xn--0-8le8997mulr5f"); }
1920test { try parseIDNAFail("\xe0\xa3\x9f\xe2\xb4\x8b\xf0\xb6\xbf\xb8\xe1\x84\x80\xe1\x85\xb2\xe1\x86\xaf\xef\xbc\x8e\xf2\xa0\x85\xbc\xf0\x9d\x9f\xa2\xe1\x84\x92\xe1\x85\xb1\xe1\x86\xb9\xe0\xab\xa3"); }
1921test { try parseIDNAFail("\xe0\xa3\x9f\xe2\xb4\x8b\xf0\xb6\xbf\xb8\xea\xb7\xa4\xef\xbc\x8e\xf2\xa0\x85\xbc\xf0\x9d\x9f\xa2\xed\x9c\xaa\xe0\xab\xa3"); }
1922test { try parseIDNAFail("xn--i0b601b6r7l2hs0a.xn--0-8le8997mulr5f"); }
1923test { try parseIDNAFail("\xde\x84\xef\xbc\x8e\xf0\x9e\xa1\x9d\xd8\x81"); }
1924test { try parseIDNAFail("\xde\x84.\xf0\x9e\xa1\x9d\xd8\x81"); }
1925test { try parseIDNAFail("xn--lqb.xn--jfb1808v"); }
1926test { try parseIDNAFail("\xe0\xab\x8d\xe2\x82\x83.8\xea\xa3\x84\xe2\x80\x8d\xf0\x9f\x83\xa4"); }
1927test { try parseIDNAFail("\xe0\xab\x8d3.8\xea\xa3\x84\xe2\x80\x8d\xf0\x9f\x83\xa4"); }
1928test { try parseIDNAFail("xn--3-yke.xn--8-sl4et308f"); }
1929test { try parseIDNAFail("xn--3-yke.xn--8-ugnv982dbkwm"); }
1930test { try parseIDNAFail("\xea\xa1\x95\xe2\x89\xa0\xe1\x81\x9e\xf3\xae\xbf\xb1\xef\xbd\xa1\xf0\x90\xb5\xa7\xf3\xa0\x84\xab\xef\xbe\xa0"); }
1931test { try parseIDNAFail("\xea\xa1\x95=\xcc\xb8\xe1\x81\x9e\xf3\xae\xbf\xb1\xef\xbd\xa1\xf0\x90\xb5\xa7\xf3\xa0\x84\xab\xef\xbe\xa0"); }
1932test { try parseIDNAFail("\xea\xa1\x95\xe2\x89\xa0\xe1\x81\x9e\xf3\xae\xbf\xb1\xe3\x80\x82\xf0\x90\xb5\xa7\xf3\xa0\x84\xab\xe1\x85\xa0"); }
1933test { try parseIDNAFail("\xea\xa1\x95=\xcc\xb8\xe1\x81\x9e\xf3\xae\xbf\xb1\xe3\x80\x82\xf0\x90\xb5\xa7\xf3\xa0\x84\xab\xe1\x85\xa0"); }
1934test { try parseIDNAFail("xn--cld333gn31h0158l.xn--3g0d"); }
1935test { try parseIDNAFail("\xe9\xb1\x8a\xe3\x80\x82\xe2\x80\x8c"); }
1936test { try parseIDNAFail("xn--rt6a.xn--0ug"); }
1937test { try parseIDNAFail("\xe2\x80\x8c\xf1\x92\x83\xa0\xef\xbc\x8e\xe2\x80\x8d"); }
1938test { try parseIDNAFail("\xe2\x80\x8c\xf1\x92\x83\xa0.\xe2\x80\x8d"); }
1939test { try parseIDNAFail("xn--dj8y."); }
1940test { try parseIDNAFail("xn--0ugz7551c.xn--1ug"); }
1941test { try parseIDNAFail("\xf0\x91\x87\x80.\xf3\xa0\xa8\xb1"); }
1942test { try parseIDNAFail("xn--wd1d.xn--k946e"); }
1943test { try parseIDNAFail("\xe2\x80\x8c\xe1\x82\xba\xef\xbd\xa1\xcf\x82"); }
1944test { try parseIDNAFail("\xe2\x80\x8c\xe1\x82\xba\xe3\x80\x82\xcf\x82"); }
1945test { try parseIDNAFail("\xe2\x80\x8c\xe2\xb4\x9a\xe3\x80\x82\xcf\x82"); }
1946test { try parseIDNAFail("\xe2\x80\x8c\xe1\x82\xba\xe3\x80\x82\xce\xa3"); }
1947test { try parseIDNAFail("\xe2\x80\x8c\xe2\xb4\x9a\xe3\x80\x82\xcf\x83"); }
1948test { try parseIDNAFail("xn--0ug262c.xn--4xa"); }
1949test { try parseIDNAFail("xn--0ug262c.xn--3xa"); }
1950test { try parseIDNAFail("\xe2\x80\x8c\xe2\xb4\x9a\xef\xbd\xa1\xcf\x82"); }
1951test { try parseIDNAFail("\xe2\x80\x8c\xe1\x82\xba\xef\xbd\xa1\xce\xa3"); }
1952test { try parseIDNAFail("\xe2\x80\x8c\xe2\xb4\x9a\xef\xbd\xa1\xcf\x83"); }
1953test { try parseIDNAFail("xn--ynd.xn--4xa"); }
1954test { try parseIDNAFail("xn--ynd.xn--3xa"); }
1955test { try parseIDNAFail("xn--ynd759e.xn--4xa"); }
1956test { try parseIDNAFail("xn--ynd759e.xn--3xa"); }
1957test { try parseIDNAFail("\xe2\x80\x8d\xe2\xbe\x95\xe3\x80\x82\xe2\x80\x8c\xcc\x90\xea\xa5\x93\xea\xa1\x8e"); }
1958test { try parseIDNAFail("\xe2\x80\x8d\xe2\xbe\x95\xe3\x80\x82\xe2\x80\x8c\xea\xa5\x93\xcc\x90\xea\xa1\x8e"); }
1959test { try parseIDNAFail("\xe2\x80\x8d\xe8\xb0\xb7\xe3\x80\x82\xe2\x80\x8c\xea\xa5\x93\xcc\x90\xea\xa1\x8e"); }
1960test { try parseIDNAFail("xn--6g3a.xn--0sa8175flwa"); }
1961test { try parseIDNAFail("xn--1ug0273b.xn--0sa359l6n7g13a"); }
1962test { try parseIDNAFail("\xf2\xac\xa8\xa9\xe1\x82\xb3\xe2\x9d\x93\xef\xbd\xa1\xf0\x91\x84\xa8"); }
1963test { try parseIDNAFail("\xf2\xac\xa8\xa9\xe1\x82\xb3\xe2\x9d\x93\xe3\x80\x82\xf0\x91\x84\xa8"); }
1964test { try parseIDNAFail("\xf2\xac\xa8\xa9\xe2\xb4\x93\xe2\x9d\x93\xe3\x80\x82\xf0\x91\x84\xa8"); }
1965test { try parseIDNAFail("xn--8di78qvw32y.xn--k80d"); }
1966test { try parseIDNAFail("\xf2\xac\xa8\xa9\xe2\xb4\x93\xe2\x9d\x93\xef\xbd\xa1\xf0\x91\x84\xa8"); }
1967test { try parseIDNAFail("xn--rnd896i0j14q.xn--k80d"); }
1968test { try parseIDNAFail("\xe1\x9f\xbf\xef\xbd\xa1\xf0\x9e\xac\xb3"); }
1969test { try parseIDNAFail("\xe1\x9f\xbf\xe3\x80\x82\xf0\x9e\xac\xb3"); }
1970test { try parseIDNAFail("xn--45e.xn--et6h"); }
1971test { try parseIDNAFail("\xd9\x92\xe2\x80\x8d\xef\xbd\xa1\xe0\xb3\x8d\xf0\x91\x9a\xb3"); }
1972test { try parseIDNAFail("\xd9\x92\xe2\x80\x8d\xe3\x80\x82\xe0\xb3\x8d\xf0\x91\x9a\xb3"); }
1973test { try parseIDNAFail("xn--uhb.xn--8tc4527k"); }
1974test { try parseIDNAFail("xn--uhb882k.xn--8tc4527k"); }
1975test { try parseIDNAFail("\xc3\x9f\xf0\xb0\x80\xbb\xf1\x86\xac\x97\xef\xbd\xa1\xf0\x9d\xa9\xa8\xf0\x9f\x95\xae\xc3\x9f"); }
1976test { try parseIDNAFail("\xc3\x9f\xf0\xb0\x80\xbb\xf1\x86\xac\x97\xe3\x80\x82\xf0\x9d\xa9\xa8\xf0\x9f\x95\xae\xc3\x9f"); }
1977test { try parseIDNAFail("SS\xf0\xb0\x80\xbb\xf1\x86\xac\x97\xe3\x80\x82\xf0\x9d\xa9\xa8\xf0\x9f\x95\xaeSS"); }
1978test { try parseIDNAFail("ss\xf0\xb0\x80\xbb\xf1\x86\xac\x97\xe3\x80\x82\xf0\x9d\xa9\xa8\xf0\x9f\x95\xaess"); }
1979test { try parseIDNAFail("Ss\xf0\xb0\x80\xbb\xf1\x86\xac\x97\xe3\x80\x82\xf0\x9d\xa9\xa8\xf0\x9f\x95\xaeSs"); }
1980test { try parseIDNAFail("xn--ss-jl59biy67d.xn--ss-4d11aw87d"); }
1981test { try parseIDNAFail("xn--zca20040bgrkh.xn--zca3653v86qa"); }
1982test { try parseIDNAFail("SS\xf0\xb0\x80\xbb\xf1\x86\xac\x97\xef\xbd\xa1\xf0\x9d\xa9\xa8\xf0\x9f\x95\xaeSS"); }
1983test { try parseIDNAFail("ss\xf0\xb0\x80\xbb\xf1\x86\xac\x97\xef\xbd\xa1\xf0\x9d\xa9\xa8\xf0\x9f\x95\xaess"); }
1984test { try parseIDNAFail("Ss\xf0\xb0\x80\xbb\xf1\x86\xac\x97\xef\xbd\xa1\xf0\x9d\xa9\xa8\xf0\x9f\x95\xaeSs"); }
1985test { try parseIDNAFail("\xe2\x80\x8d\xe3\x80\x82\xe2\x80\x8c"); }
1986test { try parseIDNAFail("xn--1ug.xn--0ug"); }
1987test { try parseIDNAFail("\xf3\xa0\x91\x98\xef\xbc\x8e\xf3\xa0\x84\xae"); }
1988test { try parseIDNAFail("\xf3\xa0\x91\x98.\xf3\xa0\x84\xae"); }
1989test { try parseIDNAFail("xn--s136e."); }
1990test { try parseIDNAFail("\xea\xa6\xb7\xf3\x9d\xb5\x99\xeb\xa9\xb9\xe3\x80\x82\xe2\x92\x9b\xf3\xa0\xa8\x87"); }
1991test { try parseIDNAFail("\xea\xa6\xb7\xf3\x9d\xb5\x99\xe1\x84\x86\xe1\x85\xa7\xe1\x86\xb0\xe3\x80\x82\xe2\x92\x9b\xf3\xa0\xa8\x87"); }
1992test { try parseIDNAFail("\xea\xa6\xb7\xf3\x9d\xb5\x99\xeb\xa9\xb9\xe3\x80\x8220.\xf3\xa0\xa8\x87"); }
1993test { try parseIDNAFail("\xea\xa6\xb7\xf3\x9d\xb5\x99\xe1\x84\x86\xe1\x85\xa7\xe1\x86\xb0\xe3\x80\x8220.\xf3\xa0\xa8\x87"); }
1994test { try parseIDNAFail("xn--ym9av13acp85w.20.xn--d846e"); }
1995test { try parseIDNAFail("xn--ym9av13acp85w.xn--dth22121k"); }
1996test { try parseIDNAFail("\xe2\x80\x8c\xef\xbd\xa1\xef\xb8\x92"); }
1997test { try parseIDNAFail("\xe2\x80\x8c\xe3\x80\x82\xe3\x80\x82"); }
1998test { try parseIDNAFail("xn--0ug.."); }
1999test { try parseIDNAFail(".xn--y86c"); }
2000test { try parseIDNAFail("xn--0ug.xn--y86c"); }
2001test { try parseIDNAFail("\xe1\xa1\xb2-\xf0\x9d\x9f\xb9.\xc3\x9f-\xe2\x80\x8c-"); }
2002test { try parseIDNAFail("\xe1\xa1\xb2-3.\xc3\x9f-\xe2\x80\x8c-"); }
2003test { try parseIDNAFail("\xe1\xa1\xb2-3.SS-\xe2\x80\x8c-"); }
2004test { try parseIDNAFail("\xe1\xa1\xb2-3.ss-\xe2\x80\x8c-"); }
2005test { try parseIDNAFail("\xe1\xa1\xb2-3.Ss-\xe2\x80\x8c-"); }
2006test { try parseIDNAFail("xn---3-p9o.xn--ss---276a"); }
2007test { try parseIDNAFail("xn---3-p9o.xn-----fia9303a"); }
2008test { try parseIDNAFail("\xe1\xa1\xb2-\xf0\x9d\x9f\xb9.SS-\xe2\x80\x8c-"); }
2009test { try parseIDNAFail("\xe1\xa1\xb2-\xf0\x9d\x9f\xb9.ss-\xe2\x80\x8c-"); }
2010test { try parseIDNAFail("\xe1\xa1\xb2-\xf0\x9d\x9f\xb9.Ss-\xe2\x80\x8c-"); }
2011test { try parseIDNAFail("\xf3\x99\xb6\x9c\xe1\xa2\x98\xe3\x80\x82\xe1\xa9\xbf\xe2\xba\xa2"); }
2012test { try parseIDNAFail("xn--ibf35138o.xn--fpfz94g"); }
2013test { try parseIDNAFail("\xf2\x97\x86\xa7\xf0\x9d\x9f\xaf\xe3\x80\x82\xe2\x92\x88\xe1\xa9\xb6\xf0\x9d\x9f\x9a\xf2\xa0\x98\x8c"); }
2014test { try parseIDNAFail("\xf2\x97\x86\xa73\xe3\x80\x821.\xe1\xa9\xb62\xf2\xa0\x98\x8c"); }
2015test { try parseIDNAFail("xn--3-rj42h.1.xn--2-13k96240l"); }
2016test { try parseIDNAFail("xn--3-rj42h.xn--2-13k746cq465x"); }
2017test { try parseIDNAFail("\xe2\x80\x8d\xe2\x82\x85\xe2\x92\x88\xe3\x80\x82\xe2\x89\xaf\xf0\x9d\x9f\xb4\xe2\x80\x8d"); }
2018test { try parseIDNAFail("\xe2\x80\x8d\xe2\x82\x85\xe2\x92\x88\xe3\x80\x82>\xcc\xb8\xf0\x9d\x9f\xb4\xe2\x80\x8d"); }
2019test { try parseIDNAFail("\xe2\x80\x8d51.\xe3\x80\x82\xe2\x89\xaf8\xe2\x80\x8d"); }
2020test { try parseIDNAFail("\xe2\x80\x8d51.\xe3\x80\x82>\xcc\xb88\xe2\x80\x8d"); }
2021test { try parseIDNAFail("xn--51-l1t..xn--8-ugn00i"); }
2022test { try parseIDNAFail("xn--5-ecp.xn--8-ogo"); }
2023test { try parseIDNAFail("xn--5-tgnz5r.xn--8-ugn00i"); }
2024test { try parseIDNAFail("\xf0\xbe\xb7\x82\xe0\xa9\x82\xe1\x82\xaa\xf1\x82\x82\x9f.\xe2\x89\xae"); }
2025test { try parseIDNAFail("\xf0\xbe\xb7\x82\xe0\xa9\x82\xe1\x82\xaa\xf1\x82\x82\x9f.<\xcc\xb8"); }
2026test { try parseIDNAFail("\xf0\xbe\xb7\x82\xe0\xa9\x82\xe2\xb4\x8a\xf1\x82\x82\x9f.<\xcc\xb8"); }
2027test { try parseIDNAFail("\xf0\xbe\xb7\x82\xe0\xa9\x82\xe2\xb4\x8a\xf1\x82\x82\x9f.\xe2\x89\xae"); }
2028test { try parseIDNAFail("xn--nbc229o4y27dgskb.xn--gdh"); }
2029test { try parseIDNAFail("xn--nbc493aro75ggskb.xn--gdh"); }
2030test { try parseIDNAFail("\xea\x99\xbd\xe2\x80\x8c\xf0\xaf\xa7\xb5\xf0\x9f\x84\x86\xef\xbd\xa1\xe2\x80\x8c\xf0\x91\x81\x82\xe1\xac\x81"); }
2031test { try parseIDNAFail("\xea\x99\xbd\xe2\x80\x8c\xe9\x9c\xa3\xf0\x9f\x84\x86\xef\xbd\xa1\xe2\x80\x8c\xf0\x91\x81\x82\xe1\xac\x81"); }
2032test { try parseIDNAFail("\xea\x99\xbd\xe2\x80\x8c\xe9\x9c\xa35,\xe3\x80\x82\xe2\x80\x8c\xf0\x91\x81\x82\xe1\xac\x81"); }
2033test { try parseIDNAFail("xn--5,-op8g373c.xn--4sf0725i"); }
2034test { try parseIDNAFail("xn--5,-i1tz135dnbqa.xn--4sf36u6u4w"); }
2035test { try parseIDNAFail("xn--2q5a751a653w.xn--4sf0725i"); }
2036test { try parseIDNAFail("xn--0ug4208b2vjuk63a.xn--4sf36u6u4w"); }
2037test { try parseIDNAFail("\xe5\x85\x8e\xef\xbd\xa1\xe1\xa0\xbc\xf3\xa0\xb4\x9c\xf0\x91\x9a\xb6\xf0\x91\xb0\xbf"); }
2038test { try parseIDNAFail("\xe5\x85\x8e\xe3\x80\x82\xe1\xa0\xbc\xf3\xa0\xb4\x9c\xf0\x91\x9a\xb6\xf0\x91\xb0\xbf"); }
2039test { try parseIDNAFail("xn--b5q.xn--v7e6041kqqd4m251b"); }
2040test { try parseIDNAFail("\xf0\x9d\x9f\x99\xef\xbd\xa1\xe2\x80\x8d\xf0\x9d\x9f\xb8\xe2\x80\x8d\xe2\x81\xb7"); }
2041test { try parseIDNAFail("1\xe3\x80\x82\xe2\x80\x8d2\xe2\x80\x8d7"); }
2042test { try parseIDNAFail("1.xn--27-l1tb"); }
2043test { try parseIDNAFail("\xe1\xa1\xa8-\xef\xbd\xa1\xf3\xa0\xbb\x8b\xf0\x9d\x9f\xb7"); }
2044test { try parseIDNAFail("\xe1\xa1\xa8-\xe3\x80\x82\xf3\xa0\xbb\x8b1"); }
2045test { try parseIDNAFail("xn----z8j.xn--1-5671m"); }
2046test { try parseIDNAFail("\xe1\x82\xbc\xf2\x88\xb7\xad\xe0\xbe\x80\xe2\xbe\x87\xe3\x80\x82\xe1\x82\xaf\xe2\x99\x80\xe2\x80\x8c\xe2\x80\x8c"); }
2047test { try parseIDNAFail("\xe1\x82\xbc\xf2\x88\xb7\xad\xe0\xbe\x80\xe8\x88\x9b\xe3\x80\x82\xe1\x82\xaf\xe2\x99\x80\xe2\x80\x8c\xe2\x80\x8c"); }
2048test { try parseIDNAFail("\xe2\xb4\x9c\xf2\x88\xb7\xad\xe0\xbe\x80\xe8\x88\x9b\xe3\x80\x82\xe2\xb4\x8f\xe2\x99\x80\xe2\x80\x8c\xe2\x80\x8c"); }
2049test { try parseIDNAFail("xn--zed372mdj2do3v4h.xn--e5h11w"); }
2050test { try parseIDNAFail("xn--zed372mdj2do3v4h.xn--0uga678bgyh"); }
2051test { try parseIDNAFail("\xe2\xb4\x9c\xf2\x88\xb7\xad\xe0\xbe\x80\xe2\xbe\x87\xe3\x80\x82\xe2\xb4\x8f\xe2\x99\x80\xe2\x80\x8c\xe2\x80\x8c"); }
2052test { try parseIDNAFail("xn--zed54dz10wo343g.xn--nnd651i"); }
2053test { try parseIDNAFail("xn--zed54dz10wo343g.xn--nnd089ea464d"); }
2054test { try parseIDNAFail("\xf0\x91\x81\x86\xf0\x9d\x9f\xb0.\xe2\x80\x8d"); }
2055test { try parseIDNAFail("\xf0\x91\x81\x864.\xe2\x80\x8d"); }
2056test { try parseIDNAFail("xn--4-xu7i."); }
2057test { try parseIDNAFail("xn--4-xu7i.xn--1ug"); }
2058test { try parseIDNAFail("\xf1\xae\xb4\x98\xe1\x82\xbe\xe7\x99\x80\xef\xbd\xa1\xf0\x91\x98\xbf\xe2\x80\x8d\xe2\x80\x8c\xeb\xb6\xbc"); }
2059test { try parseIDNAFail("\xf1\xae\xb4\x98\xe1\x82\xbe\xe7\x99\x80\xef\xbd\xa1\xf0\x91\x98\xbf\xe2\x80\x8d\xe2\x80\x8c\xe1\x84\x87\xe1\x85\xb0\xe1\x86\xab"); }
2060test { try parseIDNAFail("\xf1\xae\xb4\x98\xe1\x82\xbe\xe7\x99\x80\xe3\x80\x82\xf0\x91\x98\xbf\xe2\x80\x8d\xe2\x80\x8c\xeb\xb6\xbc"); }
2061test { try parseIDNAFail("\xf1\xae\xb4\x98\xe1\x82\xbe\xe7\x99\x80\xe3\x80\x82\xf0\x91\x98\xbf\xe2\x80\x8d\xe2\x80\x8c\xe1\x84\x87\xe1\x85\xb0\xe1\x86\xab"); }
2062test { try parseIDNAFail("\xf1\xae\xb4\x98\xe2\xb4\x9e\xe7\x99\x80\xe3\x80\x82\xf0\x91\x98\xbf\xe2\x80\x8d\xe2\x80\x8c\xe1\x84\x87\xe1\x85\xb0\xe1\x86\xab"); }
2063test { try parseIDNAFail("\xf1\xae\xb4\x98\xe2\xb4\x9e\xe7\x99\x80\xe3\x80\x82\xf0\x91\x98\xbf\xe2\x80\x8d\xe2\x80\x8c\xeb\xb6\xbc"); }
2064test { try parseIDNAFail("xn--mlju35u7qx2f.xn--et3bn23n"); }
2065test { try parseIDNAFail("xn--mlju35u7qx2f.xn--0ugb6122js83c"); }
2066test { try parseIDNAFail("\xf1\xae\xb4\x98\xe2\xb4\x9e\xe7\x99\x80\xef\xbd\xa1\xf0\x91\x98\xbf\xe2\x80\x8d\xe2\x80\x8c\xe1\x84\x87\xe1\x85\xb0\xe1\x86\xab"); }
2067test { try parseIDNAFail("\xf1\xae\xb4\x98\xe2\xb4\x9e\xe7\x99\x80\xef\xbd\xa1\xf0\x91\x98\xbf\xe2\x80\x8d\xe2\x80\x8c\xeb\xb6\xbc"); }
2068test { try parseIDNAFail("xn--2nd6803c7q37d.xn--et3bn23n"); }
2069test { try parseIDNAFail("xn--2nd6803c7q37d.xn--0ugb6122js83c"); }
2070test { try parseIDNAFail("\xe1\xa1\x83\xf0\x9d\x9f\xa7\xe2\x89\xaf\xe1\xa0\xa3\xef\xbc\x8e\xe6\xb0\x81\xf1\xa8\x8f\xb1\xea\x81\xab"); }
2071test { try parseIDNAFail("\xe1\xa1\x83\xf0\x9d\x9f\xa7>\xcc\xb8\xe1\xa0\xa3\xef\xbc\x8e\xe6\xb0\x81\xf1\xa8\x8f\xb1\xea\x81\xab"); }
2072test { try parseIDNAFail("\xe1\xa1\x835\xe2\x89\xaf\xe1\xa0\xa3.\xe6\xb0\x81\xf1\xa8\x8f\xb1\xea\x81\xab"); }
2073test { try parseIDNAFail("\xe1\xa1\x835>\xcc\xb8\xe1\xa0\xa3.\xe6\xb0\x81\xf1\xa8\x8f\xb1\xea\x81\xab"); }
2074test { try parseIDNAFail("xn--5-24jyf768b.xn--lqw213ime95g"); }
2075test { try parseIDNAFail("-\xf0\x91\x88\xb6\xe2\x92\x8f\xef\xbc\x8e\xe2\x92\x8e\xf0\xb0\x9b\xa2\xf3\xa0\x8e\xad"); }
2076test { try parseIDNAFail("-\xf0\x91\x88\xb68..7.\xf0\xb0\x9b\xa2\xf3\xa0\x8e\xad"); }
2077test { try parseIDNAFail("xn---8-bv5o..7.xn--c35nf1622b"); }
2078test { try parseIDNAFail("xn----scp6252h.xn--zshy411yzpx2d"); }
2079test { try parseIDNAFail("\xe2\x80\x8c\xe1\x82\xa1\xe7\x95\x9d\xe2\x80\x8d\xef\xbc\x8e\xe2\x89\xae"); }
2080test { try parseIDNAFail("\xe2\x80\x8c\xe1\x82\xa1\xe7\x95\x9d\xe2\x80\x8d\xef\xbc\x8e<\xcc\xb8"); }
2081test { try parseIDNAFail("\xe2\x80\x8c\xe1\x82\xa1\xe7\x95\x9d\xe2\x80\x8d.\xe2\x89\xae"); }
2082test { try parseIDNAFail("\xe2\x80\x8c\xe1\x82\xa1\xe7\x95\x9d\xe2\x80\x8d.<\xcc\xb8"); }
2083test { try parseIDNAFail("\xe2\x80\x8c\xe2\xb4\x81\xe7\x95\x9d\xe2\x80\x8d.<\xcc\xb8"); }
2084test { try parseIDNAFail("\xe2\x80\x8c\xe2\xb4\x81\xe7\x95\x9d\xe2\x80\x8d.\xe2\x89\xae"); }
2085test { try parseIDNAFail("xn--0ugc160hb36e.xn--gdh"); }
2086test { try parseIDNAFail("\xe2\x80\x8c\xe2\xb4\x81\xe7\x95\x9d\xe2\x80\x8d\xef\xbc\x8e<\xcc\xb8"); }
2087test { try parseIDNAFail("\xe2\x80\x8c\xe2\xb4\x81\xe7\x95\x9d\xe2\x80\x8d\xef\xbc\x8e\xe2\x89\xae"); }
2088test { try parseIDNAFail("xn--8md0962c.xn--gdh"); }
2089test { try parseIDNAFail("xn--8md700fea3748f.xn--gdh"); }
2090test { try parseIDNAFail("\xe0\xbb\x8b\xe2\x80\x8d\xef\xbc\x8e\xe9\x8e\x81\xf3\xa0\xb0\x91"); }
2091test { try parseIDNAFail("\xe0\xbb\x8b\xe2\x80\x8d.\xe9\x8e\x81\xf3\xa0\xb0\x91"); }
2092test { try parseIDNAFail("xn--t8c.xn--iz4a43209d"); }
2093test { try parseIDNAFail("xn--t8c059f.xn--iz4a43209d"); }
2094test { try parseIDNAFail("\xf2\x89\x9b\xb4.-\xe1\xa1\xa2\xd6\x92\xf0\x9d\xa8\xa0"); }
2095test { try parseIDNAFail("xn--ep37b.xn----hec165lho83b"); }
2096test { try parseIDNAFail("\xf0\xbf\x80\xab\xef\xbc\x8e\xe1\xae\xaa\xcf\x82\xe1\x82\xa6\xe2\x80\x8d"); }
2097test { try parseIDNAFail("\xf0\xbf\x80\xab.\xe1\xae\xaa\xcf\x82\xe1\x82\xa6\xe2\x80\x8d"); }
2098test { try parseIDNAFail("\xf0\xbf\x80\xab.\xe1\xae\xaa\xcf\x82\xe2\xb4\x86\xe2\x80\x8d"); }
2099test { try parseIDNAFail("\xf0\xbf\x80\xab.\xe1\xae\xaa\xce\xa3\xe1\x82\xa6\xe2\x80\x8d"); }
2100test { try parseIDNAFail("\xf0\xbf\x80\xab.\xe1\xae\xaa\xcf\x83\xe2\xb4\x86\xe2\x80\x8d"); }
2101test { try parseIDNAFail("\xf0\xbf\x80\xab.\xe1\xae\xaa\xce\xa3\xe2\xb4\x86\xe2\x80\x8d"); }
2102test { try parseIDNAFail("xn--nu4s.xn--4xa153j7im"); }
2103test { try parseIDNAFail("xn--nu4s.xn--4xa153jk8cs1q"); }
2104test { try parseIDNAFail("xn--nu4s.xn--3xa353jk8cs1q"); }
2105test { try parseIDNAFail("\xf0\xbf\x80\xab\xef\xbc\x8e\xe1\xae\xaa\xcf\x82\xe2\xb4\x86\xe2\x80\x8d"); }
2106test { try parseIDNAFail("\xf0\xbf\x80\xab\xef\xbc\x8e\xe1\xae\xaa\xce\xa3\xe1\x82\xa6\xe2\x80\x8d"); }
2107test { try parseIDNAFail("\xf0\xbf\x80\xab\xef\xbc\x8e\xe1\xae\xaa\xcf\x83\xe2\xb4\x86\xe2\x80\x8d"); }
2108test { try parseIDNAFail("\xf0\xbf\x80\xab\xef\xbc\x8e\xe1\xae\xaa\xce\xa3\xe2\xb4\x86\xe2\x80\x8d"); }
2109test { try parseIDNAFail("xn--nu4s.xn--4xa217dxri"); }
2110test { try parseIDNAFail("xn--nu4s.xn--4xa217dxriome"); }
2111test { try parseIDNAFail("xn--nu4s.xn--3xa417dxriome"); }
2112test { try parseIDNAFail("\xe2\x92\x88\xe2\x80\x8c\xea\xab\xac\xef\xb8\x92\xef\xbc\x8e\xe0\xab\x8d"); }
2113test { try parseIDNAFail("1.\xe2\x80\x8c\xea\xab\xac\xe3\x80\x82.\xe0\xab\x8d"); }
2114test { try parseIDNAFail("1.xn--sv9a..xn--mfc"); }
2115test { try parseIDNAFail("1.xn--0ug7185c..xn--mfc"); }
2116test { try parseIDNAFail("xn--tsh0720cse8b.xn--mfc"); }
2117test { try parseIDNAFail("xn--0ug78o720myr1c.xn--mfc"); }
2118test { try parseIDNAFail("\xc3\x9f\xe2\x80\x8d.\xe1\xaf\xb2\xf1\x84\xbe\xbc"); }
2119test { try parseIDNAFail("SS\xe2\x80\x8d.\xe1\xaf\xb2\xf1\x84\xbe\xbc"); }
2120test { try parseIDNAFail("ss\xe2\x80\x8d.\xe1\xaf\xb2\xf1\x84\xbe\xbc"); }
2121test { try parseIDNAFail("Ss\xe2\x80\x8d.\xe1\xaf\xb2\xf1\x84\xbe\xbc"); }
2122test { try parseIDNAFail("ss.xn--0zf22107b"); }
2123test { try parseIDNAFail("xn--ss-n1t.xn--0zf22107b"); }
2124test { try parseIDNAFail("xn--zca870n.xn--0zf22107b"); }
2125test { try parseIDNAFail("\xf0\x91\x93\x82\xe2\x80\x8c\xe2\x89\xae.\xe2\x89\xae"); }
2126test { try parseIDNAFail("\xf0\x91\x93\x82\xe2\x80\x8c<\xcc\xb8.<\xcc\xb8"); }
2127test { try parseIDNAFail("xn--gdhz656g.xn--gdh"); }
2128test { try parseIDNAFail("xn--0ugy6glz29a.xn--gdh"); }
2129test { try parseIDNAFail("xn--my8h.xn--psd"); }
2130test { try parseIDNAFail("xn--my8h.xn--cl7c"); }
2131test { try parseIDNAFail("\xe7\x88\x95\xf2\xb3\x99\x91\xef\xbc\x8e\xf0\x9d\x9f\xb0\xe6\xb0\x97"); }
2132test { try parseIDNAFail("\xe7\x88\x95\xf2\xb3\x99\x91.4\xe6\xb0\x97"); }
2133test { try parseIDNAFail("xn--1zxq3199c.xn--4-678b"); }
2134test { try parseIDNAFail("\xf3\x9e\x9d\x83\xe3\x80\x82\xf2\x91\x86\x83\xf1\x89\xa2\x97--"); }
2135test { try parseIDNAFail("xn--2y75e.xn-----1l15eer88n"); }
2136test { try parseIDNAFail("\xe8\x94\xb0\xe3\x80\x82\xf3\xa0\x81\xb9\xe0\xa3\x9d-\xf0\x91\x88\xb5"); }
2137test { try parseIDNAFail("xn--sz1a.xn----mrd9984r3dl0i"); }
2138test { try parseIDNAFail("xn--4xa477d.xn--epb"); }
2139test { try parseIDNAFail("xn--3xa677d.xn--epb"); }
2140test { try parseIDNAFail("xn--pt9c.xn--hnd666l"); }
2141test { try parseIDNAFail("xn--pt9c.xn--hndy"); }
2142test { try parseIDNAFail("\xe2\x80\x8c\xe2\x80\x8c\xe3\x84\xa4\xef\xbc\x8e\xcc\xae\xf3\x95\xa8\x91\xe0\xa7\x82"); }
2143test { try parseIDNAFail("\xe2\x80\x8c\xe2\x80\x8c\xe3\x84\xa4.\xcc\xae\xf3\x95\xa8\x91\xe0\xa7\x82"); }
2144test { try parseIDNAFail("xn--1fk.xn--vta284a9o563a"); }
2145test { try parseIDNAFail("xn--0uga242k.xn--vta284a9o563a"); }
2146test { try parseIDNAFail("\xe1\x82\xb4\xf0\x9d\xa8\xa8\xe2\x82\x83\xf3\xa0\x81\xa6\xef\xbc\x8e\xf0\x9d\x9f\xb3\xf0\x91\x82\xb9\xe0\xae\x82"); }
2147test { try parseIDNAFail("\xe1\x82\xb4\xf0\x9d\xa8\xa83\xf3\xa0\x81\xa6.7\xf0\x91\x82\xb9\xe0\xae\x82"); }
2148test { try parseIDNAFail("\xe2\xb4\x94\xf0\x9d\xa8\xa83\xf3\xa0\x81\xa6.7\xf0\x91\x82\xb9\xe0\xae\x82"); }
2149test { try parseIDNAFail("xn--3-ews6985n35s3g.xn--7-cve6271r"); }
2150test { try parseIDNAFail("\xe2\xb4\x94\xf0\x9d\xa8\xa8\xe2\x82\x83\xf3\xa0\x81\xa6\xef\xbc\x8e\xf0\x9d\x9f\xb3\xf0\x91\x82\xb9\xe0\xae\x82"); }
2151test { try parseIDNAFail("xn--3-b1g83426a35t0g.xn--7-cve6271r"); }
2152test { try parseIDNAFail("\xe4\x8f\x88\xe2\x80\x8c\xe3\x80\x82\xe2\x80\x8c\xe2\x92\x88\xf1\xb1\xa2\x95"); }
2153test { try parseIDNAFail("\xe4\x8f\x88\xe2\x80\x8c\xe3\x80\x82\xe2\x80\x8c1.\xf1\xb1\xa2\x95"); }
2154test { try parseIDNAFail("xn--eco.1.xn--ms39a"); }
2155test { try parseIDNAFail("xn--0ug491l.xn--1-rgn.xn--ms39a"); }
2156test { try parseIDNAFail("xn--eco.xn--tsh21126d"); }
2157test { try parseIDNAFail("xn--0ug491l.xn--0ug88oot66q"); }
2158test { try parseIDNAFail("\xef\xbc\x91\xea\xab\xb6\xc3\x9f\xf0\x91\xb2\xa5\xef\xbd\xa1\xe1\xb7\x98"); }
2159test { try parseIDNAFail("1\xea\xab\xb6\xc3\x9f\xf0\x91\xb2\xa5\xe3\x80\x82\xe1\xb7\x98"); }
2160test { try parseIDNAFail("1\xea\xab\xb6SS\xf0\x91\xb2\xa5\xe3\x80\x82\xe1\xb7\x98"); }
2161test { try parseIDNAFail("1\xea\xab\xb6ss\xf0\x91\xb2\xa5\xe3\x80\x82\xe1\xb7\x98"); }
2162test { try parseIDNAFail("xn--1ss-ir6ln166b.xn--weg"); }
2163test { try parseIDNAFail("xn--1-qfa2471kdb0d.xn--weg"); }
2164test { try parseIDNAFail("\xef\xbc\x91\xea\xab\xb6SS\xf0\x91\xb2\xa5\xef\xbd\xa1\xe1\xb7\x98"); }
2165test { try parseIDNAFail("\xef\xbc\x91\xea\xab\xb6ss\xf0\x91\xb2\xa5\xef\xbd\xa1\xe1\xb7\x98"); }
2166test { try parseIDNAFail("1\xea\xab\xb6Ss\xf0\x91\xb2\xa5\xe3\x80\x82\xe1\xb7\x98"); }
2167test { try parseIDNAFail("\xef\xbc\x91\xea\xab\xb6Ss\xf0\x91\xb2\xa5\xef\xbd\xa1\xe1\xb7\x98"); }
2168test { try parseIDNAFail("xn--3j78f.xn--mkb20b"); }
2169test { try parseIDNAFail("\xf0\xb2\xa4\xb1\xe2\x92\x9b\xe2\xbe\xb3\xef\xbc\x8e\xea\xa1\xa6\xe2\x92\x88"); }
2170test { try parseIDNAFail("xn--dth6033bzbvx.xn--tsh9439b"); }
2171test { try parseIDNAFail("xn--tnd.xn--ss-jbe65aw27i"); }
2172test { try parseIDNAFail("xn--tnd.xn--zca912alh227g"); }
2173test { try parseIDNAFail("\xe2\x84\xb2\xf3\xa0\x85\xba\xf1\x9d\xb5\x92\xe3\x80\x82\xe2\x89\xaf\xe2\xbe\x91"); }
2174test { try parseIDNAFail("\xe2\x84\xb2\xf3\xa0\x85\xba\xf1\x9d\xb5\x92\xe3\x80\x82>\xcc\xb8\xe2\xbe\x91"); }
2175test { try parseIDNAFail("\xe2\x84\xb2\xf3\xa0\x85\xba\xf1\x9d\xb5\x92\xe3\x80\x82\xe2\x89\xaf\xe8\xa5\xbe"); }
2176test { try parseIDNAFail("\xe2\x84\xb2\xf3\xa0\x85\xba\xf1\x9d\xb5\x92\xe3\x80\x82>\xcc\xb8\xe8\xa5\xbe"); }
2177test { try parseIDNAFail("\xe2\x85\x8e\xf3\xa0\x85\xba\xf1\x9d\xb5\x92\xe3\x80\x82>\xcc\xb8\xe8\xa5\xbe"); }
2178test { try parseIDNAFail("\xe2\x85\x8e\xf3\xa0\x85\xba\xf1\x9d\xb5\x92\xe3\x80\x82\xe2\x89\xaf\xe8\xa5\xbe"); }
2179test { try parseIDNAFail("xn--73g39298c.xn--hdhz171b"); }
2180test { try parseIDNAFail("\xe2\x85\x8e\xf3\xa0\x85\xba\xf1\x9d\xb5\x92\xe3\x80\x82>\xcc\xb8\xe2\xbe\x91"); }
2181test { try parseIDNAFail("\xe2\x85\x8e\xf3\xa0\x85\xba\xf1\x9d\xb5\x92\xe3\x80\x82\xe2\x89\xaf\xe2\xbe\x91"); }
2182test { try parseIDNAFail("xn--f3g73398c.xn--hdhz171b"); }
2183test { try parseIDNAFail("\xe2\x80\x8c.\xc3\x9f\xe1\x82\xa9-"); }
2184test { try parseIDNAFail("\xe2\x80\x8c.\xc3\x9f\xe2\xb4\x89-"); }
2185test { try parseIDNAFail("\xe2\x80\x8c.SS\xe1\x82\xa9-"); }
2186test { try parseIDNAFail("\xe2\x80\x8c.ss\xe2\xb4\x89-"); }
2187test { try parseIDNAFail("\xe2\x80\x8c.Ss\xe2\xb4\x89-"); }
2188test { try parseIDNAFail("xn--0ug.xn--ss--bi1b"); }
2189test { try parseIDNAFail("xn--0ug.xn----pfa2305a"); }
2190test { try parseIDNAFail(".xn--ss--4rn"); }
2191test { try parseIDNAFail("xn--0ug.xn--ss--4rn"); }
2192test { try parseIDNAFail("xn--0ug.xn----pfa042j"); }
2193test { try parseIDNAFail("\xf3\xa0\xaa\xa2-\xe3\x80\x82\xf2\x9b\x82\x8f\xe2\x89\xae\xf0\x91\x9c\xab"); }
2194test { try parseIDNAFail("\xf3\xa0\xaa\xa2-\xe3\x80\x82\xf2\x9b\x82\x8f<\xcc\xb8\xf0\x91\x9c\xab"); }
2195test { try parseIDNAFail("xn----bh61m.xn--gdhz157g0em1d"); }
2196test { try parseIDNAFail("\xe2\x80\x8c\xf3\xa0\x89\xb9\xe2\x80\x8d\xe3\x80\x82\xf2\x8c\xbf\xa7\xe2\x89\xae\xe1\x82\xa9"); }
2197test { try parseIDNAFail("\xe2\x80\x8c\xf3\xa0\x89\xb9\xe2\x80\x8d\xe3\x80\x82\xf2\x8c\xbf\xa7<\xcc\xb8\xe1\x82\xa9"); }
2198test { try parseIDNAFail("\xe2\x80\x8c\xf3\xa0\x89\xb9\xe2\x80\x8d\xe3\x80\x82\xf2\x8c\xbf\xa7<\xcc\xb8\xe2\xb4\x89"); }
2199test { try parseIDNAFail("\xe2\x80\x8c\xf3\xa0\x89\xb9\xe2\x80\x8d\xe3\x80\x82\xf2\x8c\xbf\xa7\xe2\x89\xae\xe2\xb4\x89"); }
2200test { try parseIDNAFail("xn--3n36e.xn--gdh992byu01p"); }
2201test { try parseIDNAFail("xn--0ugc90904y.xn--gdh992byu01p"); }
2202test { try parseIDNAFail("xn--3n36e.xn--hnd112gpz83n"); }
2203test { try parseIDNAFail("xn--0ugc90904y.xn--hnd112gpz83n"); }
2204test { try parseIDNAFail("\xf0\x9d\xaa\x9e\xe1\x82\xb0\xef\xbd\xa1\xec\xaa\xa1"); }
2205test { try parseIDNAFail("\xf0\x9d\xaa\x9e\xe1\x82\xb0\xef\xbd\xa1\xe1\x84\x8d\xe1\x85\xa8\xe1\x86\xa8"); }
2206test { try parseIDNAFail("\xf0\x9d\xaa\x9e\xe1\x82\xb0\xe3\x80\x82\xec\xaa\xa1"); }
2207test { try parseIDNAFail("\xf0\x9d\xaa\x9e\xe1\x82\xb0\xe3\x80\x82\xe1\x84\x8d\xe1\x85\xa8\xe1\x86\xa8"); }
2208test { try parseIDNAFail("\xf0\x9d\xaa\x9e\xe2\xb4\x90\xe3\x80\x82\xe1\x84\x8d\xe1\x85\xa8\xe1\x86\xa8"); }
2209test { try parseIDNAFail("\xf0\x9d\xaa\x9e\xe2\xb4\x90\xe3\x80\x82\xec\xaa\xa1"); }
2210test { try parseIDNAFail("xn--7kj1858k.xn--pi6b"); }
2211test { try parseIDNAFail("\xf0\x9d\xaa\x9e\xe2\xb4\x90\xef\xbd\xa1\xe1\x84\x8d\xe1\x85\xa8\xe1\x86\xa8"); }
2212test { try parseIDNAFail("\xf0\x9d\xaa\x9e\xe2\xb4\x90\xef\xbd\xa1\xec\xaa\xa1"); }
2213test { try parseIDNAFail("xn--ond3755u.xn--pi6b"); }
2214test { try parseIDNAFail("\xe1\xa1\x85\xef\xbc\x90\xe2\x80\x8c\xef\xbd\xa1\xe2\x8e\xa2\xf3\xa4\xa8\x84"); }
2215test { try parseIDNAFail("\xe1\xa1\x850\xe2\x80\x8c\xe3\x80\x82\xe2\x8e\xa2\xf3\xa4\xa8\x84"); }
2216test { try parseIDNAFail("xn--0-z6j.xn--8lh28773l"); }
2217test { try parseIDNAFail("xn--0-z6jy93b.xn--8lh28773l"); }
2218test { try parseIDNAFail("\xf0\xb2\xae\x9a\xef\xbc\x99\xea\x8d\xa9\xe1\x9f\x93\xef\xbc\x8e\xe2\x80\x8d\xc3\x9f"); }
2219test { try parseIDNAFail("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.\xe2\x80\x8d\xc3\x9f"); }
2220test { try parseIDNAFail("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.\xe2\x80\x8dSS"); }
2221test { try parseIDNAFail("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.\xe2\x80\x8dss"); }
2222test { try parseIDNAFail("xn--9-i0j5967eg3qz.xn--ss-l1t"); }
2223test { try parseIDNAFail("xn--9-i0j5967eg3qz.xn--zca770n"); }
2224test { try parseIDNAFail("\xf0\xb2\xae\x9a\xef\xbc\x99\xea\x8d\xa9\xe1\x9f\x93\xef\xbc\x8e\xe2\x80\x8dSS"); }
2225test { try parseIDNAFail("\xf0\xb2\xae\x9a\xef\xbc\x99\xea\x8d\xa9\xe1\x9f\x93\xef\xbc\x8e\xe2\x80\x8dss"); }
2226test { try parseIDNAFail("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.\xe2\x80\x8dSs"); }
2227test { try parseIDNAFail("\xf0\xb2\xae\x9a\xef\xbc\x99\xea\x8d\xa9\xe1\x9f\x93\xef\xbc\x8e\xe2\x80\x8dSs"); }
2228test { try parseIDNAFail("\xe2\x92\x90\xe2\x89\xaf-\xe3\x80\x82\xef\xb8\x92\xf2\xa9\x91\xa3-\xf1\x9e\x9b\xa0"); }
2229test { try parseIDNAFail("\xe2\x92\x90>\xcc\xb8-\xe3\x80\x82\xef\xb8\x92\xf2\xa9\x91\xa3-\xf1\x9e\x9b\xa0"); }
2230test { try parseIDNAFail("9.\xe2\x89\xaf-\xe3\x80\x82\xe3\x80\x82\xf2\xa9\x91\xa3-\xf1\x9e\x9b\xa0"); }
2231test { try parseIDNAFail("9.>\xcc\xb8-\xe3\x80\x82\xe3\x80\x82\xf2\xa9\x91\xa3-\xf1\x9e\x9b\xa0"); }
2232test { try parseIDNAFail("9.xn----ogo..xn----xj54d1s69k"); }
2233test { try parseIDNAFail("xn----ogot9g.xn----n89hl0522az9u2a"); }
2234test { try parseIDNAFail("\xe1\x82\xaf\xf3\xa0\x85\x8b-\xef\xbc\x8e\xe2\x80\x8d\xe1\x82\xa9"); }
2235test { try parseIDNAFail("\xe1\x82\xaf\xf3\xa0\x85\x8b-.\xe2\x80\x8d\xe1\x82\xa9"); }
2236test { try parseIDNAFail("\xe2\xb4\x8f\xf3\xa0\x85\x8b-.\xe2\x80\x8d\xe2\xb4\x89"); }
2237test { try parseIDNAFail("xn----3vs.xn--1ug532c"); }
2238test { try parseIDNAFail("\xe2\xb4\x8f\xf3\xa0\x85\x8b-\xef\xbc\x8e\xe2\x80\x8d\xe2\xb4\x89"); }
2239test { try parseIDNAFail("xn----00g.xn--hnd"); }
2240test { try parseIDNAFail("xn----00g.xn--hnd399e"); }
2241test { try parseIDNAFail("\xe1\x9c\x94\xe3\x80\x82\xf3\xa0\x86\xa3-\xf0\x91\x8b\xaa"); }
2242test { try parseIDNAFail("xn--fze.xn----ly8i"); }
2243test { try parseIDNAFail("\xea\xaf\xa8-\xef\xbc\x8e\xf2\xa8\x8f\x9c\xd6\xbd\xc3\x9f"); }
2244test { try parseIDNAFail("\xea\xaf\xa8-.\xf2\xa8\x8f\x9c\xd6\xbd\xc3\x9f"); }
2245test { try parseIDNAFail("\xea\xaf\xa8-.\xf2\xa8\x8f\x9c\xd6\xbdSS"); }
2246test { try parseIDNAFail("\xea\xaf\xa8-.\xf2\xa8\x8f\x9c\xd6\xbdss"); }
2247test { try parseIDNAFail("\xea\xaf\xa8-.\xf2\xa8\x8f\x9c\xd6\xbdSs"); }
2248test { try parseIDNAFail("xn----pw5e.xn--ss-7jd10716y"); }
2249test { try parseIDNAFail("xn----pw5e.xn--zca50wfv060a"); }
2250test { try parseIDNAFail("\xea\xaf\xa8-\xef\xbc\x8e\xf2\xa8\x8f\x9c\xd6\xbdSS"); }
2251test { try parseIDNAFail("\xea\xaf\xa8-\xef\xbc\x8e\xf2\xa8\x8f\x9c\xd6\xbdss"); }
2252test { try parseIDNAFail("\xea\xaf\xa8-\xef\xbc\x8e\xf2\xa8\x8f\x9c\xd6\xbdSs"); }
2253test { try parseIDNAFail("\xf0\x9d\x9f\xa5\xe2\x99\xae\xf0\x91\x9c\xab\xe0\xa3\xad\xef\xbc\x8e\xe1\x9f\x92\xf0\x91\x9c\xab8\xf3\xa0\x86\x8f"); }
2254test { try parseIDNAFail("3\xe2\x99\xae\xf0\x91\x9c\xab\xe0\xa3\xad.\xe1\x9f\x92\xf0\x91\x9c\xab8\xf3\xa0\x86\x8f"); }
2255test { try parseIDNAFail("xn--3-ksd277tlo7s.xn--8-f0jx021l"); }
2256test { try parseIDNAFail("-\xef\xbd\xa1\xf2\x95\x8c\x80\xe2\x80\x8d\xe2\x9d\xa1"); }
2257test { try parseIDNAFail("-\xe3\x80\x82\xf2\x95\x8c\x80\xe2\x80\x8d\xe2\x9d\xa1"); }
2258test { try parseIDNAFail("-.xn--nei54421f"); }
2259test { try parseIDNAFail("-.xn--1ug800aq795s"); }
2260test { try parseIDNAFail("\xf0\x9d\x9f\x93\xe2\x98\xb1\xf0\x9d\x9f\x90\xf2\xa5\xb0\xb5\xef\xbd\xa1\xf0\x9d\xaa\xae\xf1\x90\xa1\xb3"); }
2261test { try parseIDNAFail("5\xe2\x98\xb12\xf2\xa5\xb0\xb5\xe3\x80\x82\xf0\x9d\xaa\xae\xf1\x90\xa1\xb3"); }
2262test { try parseIDNAFail("xn--52-dwx47758j.xn--kd3hk431k"); }
2263test { try parseIDNAFail("-.-\xe2\x94\x9c\xf2\x96\xa6\xa3"); }
2264test { try parseIDNAFail("-.xn----ukp70432h"); }
2265test { try parseIDNAFail("\xcf\x82\xef\xbc\x8e\xef\xb7\x81\xf0\x9f\x9e\x9b\xe2\x92\x88"); }
2266test { try parseIDNAFail("\xce\xa3\xef\xbc\x8e\xef\xb7\x81\xf0\x9f\x9e\x9b\xe2\x92\x88"); }
2267test { try parseIDNAFail("\xcf\x83\xef\xbc\x8e\xef\xb7\x81\xf0\x9f\x9e\x9b\xe2\x92\x88"); }
2268test { try parseIDNAFail("xn--4xa.xn--dhbip2802atb20c"); }
2269test { try parseIDNAFail("xn--3xa.xn--dhbip2802atb20c"); }
2270test { try parseIDNAFail("9\xf3\xa0\x87\xa5\xef\xbc\x8e\xf3\xaa\xb4\xb4\xe1\xa2\x93"); }
2271test { try parseIDNAFail("9\xf3\xa0\x87\xa5.\xf3\xaa\xb4\xb4\xe1\xa2\x93"); }
2272test { try parseIDNAFail("9.xn--dbf91222q"); }
2273test { try parseIDNAFail("\xef\xb8\x92\xe1\x82\xb6\xcd\xa6\xef\xbc\x8e\xe2\x80\x8c"); }
2274test { try parseIDNAFail("\xe3\x80\x82\xe1\x82\xb6\xcd\xa6.\xe2\x80\x8c"); }
2275test { try parseIDNAFail("\xe3\x80\x82\xe2\xb4\x96\xcd\xa6.\xe2\x80\x8c"); }
2276test { try parseIDNAFail(".xn--hva754s.xn--0ug"); }
2277test { try parseIDNAFail("\xef\xb8\x92\xe2\xb4\x96\xcd\xa6\xef\xbc\x8e\xe2\x80\x8c"); }
2278test { try parseIDNAFail("xn--hva754sy94k."); }
2279test { try parseIDNAFail("xn--hva754sy94k.xn--0ug"); }
2280test { try parseIDNAFail(".xn--hva929d."); }
2281test { try parseIDNAFail(".xn--hva929d.xn--0ug"); }
2282test { try parseIDNAFail("xn--hva929dl29p."); }
2283test { try parseIDNAFail("xn--hva929dl29p.xn--0ug"); }
2284test { try parseIDNAFail("xn--hva929d."); }
2285test { try parseIDNAFail("xn--hzb.xn--bnd2938u"); }
2286test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xe3\x80\x82\xef\xbc\x92\xe4\xab\xb7\xf3\xa0\xa7\xb7"); }
2287test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xe3\x80\x822\xe4\xab\xb7\xf3\xa0\xa7\xb7"); }
2288test { try parseIDNAFail(".xn--2-me5ay1273i"); }
2289test { try parseIDNAFail("xn--0ugb.xn--2-me5ay1273i"); }
2290test { try parseIDNAFail("-\xf0\x9e\x80\xa4\xf3\x9c\xa0\x90\xe3\x80\x82\xf2\x88\xac\x96"); }
2291test { try parseIDNAFail("xn----rq4re4997d.xn--l707b"); }
2292test { try parseIDNAFail("\xf3\xb3\x9b\x82\xef\xb8\x92\xe2\x80\x8c\xe3\x9f\x80\xef\xbc\x8e\xd8\xa4\xe2\x92\x88"); }
2293test { try parseIDNAFail("\xf3\xb3\x9b\x82\xef\xb8\x92\xe2\x80\x8c\xe3\x9f\x80\xef\xbc\x8e\xd9\x88\xd9\x94\xe2\x92\x88"); }
2294test { try parseIDNAFail("xn--z272f.xn--etl.xn--1-smc."); }
2295test { try parseIDNAFail("xn--etlt457ccrq7h.xn--jgb476m"); }
2296test { try parseIDNAFail("xn--0ug754gxl4ldlt0k.xn--jgb476m"); }
2297test { try parseIDNAFail("\xdf\xbc\xf0\x90\xb8\x86.\xf0\x93\x96\x8f\xef\xb8\x92\xf1\x8a\xa8\xa9\xe1\x82\xb0"); }
2298test { try parseIDNAFail("\xdf\xbc\xf0\x90\xb8\x86.\xf0\x93\x96\x8f\xe3\x80\x82\xf1\x8a\xa8\xa9\xe1\x82\xb0"); }
2299test { try parseIDNAFail("\xdf\xbc\xf0\x90\xb8\x86.\xf0\x93\x96\x8f\xe3\x80\x82\xf1\x8a\xa8\xa9\xe2\xb4\x90"); }
2300test { try parseIDNAFail("xn--0tb8725k.xn--tu8d.xn--7kj73887a"); }
2301test { try parseIDNAFail("\xdf\xbc\xf0\x90\xb8\x86.\xf0\x93\x96\x8f\xef\xb8\x92\xf1\x8a\xa8\xa9\xe2\xb4\x90"); }
2302test { try parseIDNAFail("xn--0tb8725k.xn--7kj9008dt18a7py9c"); }
2303test { try parseIDNAFail("xn--0tb8725k.xn--tu8d.xn--ond97931d"); }
2304test { try parseIDNAFail("xn--0tb8725k.xn--ond3562jt18a7py9c"); }
2305test { try parseIDNAFail("\xe1\x83\x85\xe2\x9a\xad\xf3\xa0\x96\xab\xe2\x8b\x83\xef\xbd\xa1\xf0\x91\x8c\xbc"); }
2306test { try parseIDNAFail("\xe1\x83\x85\xe2\x9a\xad\xf3\xa0\x96\xab\xe2\x8b\x83\xe3\x80\x82\xf0\x91\x8c\xbc"); }
2307test { try parseIDNAFail("\xe2\xb4\xa5\xe2\x9a\xad\xf3\xa0\x96\xab\xe2\x8b\x83\xe3\x80\x82\xf0\x91\x8c\xbc"); }
2308test { try parseIDNAFail("xn--vfh16m67gx1162b.xn--ro1d"); }
2309test { try parseIDNAFail("\xe2\xb4\xa5\xe2\x9a\xad\xf3\xa0\x96\xab\xe2\x8b\x83\xef\xbd\xa1\xf0\x91\x8c\xbc"); }
2310test { try parseIDNAFail("xn--9nd623g4zc5z060c.xn--ro1d"); }
2311test { try parseIDNAFail("\xf1\x82\x88\xa6\xe5\xb8\xb7\xef\xbd\xa1\xe2\x89\xaf\xe8\x90\xba\xe1\xb7\x88-"); }
2312test { try parseIDNAFail("\xf1\x82\x88\xa6\xe5\xb8\xb7\xef\xbd\xa1>\xcc\xb8\xe8\x90\xba\xe1\xb7\x88-"); }
2313test { try parseIDNAFail("\xf1\x82\x88\xa6\xe5\xb8\xb7\xe3\x80\x82\xe2\x89\xaf\xe8\x90\xba\xe1\xb7\x88-"); }
2314test { try parseIDNAFail("\xf1\x82\x88\xa6\xe5\xb8\xb7\xe3\x80\x82>\xcc\xb8\xe8\x90\xba\xe1\xb7\x88-"); }
2315test { try parseIDNAFail("xn--qutw175s.xn----mimu6tf67j"); }
2316test { try parseIDNAFail("\xe2\x80\x8d\xe6\x94\x8c\xea\xaf\xad\xe3\x80\x82\xe1\xa2\x96-\xe1\x82\xb8"); }
2317test { try parseIDNAFail("\xe2\x80\x8d\xe6\x94\x8c\xea\xaf\xad\xe3\x80\x82\xe1\xa2\x96-\xe2\xb4\x98"); }
2318test { try parseIDNAFail("xn--1ug592ykp6b.xn----mck373i"); }
2319test { try parseIDNAFail("xn--p9ut19m.xn----k1g451d"); }
2320test { try parseIDNAFail("xn--1ug592ykp6b.xn----k1g451d"); }
2321test { try parseIDNAFail("\xe2\x80\x8c\xea\x96\xa8\xef\xbc\x8e\xe2\x92\x97\xef\xbc\x93\xed\x88\x92\xdb\xb3"); }
2322test { try parseIDNAFail("\xe2\x80\x8c\xea\x96\xa8\xef\xbc\x8e\xe2\x92\x97\xef\xbc\x93\xe1\x84\x90\xe1\x85\xad\xe1\x86\xa9\xdb\xb3"); }
2323test { try parseIDNAFail("\xe2\x80\x8c\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3"); }
2324test { try parseIDNAFail("\xe2\x80\x8c\xea\x96\xa8.16.3\xe1\x84\x90\xe1\x85\xad\xe1\x86\xa9\xdb\xb3"); }
2325test { try parseIDNAFail("xn--0ug2473c.16.xn--3-nyc0117m"); }
2326test { try parseIDNAFail("xn--9r8a.xn--3-nyc678tu07m"); }
2327test { try parseIDNAFail("xn--0ug2473c.xn--3-nyc678tu07m"); }
2328test { try parseIDNAFail("\xf0\x9d\x9f\x8f\xf0\x9d\xa8\x99\xe2\xb8\x96.\xe2\x80\x8d"); }
2329test { try parseIDNAFail("1\xf0\x9d\xa8\x99\xe2\xb8\x96.\xe2\x80\x8d"); }
2330test { try parseIDNAFail("xn--1-5bt6845n.xn--1ug"); }
2331test { try parseIDNAFail("F\xf3\xa0\x85\x9f\xef\xbd\xa1\xf2\x8f\x97\x85\xe2\x99\x9a"); }
2332test { try parseIDNAFail("F\xf3\xa0\x85\x9f\xe3\x80\x82\xf2\x8f\x97\x85\xe2\x99\x9a"); }
2333test { try parseIDNAFail("f\xf3\xa0\x85\x9f\xe3\x80\x82\xf2\x8f\x97\x85\xe2\x99\x9a"); }
2334test { try parseIDNAFail("f.xn--45hz6953f"); }
2335test { try parseIDNAFail("f\xf3\xa0\x85\x9f\xef\xbd\xa1\xf2\x8f\x97\x85\xe2\x99\x9a"); }
2336test { try parseIDNAFail("\xe0\xad\x8d\xf0\x91\x84\xb4\xe1\xb7\xa9\xe3\x80\x82\xf0\x9d\x9f\xae\xe1\x82\xb8\xf0\x9e\x80\xa8\xf1\x83\xa5\x87"); }
2337test { try parseIDNAFail("\xe0\xad\x8d\xf0\x91\x84\xb4\xe1\xb7\xa9\xe3\x80\x822\xe1\x82\xb8\xf0\x9e\x80\xa8\xf1\x83\xa5\x87"); }
2338test { try parseIDNAFail("\xe0\xad\x8d\xf0\x91\x84\xb4\xe1\xb7\xa9\xe3\x80\x822\xe2\xb4\x98\xf0\x9e\x80\xa8\xf1\x83\xa5\x87"); }
2339test { try parseIDNAFail("xn--9ic246gs21p.xn--2-nws2918ndrjr"); }
2340test { try parseIDNAFail("\xe0\xad\x8d\xf0\x91\x84\xb4\xe1\xb7\xa9\xe3\x80\x82\xf0\x9d\x9f\xae\xe2\xb4\x98\xf0\x9e\x80\xa8\xf1\x83\xa5\x87"); }
2341test { try parseIDNAFail("xn--9ic246gs21p.xn--2-k1g43076adrwq"); }
2342test { try parseIDNAFail("\xf2\x93\xa0\xad\xe2\x80\x8c\xe2\x80\x8c\xe2\x92\x88\xe3\x80\x82\xe5\x8b\x89\xf0\x91\x81\x85"); }
2343test { try parseIDNAFail("\xf2\x93\xa0\xad\xe2\x80\x8c\xe2\x80\x8c1.\xe3\x80\x82\xe5\x8b\x89\xf0\x91\x81\x85"); }
2344test { try parseIDNAFail("xn--1-yi00h..xn--4grs325b"); }
2345test { try parseIDNAFail("xn--1-rgna61159u..xn--4grs325b"); }
2346test { try parseIDNAFail("xn--tsh11906f.xn--4grs325b"); }
2347test { try parseIDNAFail("xn--0uga855aez302a.xn--4grs325b"); }
2348test { try parseIDNAFail("\xe1\xa1\x83.\xe7\x8e\xbf\xf1\xab\x88\x9c\xf3\x95\x9e\x90"); }
2349test { try parseIDNAFail("xn--27e.xn--7cy81125a0yq4a"); }
2350test { try parseIDNAFail("\xe2\x80\x8c\xe2\x80\x8c\xef\xbd\xa1\xe2\x92\x88\xe2\x89\xaf\xf0\x9d\x9f\xb5"); }
2351test { try parseIDNAFail("\xe2\x80\x8c\xe2\x80\x8c\xef\xbd\xa1\xe2\x92\x88>\xcc\xb8\xf0\x9d\x9f\xb5"); }
2352test { try parseIDNAFail("\xe2\x80\x8c\xe2\x80\x8c\xe3\x80\x821.\xe2\x89\xaf9"); }
2353test { try parseIDNAFail("\xe2\x80\x8c\xe2\x80\x8c\xe3\x80\x821.>\xcc\xb89"); }
2354test { try parseIDNAFail("xn--0uga.1.xn--9-ogo"); }
2355test { try parseIDNAFail(".xn--9-ogo37g"); }
2356test { try parseIDNAFail("xn--0uga.xn--9-ogo37g"); }
2357test { try parseIDNAFail("\xe2\x83\x9a\xef\xbc\x8e\xf0\x91\x98\xbf-"); }
2358test { try parseIDNAFail("\xe2\x83\x9a.\xf0\x91\x98\xbf-"); }
2359test { try parseIDNAFail("xn--w0g.xn----bd0j"); }
2360test { try parseIDNAFail("\xe1\x82\x82-\xe2\x80\x8d\xea\xa3\xaa\xef\xbc\x8e\xea\xa1\x8a\xe2\x80\x8d\xf1\xbc\xb8\xb3"); }
2361test { try parseIDNAFail("\xe1\x82\x82-\xe2\x80\x8d\xea\xa3\xaa.\xea\xa1\x8a\xe2\x80\x8d\xf1\xbc\xb8\xb3"); }
2362test { try parseIDNAFail("xn----gyg3618i.xn--jc9ao4185a"); }
2363test { try parseIDNAFail("xn----gyg250jio7k.xn--1ug8774cri56d"); }
2364test { try parseIDNAFail("\xf0\x91\x88\xb5\xe5\xbb\x8a.\xf0\x90\xa0\x8d"); }
2365test { try parseIDNAFail("xn--xytw701b.xn--yc9c"); }
2366test { try parseIDNAFail("\xe1\x82\xbe\xf0\xb6\x9b\x80\xf0\x9b\x97\xbb\xef\xbc\x8e\xe1\xa2\x97\xeb\xa6\xab"); }
2367test { try parseIDNAFail("\xe1\x82\xbe\xf0\xb6\x9b\x80\xf0\x9b\x97\xbb\xef\xbc\x8e\xe1\xa2\x97\xe1\x84\x85\xe1\x85\xb4\xe1\x87\x82"); }
2368test { try parseIDNAFail("\xe1\x82\xbe\xf0\xb6\x9b\x80\xf0\x9b\x97\xbb.\xe1\xa2\x97\xeb\xa6\xab"); }
2369test { try parseIDNAFail("\xe1\x82\xbe\xf0\xb6\x9b\x80\xf0\x9b\x97\xbb.\xe1\xa2\x97\xe1\x84\x85\xe1\x85\xb4\xe1\x87\x82"); }
2370test { try parseIDNAFail("\xe2\xb4\x9e\xf0\xb6\x9b\x80\xf0\x9b\x97\xbb.\xe1\xa2\x97\xe1\x84\x85\xe1\x85\xb4\xe1\x87\x82"); }
2371test { try parseIDNAFail("\xe2\xb4\x9e\xf0\xb6\x9b\x80\xf0\x9b\x97\xbb.\xe1\xa2\x97\xeb\xa6\xab"); }
2372test { try parseIDNAFail("xn--mlj0486jgl2j.xn--hbf6853f"); }
2373test { try parseIDNAFail("\xe2\xb4\x9e\xf0\xb6\x9b\x80\xf0\x9b\x97\xbb\xef\xbc\x8e\xe1\xa2\x97\xe1\x84\x85\xe1\x85\xb4\xe1\x87\x82"); }
2374test { try parseIDNAFail("\xe2\xb4\x9e\xf0\xb6\x9b\x80\xf0\x9b\x97\xbb\xef\xbc\x8e\xe1\xa2\x97\xeb\xa6\xab"); }
2375test { try parseIDNAFail("xn--2nd8876sgl2j.xn--hbf6853f"); }
2376test { try parseIDNAFail("\xc3\x9f\xe2\x80\x8d\xe1\x80\xba\xef\xbd\xa1\xe2\x92\x88"); }
2377test { try parseIDNAFail("xn--ss-f4j585j.b."); }
2378test { try parseIDNAFail("xn--zca679eh2l.b."); }
2379test { try parseIDNAFail("SS\xe2\x80\x8d\xe1\x80\xba\xef\xbd\xa1\xe2\x92\x88"); }
2380test { try parseIDNAFail("ss\xe2\x80\x8d\xe1\x80\xba\xef\xbd\xa1\xe2\x92\x88"); }
2381test { try parseIDNAFail("Ss\xe2\x80\x8d\xe1\x80\xba\xef\xbd\xa1\xe2\x92\x88"); }
2382test { try parseIDNAFail("xn--ss-f4j.xn--tsh"); }
2383test { try parseIDNAFail("xn--ss-f4j585j.xn--tsh"); }
2384test { try parseIDNAFail("xn--zca679eh2l.xn--tsh"); }
2385test { try parseIDNAFail("\xf0\x9d\x9f\xa0\xe2\x89\xae\xe2\x80\x8c\xef\xbd\xa1\xf3\xa0\x85\xb1\xe1\x9e\xb4"); }
2386test { try parseIDNAFail("\xf0\x9d\x9f\xa0<\xcc\xb8\xe2\x80\x8c\xef\xbd\xa1\xf3\xa0\x85\xb1\xe1\x9e\xb4"); }
2387test { try parseIDNAFail("8\xe2\x89\xae\xe2\x80\x8c\xe3\x80\x82\xf3\xa0\x85\xb1\xe1\x9e\xb4"); }
2388test { try parseIDNAFail("8<\xcc\xb8\xe2\x80\x8c\xe3\x80\x82\xf3\xa0\x85\xb1\xe1\x9e\xb4"); }
2389test { try parseIDNAFail("xn--8-sgn10i."); }
2390test { try parseIDNAFail("xn--8-ngo.xn--z3e"); }
2391test { try parseIDNAFail("xn--8-sgn10i.xn--z3e"); }
2392test { try parseIDNAFail("\xe1\xa2\x95\xe2\x89\xaf\xef\xb8\x92\xf1\x84\x82\xaf\xef\xbc\x8e\xe1\x82\xa0"); }
2393test { try parseIDNAFail("\xe1\xa2\x95>\xcc\xb8\xef\xb8\x92\xf1\x84\x82\xaf\xef\xbc\x8e\xe1\x82\xa0"); }
2394test { try parseIDNAFail("\xe1\xa2\x95\xe2\x89\xaf\xe3\x80\x82\xf1\x84\x82\xaf.\xe1\x82\xa0"); }
2395test { try parseIDNAFail("\xe1\xa2\x95>\xcc\xb8\xe3\x80\x82\xf1\x84\x82\xaf.\xe1\x82\xa0"); }
2396test { try parseIDNAFail("\xe1\xa2\x95>\xcc\xb8\xe3\x80\x82\xf1\x84\x82\xaf.\xe2\xb4\x80"); }
2397test { try parseIDNAFail("\xe1\xa2\x95\xe2\x89\xaf\xe3\x80\x82\xf1\x84\x82\xaf.\xe2\xb4\x80"); }
2398test { try parseIDNAFail("xn--fbf851c.xn--ko1u.xn--rkj"); }
2399test { try parseIDNAFail("\xe1\xa2\x95>\xcc\xb8\xef\xb8\x92\xf1\x84\x82\xaf\xef\xbc\x8e\xe2\xb4\x80"); }
2400test { try parseIDNAFail("\xe1\xa2\x95\xe2\x89\xaf\xef\xb8\x92\xf1\x84\x82\xaf\xef\xbc\x8e\xe2\xb4\x80"); }
2401test { try parseIDNAFail("xn--fbf851cq98poxw1a.xn--rkj"); }
2402test { try parseIDNAFail("xn--fbf851c.xn--ko1u.xn--7md"); }
2403test { try parseIDNAFail("xn--fbf851cq98poxw1a.xn--7md"); }
2404test { try parseIDNAFail("\xe0\xbe\x9f\xef\xbc\x8e-\xe0\xa0\xaa"); }
2405test { try parseIDNAFail("\xe0\xbe\x9f.-\xe0\xa0\xaa"); }
2406test { try parseIDNAFail("xn--vfd.xn----fhd"); }
2407test { try parseIDNAFail("\xe1\xb5\xac\xf3\xa0\x86\xa0\xef\xbc\x8e\xed\x95\x92\xe2\x92\x92\xe2\x92\x88\xf4\x88\x84\xa6"); }
2408test { try parseIDNAFail("\xe1\xb5\xac\xf3\xa0\x86\xa0\xef\xbc\x8e\xe1\x84\x91\xe1\x85\xb5\xe1\x86\xbd\xe2\x92\x92\xe2\x92\x88\xf4\x88\x84\xa6"); }
2409test { try parseIDNAFail("\xe1\xb5\xac\xf3\xa0\x86\xa0.\xed\x95\x9211.1.\xf4\x88\x84\xa6"); }
2410test { try parseIDNAFail("\xe1\xb5\xac\xf3\xa0\x86\xa0.\xe1\x84\x91\xe1\x85\xb5\xe1\x86\xbd11.1.\xf4\x88\x84\xa6"); }
2411test { try parseIDNAFail("xn--tbg.xn--11-5o7k.1.xn--k469f"); }
2412test { try parseIDNAFail("xn--tbg.xn--tsht7586kyts9l"); }
2413test { try parseIDNAFail("\xe2\x92\x88\xe2\x9c\x8c\xf2\x9f\xac\x9f\xef\xbc\x8e\xf0\x9d\x9f\xa1\xf1\xa0\xb1\xa3"); }
2414test { try parseIDNAFail("1.\xe2\x9c\x8c\xf2\x9f\xac\x9f.9\xf1\xa0\xb1\xa3"); }
2415test { try parseIDNAFail("1.xn--7bi44996f.xn--9-o706d"); }
2416test { try parseIDNAFail("xn--tsh24g49550b.xn--9-o706d"); }
2417test { try parseIDNAFail("\xcf\x82\xef\xbc\x8e\xea\xa7\x80\xea\xa3\x84"); }
2418test { try parseIDNAFail("\xcf\x82.\xea\xa7\x80\xea\xa3\x84"); }
2419test { try parseIDNAFail("\xce\xa3.\xea\xa7\x80\xea\xa3\x84"); }
2420test { try parseIDNAFail("\xcf\x83.\xea\xa7\x80\xea\xa3\x84"); }
2421test { try parseIDNAFail("xn--4xa.xn--0f9ars"); }
2422test { try parseIDNAFail("xn--3xa.xn--0f9ars"); }
2423test { try parseIDNAFail("\xce\xa3\xef\xbc\x8e\xea\xa7\x80\xea\xa3\x84"); }
2424test { try parseIDNAFail("\xcf\x83\xef\xbc\x8e\xea\xa7\x80\xea\xa3\x84"); }
2425test { try parseIDNAFail("\xe2\x9e\x86\xf1\xb7\xa7\x95\xe1\xbb\x97\xe2\x92\x88\xef\xbc\x8e\xf2\x91\xac\x92\xf1\xa1\x98\xae\xe0\xa1\x9b\xf0\x9d\x9f\xab"); }
2426test { try parseIDNAFail("\xe2\x9e\x86\xf1\xb7\xa7\x95o\xcc\x82\xcc\x83\xe2\x92\x88\xef\xbc\x8e\xf2\x91\xac\x92\xf1\xa1\x98\xae\xe0\xa1\x9b\xf0\x9d\x9f\xab"); }
2427test { try parseIDNAFail("\xe2\x9e\x86\xf1\xb7\xa7\x95\xe1\xbb\x971..\xf2\x91\xac\x92\xf1\xa1\x98\xae\xe0\xa1\x9b9"); }
2428test { try parseIDNAFail("\xe2\x9e\x86\xf1\xb7\xa7\x95o\xcc\x82\xcc\x831..\xf2\x91\xac\x92\xf1\xa1\x98\xae\xe0\xa1\x9b9"); }
2429test { try parseIDNAFail("\xe2\x9e\x86\xf1\xb7\xa7\x95O\xcc\x82\xcc\x831..\xf2\x91\xac\x92\xf1\xa1\x98\xae\xe0\xa1\x9b9"); }
2430test { try parseIDNAFail("\xe2\x9e\x86\xf1\xb7\xa7\x95\xe1\xbb\x961..\xf2\x91\xac\x92\xf1\xa1\x98\xae\xe0\xa1\x9b9"); }
2431test { try parseIDNAFail("xn--1-3xm292b6044r..xn--9-6jd87310jtcqs"); }
2432test { try parseIDNAFail("\xe2\x9e\x86\xf1\xb7\xa7\x95O\xcc\x82\xcc\x83\xe2\x92\x88\xef\xbc\x8e\xf2\x91\xac\x92\xf1\xa1\x98\xae\xe0\xa1\x9b\xf0\x9d\x9f\xab"); }
2433test { try parseIDNAFail("\xe2\x9e\x86\xf1\xb7\xa7\x95\xe1\xbb\x96\xe2\x92\x88\xef\xbc\x8e\xf2\x91\xac\x92\xf1\xa1\x98\xae\xe0\xa1\x9b\xf0\x9d\x9f\xab"); }
2434test { try parseIDNAFail("xn--6lg26tvvc6v99z.xn--9-6jd87310jtcqs"); }
2435test { try parseIDNAFail("\xdc\xbc\xe2\x80\x8c-\xe3\x80\x82\xf0\x93\x90\xbe\xc3\x9f"); }
2436test { try parseIDNAFail("\xdc\xbc\xe2\x80\x8c-\xe3\x80\x82\xf0\x93\x90\xbeSS"); }
2437test { try parseIDNAFail("\xdc\xbc\xe2\x80\x8c-\xe3\x80\x82\xf0\x93\x90\xbess"); }
2438test { try parseIDNAFail("\xdc\xbc\xe2\x80\x8c-\xe3\x80\x82\xf0\x93\x90\xbeSs"); }
2439test { try parseIDNAFail("xn----s2c.xn--ss-066q"); }
2440test { try parseIDNAFail("xn----s2c071q.xn--ss-066q"); }
2441test { try parseIDNAFail("xn----s2c071q.xn--zca7848m"); }
2442test { try parseIDNAFail("-\xf2\xb7\x9d\xac\xe1\x8d\x9e\xf0\x91\x9c\xa7.\xe1\xb7\xab-\xef\xb8\x92"); }
2443test { try parseIDNAFail("-\xf2\xb7\x9d\xac\xe1\x8d\x9e\xf0\x91\x9c\xa7.\xe1\xb7\xab-\xe3\x80\x82"); }
2444test { try parseIDNAFail("xn----b5h1837n2ok9f.xn----mkm."); }
2445test { try parseIDNAFail("xn----b5h1837n2ok9f.xn----mkmw278h"); }
2446test { try parseIDNAFail("\xef\xb8\x92.\xf2\x9a\xa0\xa1\xe1\xa9\x99"); }
2447test { try parseIDNAFail("\xe3\x80\x82.\xf2\x9a\xa0\xa1\xe1\xa9\x99"); }
2448test { try parseIDNAFail("..xn--cof61594i"); }
2449test { try parseIDNAFail("xn--y86c.xn--cof61594i"); }
2450test { try parseIDNAFail("\xf0\x91\xb0\xba.-\xf2\x91\x9f\x8f"); }
2451test { try parseIDNAFail("xn--jk3d.xn----iz68g"); }
2452test { try parseIDNAFail("\xf3\xa0\xbb\xa9\xef\xbc\x8e\xe8\xb5\x8f"); }
2453test { try parseIDNAFail("\xf3\xa0\xbb\xa9.\xe8\xb5\x8f"); }
2454test { try parseIDNAFail("xn--2856e.xn--6o3a"); }
2455test { try parseIDNAFail("\xe1\x82\xad\xef\xbc\x8e\xf1\x8d\x87\xa6\xe2\x80\x8c"); }
2456test { try parseIDNAFail("\xe1\x82\xad.\xf1\x8d\x87\xa6\xe2\x80\x8c"); }
2457test { try parseIDNAFail("\xe2\xb4\x8d.\xf1\x8d\x87\xa6\xe2\x80\x8c"); }
2458test { try parseIDNAFail("xn--4kj.xn--p01x"); }
2459test { try parseIDNAFail("xn--4kj.xn--0ug56448b"); }
2460test { try parseIDNAFail("\xe2\xb4\x8d\xef\xbc\x8e\xf1\x8d\x87\xa6\xe2\x80\x8c"); }
2461test { try parseIDNAFail("xn--lnd.xn--p01x"); }
2462test { try parseIDNAFail("xn--lnd.xn--0ug56448b"); }
2463test { try parseIDNAFail("-\xe2\x80\x8d.\xe1\x82\xbe\xf0\x90\x8b\xb7"); }
2464test { try parseIDNAFail("-\xe2\x80\x8d.\xe2\xb4\x9e\xf0\x90\x8b\xb7"); }
2465test { try parseIDNAFail("xn----ugn.xn--mlj8559d"); }
2466test { try parseIDNAFail("-.xn--2nd2315j"); }
2467test { try parseIDNAFail("xn----ugn.xn--2nd2315j"); }
2468test { try parseIDNAFail("\xe2\x80\x8d\xcf\x82\xc3\x9f\xdc\xb1\xef\xbc\x8e\xe0\xaf\x8d"); }
2469test { try parseIDNAFail("\xe2\x80\x8d\xcf\x82\xc3\x9f\xdc\xb1.\xe0\xaf\x8d"); }
2470test { try parseIDNAFail("\xe2\x80\x8d\xce\xa3SS\xdc\xb1.\xe0\xaf\x8d"); }
2471test { try parseIDNAFail("\xe2\x80\x8d\xcf\x83ss\xdc\xb1.\xe0\xaf\x8d"); }
2472test { try parseIDNAFail("\xe2\x80\x8d\xce\xa3ss\xdc\xb1.\xe0\xaf\x8d"); }
2473test { try parseIDNAFail("xn--ss-ubc826a.xn--xmc"); }
2474test { try parseIDNAFail("xn--ss-ubc826ab34b.xn--xmc"); }
2475test { try parseIDNAFail("\xe2\x80\x8d\xce\xa3\xc3\x9f\xdc\xb1.\xe0\xaf\x8d"); }
2476test { try parseIDNAFail("\xe2\x80\x8d\xcf\x83\xc3\x9f\xdc\xb1.\xe0\xaf\x8d"); }
2477test { try parseIDNAFail("xn--zca39lk1di19a.xn--xmc"); }
2478test { try parseIDNAFail("xn--zca19ln1di19a.xn--xmc"); }
2479test { try parseIDNAFail("\xe2\x80\x8d\xce\xa3SS\xdc\xb1\xef\xbc\x8e\xe0\xaf\x8d"); }
2480test { try parseIDNAFail("\xe2\x80\x8d\xcf\x83ss\xdc\xb1\xef\xbc\x8e\xe0\xaf\x8d"); }
2481test { try parseIDNAFail("\xe2\x80\x8d\xce\xa3ss\xdc\xb1\xef\xbc\x8e\xe0\xaf\x8d"); }
2482test { try parseIDNAFail("\xe2\x80\x8d\xce\xa3\xc3\x9f\xdc\xb1\xef\xbc\x8e\xe0\xaf\x8d"); }
2483test { try parseIDNAFail("\xe2\x80\x8d\xcf\x83\xc3\x9f\xdc\xb1\xef\xbc\x8e\xe0\xaf\x8d"); }
2484test { try parseIDNAFail("\xe2\x89\xa0\xef\xbc\x8e\xe2\x80\x8d"); }
2485test { try parseIDNAFail("=\xcc\xb8\xef\xbc\x8e\xe2\x80\x8d"); }
2486test { try parseIDNAFail("\xe2\x89\xa0.\xe2\x80\x8d"); }
2487test { try parseIDNAFail("=\xcc\xb8.\xe2\x80\x8d"); }
2488test { try parseIDNAFail("xn--1ch.xn--1ug"); }
2489test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xcf\x82\xef\xbc\x8e\xcf\x82\xf0\x90\xa8\xbf"); }
2490test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xcf\x82.\xcf\x82\xf0\x90\xa8\xbf"); }
2491test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xce\xa3.\xce\xa3\xf0\x90\xa8\xbf"); }
2492test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xcf\x83.\xcf\x82\xf0\x90\xa8\xbf"); }
2493test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xcf\x83.\xcf\x83\xf0\x90\xa8\xbf"); }
2494test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xce\xa3.\xcf\x83\xf0\x90\xa8\xbf"); }
2495test { try parseIDNAFail("xn--4xa502av8297a.xn--4xa6055k"); }
2496test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xce\xa3.\xcf\x82\xf0\x90\xa8\xbf"); }
2497test { try parseIDNAFail("xn--4xa502av8297a.xn--3xa8055k"); }
2498test { try parseIDNAFail("xn--3xa702av8297a.xn--3xa8055k"); }
2499test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xce\xa3\xef\xbc\x8e\xce\xa3\xf0\x90\xa8\xbf"); }
2500test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xcf\x83\xef\xbc\x8e\xcf\x82\xf0\x90\xa8\xbf"); }
2501test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xcf\x83\xef\xbc\x8e\xcf\x83\xf0\x90\xa8\xbf"); }
2502test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xce\xa3\xef\xbc\x8e\xcf\x83\xf0\x90\xa8\xbf"); }
2503test { try parseIDNAFail("\xf3\xa7\x8b\xb5\xe0\xa7\x8d\xce\xa3\xef\xbc\x8e\xcf\x82\xf0\x90\xa8\xbf"); }
2504test { try parseIDNAFail("\xf1\xa3\xa4\x92\xef\xbd\xa1\xeb\xa5\xa7"); }
2505test { try parseIDNAFail("\xf1\xa3\xa4\x92\xef\xbd\xa1\xe1\x84\x85\xe1\x85\xb2\xe1\x86\xb6"); }
2506test { try parseIDNAFail("\xf1\xa3\xa4\x92\xe3\x80\x82\xeb\xa5\xa7"); }
2507test { try parseIDNAFail("\xf1\xa3\xa4\x92\xe3\x80\x82\xe1\x84\x85\xe1\x85\xb2\xe1\x86\xb6"); }
2508test { try parseIDNAFail("xn--s264a.xn--pw2b"); }
2509test { try parseIDNAFail("\xe1\xa1\x86\xf0\x91\x93\x9d\xef\xbc\x8e\xf0\x9e\xb5\x86"); }
2510test { try parseIDNAFail("\xe1\xa1\x86\xf0\x91\x93\x9d.\xf0\x9e\xb5\x86"); }
2511test { try parseIDNAFail("xn--57e0440k.xn--k86h"); }
2512test { try parseIDNAFail("\xf4\x8b\xbf\xa6\xef\xbd\xa1\xe1\xa0\xbd"); }
2513test { try parseIDNAFail("\xf4\x8b\xbf\xa6\xe3\x80\x82\xe1\xa0\xbd"); }
2514test { try parseIDNAFail("xn--j890g.xn--w7e"); }
2515test { try parseIDNAFail("\xe5\xac\x83\xf0\x9d\x8d\x8c\xef\xbc\x8e\xe2\x80\x8d\xe0\xad\x84"); }
2516test { try parseIDNAFail("\xe5\xac\x83\xf0\x9d\x8d\x8c.\xe2\x80\x8d\xe0\xad\x84"); }
2517test { try parseIDNAFail("xn--b6s0078f.xn--0ic"); }
2518test { try parseIDNAFail("xn--b6s0078f.xn--0ic557h"); }
2519test { try parseIDNAFail("\xe2\x80\x8c.\xf1\x9f\x9b\xa4"); }
2520test { try parseIDNAFail(".xn--q823a"); }
2521test { try parseIDNAFail("xn--0ug.xn--q823a"); }
2522test { try parseIDNAFail("\xf2\xba\x9b\x95\xe1\x82\xa3\xe4\xa0\x85\xef\xbc\x8e\xf0\x90\xb8\x91"); }
2523test { try parseIDNAFail("\xf2\xba\x9b\x95\xe1\x82\xa3\xe4\xa0\x85.\xf0\x90\xb8\x91"); }
2524test { try parseIDNAFail("\xf2\xba\x9b\x95\xe2\xb4\x83\xe4\xa0\x85.\xf0\x90\xb8\x91"); }
2525test { try parseIDNAFail("xn--ukju77frl47r.xn--yl0d"); }
2526test { try parseIDNAFail("\xf2\xba\x9b\x95\xe2\xb4\x83\xe4\xa0\x85\xef\xbc\x8e\xf0\x90\xb8\x91"); }
2527test { try parseIDNAFail("xn--bnd074zr557n.xn--yl0d"); }
2528test { try parseIDNAFail("-\xef\xbd\xa1\xef\xb8\x92"); }
2529test { try parseIDNAFail("-.xn--y86c"); }
2530test { try parseIDNAFail("\xe2\x80\x8d.F"); }
2531test { try parseIDNAFail("\xe2\x80\x8d.f"); }
2532test { try parseIDNAFail("xn--1ug.f"); }
2533test { try parseIDNAFail("\xe2\x80\x8d\xe3\xa8\xb2\xef\xbd\xa1\xc3\x9f"); }
2534test { try parseIDNAFail("\xe2\x80\x8d\xe3\xa8\xb2\xe3\x80\x82\xc3\x9f"); }
2535test { try parseIDNAFail("\xe2\x80\x8d\xe3\xa8\xb2\xe3\x80\x82SS"); }
2536test { try parseIDNAFail("\xe2\x80\x8d\xe3\xa8\xb2\xe3\x80\x82ss"); }
2537test { try parseIDNAFail("\xe2\x80\x8d\xe3\xa8\xb2\xe3\x80\x82Ss"); }
2538test { try parseIDNAFail("xn--1ug914h.ss"); }
2539test { try parseIDNAFail("xn--1ug914h.xn--zca"); }
2540test { try parseIDNAFail("\xe2\x80\x8d\xe3\xa8\xb2\xef\xbd\xa1SS"); }
2541test { try parseIDNAFail("\xe2\x80\x8d\xe3\xa8\xb2\xef\xbd\xa1ss"); }
2542test { try parseIDNAFail("\xe2\x80\x8d\xe3\xa8\xb2\xef\xbd\xa1Ss"); }
2543test { try parseIDNAFail("\xe2\x80\x8d\xef\xbc\x8e\xf4\x80\xb8\xa8"); }
2544test { try parseIDNAFail("\xe2\x80\x8d.\xf4\x80\xb8\xa8"); }
2545test { try parseIDNAFail(".xn--h327f"); }
2546test { try parseIDNAFail("xn--1ug.xn--h327f"); }
2547test { try parseIDNAFail("\xf1\xa3\xad\xbb\xf1\x8c\xa5\x81\xef\xbd\xa1\xe2\x89\xa0\xf0\x9d\x9f\xb2"); }
2548test { try parseIDNAFail("\xf1\xa3\xad\xbb\xf1\x8c\xa5\x81\xef\xbd\xa1=\xcc\xb8\xf0\x9d\x9f\xb2"); }
2549test { try parseIDNAFail("\xf1\xa3\xad\xbb\xf1\x8c\xa5\x81\xe3\x80\x82\xe2\x89\xa06"); }
2550test { try parseIDNAFail("\xf1\xa3\xad\xbb\xf1\x8c\xa5\x81\xe3\x80\x82=\xcc\xb86"); }
2551test { try parseIDNAFail("xn--h79w4z99a.xn--6-tfo"); }
2552test { try parseIDNAFail("xn--98e.xn--om9c"); }
2553test { try parseIDNAFail("\xea\xab\xb6\xe1\xa2\x8f\xe0\xb8\xba\xef\xbc\x92.\xf0\x90\x8b\xa2\xdd\x85\xe0\xbe\x9f\xef\xb8\x92"); }
2554test { try parseIDNAFail("\xea\xab\xb6\xe1\xa2\x8f\xe0\xb8\xba2.\xf0\x90\x8b\xa2\xdd\x85\xe0\xbe\x9f\xe3\x80\x82"); }
2555test { try parseIDNAFail("xn--2-2zf840fk16m.xn--sob093b2m7s."); }
2556test { try parseIDNAFail("xn--2-2zf840fk16m.xn--sob093bj62sz9d"); }
2557test { try parseIDNAFail("\xf3\x85\xb4\xa7\xef\xbd\xa1\xe2\x89\xa0-\xf3\xa0\x99\x84\xe2\xbe\x9b"); }
2558test { try parseIDNAFail("\xf3\x85\xb4\xa7\xef\xbd\xa1=\xcc\xb8-\xf3\xa0\x99\x84\xe2\xbe\x9b"); }
2559test { try parseIDNAFail("\xf3\x85\xb4\xa7\xe3\x80\x82\xe2\x89\xa0-\xf3\xa0\x99\x84\xe8\xb5\xb0"); }
2560test { try parseIDNAFail("\xf3\x85\xb4\xa7\xe3\x80\x82=\xcc\xb8-\xf3\xa0\x99\x84\xe8\xb5\xb0"); }
2561test { try parseIDNAFail("xn--gm57d.xn----tfo4949b3664m"); }
2562test { try parseIDNAFail("-\xe2\xbe\x86\xef\xbc\x8e\xea\xab\xb6"); }
2563test { try parseIDNAFail("-\xe8\x88\x8c.\xea\xab\xb6"); }
2564test { try parseIDNAFail("xn----ef8c.xn--2v9a"); }
2565test { try parseIDNAFail("xn--jnd1986v.xn--gdh"); }
2566test { try parseIDNAFail("\xe7\x92\xbc\xf0\x9d\xa8\xad\xef\xbd\xa1\xe2\x80\x8c\xf3\xa0\x87\x9f"); }
2567test { try parseIDNAFail("\xe7\x92\xbc\xf0\x9d\xa8\xad\xe3\x80\x82\xe2\x80\x8c\xf3\xa0\x87\x9f"); }
2568test { try parseIDNAFail("xn--gky8837e.xn--0ug"); }
2569test { try parseIDNAFail("\xe2\x80\x8c.\xe2\x80\x8c"); }
2570test { try parseIDNAFail("xn--0ug.xn--0ug"); }
2571test { try parseIDNAFail("\xe1\x82\xb7\xef\xbc\x8e\xd7\x82\xf0\x91\x84\xb4\xea\xa6\xb7\xf1\x98\x83\xa8"); }
2572test { try parseIDNAFail("\xe1\x82\xb7\xef\xbc\x8e\xf0\x91\x84\xb4\xd7\x82\xea\xa6\xb7\xf1\x98\x83\xa8"); }
2573test { try parseIDNAFail("\xe1\x82\xb7.\xf0\x91\x84\xb4\xd7\x82\xea\xa6\xb7\xf1\x98\x83\xa8"); }
2574test { try parseIDNAFail("\xe2\xb4\x97.\xf0\x91\x84\xb4\xd7\x82\xea\xa6\xb7\xf1\x98\x83\xa8"); }
2575test { try parseIDNAFail("xn--flj.xn--qdb0605f14ycrms3c"); }
2576test { try parseIDNAFail("\xe2\xb4\x97\xef\xbc\x8e\xf0\x91\x84\xb4\xd7\x82\xea\xa6\xb7\xf1\x98\x83\xa8"); }
2577test { try parseIDNAFail("\xe2\xb4\x97\xef\xbc\x8e\xd7\x82\xf0\x91\x84\xb4\xea\xa6\xb7\xf1\x98\x83\xa8"); }
2578test { try parseIDNAFail("xn--vnd.xn--qdb0605f14ycrms3c"); }
2579test { try parseIDNAFail("\xe2\x92\x88\xe9\x85\xab\xef\xb8\x92\xe3\x80\x82\xe0\xa3\x96"); }
2580test { try parseIDNAFail("1.\xe9\x85\xab\xe3\x80\x82\xe3\x80\x82\xe0\xa3\x96"); }
2581test { try parseIDNAFail("1.xn--8j4a..xn--8zb"); }
2582test { try parseIDNAFail("xn--tsh4490bfe8c.xn--8zb"); }
2583test { try parseIDNAFail("\xe2\xb7\xa3\xe2\x80\x8c\xe2\x89\xae\xe1\xa9\xab.\xe2\x80\x8c\xe0\xb8\xba"); }
2584test { try parseIDNAFail("\xe2\xb7\xa3\xe2\x80\x8c<\xcc\xb8\xe1\xa9\xab.\xe2\x80\x8c\xe0\xb8\xba"); }
2585test { try parseIDNAFail("xn--uof548an0j.xn--o4c"); }
2586test { try parseIDNAFail("xn--uof63xk4bf3s.xn--o4c732g"); }
2587test { try parseIDNAFail("xn--co6h.xn--1-kwssa"); }
2588test { try parseIDNAFail("xn--co6h.xn--1-h1g429s"); }
2589test { try parseIDNAFail("xn--co6h.xn--1-h1gs"); }
2590test { try parseIDNAFail("\xea\xa0\x86\xe3\x80\x82\xf0\xbb\x9a\x8f\xe0\xbe\xb0\xe2\x92\x95"); }
2591test { try parseIDNAFail("\xea\xa0\x86\xe3\x80\x82\xf0\xbb\x9a\x8f\xe0\xbe\xb014."); }
2592test { try parseIDNAFail("xn--l98a.xn--14-jsj57880f."); }
2593test { try parseIDNAFail("xn--l98a.xn--dgd218hhp28d"); }
2594test { try parseIDNAFail("\xf0\x9d\x9f\xa04\xf3\xa0\x87\x97\xf0\x9d\x88\xbb\xef\xbc\x8e\xe2\x80\x8d\xf0\x90\x8b\xb5\xe2\x9b\xa7\xe2\x80\x8d"); }
2595test { try parseIDNAFail("84\xf3\xa0\x87\x97\xf0\x9d\x88\xbb.\xe2\x80\x8d\xf0\x90\x8b\xb5\xe2\x9b\xa7\xe2\x80\x8d"); }
2596test { try parseIDNAFail("xn--84-s850a.xn--1uga573cfq1w"); }
2597test { try parseIDNAFail("\xf1\xad\x9c\x8e\xe2\x92\x88\xef\xbd\xa1\xe2\x80\x8c\xf0\x9d\x9f\xa4"); }
2598test { try parseIDNAFail("\xf1\xad\x9c\x8e1.\xe3\x80\x82\xe2\x80\x8c2"); }
2599test { try parseIDNAFail("xn--1-ex54e..c"); }
2600test { try parseIDNAFail("xn--1-ex54e..xn--2-rgn"); }
2601test { try parseIDNAFail("xn--tsh94183d.c"); }
2602test { try parseIDNAFail("xn--tsh94183d.xn--2-rgn"); }
2603test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xf3\xa0\x86\xaa\xef\xbd\xa1\xc3\x9f\xf0\x91\x93\x83"); }
2604test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xf3\xa0\x86\xaa\xe3\x80\x82\xc3\x9f\xf0\x91\x93\x83"); }
2605test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xf3\xa0\x86\xaa\xe3\x80\x82SS\xf0\x91\x93\x83"); }
2606test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xf3\xa0\x86\xaa\xe3\x80\x82ss\xf0\x91\x93\x83"); }
2607test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xf3\xa0\x86\xaa\xe3\x80\x82Ss\xf0\x91\x93\x83"); }
2608test { try parseIDNAFail("xn--0ugb.xn--ss-bh7o"); }
2609test { try parseIDNAFail("xn--0ugb.xn--zca0732l"); }
2610test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xf3\xa0\x86\xaa\xef\xbd\xa1SS\xf0\x91\x93\x83"); }
2611test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xf3\xa0\x86\xaa\xef\xbd\xa1ss\xf0\x91\x93\x83"); }
2612test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8c\xf3\xa0\x86\xaa\xef\xbd\xa1Ss\xf0\x91\x93\x83"); }
2613test { try parseIDNAFail("\xef\xb8\x92\xe2\x80\x8c\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa"); }
2614test { try parseIDNAFail("\xe3\x80\x82\xe2\x80\x8c\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa"); }
2615test { try parseIDNAFail(".xn--0ug287dj0o.xn--gd9a"); }
2616test { try parseIDNAFail("xn--qekw60dns9k.xn--gd9a"); }
2617test { try parseIDNAFail("xn--0ug287dj0or48o.xn--gd9a"); }
2618test { try parseIDNAFail("\xe2\x80\x8c\xe2\x92\x88\xf0\xa4\xae\x8d.\xf3\xa2\x93\x8b\xe1\xa9\xa0"); }
2619test { try parseIDNAFail("\xe2\x80\x8c1.\xf0\xa4\xae\x8d.\xf3\xa2\x93\x8b\xe1\xa9\xa0"); }
2620test { try parseIDNAFail("1.xn--4x6j.xn--jof45148n"); }
2621test { try parseIDNAFail("xn--1-rgn.xn--4x6j.xn--jof45148n"); }
2622test { try parseIDNAFail("xn--tshw462r.xn--jof45148n"); }
2623test { try parseIDNAFail("xn--0ug88o7471d.xn--jof45148n"); }
2624test { try parseIDNAFail("\xf0\x9d\x85\xb5\xef\xbd\xa1\xf0\x9d\x9f\xab\xf0\x9e\x80\x88\xe4\xac\xba\xe2\x92\x88"); }
2625test { try parseIDNAFail(".xn--9-ecp936non25a"); }
2626test { try parseIDNAFail("xn--3f1h.xn--91-030c1650n."); }
2627test { try parseIDNAFail("xn--3f1h.xn--9-ecp936non25a"); }
2628test { try parseIDNAFail("-\xf3\xa0\x85\xb10\xef\xbd\xa1\xe1\x9f\x8f\xe1\xb7\xbd\xed\x86\x87\xec\x8b\xad"); }
2629test { try parseIDNAFail("-\xf3\xa0\x85\xb10\xef\xbd\xa1\xe1\x9f\x8f\xe1\xb7\xbd\xe1\x84\x90\xe1\x85\xa8\xe1\x86\xaa\xe1\x84\x89\xe1\x85\xb5\xe1\x86\xb8"); }
2630test { try parseIDNAFail("-\xf3\xa0\x85\xb10\xe3\x80\x82\xe1\x9f\x8f\xe1\xb7\xbd\xed\x86\x87\xec\x8b\xad"); }
2631test { try parseIDNAFail("-\xf3\xa0\x85\xb10\xe3\x80\x82\xe1\x9f\x8f\xe1\xb7\xbd\xe1\x84\x90\xe1\x85\xa8\xe1\x86\xaa\xe1\x84\x89\xe1\x85\xb5\xe1\x86\xb8"); }
2632test { try parseIDNAFail("-0.xn--r4e872ah77nghm"); }
2633test { try parseIDNAFail("\xe1\x85\x9f\xe1\x82\xbf\xe1\x82\xb5\xe1\x83\xa0\xef\xbd\xa1\xe0\xad\x8d"); }
2634test { try parseIDNAFail("\xe1\x85\x9f\xe1\x82\xbf\xe1\x82\xb5\xe1\x83\xa0\xe3\x80\x82\xe0\xad\x8d"); }
2635test { try parseIDNAFail("\xe1\x85\x9f\xe2\xb4\x9f\xe2\xb4\x95\xe1\x83\xa0\xe3\x80\x82\xe0\xad\x8d"); }
2636test { try parseIDNAFail("\xe1\x85\x9f\xe1\x82\xbf\xe1\x82\xb5\xe1\xb2\xa0\xe3\x80\x82\xe0\xad\x8d"); }
2637test { try parseIDNAFail("xn--1od555l3a.xn--9ic"); }
2638test { try parseIDNAFail("\xe1\x85\x9f\xe2\xb4\x9f\xe2\xb4\x95\xe1\x83\xa0\xef\xbd\xa1\xe0\xad\x8d"); }
2639test { try parseIDNAFail("\xe1\x85\x9f\xe1\x82\xbf\xe1\x82\xb5\xe1\xb2\xa0\xef\xbd\xa1\xe0\xad\x8d"); }
2640test { try parseIDNAFail("xn--tndt4hvw.xn--9ic"); }
2641test { try parseIDNAFail("xn--1od7wz74eeb.xn--9ic"); }
2642test { try parseIDNAFail("\xe1\x85\x9f\xe1\x82\xbf\xe2\xb4\x95\xe1\x83\xa0\xe3\x80\x82\xe0\xad\x8d"); }
2643test { try parseIDNAFail("xn--3nd0etsm92g.xn--9ic"); }
2644test { try parseIDNAFail("\xe1\x85\x9f\xe1\x82\xbf\xe2\xb4\x95\xe1\x83\xa0\xef\xbd\xa1\xe0\xad\x8d"); }
2645test { try parseIDNAFail("xn--l96h.xn--o8e4044k"); }
2646test { try parseIDNAFail("xn--l96h.xn--03e93aq365d"); }
2647test { try parseIDNAFail("\xf0\x9d\x9f\x9b\xf0\x9d\x86\xaa\xea\xa3\x84\xef\xbd\xa1\xea\xa3\xaa-"); }
2648test { try parseIDNAFail("\xf0\x9d\x9f\x9b\xea\xa3\x84\xf0\x9d\x86\xaa\xef\xbd\xa1\xea\xa3\xaa-"); }
2649test { try parseIDNAFail("3\xea\xa3\x84\xf0\x9d\x86\xaa\xe3\x80\x82\xea\xa3\xaa-"); }
2650test { try parseIDNAFail("xn--3-sl4eu679e.xn----xn4e"); }
2651test { try parseIDNAFail("\xe1\x84\xb9\xef\xbd\xa1\xe0\xbb\x8a\xf2\xa0\xaf\xa4\xf3\xa0\x84\x9e"); }
2652test { try parseIDNAFail("\xe1\x84\xb9\xe3\x80\x82\xe0\xbb\x8a\xf2\xa0\xaf\xa4\xf3\xa0\x84\x9e"); }
2653test { try parseIDNAFail("xn--lrd.xn--s8c05302k"); }
2654test { try parseIDNAFail("\xe1\x82\xa6\xf2\xbb\xa2\xa9\xef\xbc\x8e\xf3\xa0\x86\xa1\xef\xb8\x89\xf0\x9e\xa4\x8d"); }
2655test { try parseIDNAFail("\xe1\x82\xa6\xf2\xbb\xa2\xa9.\xf3\xa0\x86\xa1\xef\xb8\x89\xf0\x9e\xa4\x8d"); }
2656test { try parseIDNAFail("\xe2\xb4\x86\xf2\xbb\xa2\xa9.\xf3\xa0\x86\xa1\xef\xb8\x89\xf0\x9e\xa4\xaf"); }
2657test { try parseIDNAFail("xn--xkjw3965g.xn--ne6h"); }
2658test { try parseIDNAFail("\xe2\xb4\x86\xf2\xbb\xa2\xa9\xef\xbc\x8e\xf3\xa0\x86\xa1\xef\xb8\x89\xf0\x9e\xa4\xaf"); }
2659test { try parseIDNAFail("xn--end82983m.xn--ne6h"); }
2660test { try parseIDNAFail("\xe2\xb4\x86\xf2\xbb\xa2\xa9.\xf3\xa0\x86\xa1\xef\xb8\x89\xf0\x9e\xa4\x8d"); }
2661test { try parseIDNAFail("\xe2\xb4\x86\xf2\xbb\xa2\xa9\xef\xbc\x8e\xf3\xa0\x86\xa1\xef\xb8\x89\xf0\x9e\xa4\x8d"); }
2662test { try parseIDNAFail("\xf1\x97\x9b\xa8.\xf2\x85\x9f\xa2\xf0\x9d\x9f\xa8\xea\xa3\x84"); }
2663test { try parseIDNAFail("\xf1\x97\x9b\xa8.\xf2\x85\x9f\xa26\xea\xa3\x84"); }
2664test { try parseIDNAFail("xn--mi60a.xn--6-sl4es8023c"); }
2665test { try parseIDNAFail("\xf0\x90\x8b\xb8\xf3\xae\x98\x8b\xe1\x83\x82.\xe1\x82\xa1"); }
2666test { try parseIDNAFail("\xf0\x90\x8b\xb8\xf3\xae\x98\x8b\xe2\xb4\xa2.\xe2\xb4\x81"); }
2667test { try parseIDNAFail("\xf0\x90\x8b\xb8\xf3\xae\x98\x8b\xe1\x83\x82.\xe2\xb4\x81"); }
2668test { try parseIDNAFail("xn--qlj1559dr224h.xn--skj"); }
2669test { try parseIDNAFail("xn--6nd5215jr2u0h.xn--skj"); }
2670test { try parseIDNAFail("xn--6nd5215jr2u0h.xn--8md"); }
2671test { try parseIDNAFail("\xf1\x97\x91\xbf\xea\xa0\x86\xe2\x82\x84\xf2\xa9\x9e\x86\xef\xbd\xa1\xf0\xb2\xa9\xa7\xf3\xa0\x92\xb9\xcf\x82"); }
2672test { try parseIDNAFail("\xf1\x97\x91\xbf\xea\xa0\x864\xf2\xa9\x9e\x86\xe3\x80\x82\xf0\xb2\xa9\xa7\xf3\xa0\x92\xb9\xcf\x82"); }
2673test { try parseIDNAFail("\xf1\x97\x91\xbf\xea\xa0\x864\xf2\xa9\x9e\x86\xe3\x80\x82\xf0\xb2\xa9\xa7\xf3\xa0\x92\xb9\xce\xa3"); }
2674test { try parseIDNAFail("\xf1\x97\x91\xbf\xea\xa0\x864\xf2\xa9\x9e\x86\xe3\x80\x82\xf0\xb2\xa9\xa7\xf3\xa0\x92\xb9\xcf\x83"); }
2675test { try parseIDNAFail("xn--4-w93ej7463a9io5a.xn--4xa31142bk3f0d"); }
2676test { try parseIDNAFail("xn--4-w93ej7463a9io5a.xn--3xa51142bk3f0d"); }
2677test { try parseIDNAFail("\xf1\x97\x91\xbf\xea\xa0\x86\xe2\x82\x84\xf2\xa9\x9e\x86\xef\xbd\xa1\xf0\xb2\xa9\xa7\xf3\xa0\x92\xb9\xce\xa3"); }
2678test { try parseIDNAFail("\xf1\x97\x91\xbf\xea\xa0\x86\xe2\x82\x84\xf2\xa9\x9e\x86\xef\xbd\xa1\xf0\xb2\xa9\xa7\xf3\xa0\x92\xb9\xcf\x83"); }
2679test { try parseIDNAFail("\xf0\xbe\xa2\xac\xe3\x80\x82\xdc\xa9\xe3\x80\x82\xec\xaf\x995"); }
2680test { try parseIDNAFail("\xf0\xbe\xa2\xac\xe3\x80\x82\xdc\xa9\xe3\x80\x82\xe1\x84\x8d\xe1\x85\xb3\xe1\x86\xac5"); }
2681test { try parseIDNAFail("xn--t92s.xn--znb.xn--5-y88f"); }
2682test { try parseIDNAFail("\xe1\x9f\x8a.\xe2\x80\x8d\xf0\x9d\x9f\xae\xf0\x91\x80\xbf"); }
2683test { try parseIDNAFail("\xe1\x9f\x8a.\xe2\x80\x8d2\xf0\x91\x80\xbf"); }
2684test { try parseIDNAFail("xn--m4e.xn--2-ku7i"); }
2685test { try parseIDNAFail("xn--m4e.xn--2-tgnv469h"); }
2686test { try parseIDNAFail("\xea\xab\xb6\xe3\x80\x82\xe5\xac\xb6\xc3\x9f\xe8\x91\xbd"); }
2687test { try parseIDNAFail("\xea\xab\xb6\xe3\x80\x82\xe5\xac\xb6SS\xe8\x91\xbd"); }
2688test { try parseIDNAFail("\xea\xab\xb6\xe3\x80\x82\xe5\xac\xb6ss\xe8\x91\xbd"); }
2689test { try parseIDNAFail("\xea\xab\xb6\xe3\x80\x82\xe5\xac\xb6Ss\xe8\x91\xbd"); }
2690test { try parseIDNAFail("xn--2v9a.xn--ss-q40dp97m"); }
2691test { try parseIDNAFail("xn--2v9a.xn--zca7637b14za"); }
2692test { try parseIDNAFail("\xcf\x82\xf0\x91\x90\xbd\xf0\xb5\xa2\x88\xf0\x91\x9c\xab\xef\xbd\xa1\xf0\x9e\xac\xa9\xe2\x80\x8c\xf0\x90\xab\x84"); }
2693test { try parseIDNAFail("\xcf\x82\xf0\x91\x90\xbd\xf0\xb5\xa2\x88\xf0\x91\x9c\xab\xe3\x80\x82\xf0\x9e\xac\xa9\xe2\x80\x8c\xf0\x90\xab\x84"); }
2694test { try parseIDNAFail("\xce\xa3\xf0\x91\x90\xbd\xf0\xb5\xa2\x88\xf0\x91\x9c\xab\xe3\x80\x82\xf0\x9e\xac\xa9\xe2\x80\x8c\xf0\x90\xab\x84"); }
2695test { try parseIDNAFail("\xcf\x83\xf0\x91\x90\xbd\xf0\xb5\xa2\x88\xf0\x91\x9c\xab\xe3\x80\x82\xf0\x9e\xac\xa9\xe2\x80\x8c\xf0\x90\xab\x84"); }
2696test { try parseIDNAFail("xn--4xa2260lk3b8z15g.xn--tw9ct349a"); }
2697test { try parseIDNAFail("xn--4xa2260lk3b8z15g.xn--0ug4653g2xzf"); }
2698test { try parseIDNAFail("xn--3xa4260lk3b8z15g.xn--0ug4653g2xzf"); }
2699test { try parseIDNAFail("\xce\xa3\xf0\x91\x90\xbd\xf0\xb5\xa2\x88\xf0\x91\x9c\xab\xef\xbd\xa1\xf0\x9e\xac\xa9\xe2\x80\x8c\xf0\x90\xab\x84"); }
2700test { try parseIDNAFail("\xcf\x83\xf0\x91\x90\xbd\xf0\xb5\xa2\x88\xf0\x91\x9c\xab\xef\xbd\xa1\xf0\x9e\xac\xa9\xe2\x80\x8c\xf0\x90\xab\x84"); }
2701test { try parseIDNAFail("\xe2\xba\xa2\xf2\x87\xba\x85\xf0\x9d\x9f\xa4\xef\xbd\xa1\xe2\x80\x8d\xf0\x9f\x9a\xb7"); }
2702test { try parseIDNAFail("\xe2\xba\xa2\xf2\x87\xba\x852\xe3\x80\x82\xe2\x80\x8d\xf0\x9f\x9a\xb7"); }
2703test { try parseIDNAFail("xn--2-4jtr4282f.xn--m78h"); }
2704test { try parseIDNAFail("xn--2-4jtr4282f.xn--1ugz946p"); }
2705test { try parseIDNAFail("\xf0\x9d\xa8\xa5\xe3\x80\x82\xe2\xab\x9f\xf0\x91\x88\xbe"); }
2706test { try parseIDNAFail("xn--n82h.xn--63iw010f"); }
2707test { try parseIDNAFail("-\xe1\xa2\x97\xe2\x80\x8c\xf0\x9f\x84\x84.\xf0\x91\x9c\xa2"); }
2708test { try parseIDNAFail("-\xe1\xa2\x97\xe2\x80\x8c3,.\xf0\x91\x9c\xa2"); }
2709test { try parseIDNAFail("xn---3,-3eu.xn--9h2d"); }
2710test { try parseIDNAFail("xn---3,-3eu051c.xn--9h2d"); }
2711test { try parseIDNAFail("xn----pck1820x.xn--9h2d"); }
2712test { try parseIDNAFail("xn----pck312bx563c.xn--9h2d"); }
2713test { try parseIDNAFail("xn--z3e.xn----938f"); }
2714test { try parseIDNAFail("\xe2\x80\x8c\xf0\x91\x93\x82\xe3\x80\x82\xe2\x92\x88-\xf4\x80\xaa\x9b"); }
2715test { try parseIDNAFail("\xe2\x80\x8c\xf0\x91\x93\x82\xe3\x80\x821.-\xf4\x80\xaa\x9b"); }
2716test { try parseIDNAFail("xn--wz1d.1.xn----rg03o"); }
2717test { try parseIDNAFail("xn--0ugy057g.1.xn----rg03o"); }
2718test { try parseIDNAFail("xn--wz1d.xn----dcp29674o"); }
2719test { try parseIDNAFail("xn--0ugy057g.xn----dcp29674o"); }
2720test { try parseIDNAFail("\xe0\xbe\x94\xea\xa1\x8b-\xef\xbc\x8e-\xf0\x96\xac\xb4"); }
2721test { try parseIDNAFail("\xe0\xbe\x94\xea\xa1\x8b-.-\xf0\x96\xac\xb4"); }
2722test { try parseIDNAFail("xn----ukg9938i.xn----4u5m"); }
2723test { try parseIDNAFail("\xf1\xbf\x92\xb3-\xe2\x8b\xa2\xe2\x80\x8c\xef\xbc\x8e\xe6\xa0\x87-"); }
2724test { try parseIDNAFail("\xf1\xbf\x92\xb3-\xe2\x8a\x91\xcc\xb8\xe2\x80\x8c\xef\xbc\x8e\xe6\xa0\x87-"); }
2725test { try parseIDNAFail("\xf1\xbf\x92\xb3-\xe2\x8b\xa2\xe2\x80\x8c.\xe6\xa0\x87-"); }
2726test { try parseIDNAFail("\xf1\xbf\x92\xb3-\xe2\x8a\x91\xcc\xb8\xe2\x80\x8c.\xe6\xa0\x87-"); }
2727test { try parseIDNAFail("xn----9mo67451g.xn----qj7b"); }
2728test { try parseIDNAFail("xn----sgn90kn5663a.xn----qj7b"); }
2729test { try parseIDNAFail("-\xf1\x95\x89\xb4.\xdb\xa0\xe1\xa2\x9a-"); }
2730test { try parseIDNAFail("xn----qi38c.xn----jxc827k"); }
2731test { try parseIDNAFail("\xe3\x80\x82\xd8\xb5\xd9\x89\xe0\xb8\xb7\xd9\x84\xd8\xa7\xe3\x80\x82\xe5\xb2\x93\xe1\xaf\xb2\xf3\xa0\xbe\x83\xe1\xa1\x82"); }
2732test { try parseIDNAFail(".xn--mgb1a7bt462h.xn--17e10qe61f9r71s"); }
2733test { try parseIDNAFail("\xe1\x80\xb9-\xf0\x9a\xae\xad\xf0\x9f\x9e\xa2\xef\xbc\x8e\xc3\x9f"); }
2734test { try parseIDNAFail("\xe1\x80\xb9-\xf0\x9a\xae\xad\xf0\x9f\x9e\xa2.\xc3\x9f"); }
2735test { try parseIDNAFail("\xe1\x80\xb9-\xf0\x9a\xae\xad\xf0\x9f\x9e\xa2.SS"); }
2736test { try parseIDNAFail("\xe1\x80\xb9-\xf0\x9a\xae\xad\xf0\x9f\x9e\xa2.ss"); }
2737test { try parseIDNAFail("\xe1\x80\xb9-\xf0\x9a\xae\xad\xf0\x9f\x9e\xa2.Ss"); }
2738test { try parseIDNAFail("xn----9tg11172akr8b.ss"); }
2739test { try parseIDNAFail("xn----9tg11172akr8b.xn--zca"); }
2740test { try parseIDNAFail("\xe1\x80\xb9-\xf0\x9a\xae\xad\xf0\x9f\x9e\xa2\xef\xbc\x8eSS"); }
2741test { try parseIDNAFail("\xe1\x80\xb9-\xf0\x9a\xae\xad\xf0\x9f\x9e\xa2\xef\xbc\x8ess"); }
2742test { try parseIDNAFail("\xe1\x80\xb9-\xf0\x9a\xae\xad\xf0\x9f\x9e\xa2\xef\xbc\x8eSs"); }
2743test { try parseIDNAFail("\xe0\xb5\x8d-\xe2\x80\x8d\xe2\x80\x8c\xef\xbd\xa1\xf1\xa5\x9e\xa7\xe2\x82\x85\xe2\x89\xa0"); }
2744test { try parseIDNAFail("\xe0\xb5\x8d-\xe2\x80\x8d\xe2\x80\x8c\xef\xbd\xa1\xf1\xa5\x9e\xa7\xe2\x82\x85=\xcc\xb8"); }
2745test { try parseIDNAFail("\xe0\xb5\x8d-\xe2\x80\x8d\xe2\x80\x8c\xe3\x80\x82\xf1\xa5\x9e\xa75\xe2\x89\xa0"); }
2746test { try parseIDNAFail("\xe0\xb5\x8d-\xe2\x80\x8d\xe2\x80\x8c\xe3\x80\x82\xf1\xa5\x9e\xa75=\xcc\xb8"); }
2747test { try parseIDNAFail("xn----jmf.xn--5-ufo50192e"); }
2748test { try parseIDNAFail("xn----jmf215lda.xn--5-ufo50192e"); }
2749test { try parseIDNAFail("\xe9\x94\xa3\xe3\x80\x82\xe0\xa9\x8d\xf3\xa0\x98\xbb\xf3\xa0\x9a\x86"); }
2750test { try parseIDNAFail("xn--gc5a.xn--ybc83044ppga"); }
2751test { try parseIDNAFail("xn--6-8cb306hms1a.xn--ss-2vq"); }
2752test { try parseIDNAFail("xn--6-8cb555h2b.xn--ss-2vq"); }
2753test { try parseIDNAFail("xn--6-8cb555h2b.xn--zca894k"); }
2754test { try parseIDNAFail("\xf2\x8b\xa1\x90\xef\xbd\xa1\xe2\x89\xaf\xf0\x91\x8b\xaa"); }
2755test { try parseIDNAFail("\xf2\x8b\xa1\x90\xef\xbd\xa1>\xcc\xb8\xf0\x91\x8b\xaa"); }
2756test { try parseIDNAFail("\xf2\x8b\xa1\x90\xe3\x80\x82\xe2\x89\xaf\xf0\x91\x8b\xaa"); }
2757test { try parseIDNAFail("\xf2\x8b\xa1\x90\xe3\x80\x82>\xcc\xb8\xf0\x91\x8b\xaa"); }
2758test { try parseIDNAFail("xn--eo08b.xn--hdh3385g"); }
2759test { try parseIDNAFail("\xf3\xa0\x84\x8f\xf0\x96\xac\xb4\xf3\xa0\xb2\xbd\xef\xbd\xa1\xef\xbe\xa0"); }
2760test { try parseIDNAFail("\xf3\xa0\x84\x8f\xf0\x96\xac\xb4\xf3\xa0\xb2\xbd\xe3\x80\x82\xe1\x85\xa0"); }
2761test { try parseIDNAFail("xn--619ep9154c."); }
2762test { try parseIDNAFail("xn--619ep9154c.xn--psd"); }
2763test { try parseIDNAFail("xn--619ep9154c.xn--cl7c"); }
2764test { try parseIDNAFail("\xf3\xa0\xad\x94.\xf0\x90\x8b\xb1\xe2\x82\x82"); }
2765test { try parseIDNAFail("\xf3\xa0\xad\x94.\xf0\x90\x8b\xb12"); }
2766test { try parseIDNAFail("xn--vi56e.xn--2-w91i"); }
2767test { try parseIDNAFail("\xe2\xb6\xbf.\xc3\x9f\xe2\x80\x8d"); }
2768test { try parseIDNAFail("\xe2\xb6\xbf.SS\xe2\x80\x8d"); }
2769test { try parseIDNAFail("\xe2\xb6\xbf.ss\xe2\x80\x8d"); }
2770test { try parseIDNAFail("\xe2\xb6\xbf.Ss\xe2\x80\x8d"); }
2771test { try parseIDNAFail("xn--7pj.ss"); }
2772test { try parseIDNAFail("xn--7pj.xn--ss-n1t"); }
2773test { try parseIDNAFail("xn--7pj.xn--zca870n"); }
2774test { try parseIDNAFail("\xe6\xa2\x89\xe3\x80\x82\xe2\x80\x8c"); }
2775test { try parseIDNAFail("xn--7zv.xn--0ug"); }
2776test { try parseIDNAFail("\xe4\x83\x9a\xe8\x9f\xa5-\xe3\x80\x82-\xf1\xbd\x92\x98\xe2\x92\x88"); }
2777test { try parseIDNAFail("\xe4\x83\x9a\xe8\x9f\xa5-\xe3\x80\x82-\xf1\xbd\x92\x981."); }
2778test { try parseIDNAFail("xn----n50a258u.xn---1-up07j."); }
2779test { try parseIDNAFail("xn----n50a258u.xn----ecp33805f"); }
2780test { try parseIDNAFail("\xe1\xa2\x94\xe2\x89\xa0\xf4\x8b\x89\x82.\xe2\x80\x8d\xf0\x90\x8b\xa2"); }
2781test { try parseIDNAFail("\xe1\xa2\x94=\xcc\xb8\xf4\x8b\x89\x82.\xe2\x80\x8d\xf0\x90\x8b\xa2"); }
2782test { try parseIDNAFail("xn--ebf031cf7196a.xn--587c"); }
2783test { try parseIDNAFail("xn--ebf031cf7196a.xn--1ug9540g"); }
2784test { try parseIDNAFail("\xf3\xa0\xb0\xa9\xf0\x91\xb2\xac\xef\xbc\x8e\xd9\x9c"); }
2785test { try parseIDNAFail("\xf3\xa0\xb0\xa9\xf0\x91\xb2\xac.\xd9\x9c"); }
2786test { try parseIDNAFail("xn--sn3d59267c.xn--4hb"); }
2787test { try parseIDNAFail("\xf0\x90\x8d\xba.\xf1\x9a\x87\x83\xe2\x80\x8c"); }
2788test { try parseIDNAFail("xn--ie8c.xn--2g51a"); }
2789test { try parseIDNAFail("xn--ie8c.xn--0ug03366c"); }
2790test { try parseIDNAFail("\xe2\x80\x8d\xe2\x89\xae\xef\xbc\x8e\xf3\xa0\x9f\xaa\xf0\xb9\xab\x8f-"); }
2791test { try parseIDNAFail("\xe2\x80\x8d<\xcc\xb8\xef\xbc\x8e\xf3\xa0\x9f\xaa\xf0\xb9\xab\x8f-"); }
2792test { try parseIDNAFail("\xe2\x80\x8d\xe2\x89\xae.\xf3\xa0\x9f\xaa\xf0\xb9\xab\x8f-"); }
2793test { try parseIDNAFail("\xe2\x80\x8d<\xcc\xb8.\xf3\xa0\x9f\xaa\xf0\xb9\xab\x8f-"); }
2794test { try parseIDNAFail("xn--gdh.xn----cr99a1w710b"); }
2795test { try parseIDNAFail("xn--1ug95g.xn----cr99a1w710b"); }
2796test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8d\xe8\xa5\x94\xe3\x80\x82\xe1\x82\xbc5\xea\xa1\xae\xf1\xb5\x9d\x8f"); }
2797test { try parseIDNAFail("\xe2\x80\x8d\xe2\x80\x8d\xe8\xa5\x94\xe3\x80\x82\xe2\xb4\x9c5\xea\xa1\xae\xf1\xb5\x9d\x8f"); }
2798test { try parseIDNAFail("xn--2u2a.xn--5-uws5848bpf44e"); }
2799test { try parseIDNAFail("xn--1uga7691f.xn--5-uws5848bpf44e"); }
2800test { try parseIDNAFail("xn--2u2a.xn--5-r1g7167ipfw8d"); }
2801test { try parseIDNAFail("xn--1uga7691f.xn--5-r1g7167ipfw8d"); }
2802test { try parseIDNAFail("\xea\xa6\xb9\xe2\x80\x8d\xed\x81\xb7\xf0\xbb\xb6\xa1\xef\xbd\xa1\xe2\x82\x82"); }
2803test { try parseIDNAFail("\xea\xa6\xb9\xe2\x80\x8d\xe1\x84\x8f\xe1\x85\xb3\xe1\x86\xb2\xf0\xbb\xb6\xa1\xef\xbd\xa1\xe2\x82\x82"); }
2804test { try parseIDNAFail("xn--0m9as84e2e21c.c"); }
2805test { try parseIDNAFail("xn--1ug1435cfkyaoi04d.c"); }
2806test { try parseIDNAFail("\xe2\x89\xa0\xe8\x86\xa3\xe3\x80\x82\xe0\xbe\x83"); }
2807test { try parseIDNAFail("=\xcc\xb8\xe8\x86\xa3\xe3\x80\x82\xe0\xbe\x83"); }
2808test { try parseIDNAFail("xn--1chy468a.xn--2ed"); }
2809test { try parseIDNAFail("\xf0\x90\x8b\xb7\xe3\x80\x82\xe2\x80\x8d"); }
2810test { try parseIDNAFail("xn--r97c.xn--1ug"); }
2811test { try parseIDNAFail("\xf0\x91\xb0\xb3\xf0\x91\x88\xaf\xe3\x80\x82\xe2\xa5\xaa"); }
2812test { try parseIDNAFail("xn--2g1d14o.xn--jti"); }
2813test { try parseIDNAFail("\xf0\x91\x86\x80\xe4\x81\xb4\xf1\xa4\xa7\xa3\xef\xbc\x8e\xe1\x82\xb5\xf0\x9d\x9f\x9c\xe2\x80\x8c\xcd\x88"); }
2814test { try parseIDNAFail("\xf0\x91\x86\x80\xe4\x81\xb4\xf1\xa4\xa7\xa3.\xe1\x82\xb54\xe2\x80\x8c\xcd\x88"); }
2815test { try parseIDNAFail("\xf0\x91\x86\x80\xe4\x81\xb4\xf1\xa4\xa7\xa3.\xe2\xb4\x954\xe2\x80\x8c\xcd\x88"); }
2816test { try parseIDNAFail("xn--1mnx647cg3x1b.xn--4-zfb5123a"); }
2817test { try parseIDNAFail("xn--1mnx647cg3x1b.xn--4-zfb502tlsl"); }
2818test { try parseIDNAFail("\xf0\x91\x86\x80\xe4\x81\xb4\xf1\xa4\xa7\xa3\xef\xbc\x8e\xe2\xb4\x95\xf0\x9d\x9f\x9c\xe2\x80\x8c\xcd\x88"); }
2819test { try parseIDNAFail("xn--1mnx647cg3x1b.xn--4-zfb324h"); }
2820test { try parseIDNAFail("xn--1mnx647cg3x1b.xn--4-zfb324h32o"); }
2821
2822test { try parseIDNAPass("fass.de", "fass.de"); }
2823test { try parseIDNAPass("fa\xc3\x9f.de", "xn--fa-hia.de"); }
2824test { try parseIDNAPass("Fa\xc3\x9f.de", "xn--fa-hia.de"); }
2825test { try parseIDNAPass("xn--fa-hia.de", "xn--fa-hia.de"); }
2826test { try parseIDNAPass("\xc3\xa0.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l"); }
2827test { try parseIDNAPass("a\xcc\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l"); }
2828test { try parseIDNAPass("A\xcc\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l"); }
2829test { try parseIDNAPass("\xc3\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l"); }
2830test { try parseIDNAPass("xn--0ca.xn--ssa73l", "xn--0ca.xn--ssa73l"); }
2831test { try parseIDNAPass("\xc3\xa0\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db"); }
2832test { try parseIDNAPass("a\xcc\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db"); }
2833test { try parseIDNAPass("A\xcc\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db"); }
2834test { try parseIDNAPass("\xc3\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db"); }
2835test { try parseIDNAPass("xn--0ca81i.xn--4db", "xn--0ca81i.xn--4db"); }
2836test { try parseIDNAPass("ab", "ab"); }
2837test { try parseIDNAPass("a\xe0\xa5\x8d\xe2\x80\x8cb", "xn--ab-fsf604u"); }
2838test { try parseIDNAPass("A\xe0\xa5\x8d\xe2\x80\x8cB", "xn--ab-fsf604u"); }
2839test { try parseIDNAPass("A\xe0\xa5\x8d\xe2\x80\x8cb", "xn--ab-fsf604u"); }
2840test { try parseIDNAPass("xn--ab-fsf", "xn--ab-fsf"); }
2841test { try parseIDNAPass("a\xe0\xa5\x8db", "xn--ab-fsf"); }
2842test { try parseIDNAPass("A\xe0\xa5\x8dB", "xn--ab-fsf"); }
2843test { try parseIDNAPass("A\xe0\xa5\x8db", "xn--ab-fsf"); }
2844test { try parseIDNAPass("xn--ab-fsf604u", "xn--ab-fsf604u"); }
2845test { try parseIDNAPass("a\xe0\xa5\x8d\xe2\x80\x8db", "xn--ab-fsf014u"); }
2846test { try parseIDNAPass("A\xe0\xa5\x8d\xe2\x80\x8dB", "xn--ab-fsf014u"); }
2847test { try parseIDNAPass("A\xe0\xa5\x8d\xe2\x80\x8db", "xn--ab-fsf014u"); }
2848test { try parseIDNAPass("xn--ab-fsf014u", "xn--ab-fsf014u"); }
2849test { try parseIDNAPass("\xc2\xa1", "xn--7a"); }
2850test { try parseIDNAPass("xn--7a", "xn--7a"); }
2851test { try parseIDNAPass("\xe1\xa7\x9a", "xn--pkf"); }
2852test { try parseIDNAPass("xn--pkf", "xn--pkf"); }
2853test { try parseIDNAPass("\xe3\x80\x82", "."); }
2854test { try parseIDNAPass(".", "."); }
2855test { try parseIDNAPass("\xea\xad\xa0", "xn--3y9a"); }
2856test { try parseIDNAPass("xn--3y9a", "xn--3y9a"); }
2857test { try parseIDNAPass("1234567890\xc3\xa41234567890123456789012345678901234567890123456", "xn--12345678901234567890123456789012345678901234567890123456-fxe"); }
2858test { try parseIDNAPass("1234567890a\xcc\x881234567890123456789012345678901234567890123456", "xn--12345678901234567890123456789012345678901234567890123456-fxe"); }
2859test { try parseIDNAPass("1234567890A\xcc\x881234567890123456789012345678901234567890123456", "xn--12345678901234567890123456789012345678901234567890123456-fxe"); }
2860test { try parseIDNAPass("1234567890\xc3\x841234567890123456789012345678901234567890123456", "xn--12345678901234567890123456789012345678901234567890123456-fxe"); }
2861test { try parseIDNAPass("xn--12345678901234567890123456789012345678901234567890123456-fxe", "xn--12345678901234567890123456789012345678901234567890123456-fxe"); }
2862test { try parseIDNAPass("www.eXample.cOm", "www.example.com"); }
2863test { try parseIDNAPass("B\xc3\xbccher.de", "xn--bcher-kva.de"); }
2864test { try parseIDNAPass("Bu\xcc\x88cher.de", "xn--bcher-kva.de"); }
2865test { try parseIDNAPass("bu\xcc\x88cher.de", "xn--bcher-kva.de"); }
2866test { try parseIDNAPass("b\xc3\xbccher.de", "xn--bcher-kva.de"); }
2867test { try parseIDNAPass("B\xc3\x9cCHER.DE", "xn--bcher-kva.de"); }
2868test { try parseIDNAPass("BU\xcc\x88CHER.DE", "xn--bcher-kva.de"); }
2869test { try parseIDNAPass("xn--bcher-kva.de", "xn--bcher-kva.de"); }
2870test { try parseIDNAPass("\xc3\x96BB", "xn--bb-eka"); }
2871test { try parseIDNAPass("O\xcc\x88BB", "xn--bb-eka"); }
2872test { try parseIDNAPass("o\xcc\x88bb", "xn--bb-eka"); }
2873test { try parseIDNAPass("\xc3\xb6bb", "xn--bb-eka"); }
2874test { try parseIDNAPass("\xc3\x96bb", "xn--bb-eka"); }
2875test { try parseIDNAPass("O\xcc\x88bb", "xn--bb-eka"); }
2876test { try parseIDNAPass("xn--bb-eka", "xn--bb-eka"); }
2877test { try parseIDNAPass("FA\xe1\xba\x9e.de", "xn--fa-hia.de"); }
2878test { try parseIDNAPass("FA\xe1\xba\x9e.DE", "xn--fa-hia.de"); }
2879test { try parseIDNAPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmm1c.com"); }
2880test { try parseIDNAPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmm1c.com"); }
2881test { try parseIDNAPass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3.COM", "xn--nxasmq6b.com"); }
2882test { try parseIDNAPass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3.COM", "xn--nxasmq6b.com"); }
2883test { try parseIDNAPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com"); }
2884test { try parseIDNAPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com"); }
2885test { try parseIDNAPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com"); }
2886test { try parseIDNAPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com"); }
2887test { try parseIDNAPass("xn--nxasmq6b.com", "xn--nxasmq6b.com"); }
2888test { try parseIDNAPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmm1c.com"); }
2889test { try parseIDNAPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmm1c.com"); }
2890test { try parseIDNAPass("xn--nxasmm1c.com", "xn--nxasmm1c.com"); }
2891test { try parseIDNAPass("xn--nxasmm1c", "xn--nxasmm1c"); }
2892test { try parseIDNAPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmm1c"); }
2893test { try parseIDNAPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmm1c"); }
2894test { try parseIDNAPass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3", "xn--nxasmq6b"); }
2895test { try parseIDNAPass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3", "xn--nxasmq6b"); }
2896test { try parseIDNAPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b"); }
2897test { try parseIDNAPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b"); }
2898test { try parseIDNAPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b"); }
2899test { try parseIDNAPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b"); }
2900test { try parseIDNAPass("xn--nxasmq6b", "xn--nxasmq6b"); }
2901test { try parseIDNAPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmm1c"); }
2902test { try parseIDNAPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmm1c"); }
2903test { try parseIDNAPass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b660p.com"); }
2904test { try parseIDNAPass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.xn--10cl1a0b660p.com"); }
2905test { try parseIDNAPass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b660p.com"); }
2906test { try parseIDNAPass("www.xn--10cl1a0b.com", "www.xn--10cl1a0b.com"); }
2907test { try parseIDNAPass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b.com"); }
2908test { try parseIDNAPass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.xn--10cl1a0b.com"); }
2909test { try parseIDNAPass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b.com"); }
2910test { try parseIDNAPass("www.xn--10cl1a0b660p.com", "www.xn--10cl1a0b660p.com"); }
2911test { try parseIDNAPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c", "xn--mgba3gch31f060k"); }
2912test { try parseIDNAPass("xn--mgba3gch31f", "xn--mgba3gch31f"); }
2913test { try parseIDNAPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c", "xn--mgba3gch31f"); }
2914test { try parseIDNAPass("xn--mgba3gch31f060k", "xn--mgba3gch31f060k"); }
2915test { try parseIDNAPass("xn--mgba3gch31f060k.com", "xn--mgba3gch31f060k.com"); }
2916test { try parseIDNAPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com", "xn--mgba3gch31f060k.com"); }
2917test { try parseIDNAPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.COM", "xn--mgba3gch31f060k.com"); }
2918test { try parseIDNAPass("xn--mgba3gch31f.com", "xn--mgba3gch31f.com"); }
2919test { try parseIDNAPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com", "xn--mgba3gch31f.com"); }
2920test { try parseIDNAPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.COM", "xn--mgba3gch31f.com"); }
2921test { try parseIDNAPass("a.b\xef\xbc\x8ec\xe3\x80\x82d\xef\xbd\xa1", "a.b.c.d."); }
2922test { try parseIDNAPass("a.b.c\xe3\x80\x82d\xe3\x80\x82", "a.b.c.d."); }
2923test { try parseIDNAPass("A.B.C\xe3\x80\x82D\xe3\x80\x82", "a.b.c.d."); }
2924test { try parseIDNAPass("A.b.c\xe3\x80\x82D\xe3\x80\x82", "a.b.c.d."); }
2925test { try parseIDNAPass("a.b.c.d.", "a.b.c.d."); }
2926test { try parseIDNAPass("A.B\xef\xbc\x8eC\xe3\x80\x82D\xef\xbd\xa1", "a.b.c.d."); }
2927test { try parseIDNAPass("A.b\xef\xbc\x8ec\xe3\x80\x82D\xef\xbd\xa1", "a.b.c.d."); }
2928test { try parseIDNAPass("U\xcc\x88.xn--tda", "xn--tda.xn--tda"); }
2929test { try parseIDNAPass("\xc3\x9c.xn--tda", "xn--tda.xn--tda"); }
2930test { try parseIDNAPass("\xc3\xbc.xn--tda", "xn--tda.xn--tda"); }
2931test { try parseIDNAPass("u\xcc\x88.xn--tda", "xn--tda.xn--tda"); }
2932test { try parseIDNAPass("U\xcc\x88.XN--TDA", "xn--tda.xn--tda"); }
2933test { try parseIDNAPass("\xc3\x9c.XN--TDA", "xn--tda.xn--tda"); }
2934test { try parseIDNAPass("\xc3\x9c.xn--Tda", "xn--tda.xn--tda"); }
2935test { try parseIDNAPass("U\xcc\x88.xn--Tda", "xn--tda.xn--tda"); }
2936test { try parseIDNAPass("xn--tda.xn--tda", "xn--tda.xn--tda"); }
2937test { try parseIDNAPass("\xc3\xbc.\xc3\xbc", "xn--tda.xn--tda"); }
2938test { try parseIDNAPass("u\xcc\x88.u\xcc\x88", "xn--tda.xn--tda"); }
2939test { try parseIDNAPass("U\xcc\x88.U\xcc\x88", "xn--tda.xn--tda"); }
2940test { try parseIDNAPass("\xc3\x9c.\xc3\x9c", "xn--tda.xn--tda"); }
2941test { try parseIDNAPass("\xc3\x9c.\xc3\xbc", "xn--tda.xn--tda"); }
2942test { try parseIDNAPass("U\xcc\x88.u\xcc\x88", "xn--tda.xn--tda"); }
2943test { try parseIDNAPass("a1.com", "a1.com"); }
2944test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbc\xb0", "xn--wgv71a119e.jp"); }
2945test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82JP", "xn--wgv71a119e.jp"); }
2946test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82jp", "xn--wgv71a119e.jp"); }
2947test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82Jp", "xn--wgv71a119e.jp"); }
2948test { try parseIDNAPass("xn--wgv71a119e.jp", "xn--wgv71a119e.jp"); }
2949test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp", "xn--wgv71a119e.jp"); }
2950test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.JP", "xn--wgv71a119e.jp"); }
2951test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.Jp", "xn--wgv71a119e.jp"); }
2952test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbd\x8a\xef\xbd\x90", "xn--wgv71a119e.jp"); }
2953test { try parseIDNAPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbd\x90", "xn--wgv71a119e.jp"); }
2954test { try parseIDNAPass("\xe2\x98\x95", "xn--53h"); }
2955test { try parseIDNAPass("xn--53h", "xn--53h"); }
2956test { try parseIDNAPass("1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa", "1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa"); }
2957test { try parseIDNAPass("1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz", "1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa"); }
2958test { try parseIDNAPass("1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\xcc\x82ssz", "1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa"); }
2959test { try parseIDNAPass("1.ASSBCSSSSSSSSD\xce\xa3\xce\xa3SSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSSS\xcc\x82SSZ", "1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa"); }
2960test { try parseIDNAPass("1.ASSBCSSSSSSSSD\xce\xa3\xce\xa3SSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSS\xc5\x9cSSZ", "1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa"); }
2961test { try parseIDNAPass("1.Assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz", "1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa"); }
2962test { try parseIDNAPass("1.Assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\xcc\x82ssz", "1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa"); }
2963test { try parseIDNAPass("xn--bss", "xn--bss"); }
2964test { try parseIDNAPass("\xe5\xa4\x99", "xn--bss"); }
2965test { try parseIDNAPass("\xcb\xa3\xcd\x8f\xe2\x84\x95\xe2\x80\x8b\xef\xb9\xa3\xc2\xad\xef\xbc\x8d\xe1\xa0\x8c\xe2\x84\xac\xef\xb8\x80\xc5\xbf\xe2\x81\xa4\xf0\x9d\x94\xb0\xf3\xa0\x87\xaf\xef\xac\x84", "xn--bssffl"); }
2966test { try parseIDNAPass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl"); }
2967test { try parseIDNAPass("x\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cb\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl"); }
2968test { try parseIDNAPass("X\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4S\xf3\xa0\x87\xafFFL", "xn--bssffl"); }
2969test { try parseIDNAPass("X\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl"); }
2970test { try parseIDNAPass("xn--bssffl", "xn--bssffl"); }
2971test { try parseIDNAPass("\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99", "xn--bssffl"); }
2972test { try parseIDNAPass("\xcb\xa3\xcd\x8f\xe2\x84\x95\xe2\x80\x8b\xef\xb9\xa3\xc2\xad\xef\xbc\x8d\xe1\xa0\x8c\xe2\x84\xac\xef\xb8\x80S\xe2\x81\xa4\xf0\x9d\x94\xb0\xf3\xa0\x87\xafFFL", "xn--bssffl"); }
2973test { try parseIDNAPass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4s\xf3\xa0\x87\xafFFL", "xn--bssffl"); }
2974test { try parseIDNAPass("\xcb\xa3\xcd\x8f\xe2\x84\x95\xe2\x80\x8b\xef\xb9\xa3\xc2\xad\xef\xbc\x8d\xe1\xa0\x8c\xe2\x84\xac\xef\xb8\x80s\xe2\x81\xa4\xf0\x9d\x94\xb0\xf3\xa0\x87\xafffl", "xn--bssffl"); }
2975test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
2976test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
2977test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
2978test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
2979test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a.", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
2980test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
2981test { try parseIDNAPass("\xc3\xa41234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te"); }
2982test { try parseIDNAPass("a\xcc\x881234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te"); }
2983test { try parseIDNAPass("A\xcc\x881234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te"); }
2984test { try parseIDNAPass("\xc3\x841234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te"); }
2985test { try parseIDNAPass("xn--1234567890123456789012345678901234567890123456789012345-9te", "xn--1234567890123456789012345678901234567890123456789012345-9te"); }
2986test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
2987test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
2988test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
2989test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
2990test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
2991test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
2992test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
2993test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B.", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
2994test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B.", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
2995test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
2996test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
2997test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
2998test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901C", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
2999test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901C", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
3000test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
3001test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
3002test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
3003test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789A", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
3004test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789A", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
3005test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
3006test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a.", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
3007test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a.", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
3008test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789A.", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
3009test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789A.", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
3010test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a.", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
3011test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3012test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3013test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3014test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3015test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3016test { try parseIDNAPass("a.b..-q--a-.e", "a.b..-q--a-.e"); }
3017test { try parseIDNAPass("a.b..-q--\xc3\xa4-.e", "a.b..xn---q----jra.e"); }
3018test { try parseIDNAPass("a.b..-q--a\xcc\x88-.e", "a.b..xn---q----jra.e"); }
3019test { try parseIDNAPass("A.B..-Q--A\xcc\x88-.E", "a.b..xn---q----jra.e"); }
3020test { try parseIDNAPass("A.B..-Q--\xc3\x84-.E", "a.b..xn---q----jra.e"); }
3021test { try parseIDNAPass("A.b..-Q--\xc3\x84-.E", "a.b..xn---q----jra.e"); }
3022test { try parseIDNAPass("A.b..-Q--A\xcc\x88-.E", "a.b..xn---q----jra.e"); }
3023test { try parseIDNAPass("a.b..xn---q----jra.e", "a.b..xn---q----jra.e"); }
3024test { try parseIDNAPass("a..c", "a..c"); }
3025test { try parseIDNAPass("a.-b.", "a.-b."); }
3026test { try parseIDNAPass("a.b-.c", "a.b-.c"); }
3027test { try parseIDNAPass("a.-.c", "a.-.c"); }
3028test { try parseIDNAPass("a.bc--de.f", "a.bc--de.f"); }
3029test { try parseIDNAPass("\xc3\xa4.\xc2\xad.c", "xn--4ca..c"); }
3030test { try parseIDNAPass("a\xcc\x88.\xc2\xad.c", "xn--4ca..c"); }
3031test { try parseIDNAPass("A\xcc\x88.\xc2\xad.C", "xn--4ca..c"); }
3032test { try parseIDNAPass("\xc3\x84.\xc2\xad.C", "xn--4ca..c"); }
3033test { try parseIDNAPass("xn--4ca..c", "xn--4ca..c"); }
3034test { try parseIDNAPass("\xc3\xa4.-b.", "xn--4ca.-b."); }
3035test { try parseIDNAPass("a\xcc\x88.-b.", "xn--4ca.-b."); }
3036test { try parseIDNAPass("A\xcc\x88.-B.", "xn--4ca.-b."); }
3037test { try parseIDNAPass("\xc3\x84.-B.", "xn--4ca.-b."); }
3038test { try parseIDNAPass("xn--4ca.-b.", "xn--4ca.-b."); }
3039test { try parseIDNAPass("\xc3\xa4.b-.c", "xn--4ca.b-.c"); }
3040test { try parseIDNAPass("a\xcc\x88.b-.c", "xn--4ca.b-.c"); }
3041test { try parseIDNAPass("A\xcc\x88.B-.C", "xn--4ca.b-.c"); }
3042test { try parseIDNAPass("\xc3\x84.B-.C", "xn--4ca.b-.c"); }
3043test { try parseIDNAPass("\xc3\x84.b-.C", "xn--4ca.b-.c"); }
3044test { try parseIDNAPass("A\xcc\x88.b-.C", "xn--4ca.b-.c"); }
3045test { try parseIDNAPass("xn--4ca.b-.c", "xn--4ca.b-.c"); }
3046test { try parseIDNAPass("\xc3\xa4.-.c", "xn--4ca.-.c"); }
3047test { try parseIDNAPass("a\xcc\x88.-.c", "xn--4ca.-.c"); }
3048test { try parseIDNAPass("A\xcc\x88.-.C", "xn--4ca.-.c"); }
3049test { try parseIDNAPass("\xc3\x84.-.C", "xn--4ca.-.c"); }
3050test { try parseIDNAPass("xn--4ca.-.c", "xn--4ca.-.c"); }
3051test { try parseIDNAPass("\xc3\xa4.bc--de.f", "xn--4ca.bc--de.f"); }
3052test { try parseIDNAPass("a\xcc\x88.bc--de.f", "xn--4ca.bc--de.f"); }
3053test { try parseIDNAPass("A\xcc\x88.BC--DE.F", "xn--4ca.bc--de.f"); }
3054test { try parseIDNAPass("\xc3\x84.BC--DE.F", "xn--4ca.bc--de.f"); }
3055test { try parseIDNAPass("\xc3\x84.bc--De.f", "xn--4ca.bc--de.f"); }
3056test { try parseIDNAPass("A\xcc\x88.bc--De.f", "xn--4ca.bc--de.f"); }
3057test { try parseIDNAPass("xn--4ca.bc--de.f", "xn--4ca.bc--de.f"); }
3058test { try parseIDNAPass("A0", "a0"); }
3059test { try parseIDNAPass("0A", "0a"); }
3060test { try parseIDNAPass("\xd7\x90\xd7\x87", "xn--vdbr"); }
3061test { try parseIDNAPass("xn--vdbr", "xn--vdbr"); }
3062test { try parseIDNAPass("\xd7\x909\xd7\x87", "xn--9-ihcz"); }
3063test { try parseIDNAPass("xn--9-ihcz", "xn--9-ihcz"); }
3064test { try parseIDNAPass("\xd7\x90\xd7\xaa", "xn--4db6c"); }
3065test { try parseIDNAPass("xn--4db6c", "xn--4db6c"); }
3066test { try parseIDNAPass("\xd7\x90\xd7\xb3\xd7\xaa", "xn--4db6c0a"); }
3067test { try parseIDNAPass("xn--4db6c0a", "xn--4db6c0a"); }
3068test { try parseIDNAPass("\xd7\x907\xd7\xaa", "xn--7-zhc3f"); }
3069test { try parseIDNAPass("xn--7-zhc3f", "xn--7-zhc3f"); }
3070test { try parseIDNAPass("\xd7\x90\xd9\xa7\xd7\xaa", "xn--4db6c6t"); }
3071test { try parseIDNAPass("xn--4db6c6t", "xn--4db6c6t"); }
3072test { try parseIDNAPass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d", "xn--dmc4b194h"); }
3073test { try parseIDNAPass("xn--dmc4b", "xn--dmc4b"); }
3074test { try parseIDNAPass("\xe0\xae\xb9\xe0\xaf\x8d", "xn--dmc4b"); }
3075test { try parseIDNAPass("xn--dmc4b194h", "xn--dmc4b194h"); }
3076test { try parseIDNAPass("xn--dmc", "xn--dmc"); }
3077test { try parseIDNAPass("\xe0\xae\xb9", "xn--dmc"); }
3078test { try parseIDNAPass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c", "xn--dmc4by94h"); }
3079test { try parseIDNAPass("xn--dmc4by94h", "xn--dmc4by94h"); }
3080test { try parseIDNAPass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf", "xn--ghb2gxqia7523a"); }
3081test { try parseIDNAPass("xn--ghb2gxqia", "xn--ghb2gxqia"); }
3082test { try parseIDNAPass("\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf", "xn--ghb2gxqia"); }
3083test { try parseIDNAPass("xn--ghb2gxqia7523a", "xn--ghb2gxqia7523a"); }
3084test { try parseIDNAPass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf", "xn--ghb2g3qq34f"); }
3085test { try parseIDNAPass("xn--ghb2g3q", "xn--ghb2g3q"); }
3086test { try parseIDNAPass("\xd9\x84\xd9\xb0\xdb\xaf", "xn--ghb2g3q"); }
3087test { try parseIDNAPass("xn--ghb2g3qq34f", "xn--ghb2g3qq34f"); }
3088test { try parseIDNAPass("\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf", "xn--ghb25aga828w"); }
3089test { try parseIDNAPass("xn--ghb25aga", "xn--ghb25aga"); }
3090test { try parseIDNAPass("\xd9\x84\xdb\xad\xdb\xaf", "xn--ghb25aga"); }
3091test { try parseIDNAPass("xn--ghb25aga828w", "xn--ghb25aga828w"); }
3092test { try parseIDNAPass("\xd9\x84\xe2\x80\x8c\xdb\xaf", "xn--ghb65a953d"); }
3093test { try parseIDNAPass("xn--ghb65a", "xn--ghb65a"); }
3094test { try parseIDNAPass("\xd9\x84\xdb\xaf", "xn--ghb65a"); }
3095test { try parseIDNAPass("xn--ghb65a953d", "xn--ghb65a953d"); }
3096test { try parseIDNAPass("xn--ghb2gxq", "xn--ghb2gxq"); }
3097test { try parseIDNAPass("\xd9\x84\xd9\xb0\xdb\xad", "xn--ghb2gxq"); }
3098test { try parseIDNAPass("xn--cmba", "xn--cmba"); }
3099test { try parseIDNAPass("\xdb\xaf\xdb\xaf", "xn--cmba"); }
3100test { try parseIDNAPass("xn--ghb", "xn--ghb"); }
3101test { try parseIDNAPass("\xd9\x84", "xn--ghb"); }
3102test { try parseIDNAPass("a\xe3\x80\x82\xe3\x80\x82b", "a..b"); }
3103test { try parseIDNAPass("A\xe3\x80\x82\xe3\x80\x82B", "a..b"); }
3104test { try parseIDNAPass("a..b", "a..b"); }
3105test { try parseIDNAPass("..xn--skb", "..xn--skb"); }
3106test { try parseIDNAPass("$", "$"); }
3107test { try parseIDNAPass("\xe2\x91\xb7.four", "(4).four"); }
3108test { try parseIDNAPass("(4).four", "(4).four"); }
3109test { try parseIDNAPass("\xe2\x91\xb7.FOUR", "(4).four"); }
3110test { try parseIDNAPass("\xe2\x91\xb7.Four", "(4).four"); }
3111test { try parseIDNAPass("ascii", "ascii"); }
3112test { try parseIDNAPass("unicode.org", "unicode.org"); }
3113test { try parseIDNAPass("\xef\xa5\x91\xf0\xaf\xa1\xa8\xf0\xaf\xa1\xb4\xf0\xaf\xa4\x9f\xf0\xaf\xa5\x9f\xf0\xaf\xa6\xbf", "xn--snl253bgitxhzwu2arn60c"); }
3114test { try parseIDNAPass("\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97", "xn--snl253bgitxhzwu2arn60c"); }
3115test { try parseIDNAPass("xn--snl253bgitxhzwu2arn60c", "xn--snl253bgitxhzwu2arn60c"); }
3116test { try parseIDNAPass("\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97", "xn--kbo60w31ob3z6t3av9z5b"); }
3117test { try parseIDNAPass("xn--kbo60w31ob3z6t3av9z5b", "xn--kbo60w31ob3z6t3av9z5b"); }
3118test { try parseIDNAPass("xn--A-1ga", "xn--a-1ga"); }
3119test { try parseIDNAPass("a\xc3\xb6", "xn--a-1ga"); }
3120test { try parseIDNAPass("ao\xcc\x88", "xn--a-1ga"); }
3121test { try parseIDNAPass("AO\xcc\x88", "xn--a-1ga"); }
3122test { try parseIDNAPass("A\xc3\x96", "xn--a-1ga"); }
3123test { try parseIDNAPass("A\xc3\xb6", "xn--a-1ga"); }
3124test { try parseIDNAPass("Ao\xcc\x88", "xn--a-1ga"); }
3125test { try parseIDNAPass("\xef\xbc\x9d\xcc\xb8", "xn--1ch"); }
3126test { try parseIDNAPass("\xe2\x89\xa0", "xn--1ch"); }
3127test { try parseIDNAPass("=\xcc\xb8", "xn--1ch"); }
3128test { try parseIDNAPass("xn--1ch", "xn--1ch"); }
3129test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3130test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3131test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
3132test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
3133test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
3134test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
3135test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
3136test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
3137test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a.", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
3138test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a.", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
3139test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3140test { try parseIDNAPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
3141test { try parseIDNAPass("\xea\xa1\xa3.\xdf\x8f", "xn--8c9a.xn--qsb"); }
3142test { try parseIDNAPass("xn--8c9a.xn--qsb", "xn--8c9a.xn--qsb"); }
3143test { try parseIDNAPass("xn--jbf911clb.xn----p9j493ivi4l", "xn--jbf911clb.xn----p9j493ivi4l"); }
3144test { try parseIDNAPass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80", "xn--jbf911clb.xn----p9j493ivi4l"); }
3145test { try parseIDNAPass("=\xcc\xb8\xe1\xa2\x99>\xcc\xb8.\xe1\x84\x89\xe1\x85\xa9\xe1\x86\xbe-\xe1\xa1\xb4\xe2\xb4\x80", "xn--jbf911clb.xn----p9j493ivi4l"); }
3146test { try parseIDNAPass("=\xcc\xb8\xe1\xa2\x99>\xcc\xb8.\xe1\x84\x89\xe1\x85\xa9\xe1\x86\xbe-\xe1\xa1\xb4\xe1\x82\xa0", "xn--jbf911clb.xn----p9j493ivi4l"); }
3147test { try parseIDNAPass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe1\x82\xa0", "xn--jbf911clb.xn----p9j493ivi4l"); }
3148test { try parseIDNAPass("xn--gl0as212a.i.", "xn--gl0as212a.i."); }
3149test { try parseIDNAPass("\xe7\xb9\xb1\xf0\x91\x96\xbf.i.", "xn--gl0as212a.i."); }
3150test { try parseIDNAPass("\xe7\xb9\xb1\xf0\x91\x96\xbf.I.", "xn--gl0as212a.i."); }
3151test { try parseIDNAPass("xn--1ug6928ac48e.i.", "xn--1ug6928ac48e.i."); }
3152test { try parseIDNAPass("\xe7\xb9\xb1\xf0\x91\x96\xbf\xe2\x80\x8d.i.", "xn--1ug6928ac48e.i."); }
3153test { try parseIDNAPass("\xe7\xb9\xb1\xf0\x91\x96\xbf\xe2\x80\x8d.I.", "xn--1ug6928ac48e.i."); }
3154test { try parseIDNAPass("xn--ss-59d.", "xn--ss-59d."); }
3155test { try parseIDNAPass("ss\xdb\xab.", "xn--ss-59d."); }
3156test { try parseIDNAPass("SS\xdb\xab.", "xn--ss-59d."); }
3157test { try parseIDNAPass("Ss\xdb\xab.", "xn--ss-59d."); }
3158test { try parseIDNAPass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "xn--ve6h.xn--jgb1694kz0b2176a"); }
3159test { try parseIDNAPass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "xn--ve6h.xn--jgb1694kz0b2176a"); }
3160test { try parseIDNAPass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "xn--ve6h.xn--jgb1694kz0b2176a"); }
3161test { try parseIDNAPass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "xn--ve6h.xn--jgb1694kz0b2176a"); }
3162test { try parseIDNAPass("xn--ve6h.xn--jgb1694kz0b2176a", "xn--ve6h.xn--jgb1694kz0b2176a"); }
3163test { try parseIDNAPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h"); }
3164test { try parseIDNAPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h"); }
3165test { try parseIDNAPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h"); }
3166test { try parseIDNAPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h"); }
3167test { try parseIDNAPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h"); }
3168test { try parseIDNAPass("xn--de6h.xn--37e857h", "xn--de6h.xn--37e857h"); }
3169test { try parseIDNAPass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h"); }
3170test { try parseIDNAPass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h"); }
3171test { try parseIDNAPass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h"); }
3172test { try parseIDNAPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h"); }
3173test { try parseIDNAPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h"); }
3174test { try parseIDNAPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h"); }
3175test { try parseIDNAPass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h"); }
3176test { try parseIDNAPass("xn--ej0b.xn----d87b", "xn--ej0b.xn----d87b"); }
3177test { try parseIDNAPass("xn----1fa1788k.", "xn----1fa1788k."); }
3178test { try parseIDNAPass("xn--9ob.xn--4xa", "xn--9ob.xn--4xa"); }
3179test { try parseIDNAPass("\xdd\x96.\xcf\x83", "xn--9ob.xn--4xa"); }
3180test { try parseIDNAPass("\xdd\x96.\xce\xa3", "xn--9ob.xn--4xa"); }
3181test { try parseIDNAPass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m"); }
3182test { try parseIDNAPass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m"); }
3183test { try parseIDNAPass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m"); }
3184test { try parseIDNAPass("SS\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3185test { try parseIDNAPass("ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3186test { try parseIDNAPass("Ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3187test { try parseIDNAPass("ss.xn--lgd921mvv0m", "ss.xn--lgd921mvv0m"); }
3188test { try parseIDNAPass("ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3189test { try parseIDNAPass("SS.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3190test { try parseIDNAPass("Ss.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3191test { try parseIDNAPass("xn--zca.xn--lgd921mvv0m", "xn--zca.xn--lgd921mvv0m"); }
3192test { try parseIDNAPass("\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m"); }
3193test { try parseIDNAPass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m"); }
3194test { try parseIDNAPass("SS\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3195test { try parseIDNAPass("ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3196test { try parseIDNAPass("Ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m"); }
3197test { try parseIDNAPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--zca4946pblnc"); }
3198test { try parseIDNAPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--zca4946pblnc"); }
3199test { try parseIDNAPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3200test { try parseIDNAPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3201test { try parseIDNAPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3202test { try parseIDNAPass("xn--hwe.xn--ss-ci1ub261a", "xn--hwe.xn--ss-ci1ub261a"); }
3203test { try parseIDNAPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3204test { try parseIDNAPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3205test { try parseIDNAPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3206test { try parseIDNAPass("xn--hwe.xn--zca4946pblnc", "xn--hwe.xn--zca4946pblnc"); }
3207test { try parseIDNAPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--zca4946pblnc"); }
3208test { try parseIDNAPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3209test { try parseIDNAPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3210test { try parseIDNAPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a"); }
3211test { try parseIDNAPass("xn--09e4694e..xn--ye6h", "xn--09e4694e..xn--ye6h"); }
3212test { try parseIDNAPass("xn--1-o7j0610f..xn----381i", "xn--1-o7j0610f..xn----381i"); }
3213test { try parseIDNAPass("1.xn----zw5a.xn--kp5b", "1.xn----zw5a.xn--kp5b"); }
3214test { try parseIDNAPass("-\xf0\x90\x8b\xb7\xf0\x96\xbe\x91\xe3\x80\x82\xf3\xa0\x86\xac", "xn----991iq40y."); }
3215test { try parseIDNAPass("xn----991iq40y.", "xn----991iq40y."); }
3216test { try parseIDNAPass(".xn--hdh", ".xn--hdh"); }
3217test { try parseIDNAPass("\xf0\x9e\xa5\x93\xef\xbc\x8e\xdc\x98", "xn--of6h.xn--inb"); }
3218test { try parseIDNAPass("\xf0\x9e\xa5\x93.\xdc\x98", "xn--of6h.xn--inb"); }
3219test { try parseIDNAPass("xn--of6h.xn--inb", "xn--of6h.xn--inb"); }
3220test { try parseIDNAPass("\xf3\xa0\x84\xbd-\xef\xbc\x8e-\xe0\xb7\x8a", "-.xn----ptf"); }
3221test { try parseIDNAPass("\xf3\xa0\x84\xbd-.-\xe0\xb7\x8a", "-.xn----ptf"); }
3222test { try parseIDNAPass("-.xn----ptf", "-.xn----ptf"); }
3223test { try parseIDNAPass("\xe1\x82\xba\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x82\xf0\x9d\x9f\x9d\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m"); }
3224test { try parseIDNAPass("\xe1\x82\xba\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x825\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m"); }
3225test { try parseIDNAPass("\xe2\xb4\x9a\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x825\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m"); }
3226test { try parseIDNAPass("xn--ilj2659d.xn--5-dug9054m", "xn--ilj2659d.xn--5-dug9054m"); }
3227test { try parseIDNAPass("\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m"); }
3228test { try parseIDNAPass("\xe1\x82\xba\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m"); }
3229test { try parseIDNAPass("\xe2\xb4\x9a\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x82\xf0\x9d\x9f\x9d\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m"); }
3230test { try parseIDNAPass("\xe2\x89\xa0.\xe1\xa0\xbf", "xn--1ch.xn--y7e"); }
3231test { try parseIDNAPass("=\xcc\xb8.\xe1\xa0\xbf", "xn--1ch.xn--y7e"); }
3232test { try parseIDNAPass("xn--1ch.xn--y7e", "xn--1ch.xn--y7e"); }
3233test { try parseIDNAPass("\xdc\xa3\xd6\xa3\xef\xbd\xa1\xe3\x8c\xaa", "xn--ucb18e.xn--eck4c5a"); }
3234test { try parseIDNAPass("\xdc\xa3\xd6\xa3\xe3\x80\x82\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "xn--ucb18e.xn--eck4c5a"); }
3235test { try parseIDNAPass("xn--ucb18e.xn--eck4c5a", "xn--ucb18e.xn--eck4c5a"); }
3236test { try parseIDNAPass("\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "xn--ucb18e.xn--eck4c5a"); }
3237test { try parseIDNAPass("xn--skb", "xn--skb"); }
3238test { try parseIDNAPass("\xda\xb9", "xn--skb"); }
3239test { try parseIDNAPass("\xe2\x89\xaf1.\xe3\x80\x82\xc3\x9f", "xn--1-ogo..xn--zca"); }
3240test { try parseIDNAPass(">\xcc\xb81.\xe3\x80\x82\xc3\x9f", "xn--1-ogo..xn--zca"); }
3241test { try parseIDNAPass(">\xcc\xb81.\xe3\x80\x82SS", "xn--1-ogo..ss"); }
3242test { try parseIDNAPass("\xe2\x89\xaf1.\xe3\x80\x82SS", "xn--1-ogo..ss"); }
3243test { try parseIDNAPass("\xe2\x89\xaf1.\xe3\x80\x82ss", "xn--1-ogo..ss"); }
3244test { try parseIDNAPass(">\xcc\xb81.\xe3\x80\x82ss", "xn--1-ogo..ss"); }
3245test { try parseIDNAPass(">\xcc\xb81.\xe3\x80\x82Ss", "xn--1-ogo..ss"); }
3246test { try parseIDNAPass("\xe2\x89\xaf1.\xe3\x80\x82Ss", "xn--1-ogo..ss"); }
3247test { try parseIDNAPass("xn--1-ogo..ss", "xn--1-ogo..ss"); }
3248test { try parseIDNAPass("xn--1-ogo..xn--zca", "xn--1-ogo..xn--zca"); }
3249test { try parseIDNAPass(".xn--1ch", ".xn--1ch"); }
3250test { try parseIDNAPass("\xea\xa1\x86\xe3\x80\x82\xe2\x86\x83\xe0\xbe\xb5\xeb\x86\xae-", "xn--fc9a.xn----qmg097k469k"); }
3251test { try parseIDNAPass("\xea\xa1\x86\xe3\x80\x82\xe2\x86\x83\xe0\xbe\xb5\xe1\x84\x82\xe1\x85\xaa\xe1\x87\x81-", "xn--fc9a.xn----qmg097k469k"); }
3252test { try parseIDNAPass("\xea\xa1\x86\xe3\x80\x82\xe2\x86\x84\xe0\xbe\xb5\xe1\x84\x82\xe1\x85\xaa\xe1\x87\x81-", "xn--fc9a.xn----qmg097k469k"); }
3253test { try parseIDNAPass("\xea\xa1\x86\xe3\x80\x82\xe2\x86\x84\xe0\xbe\xb5\xeb\x86\xae-", "xn--fc9a.xn----qmg097k469k"); }
3254test { try parseIDNAPass("xn--fc9a.xn----qmg097k469k", "xn--fc9a.xn----qmg097k469k"); }
3255test { try parseIDNAPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--zca266bwrr.xn--85-psd"); }
3256test { try parseIDNAPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--zca266bwrr.xn--85-psd"); }
3257test { try parseIDNAPass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd"); }
3258test { try parseIDNAPass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd"); }
3259test { try parseIDNAPass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd"); }
3260test { try parseIDNAPass("xn--ss-e2f077r.xn--85-psd", "xn--ss-e2f077r.xn--85-psd"); }
3261test { try parseIDNAPass("ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd"); }
3262test { try parseIDNAPass("SS\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd"); }
3263test { try parseIDNAPass("Ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd"); }
3264test { try parseIDNAPass("xn--zca266bwrr.xn--85-psd", "xn--zca266bwrr.xn--85-psd"); }
3265test { try parseIDNAPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--zca266bwrr.xn--85-psd"); }
3266test { try parseIDNAPass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd"); }
3267test { try parseIDNAPass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd"); }
3268test { try parseIDNAPass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd"); }
3269test { try parseIDNAPass("\xef\xb8\x8d\xe0\xaa\x9b\xe3\x80\x82\xe5\xb5\xa8", "xn--6dc.xn--tot"); }
3270test { try parseIDNAPass("xn--6dc.xn--tot", "xn--6dc.xn--tot"); }
3271test { try parseIDNAPass("\xe0\xaa\x9b.\xe5\xb5\xa8", "xn--6dc.xn--tot"); }
3272test { try parseIDNAPass("\xef\xb8\x85\xe3\x80\x82\xe3\x80\x82\xf0\xa6\x80\xbe\xe1\xb3\xa0", "..xn--t6f5138v"); }
3273test { try parseIDNAPass("..xn--t6f5138v", "..xn--t6f5138v"); }
3274test { try parseIDNAPass("xn--t6f5138v", "xn--t6f5138v"); }
3275test { try parseIDNAPass("\xf0\xa6\x80\xbe\xe1\xb3\xa0", "xn--t6f5138v"); }
3276test { try parseIDNAPass("xn--p8e.xn--1ch3a7084l", "xn--p8e.xn--1ch3a7084l"); }
3277test { try parseIDNAPass("\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0", "xn--p8e.xn--1ch3a7084l"); }
3278test { try parseIDNAPass("\xe1\xa1\x99.>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8", "xn--p8e.xn--1ch3a7084l"); }
3279test { try parseIDNAPass("-3.xn--fbf115j", "-3.xn--fbf115j"); }
3280test { try parseIDNAPass("xn--u4e969b.xn--1ch", "xn--u4e969b.xn--1ch"); }
3281test { try parseIDNAPass("\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0", "xn--u4e969b.xn--1ch"); }
3282test { try parseIDNAPass("\xe2\x85\x8e\xe1\x9f\x92.=\xcc\xb8", "xn--u4e969b.xn--1ch"); }
3283test { try parseIDNAPass("\xe2\x84\xb2\xe1\x9f\x92.=\xcc\xb8", "xn--u4e969b.xn--1ch"); }
3284test { try parseIDNAPass("\xe2\x84\xb2\xe1\x9f\x92.\xe2\x89\xa0", "xn--u4e969b.xn--1ch"); }
3285test { try parseIDNAPass("xn----zmb.1-", "xn----zmb.1-"); }
3286test { try parseIDNAPass("xn--8,-g9oy26fzu4d.xn--kmb6733w", "xn--8,-g9oy26fzu4d.xn--kmb6733w"); }
3287test { try parseIDNAPass("xn--9-mfs8024b.", "xn--9-mfs8024b."); }
3288test { try parseIDNAPass("9\xe9\x9a\x81\xe2\xaf\xae.", "xn--9-mfs8024b."); }
3289test { try parseIDNAPass("xn--2ib43l.xn--te6h", "xn--2ib43l.xn--te6h"); }
3290test { try parseIDNAPass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5", "xn--2ib43l.xn--te6h"); }
3291test { try parseIDNAPass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\x93", "xn--2ib43l.xn--te6h"); }
3292test { try parseIDNAPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b"); }
3293test { try parseIDNAPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "xn--s5a04sn4u297k.xn--2e1b"); }
3294test { try parseIDNAPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b"); }
3295test { try parseIDNAPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "xn--s5a04sn4u297k.xn--2e1b"); }
3296test { try parseIDNAPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "xn--s5a04sn4u297k.xn--2e1b"); }
3297test { try parseIDNAPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b"); }
3298test { try parseIDNAPass("xn--s5a04sn4u297k.xn--2e1b", "xn--s5a04sn4u297k.xn--2e1b"); }
3299test { try parseIDNAPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "xn--s5a04sn4u297k.xn--2e1b"); }
3300test { try parseIDNAPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b"); }
3301test { try parseIDNAPass("xn--9hb7344k.", "xn--9hb7344k."); }
3302test { try parseIDNAPass("\xf0\x90\xab\x87\xd9\xa1.", "xn--9hb7344k."); }
3303test { try parseIDNAPass("\xe1\xa1\x8c.\xe3\x80\x82\xe1\xa2\x91", "xn--c8e..xn--bbf"); }
3304test { try parseIDNAPass("xn--c8e..xn--bbf", "xn--c8e..xn--bbf"); }
3305test { try parseIDNAPass("\xe3\x80\x82\xe3\x80\x82\xe1\x82\xa3\xe2\x89\xaf", "..xn--hdh782b"); }
3306test { try parseIDNAPass("\xe3\x80\x82\xe3\x80\x82\xe1\x82\xa3>\xcc\xb8", "..xn--hdh782b"); }
3307test { try parseIDNAPass("\xe3\x80\x82\xe3\x80\x82\xe2\xb4\x83>\xcc\xb8", "..xn--hdh782b"); }
3308test { try parseIDNAPass("\xe3\x80\x82\xe3\x80\x82\xe2\xb4\x83\xe2\x89\xaf", "..xn--hdh782b"); }
3309test { try parseIDNAPass("..xn--hdh782b", "..xn--hdh782b"); }
3310test { try parseIDNAPass("\xdf\xa5.\xda\xb5", "xn--dtb.xn--okb"); }
3311test { try parseIDNAPass("xn--dtb.xn--okb", "xn--dtb.xn--okb"); }
3312test { try parseIDNAPass(".xn--3e6h", ".xn--3e6h"); }
3313test { try parseIDNAPass("xn--3e6h", "xn--3e6h"); }
3314test { try parseIDNAPass("\xf0\x9e\xa4\xbf", "xn--3e6h"); }
3315test { try parseIDNAPass("\xf0\x9e\xa4\x9d", "xn--3e6h"); }
3316test { try parseIDNAPass("\xda\xb9\xef\xbc\x8e\xe1\xa1\xb3\xe1\x85\x9f", "xn--skb.xn--g9e"); }
3317test { try parseIDNAPass("\xda\xb9.\xe1\xa1\xb3\xe1\x85\x9f", "xn--skb.xn--g9e"); }
3318test { try parseIDNAPass("xn--skb.xn--g9e", "xn--skb.xn--g9e"); }
3319test { try parseIDNAPass("\xda\xb9.\xe1\xa1\xb3", "xn--skb.xn--g9e"); }
3320test { try parseIDNAPass("\xe3\xa8\x9b\xf0\x98\xb1\x8e.\xe3\x80\x827\xe0\xb4\x81", "xn--mbm8237g..xn--7-7hf"); }
3321test { try parseIDNAPass("xn--mbm8237g..xn--7-7hf", "xn--mbm8237g..xn--7-7hf"); }
3322test { try parseIDNAPass("xn--ss-4epx629f.xn--ifh802b6a", "xn--ss-4epx629f.xn--ifh802b6a"); }
3323test { try parseIDNAPass("ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a"); }
3324test { try parseIDNAPass("SS\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "xn--ss-4epx629f.xn--ifh802b6a"); }
3325test { try parseIDNAPass("Ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a"); }
3326test { try parseIDNAPass("-.", "-."); }
3327test { try parseIDNAPass("xn----zmb.xn--rlj2573p", "xn----zmb.xn--rlj2573p"); }
3328test { try parseIDNAPass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "xn--1ch.xn--6-dl4s"); }
3329test { try parseIDNAPass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "xn--1ch.xn--6-dl4s"); }
3330test { try parseIDNAPass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s"); }
3331test { try parseIDNAPass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s"); }
3332test { try parseIDNAPass("xn--1ch.xn--6-dl4s", "xn--1ch.xn--6-dl4s"); }
3333test { try parseIDNAPass("\xe2\x89\xa0.\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s"); }
3334test { try parseIDNAPass("=\xcc\xb8.\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s"); }
3335test { try parseIDNAPass(".j", ".j"); }
3336test { try parseIDNAPass("j", "j"); }
3337test { try parseIDNAPass("xn--rt6a.", "xn--rt6a."); }
3338test { try parseIDNAPass("\xe9\xb1\x8a.", "xn--rt6a."); }
3339test { try parseIDNAPass("xn--4-0bd15808a.", "xn--4-0bd15808a."); }
3340test { try parseIDNAPass("\xf0\x9e\xa4\xba\xdf\x8c4.", "xn--4-0bd15808a."); }
3341test { try parseIDNAPass("\xf0\x9e\xa4\x98\xdf\x8c4.", "xn--4-0bd15808a."); }
3342test { try parseIDNAPass("-\xef\xbd\xa1\xe4\x8f\x9b", "-.xn--xco"); }
3343test { try parseIDNAPass("-\xe3\x80\x82\xe4\x8f\x9b", "-.xn--xco"); }
3344test { try parseIDNAPass("-.xn--xco", "-.xn--xco"); }
3345test { try parseIDNAPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xaf\xc3\x9f", "xn--tc1a.xn--5-qfa988w745i"); }
3346test { try parseIDNAPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8\xc3\x9f", "xn--tc1a.xn--5-qfa988w745i"); }
3347test { try parseIDNAPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f", "xn--tc1a.xn--5-qfa988w745i"); }
3348test { try parseIDNAPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8\xc3\x9f", "xn--tc1a.xn--5-qfa988w745i"); }
3349test { try parseIDNAPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8SS", "xn--tc1a.xn--5ss-3m2a5009e"); }
3350test { try parseIDNAPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSS", "xn--tc1a.xn--5ss-3m2a5009e"); }
3351test { try parseIDNAPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss", "xn--tc1a.xn--5ss-3m2a5009e"); }
3352test { try parseIDNAPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8ss", "xn--tc1a.xn--5ss-3m2a5009e"); }
3353test { try parseIDNAPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8Ss", "xn--tc1a.xn--5ss-3m2a5009e"); }
3354test { try parseIDNAPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSs", "xn--tc1a.xn--5ss-3m2a5009e"); }
3355test { try parseIDNAPass("xn--tc1a.xn--5ss-3m2a5009e", "xn--tc1a.xn--5ss-3m2a5009e"); }
3356test { try parseIDNAPass("xn--tc1a.xn--5-qfa988w745i", "xn--tc1a.xn--5-qfa988w745i"); }
3357test { try parseIDNAPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8SS", "xn--tc1a.xn--5ss-3m2a5009e"); }
3358test { try parseIDNAPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSS", "xn--tc1a.xn--5ss-3m2a5009e"); }
3359test { try parseIDNAPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafss", "xn--tc1a.xn--5ss-3m2a5009e"); }
3360test { try parseIDNAPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8ss", "xn--tc1a.xn--5ss-3m2a5009e"); }
3361test { try parseIDNAPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8Ss", "xn--tc1a.xn--5ss-3m2a5009e"); }
3362test { try parseIDNAPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSs", "xn--tc1a.xn--5ss-3m2a5009e"); }
3363test { try parseIDNAPass("\xf0\x9e\xa4\xaa.\xcf\x82", "xn--ie6h.xn--3xa"); }
3364test { try parseIDNAPass("\xf0\x9e\xa4\x88.\xce\xa3", "xn--ie6h.xn--4xa"); }
3365test { try parseIDNAPass("\xf0\x9e\xa4\xaa.\xcf\x83", "xn--ie6h.xn--4xa"); }
3366test { try parseIDNAPass("\xf0\x9e\xa4\x88.\xcf\x83", "xn--ie6h.xn--4xa"); }
3367test { try parseIDNAPass("xn--ie6h.xn--4xa", "xn--ie6h.xn--4xa"); }
3368test { try parseIDNAPass("\xf0\x9e\xa4\x88.\xcf\x82", "xn--ie6h.xn--3xa"); }
3369test { try parseIDNAPass("xn--ie6h.xn--3xa", "xn--ie6h.xn--3xa"); }
3370test { try parseIDNAPass("\xf0\x9e\xa4\xaa.\xce\xa3", "xn--ie6h.xn--4xa"); }
3371test { try parseIDNAPass("xn--ilj.xn--4xa", "xn--ilj.xn--4xa"); }
3372test { try parseIDNAPass("\xe2\xb4\x9a.\xcf\x83", "xn--ilj.xn--4xa"); }
3373test { try parseIDNAPass("\xe1\x82\xba.\xce\xa3", "xn--ilj.xn--4xa"); }
3374test { try parseIDNAPass("\xe2\xb4\x9a.\xcf\x82", "xn--ilj.xn--3xa"); }
3375test { try parseIDNAPass("\xe1\x82\xba.\xcf\x82", "xn--ilj.xn--3xa"); }
3376test { try parseIDNAPass("xn--ilj.xn--3xa", "xn--ilj.xn--3xa"); }
3377test { try parseIDNAPass("\xe1\x82\xba.\xcf\x83", "xn--ilj.xn--4xa"); }
3378test { try parseIDNAPass("\xe6\xb7\xbd\xe3\x80\x82\xe1\xa0\xbe", "xn--34w.xn--x7e"); }
3379test { try parseIDNAPass("xn--34w.xn--x7e", "xn--34w.xn--x7e"); }
3380test { try parseIDNAPass("\xe6\xb7\xbd.\xe1\xa0\xbe", "xn--34w.xn--x7e"); }
3381test { try parseIDNAPass("..", ".."); }
3382test { try parseIDNAPass("xn---3-p9o.ss--", "xn---3-p9o.ss--"); }
3383test { try parseIDNAPass("51..xn--8-ogo", "51..xn--8-ogo"); }
3384test { try parseIDNAPass("\xea\xa1\xa0\xef\xbc\x8e\xdb\xb2", "xn--5c9a.xn--fmb"); }
3385test { try parseIDNAPass("\xea\xa1\xa0.\xdb\xb2", "xn--5c9a.xn--fmb"); }
3386test { try parseIDNAPass("xn--5c9a.xn--fmb", "xn--5c9a.xn--fmb"); }
3387test { try parseIDNAPass("1.2h", "1.2h"); }
3388test { try parseIDNAPass("xn--skjy82u.xn--gdh", "xn--skjy82u.xn--gdh"); }
3389test { try parseIDNAPass("\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae", "xn--skjy82u.xn--gdh"); }
3390test { try parseIDNAPass("\xe2\xb4\x81\xe7\x95\x9d.<\xcc\xb8", "xn--skjy82u.xn--gdh"); }
3391test { try parseIDNAPass("\xe1\x82\xa1\xe7\x95\x9d.<\xcc\xb8", "xn--skjy82u.xn--gdh"); }
3392test { try parseIDNAPass("\xe1\x82\xa1\xe7\x95\x9d.\xe2\x89\xae", "xn--skjy82u.xn--gdh"); }
3393test { try parseIDNAPass("\xf0\x9f\x95\xbc\xef\xbc\x8e\xef\xbe\xa0", "xn--my8h."); }
3394test { try parseIDNAPass("\xf0\x9f\x95\xbc.\xe1\x85\xa0", "xn--my8h."); }
3395test { try parseIDNAPass("xn--my8h.", "xn--my8h."); }
3396test { try parseIDNAPass("\xf0\x9f\x95\xbc.", "xn--my8h."); }
3397test { try parseIDNAPass("\xcf\x82\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "xn--3xa403s.xn--epb"); }
3398test { try parseIDNAPass("\xcf\x82\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--3xa403s.xn--epb"); }
3399test { try parseIDNAPass("\xce\xa3\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb"); }
3400test { try parseIDNAPass("\xcf\x83\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb"); }
3401test { try parseIDNAPass("\xce\xa3\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb"); }
3402test { try parseIDNAPass("xn--4xa203s.xn--epb", "xn--4xa203s.xn--epb"); }
3403test { try parseIDNAPass("\xcf\x83\xe2\xb4\xa5.\xdd\x9a", "xn--4xa203s.xn--epb"); }
3404test { try parseIDNAPass("\xce\xa3\xe1\x83\x85.\xdd\x9a", "xn--4xa203s.xn--epb"); }
3405test { try parseIDNAPass("\xce\xa3\xe2\xb4\xa5.\xdd\x9a", "xn--4xa203s.xn--epb"); }
3406test { try parseIDNAPass("xn--3xa403s.xn--epb", "xn--3xa403s.xn--epb"); }
3407test { try parseIDNAPass("\xcf\x82\xe2\xb4\xa5.\xdd\x9a", "xn--3xa403s.xn--epb"); }
3408test { try parseIDNAPass("xn--vkb.xn--08e172a", "xn--vkb.xn--08e172a"); }
3409test { try parseIDNAPass("\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4", "xn--vkb.xn--08e172a"); }
3410test { try parseIDNAPass("\xda\xbc.y\xcc\x87\xe1\xa1\xa4", "xn--vkb.xn--08e172a"); }
3411test { try parseIDNAPass("\xda\xbc.Y\xcc\x87\xe1\xa1\xa4", "xn--vkb.xn--08e172a"); }
3412test { try parseIDNAPass("\xda\xbc.\xe1\xba\x8e\xe1\xa1\xa4", "xn--vkb.xn--08e172a"); }
3413test { try parseIDNAPass("xn--pt9c.xn--0kjya", "xn--pt9c.xn--0kjya"); }
3414test { try parseIDNAPass("\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95", "xn--pt9c.xn--0kjya"); }
3415test { try parseIDNAPass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe1\x82\xb5", "xn--pt9c.xn--0kjya"); }
3416test { try parseIDNAPass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe2\xb4\x95", "xn--pt9c.xn--0kjya"); }
3417test { try parseIDNAPass("\xf0\xb2\xa4\xb120.\xe9\x9f\xb3.\xea\xa1\xa61.", "xn--20-9802c.xn--0w5a.xn--1-eg4e."); }
3418test { try parseIDNAPass("xn--20-9802c.xn--0w5a.xn--1-eg4e.", "xn--20-9802c.xn--0w5a.xn--1-eg4e."); }
3419test { try parseIDNAPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g"); }
3420test { try parseIDNAPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g"); }
3421test { try parseIDNAPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g"); }
3422test { try parseIDNAPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g"); }
3423test { try parseIDNAPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3424test { try parseIDNAPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8SS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3425test { try parseIDNAPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3426test { try parseIDNAPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xaess\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3427test { try parseIDNAPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3428test { try parseIDNAPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8Ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3429test { try parseIDNAPass("xn--dlj.xn--ss-jbe65aw27i", "xn--dlj.xn--ss-jbe65aw27i"); }
3430test { try parseIDNAPass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3431test { try parseIDNAPass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3432test { try parseIDNAPass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8SS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3433test { try parseIDNAPass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3434test { try parseIDNAPass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3435test { try parseIDNAPass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8Ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i"); }
3436test { try parseIDNAPass("xn--dlj.xn--zca912alh227g", "xn--dlj.xn--zca912alh227g"); }
3437test { try parseIDNAPass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g"); }
3438test { try parseIDNAPass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g"); }
3439test { try parseIDNAPass("xn--ge6h.xn--oc9a", "xn--ge6h.xn--oc9a"); }
3440test { try parseIDNAPass("\xf0\x9e\xa4\xa8.\xea\xa1\x8f", "xn--ge6h.xn--oc9a"); }
3441test { try parseIDNAPass("\xf0\x9e\xa4\x86.\xea\xa1\x8f", "xn--ge6h.xn--oc9a"); }
3442test { try parseIDNAPass(".xn--ss--bi1b", ".xn--ss--bi1b"); }
3443test { try parseIDNAPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.\xc3\x9f", "xn----4-p16k.xn--zca"); }
3444test { try parseIDNAPass("\xe9\xbd\x99--4.\xc3\x9f", "xn----4-p16k.xn--zca"); }
3445test { try parseIDNAPass("\xe9\xbd\x99--4.SS", "xn----4-p16k.ss"); }
3446test { try parseIDNAPass("\xe9\xbd\x99--4.ss", "xn----4-p16k.ss"); }
3447test { try parseIDNAPass("\xe9\xbd\x99--4.Ss", "xn----4-p16k.ss"); }
3448test { try parseIDNAPass("xn----4-p16k.ss", "xn----4-p16k.ss"); }
3449test { try parseIDNAPass("xn----4-p16k.xn--zca", "xn----4-p16k.xn--zca"); }
3450test { try parseIDNAPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.SS", "xn----4-p16k.ss"); }
3451test { try parseIDNAPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.ss", "xn----4-p16k.ss"); }
3452test { try parseIDNAPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.Ss", "xn----4-p16k.ss"); }
3453test { try parseIDNAPass("xn--9-i0j5967eg3qz.ss", "xn--9-i0j5967eg3qz.ss"); }
3454test { try parseIDNAPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss", "xn--9-i0j5967eg3qz.ss"); }
3455test { try parseIDNAPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.SS", "xn--9-i0j5967eg3qz.ss"); }
3456test { try parseIDNAPass("\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92", "xn--ju8a625r.xn--hpb0073k"); }
3457test { try parseIDNAPass("xn--ju8a625r.xn--hpb0073k", "xn--ju8a625r.xn--hpb0073k"); }
3458test { try parseIDNAPass("xn----3vs.xn--0kj", "xn----3vs.xn--0kj"); }
3459test { try parseIDNAPass("\xcf\x82.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "xn--3xa.xn--1-gocmu97674d."); }
3460test { try parseIDNAPass("\xce\xa3.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "xn--4xa.xn--1-gocmu97674d."); }
3461test { try parseIDNAPass("\xcf\x83.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "xn--4xa.xn--1-gocmu97674d."); }
3462test { try parseIDNAPass("xn--4xa.xn--1-gocmu97674d.", "xn--4xa.xn--1-gocmu97674d."); }
3463test { try parseIDNAPass("xn--3xa.xn--1-gocmu97674d.", "xn--3xa.xn--1-gocmu97674d."); }
3464test { try parseIDNAPass(".xn--hva754s.", ".xn--hva754s."); }
3465test { try parseIDNAPass("xn--hva754s.", "xn--hva754s."); }
3466test { try parseIDNAPass("\xe2\xb4\x96\xcd\xa6.", "xn--hva754s."); }
3467test { try parseIDNAPass("\xe1\x82\xb6\xcd\xa6.", "xn--hva754s."); }
3468test { try parseIDNAPass("xn--hzb.xn--ukj4430l", "xn--hzb.xn--ukj4430l"); }
3469test { try parseIDNAPass("\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l"); }
3470test { try parseIDNAPass("\xe0\xa2\xbb.\xe1\x82\xa3\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l"); }
3471test { try parseIDNAPass("\xf3\xa0\x86\x93\xe2\x9b\x8f-\xe3\x80\x82\xea\xa1\x92", "xn----o9p.xn--rc9a"); }
3472test { try parseIDNAPass("xn----o9p.xn--rc9a", "xn----o9p.xn--rc9a"); }
3473test { try parseIDNAPass("xn--p9ut19m.xn----mck373i", "xn--p9ut19m.xn----mck373i"); }
3474test { try parseIDNAPass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98", "xn--p9ut19m.xn----mck373i"); }
3475test { try parseIDNAPass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe1\x82\xb8", "xn--p9ut19m.xn----mck373i"); }
3476test { try parseIDNAPass("xn--9r8a.16.xn--3-nyc0117m", "xn--9r8a.16.xn--3-nyc0117m"); }
3477test { try parseIDNAPass("\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3", "xn--9r8a.16.xn--3-nyc0117m"); }
3478test { try parseIDNAPass("\xea\x96\xa8.16.3\xe1\x84\x90\xe1\x85\xad\xe1\x86\xa9\xdb\xb3", "xn--9r8a.16.xn--3-nyc0117m"); }
3479test { try parseIDNAPass("xn--1-5bt6845n.", "xn--1-5bt6845n."); }
3480test { try parseIDNAPass("1\xf0\x9d\xa8\x99\xe2\xb8\x96.", "xn--1-5bt6845n."); }
3481test { try parseIDNAPass(".1.xn--9-ogo", ".1.xn--9-ogo"); }
3482test { try parseIDNAPass("xn--ss-f4j.b.", "xn--ss-f4j.b."); }
3483test { try parseIDNAPass("ss\xe1\x80\xba.b.", "xn--ss-f4j.b."); }
3484test { try parseIDNAPass("SS\xe1\x80\xba.B.", "xn--ss-f4j.b."); }
3485test { try parseIDNAPass("Ss\xe1\x80\xba.b.", "xn--ss-f4j.b."); }
3486test { try parseIDNAPass("SS\xe1\x80\xba.b.", "xn--ss-f4j.b."); }
3487test { try parseIDNAPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8e\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--zca216edt0r"); }
3488test { try parseIDNAPass("\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--zca216edt0r"); }
3489test { try parseIDNAPass("\xdb\x8c\xf0\x90\xa8\xbf.SS\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t"); }
3490test { try parseIDNAPass("\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t"); }
3491test { try parseIDNAPass("xn--clb2593k.xn--ss-toj6092t", "xn--clb2593k.xn--ss-toj6092t"); }
3492test { try parseIDNAPass("xn--clb2593k.xn--zca216edt0r", "xn--clb2593k.xn--zca216edt0r"); }
3493test { try parseIDNAPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSS\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t"); }
3494test { try parseIDNAPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8ess\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t"); }
3495test { try parseIDNAPass("\xdb\x8c\xf0\x90\xa8\xbf.Ss\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t"); }
3496test { try parseIDNAPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSs\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t"); }
3497test { try parseIDNAPass("xn--8-ngo.", "xn--8-ngo."); }
3498test { try parseIDNAPass("8\xe2\x89\xae.", "xn--8-ngo."); }
3499test { try parseIDNAPass("8<\xcc\xb8.", "xn--8-ngo."); }
3500test { try parseIDNAPass("\xe7\xbe\x9a\xef\xbd\xa1\xe2\x89\xaf", "xn--xt0a.xn--hdh"); }
3501test { try parseIDNAPass("\xe7\xbe\x9a\xef\xbd\xa1>\xcc\xb8", "xn--xt0a.xn--hdh"); }
3502test { try parseIDNAPass("\xe7\xbe\x9a\xe3\x80\x82\xe2\x89\xaf", "xn--xt0a.xn--hdh"); }
3503test { try parseIDNAPass("\xe7\xbe\x9a\xe3\x80\x82>\xcc\xb8", "xn--xt0a.xn--hdh"); }
3504test { try parseIDNAPass("xn--xt0a.xn--hdh", "xn--xt0a.xn--hdh"); }
3505test { try parseIDNAPass("\xe7\xbe\x9a.\xe2\x89\xaf", "xn--xt0a.xn--hdh"); }
3506test { try parseIDNAPass("\xe7\xbe\x9a.>\xcc\xb8", "xn--xt0a.xn--hdh"); }
3507test { try parseIDNAPass(".xn--ye6h", ".xn--ye6h"); }
3508test { try parseIDNAPass("xn--ye6h", "xn--ye6h"); }
3509test { try parseIDNAPass("\xf0\x9e\xa4\xba", "xn--ye6h"); }
3510test { try parseIDNAPass("\xf0\x9e\xa4\x98", "xn--ye6h"); }
3511test { try parseIDNAPass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xef\xa7\xb8", "3.xn--6vz"); }
3512test { try parseIDNAPass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xe7\xac\xa0", "3.xn--6vz"); }
3513test { try parseIDNAPass("3.\xe7\xac\xa0", "3.xn--6vz"); }
3514test { try parseIDNAPass("3.xn--6vz", "3.xn--6vz"); }
3515test { try parseIDNAPass("-.xn--mlj8559d", "-.xn--mlj8559d"); }
3516test { try parseIDNAPass("xn--1ch.", "xn--1ch."); }
3517test { try parseIDNAPass("\xe2\x89\xa0.", "xn--1ch."); }
3518test { try parseIDNAPass("=\xcc\xb8.", "xn--1ch."); }
3519test { try parseIDNAPass("-\xe3\x80\x82\xe3\x80\x82", "-.."); }
3520test { try parseIDNAPass("-..", "-.."); }
3521test { try parseIDNAPass(".f", ".f"); }
3522test { try parseIDNAPass("f", "f"); }
3523test { try parseIDNAPass("xn--9bm.ss", "xn--9bm.ss"); }
3524test { try parseIDNAPass("\xe3\xa8\xb2.ss", "xn--9bm.ss"); }
3525test { try parseIDNAPass("\xe3\xa8\xb2.SS", "xn--9bm.ss"); }
3526test { try parseIDNAPass("\xe3\xa8\xb2.Ss", "xn--9bm.ss"); }
3527test { try parseIDNAPass("\xf0\x9d\x9f\x8e\xe3\x80\x82\xe7\x94\xaf", "0.xn--qny"); }
3528test { try parseIDNAPass("0\xe3\x80\x82\xe7\x94\xaf", "0.xn--qny"); }
3529test { try parseIDNAPass("0.xn--qny", "0.xn--qny"); }
3530test { try parseIDNAPass("0.\xe7\x94\xaf", "0.xn--qny"); }
3531test { try parseIDNAPass("-\xef\xbd\xa1\xe1\xa2\x98", "-.xn--ibf"); }
3532test { try parseIDNAPass("-\xe3\x80\x82\xe1\xa2\x98", "-.xn--ibf"); }
3533test { try parseIDNAPass("-.xn--ibf", "-.xn--ibf"); }
3534test { try parseIDNAPass("\xf0\x9f\x82\xb4\xe1\x82\xab.\xe2\x89\xae", "xn--2kj7565l.xn--gdh"); }
3535test { try parseIDNAPass("\xf0\x9f\x82\xb4\xe1\x82\xab.<\xcc\xb8", "xn--2kj7565l.xn--gdh"); }
3536test { try parseIDNAPass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.<\xcc\xb8", "xn--2kj7565l.xn--gdh"); }
3537test { try parseIDNAPass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae", "xn--2kj7565l.xn--gdh"); }
3538test { try parseIDNAPass("xn--2kj7565l.xn--gdh", "xn--2kj7565l.xn--gdh"); }
3539test { try parseIDNAPass("xn--gky8837e.", "xn--gky8837e."); }
3540test { try parseIDNAPass("\xe7\x92\xbc\xf0\x9d\xa8\xad.", "xn--gky8837e."); }
3541test { try parseIDNAPass("xn--157b.xn--gnb", "xn--157b.xn--gnb"); }
3542test { try parseIDNAPass("\xed\x8a\x9b.\xdc\x96", "xn--157b.xn--gnb"); }
3543test { try parseIDNAPass("\xe1\x84\x90\xe1\x85\xb1\xe1\x87\x82.\xdc\x96", "xn--157b.xn--gnb"); }
3544test { try parseIDNAPass("xn--84-s850a.xn--59h6326e", "xn--84-s850a.xn--59h6326e"); }
3545test { try parseIDNAPass("84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7", "xn--84-s850a.xn--59h6326e"); }
3546test { try parseIDNAPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "xn--7-mgo.xn--zca892oly5e"); }
3547test { try parseIDNAPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f>\xcc\xb8", "xn--7-mgo.xn--zca892oly5e"); }
3548test { try parseIDNAPass("\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "xn--7-mgo.xn--zca892oly5e"); }
3549test { try parseIDNAPass("<\xcc\xb87.\xe8\xac\x96\xc3\x9f>\xcc\xb8", "xn--7-mgo.xn--zca892oly5e"); }
3550test { try parseIDNAPass("<\xcc\xb87.\xe8\xac\x96SS>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c"); }
3551test { try parseIDNAPass("\xe2\x89\xae7.\xe8\xac\x96SS\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c"); }
3552test { try parseIDNAPass("\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c"); }
3553test { try parseIDNAPass("<\xcc\xb87.\xe8\xac\x96ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c"); }
3554test { try parseIDNAPass("<\xcc\xb87.\xe8\xac\x96Ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c"); }
3555test { try parseIDNAPass("\xe2\x89\xae7.\xe8\xac\x96Ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c"); }
3556test { try parseIDNAPass("xn--7-mgo.xn--ss-xjvv174c", "xn--7-mgo.xn--ss-xjvv174c"); }
3557test { try parseIDNAPass("xn--7-mgo.xn--zca892oly5e", "xn--7-mgo.xn--zca892oly5e"); }
3558test { try parseIDNAPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c"); }
3559test { try parseIDNAPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c"); }
3560test { try parseIDNAPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c"); }
3561test { try parseIDNAPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c"); }
3562test { try parseIDNAPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c"); }
3563test { try parseIDNAPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c"); }
3564test { try parseIDNAPass(".xn--ss-bh7o", ".xn--ss-bh7o"); }
3565test { try parseIDNAPass("xn--ss-bh7o", "xn--ss-bh7o"); }
3566test { try parseIDNAPass("ss\xf0\x91\x93\x83", "xn--ss-bh7o"); }
3567test { try parseIDNAPass("SS\xf0\x91\x93\x83", "xn--ss-bh7o"); }
3568test { try parseIDNAPass("Ss\xf0\x91\x93\x83", "xn--ss-bh7o"); }
3569test { try parseIDNAPass(".xn--qekw60d.xn--gd9a", ".xn--qekw60d.xn--gd9a"); }
3570test { try parseIDNAPass("xn--qekw60d.xn--gd9a", "xn--qekw60d.xn--gd9a"); }
3571test { try parseIDNAPass("\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa", "xn--qekw60d.xn--gd9a"); }
3572test { try parseIDNAPass("\xf0\x9d\x85\xb5\xe3\x80\x829\xf0\x9e\x80\x88\xe4\xac\xba1.", ".xn--91-030c1650n."); }
3573test { try parseIDNAPass(".xn--91-030c1650n.", ".xn--91-030c1650n."); }
3574test { try parseIDNAPass("xn--8c1a.xn--2ib8jn539l", "xn--8c1a.xn--2ib8jn539l"); }
3575test { try parseIDNAPass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb", "xn--8c1a.xn--2ib8jn539l"); }
3576test { try parseIDNAPass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\x92\xda\xbb", "xn--8c1a.xn--2ib8jn539l"); }
3577test { try parseIDNAPass("\xe1\x9e\xb4.\xec\xae\x87-", ".xn----938f"); }
3578test { try parseIDNAPass("\xe1\x9e\xb4.\xe1\x84\x8d\xe1\x85\xb0\xe1\x86\xae-", ".xn----938f"); }
3579test { try parseIDNAPass(".xn----938f", ".xn----938f"); }
3580test { try parseIDNAPass(".xn--hcb32bni", ".xn--hcb32bni"); }
3581test { try parseIDNAPass("xn--hcb32bni", "xn--hcb32bni"); }
3582test { try parseIDNAPass("\xda\xbd\xd9\xa3\xd6\x96", "xn--hcb32bni"); }
3583test { try parseIDNAPass("\xe1\xa2\x8c\xef\xbc\x8e-\xe0\xa1\x9a", "xn--59e.xn----5jd"); }
3584test { try parseIDNAPass("\xe1\xa2\x8c.-\xe0\xa1\x9a", "xn--59e.xn----5jd"); }
3585test { try parseIDNAPass("xn--59e.xn----5jd", "xn--59e.xn----5jd"); }
3586test { try parseIDNAPass("xn--8gb2338k.xn--lhb0154f", "xn--8gb2338k.xn--lhb0154f"); }
3587test { try parseIDNAPass("\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab", "xn--8gb2338k.xn--lhb0154f"); }
3588test { try parseIDNAPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--zca894k"); }
3589test { try parseIDNAPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--zca894k"); }
3590test { try parseIDNAPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82SS\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq"); }
3591test { try parseIDNAPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq"); }
3592test { try parseIDNAPass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98\xe3\x80\x82Ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq"); }
3593test { try parseIDNAPass("xn--6-8cb7433a2ba.xn--ss-2vq", "xn--6-8cb7433a2ba.xn--ss-2vq"); }
3594test { try parseIDNAPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq"); }
3595test { try parseIDNAPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98.SS\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq"); }
3596test { try parseIDNAPass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98.Ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq"); }
3597test { try parseIDNAPass("xn--6-8cb7433a2ba.xn--zca894k", "xn--6-8cb7433a2ba.xn--zca894k"); }
3598test { try parseIDNAPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--zca894k"); }
3599test { try parseIDNAPass("xn--7zv.", "xn--7zv."); }
3600test { try parseIDNAPass("\xe6\xa2\x89.", "xn--7zv."); }
3601test { try parseIDNAPass("xn--iwb.ss", "xn--iwb.ss"); }
3602test { try parseIDNAPass("\xe0\xa1\x93.ss", "xn--iwb.ss"); }
3603test { try parseIDNAPass("\xe0\xa1\x93.SS", "xn--iwb.ss"); }
3604test { try parseIDNAPass("-\xef\xbd\xa1\xe2\xba\x90", "-.xn--6vj"); }
3605test { try parseIDNAPass("-\xe3\x80\x82\xe2\xba\x90", "-.xn--6vj"); }
3606test { try parseIDNAPass("-.xn--6vj", "-.xn--6vj"); }
3607test { try parseIDNAPass("xn--ix9c26l.xn--q0s", "xn--ix9c26l.xn--q0s"); }
3608test { try parseIDNAPass("\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80", "xn--ix9c26l.xn--q0s"); }
3609test { try parseIDNAPass("\xf0\x90\xab\x80\xef\xbc\x8e\xda\x89\xf0\x91\x8c\x80", "xn--pw9c.xn--fjb8658k"); }
3610test { try parseIDNAPass("\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80", "xn--pw9c.xn--fjb8658k"); }
3611test { try parseIDNAPass("xn--pw9c.xn--fjb8658k", "xn--pw9c.xn--fjb8658k"); }
3612test { try parseIDNAPass("xn--r97c.", "xn--r97c."); }
3613test { try parseIDNAPass("\xf0\x90\x8b\xb7.", "xn--r97c."); }