authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-01-19 03:19:22 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-01-19 03:19:22 -08:00
log117b7a4afafbacfa52e03356dd7a41d62a2eef8a
treed91003465c902c55c896c3f3a77f629e9f2f65c2
parent0072865f1e40ae053ab43589bfc27735ce84cf84

pass toAsciiPass

All 1892 tests passed.

4 files changed, 1336 insertions(+), 7 deletions(-)

generate.ts+6
...@@ -239,6 +239,12 @@ fn toAsciiFail(...@@ -239,6 +239,12 @@ fn toAsciiFail(
239 const toAsciiTStatus = i[6] || toAsciiNStatus;239 const toAsciiTStatus = i[6] || toAsciiNStatus;
240240
241 if (toUnicodeStatus === "[]") w.write(`test { try toUnicodePass("${E(source)}", "${E(toUnicode)}"); }\n`);241 if (toUnicodeStatus === "[]") w.write(`test { try toUnicodePass("${E(source)}", "${E(toUnicode)}"); }\n`);
242 if (toAsciiNStatus === "[]") w.write(`test { try toAsciiPass("${E(source)}", "${E(toAsciiN)}", false); }\n`);
243 if (toAsciiTStatus === "[]") w.write(`test { try toAsciiPass("${E(source)}", "${E(toAsciiT)}", true); }\n`);
244
245 // if (toUnicodeStatus !== "[]") w.write(`test { try toUnicodeFail("${E(source)}"); }\n`);
246 // if (toAsciiNStatus !== "[]") w.write(`test { try toAsciiFail("${E(source)}", false); }\n`);
247 // if (toAsciiTStatus !== "[]") w.write(`test { try toAsciiFail("${E(source)}", true); }\n`);
242 }248 }
243249
244 w.flush();250 w.flush();
idna.zig+1
...@@ -35,6 +35,7 @@ pub fn ToASCII(...@@ -35,6 +35,7 @@ pub fn ToASCII(
35 for (0..map.lengths.items.len) |n| {35 for (0..map.lengths.items.len) |n| {
36 punycode.encode(&map, n) catch |err| switch (err) {36 punycode.encode(&map, n) catch |err| switch (err) {
37 error.InvalidPunycode => return error.IDNAFailure,37 error.InvalidPunycode => return error.IDNAFailure,
38 error.OutOfMemory => |e| return e,
38 };39 };
39 }40 }
4041
punycode.zig+101-7
...@@ -18,9 +18,6 @@ pub fn decode(map: *extras.ManyArrayList(u8), map_n: usize) !void {...@@ -18,9 +18,6 @@ pub fn decode(map: *extras.ManyArrayList(u8), map_n: usize) !void {
18 offset += 4;18 offset += 4;
19 input = input[offset..initial_len];19 input = input[offset..initial_len];
2020
21 var word_n: u32 = 0;
22 word_n += initial_n;
23
24 // let n = initial_n21 // let n = initial_n
25 var n: u21 = 128;22 var n: u21 = 128;
26 // let i = 023 // let i = 0
...@@ -130,8 +127,105 @@ fn adapt(delta_: u32, numpoints: u32, firsttime: bool) u32 {...@@ -130,8 +127,105 @@ fn adapt(delta_: u32, numpoints: u32, firsttime: bool) u32 {
130 return k + (((base - tmin + 1) * delta) / (delta + skew));127 return k + (((base - tmin + 1) * delta) / (delta + skew));
131}128}
132129
133// TODO:130pub fn encode(map: *extras.ManyArrayList(u8), map_n: usize) !void {
134pub fn encode(map: *extras.ManyArrayList(u8), n: usize) !void {131 const initial_len = map.lengths.items[map_n];
135 _ = map;132 var input = map.items(map_n)[0..initial_len];
136 _ = n;133 if (extras.matchesAll(u8, input, std.ascii.isAscii)) return;
134 try map.appendSlice(map_n, "xn--");
135 input = map.items(map_n)[0..initial_len];
136 const alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
137
138 var input_len_in_cp: u32 = 0;
139 var it = std.unicode.Utf8View.initUnchecked(input).iterator();
140 while (it.nextCodepointSlice()) |_| input_len_in_cp += 1;
141 it.i = 0;
142
143 // let n = initial_n
144 var n: u21 = initial_n;
145 // let delta = 0
146 var delta: u32 = 0;
147 // let bias = initial_bias
148 var bias: u32 = initial_bias;
149 // let h = b = the number of basic code points in the input
150 // copy them to the output in order, followed by a delimiter if b > 0
151 var h: u32 = 0;
152 var b: u32 = 0;
153 {
154 var i: usize = 0;
155 while (i < input.len) : (i += 1) {
156 if (std.ascii.isAscii(input[i])) b += 1;
157 }
158 try map.list.ensureUnusedCapacity(map.allocator, b + 1);
159 input = map.items(map_n)[0..initial_len];
160 i = 0;
161 while (i < input.len) : (i += 1) {
162 if (std.ascii.isAscii(input[i])) map.appendSlice(map_n, &.{input[i]}) catch unreachable;
163 }
164 if (b > 0) map.appendSlice(map_n, &.{delimiter}) catch unreachable;
165 h = b;
166 }
167 // {if the input contains a non-basic code point < n then fail}
168 // while h < length(input) do begin
169 while (h < input_len_in_cp) {
170 // let m = the minimum {non-basic} code point >= n in the input
171 const m = get_m(it.bytes, n);
172 // let delta = delta + (m - n) * (h + 1), fail on overflow
173 delta = delta + (m - n) * (h + 1);
174 if (false) return error.InvalidPunycode;
175 // let n = m
176 n = m;
177 // for each code point c in the input (in order) do begin
178 it.i = 0;
179 while (it.nextCodepointSlice()) |sl| {
180 const c = std.unicode.utf8Decode(sl) catch unreachable;
181 // if c < n {or c is basic} then increment delta, fail on overflow
182 if (c < n) {
183 delta = std.math.add(u32, delta, 1) catch return error.InvalidPunycode;
184 }
185 // if c == n then begin
186 if (c == n) {
187 // let q = delta
188 var q = delta;
189 // for k = base to infinity in steps of base do begin
190 var k: u23 = base;
191 while (true) : (k += base) {
192 // let t = tmin if k <= bias {+ tmin}, or
193 // tmax if k >= bias + tmax, or k - bias otherwise
194 const t = if (k <= bias) tmin else if (k >= bias + tmax) tmax else k - bias;
195 // if q < t then break
196 if (q < t) break;
197 // output the code point for digit t + ((q - t) mod (base - t))
198 try map.appendSlice(map_n, &.{alphabet[t + ((q - t) % (base - t))]});
199 it.bytes = map.items(map_n)[0..initial_len];
200 // let q = (q - t) div (base - t)
201 q = (q - t) / (base - t);
202 }
203 // output the code point for digit q
204 try map.appendSlice(map_n, &.{alphabet[q]});
205 it.bytes = map.items(map_n)[0..initial_len];
206 // let bias = adapt(delta, h + 1, test h equals b?)
207 bias = adapt(delta, h + 1, h == b);
208 // let delta = 0
209 delta = 0;
210 // increment h
211 h += 1;
212 }
213 }
214 // increment delta and n
215 delta += 1;
216 n += 1;
217 }
218 // clear input from map_n item
219 map.replace(map_n, 0, initial_len, "") catch unreachable;
220}
221
222fn get_m(input: []const u8, n: u21) u21 {
223 var min: u21 = std.math.maxInt(u21);
224 var it = std.unicode.Utf8View.initUnchecked(input).iterator();
225 while (it.nextCodepointSlice()) |sl| {
226 const cp = std.unicode.utf8Decode(sl) catch unreachable;
227 if (cp < n) continue;
228 min = @min(min, cp);
229 }
230 return min;
137}231}
testv2.zig+1228
...@@ -57,102 +57,292 @@ fn toAsciiFail(...@@ -57,102 +57,292 @@ fn toAsciiFail(
57}57}
5858
59test { try toUnicodePass("fass.de", "fass.de"); }59test { try toUnicodePass("fass.de", "fass.de"); }
60test { try toAsciiPass("fass.de", "fass.de", false); }
61test { try toAsciiPass("fass.de", "fass.de", true); }
60test { try toUnicodePass("fa\xc3\x9f.de", "fa\xc3\x9f.de"); }62test { try toUnicodePass("fa\xc3\x9f.de", "fa\xc3\x9f.de"); }
63test { try toAsciiPass("fa\xc3\x9f.de", "xn--fa-hia.de", false); }
64test { try toAsciiPass("fa\xc3\x9f.de", "fass.de", true); }
61test { try toUnicodePass("Fa\xc3\x9f.de", "fa\xc3\x9f.de"); }65test { try toUnicodePass("Fa\xc3\x9f.de", "fa\xc3\x9f.de"); }
66test { try toAsciiPass("Fa\xc3\x9f.de", "xn--fa-hia.de", false); }
67test { try toAsciiPass("Fa\xc3\x9f.de", "fass.de", true); }
62test { try toUnicodePass("xn--fa-hia.de", "fa\xc3\x9f.de"); }68test { try toUnicodePass("xn--fa-hia.de", "fa\xc3\x9f.de"); }
69test { try toAsciiPass("xn--fa-hia.de", "xn--fa-hia.de", false); }
70test { try toAsciiPass("xn--fa-hia.de", "xn--fa-hia.de", true); }
63test { try toUnicodePass("\xc3\xa0.\xd7\x90\xcc\x88", "\xc3\xa0.\xd7\x90\xcc\x88"); }71test { try toUnicodePass("\xc3\xa0.\xd7\x90\xcc\x88", "\xc3\xa0.\xd7\x90\xcc\x88"); }
72test { try toAsciiPass("\xc3\xa0.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l", false); }
73test { try toAsciiPass("\xc3\xa0.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l", true); }
64test { try toUnicodePass("a\xcc\x80.\xd7\x90\xcc\x88", "\xc3\xa0.\xd7\x90\xcc\x88"); }74test { try toUnicodePass("a\xcc\x80.\xd7\x90\xcc\x88", "\xc3\xa0.\xd7\x90\xcc\x88"); }
75test { try toAsciiPass("a\xcc\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l", false); }
76test { try toAsciiPass("a\xcc\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l", true); }
65test { try toUnicodePass("A\xcc\x80.\xd7\x90\xcc\x88", "\xc3\xa0.\xd7\x90\xcc\x88"); }77test { try toUnicodePass("A\xcc\x80.\xd7\x90\xcc\x88", "\xc3\xa0.\xd7\x90\xcc\x88"); }
78test { try toAsciiPass("A\xcc\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l", false); }
79test { try toAsciiPass("A\xcc\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l", true); }
66test { try toUnicodePass("\xc3\x80.\xd7\x90\xcc\x88", "\xc3\xa0.\xd7\x90\xcc\x88"); }80test { try toUnicodePass("\xc3\x80.\xd7\x90\xcc\x88", "\xc3\xa0.\xd7\x90\xcc\x88"); }
81test { try toAsciiPass("\xc3\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l", false); }
82test { try toAsciiPass("\xc3\x80.\xd7\x90\xcc\x88", "xn--0ca.xn--ssa73l", true); }
67test { try toUnicodePass("xn--0ca.xn--ssa73l", "\xc3\xa0.\xd7\x90\xcc\x88"); }83test { try toUnicodePass("xn--0ca.xn--ssa73l", "\xc3\xa0.\xd7\x90\xcc\x88"); }
84test { try toAsciiPass("xn--0ca.xn--ssa73l", "xn--0ca.xn--ssa73l", false); }
85test { try toAsciiPass("xn--0ca.xn--ssa73l", "xn--0ca.xn--ssa73l", true); }
68test { try toUnicodePass("\xc3\xa0\xcc\x88.\xd7\x90", "\xc3\xa0\xcc\x88.\xd7\x90"); }86test { try toUnicodePass("\xc3\xa0\xcc\x88.\xd7\x90", "\xc3\xa0\xcc\x88.\xd7\x90"); }
87test { try toAsciiPass("\xc3\xa0\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db", false); }
88test { try toAsciiPass("\xc3\xa0\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db", true); }
69test { try toUnicodePass("a\xcc\x80\xcc\x88.\xd7\x90", "\xc3\xa0\xcc\x88.\xd7\x90"); }89test { try toUnicodePass("a\xcc\x80\xcc\x88.\xd7\x90", "\xc3\xa0\xcc\x88.\xd7\x90"); }
90test { try toAsciiPass("a\xcc\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db", false); }
91test { try toAsciiPass("a\xcc\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db", true); }
70test { try toUnicodePass("A\xcc\x80\xcc\x88.\xd7\x90", "\xc3\xa0\xcc\x88.\xd7\x90"); }92test { try toUnicodePass("A\xcc\x80\xcc\x88.\xd7\x90", "\xc3\xa0\xcc\x88.\xd7\x90"); }
93test { try toAsciiPass("A\xcc\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db", false); }
94test { try toAsciiPass("A\xcc\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db", true); }
71test { try toUnicodePass("\xc3\x80\xcc\x88.\xd7\x90", "\xc3\xa0\xcc\x88.\xd7\x90"); }95test { try toUnicodePass("\xc3\x80\xcc\x88.\xd7\x90", "\xc3\xa0\xcc\x88.\xd7\x90"); }
96test { try toAsciiPass("\xc3\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db", false); }
97test { try toAsciiPass("\xc3\x80\xcc\x88.\xd7\x90", "xn--0ca81i.xn--4db", true); }
72test { try toUnicodePass("xn--0ca81i.xn--4db", "\xc3\xa0\xcc\x88.\xd7\x90"); }98test { try toUnicodePass("xn--0ca81i.xn--4db", "\xc3\xa0\xcc\x88.\xd7\x90"); }
99test { try toAsciiPass("xn--0ca81i.xn--4db", "xn--0ca81i.xn--4db", false); }
100test { try toAsciiPass("xn--0ca81i.xn--4db", "xn--0ca81i.xn--4db", true); }
101test { try toAsciiPass("a\xe2\x80\x8cb", "ab", true); }
102test { try toAsciiPass("A\xe2\x80\x8cB", "ab", true); }
103test { try toAsciiPass("A\xe2\x80\x8cb", "ab", true); }
73test { try toUnicodePass("ab", "ab"); }104test { try toUnicodePass("ab", "ab"); }
105test { try toAsciiPass("ab", "ab", false); }
106test { try toAsciiPass("ab", "ab", true); }
74test { try toUnicodePass("a\xe0\xa5\x8d\xe2\x80\x8cb", "a\xe0\xa5\x8d\xe2\x80\x8cb"); }107test { try toUnicodePass("a\xe0\xa5\x8d\xe2\x80\x8cb", "a\xe0\xa5\x8d\xe2\x80\x8cb"); }
108test { try toAsciiPass("a\xe0\xa5\x8d\xe2\x80\x8cb", "xn--ab-fsf604u", false); }
109test { try toAsciiPass("a\xe0\xa5\x8d\xe2\x80\x8cb", "xn--ab-fsf", true); }
75test { try toUnicodePass("A\xe0\xa5\x8d\xe2\x80\x8cB", "a\xe0\xa5\x8d\xe2\x80\x8cb"); }110test { try toUnicodePass("A\xe0\xa5\x8d\xe2\x80\x8cB", "a\xe0\xa5\x8d\xe2\x80\x8cb"); }
111test { try toAsciiPass("A\xe0\xa5\x8d\xe2\x80\x8cB", "xn--ab-fsf604u", false); }
112test { try toAsciiPass("A\xe0\xa5\x8d\xe2\x80\x8cB", "xn--ab-fsf", true); }
76test { try toUnicodePass("A\xe0\xa5\x8d\xe2\x80\x8cb", "a\xe0\xa5\x8d\xe2\x80\x8cb"); }113test { try toUnicodePass("A\xe0\xa5\x8d\xe2\x80\x8cb", "a\xe0\xa5\x8d\xe2\x80\x8cb"); }
114test { try toAsciiPass("A\xe0\xa5\x8d\xe2\x80\x8cb", "xn--ab-fsf604u", false); }
115test { try toAsciiPass("A\xe0\xa5\x8d\xe2\x80\x8cb", "xn--ab-fsf", true); }
77test { try toUnicodePass("xn--ab-fsf", "a\xe0\xa5\x8db"); }116test { try toUnicodePass("xn--ab-fsf", "a\xe0\xa5\x8db"); }
117test { try toAsciiPass("xn--ab-fsf", "xn--ab-fsf", false); }
118test { try toAsciiPass("xn--ab-fsf", "xn--ab-fsf", true); }
78test { try toUnicodePass("a\xe0\xa5\x8db", "a\xe0\xa5\x8db"); }119test { try toUnicodePass("a\xe0\xa5\x8db", "a\xe0\xa5\x8db"); }
120test { try toAsciiPass("a\xe0\xa5\x8db", "xn--ab-fsf", false); }
121test { try toAsciiPass("a\xe0\xa5\x8db", "xn--ab-fsf", true); }
79test { try toUnicodePass("A\xe0\xa5\x8dB", "a\xe0\xa5\x8db"); }122test { try toUnicodePass("A\xe0\xa5\x8dB", "a\xe0\xa5\x8db"); }
123test { try toAsciiPass("A\xe0\xa5\x8dB", "xn--ab-fsf", false); }
124test { try toAsciiPass("A\xe0\xa5\x8dB", "xn--ab-fsf", true); }
80test { try toUnicodePass("A\xe0\xa5\x8db", "a\xe0\xa5\x8db"); }125test { try toUnicodePass("A\xe0\xa5\x8db", "a\xe0\xa5\x8db"); }
126test { try toAsciiPass("A\xe0\xa5\x8db", "xn--ab-fsf", false); }
127test { try toAsciiPass("A\xe0\xa5\x8db", "xn--ab-fsf", true); }
81test { try toUnicodePass("xn--ab-fsf604u", "a\xe0\xa5\x8d\xe2\x80\x8cb"); }128test { try toUnicodePass("xn--ab-fsf604u", "a\xe0\xa5\x8d\xe2\x80\x8cb"); }
129test { try toAsciiPass("xn--ab-fsf604u", "xn--ab-fsf604u", false); }
130test { try toAsciiPass("xn--ab-fsf604u", "xn--ab-fsf604u", true); }
131test { try toAsciiPass("a\xe2\x80\x8db", "ab", true); }
132test { try toAsciiPass("A\xe2\x80\x8dB", "ab", true); }
133test { try toAsciiPass("A\xe2\x80\x8db", "ab", true); }
82test { try toUnicodePass("a\xe0\xa5\x8d\xe2\x80\x8db", "a\xe0\xa5\x8d\xe2\x80\x8db"); }134test { try toUnicodePass("a\xe0\xa5\x8d\xe2\x80\x8db", "a\xe0\xa5\x8d\xe2\x80\x8db"); }
135test { try toAsciiPass("a\xe0\xa5\x8d\xe2\x80\x8db", "xn--ab-fsf014u", false); }
136test { try toAsciiPass("a\xe0\xa5\x8d\xe2\x80\x8db", "xn--ab-fsf", true); }
83test { try toUnicodePass("A\xe0\xa5\x8d\xe2\x80\x8dB", "a\xe0\xa5\x8d\xe2\x80\x8db"); }137test { try toUnicodePass("A\xe0\xa5\x8d\xe2\x80\x8dB", "a\xe0\xa5\x8d\xe2\x80\x8db"); }
138test { try toAsciiPass("A\xe0\xa5\x8d\xe2\x80\x8dB", "xn--ab-fsf014u", false); }
139test { try toAsciiPass("A\xe0\xa5\x8d\xe2\x80\x8dB", "xn--ab-fsf", true); }
84test { try toUnicodePass("A\xe0\xa5\x8d\xe2\x80\x8db", "a\xe0\xa5\x8d\xe2\x80\x8db"); }140test { try toUnicodePass("A\xe0\xa5\x8d\xe2\x80\x8db", "a\xe0\xa5\x8d\xe2\x80\x8db"); }
141test { try toAsciiPass("A\xe0\xa5\x8d\xe2\x80\x8db", "xn--ab-fsf014u", false); }
142test { try toAsciiPass("A\xe0\xa5\x8d\xe2\x80\x8db", "xn--ab-fsf", true); }
85test { try toUnicodePass("xn--ab-fsf014u", "a\xe0\xa5\x8d\xe2\x80\x8db"); }143test { try toUnicodePass("xn--ab-fsf014u", "a\xe0\xa5\x8d\xe2\x80\x8db"); }
144test { try toAsciiPass("xn--ab-fsf014u", "xn--ab-fsf014u", false); }
145test { try toAsciiPass("xn--ab-fsf014u", "xn--ab-fsf014u", true); }
86test { try toUnicodePass("\xc2\xa1", "\xc2\xa1"); }146test { try toUnicodePass("\xc2\xa1", "\xc2\xa1"); }
147test { try toAsciiPass("\xc2\xa1", "xn--7a", false); }
148test { try toAsciiPass("\xc2\xa1", "xn--7a", true); }
87test { try toUnicodePass("xn--7a", "\xc2\xa1"); }149test { try toUnicodePass("xn--7a", "\xc2\xa1"); }
150test { try toAsciiPass("xn--7a", "xn--7a", false); }
151test { try toAsciiPass("xn--7a", "xn--7a", true); }
88test { try toUnicodePass("\xe1\xa7\x9a", "\xe1\xa7\x9a"); }152test { try toUnicodePass("\xe1\xa7\x9a", "\xe1\xa7\x9a"); }
153test { try toAsciiPass("\xe1\xa7\x9a", "xn--pkf", false); }
154test { try toAsciiPass("\xe1\xa7\x9a", "xn--pkf", true); }
89test { try toUnicodePass("xn--pkf", "\xe1\xa7\x9a"); }155test { try toUnicodePass("xn--pkf", "\xe1\xa7\x9a"); }
156test { try toAsciiPass("xn--pkf", "xn--pkf", false); }
157test { try toAsciiPass("xn--pkf", "xn--pkf", true); }
90test { try toUnicodePass("\xea\xad\xa0", "\xea\xad\xa0"); }158test { try toUnicodePass("\xea\xad\xa0", "\xea\xad\xa0"); }
159test { try toAsciiPass("\xea\xad\xa0", "xn--3y9a", false); }
160test { try toAsciiPass("\xea\xad\xa0", "xn--3y9a", true); }
91test { try toUnicodePass("xn--3y9a", "\xea\xad\xa0"); }161test { try toUnicodePass("xn--3y9a", "\xea\xad\xa0"); }
162test { try toAsciiPass("xn--3y9a", "xn--3y9a", false); }
163test { try toAsciiPass("xn--3y9a", "xn--3y9a", true); }
92test { try toUnicodePass("1234567890\xc3\xa41234567890123456789012345678901234567890123456", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }164test { try toUnicodePass("1234567890\xc3\xa41234567890123456789012345678901234567890123456", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }
93test { try toUnicodePass("1234567890a\xcc\x881234567890123456789012345678901234567890123456", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }165test { try toUnicodePass("1234567890a\xcc\x881234567890123456789012345678901234567890123456", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }
94test { try toUnicodePass("1234567890A\xcc\x881234567890123456789012345678901234567890123456", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }166test { try toUnicodePass("1234567890A\xcc\x881234567890123456789012345678901234567890123456", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }
95test { try toUnicodePass("1234567890\xc3\x841234567890123456789012345678901234567890123456", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }167test { try toUnicodePass("1234567890\xc3\x841234567890123456789012345678901234567890123456", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }
96test { try toUnicodePass("xn--12345678901234567890123456789012345678901234567890123456-fxe", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }168test { try toUnicodePass("xn--12345678901234567890123456789012345678901234567890123456-fxe", "1234567890\xc3\xa41234567890123456789012345678901234567890123456"); }
97test { try toUnicodePass("www.eXample.cOm", "www.example.com"); }169test { try toUnicodePass("www.eXample.cOm", "www.example.com"); }
170test { try toAsciiPass("www.eXample.cOm", "www.example.com", false); }
171test { try toAsciiPass("www.eXample.cOm", "www.example.com", true); }
98test { try toUnicodePass("B\xc3\xbccher.de", "b\xc3\xbccher.de"); }172test { try toUnicodePass("B\xc3\xbccher.de", "b\xc3\xbccher.de"); }
173test { try toAsciiPass("B\xc3\xbccher.de", "xn--bcher-kva.de", false); }
174test { try toAsciiPass("B\xc3\xbccher.de", "xn--bcher-kva.de", true); }
99test { try toUnicodePass("Bu\xcc\x88cher.de", "b\xc3\xbccher.de"); }175test { try toUnicodePass("Bu\xcc\x88cher.de", "b\xc3\xbccher.de"); }
176test { try toAsciiPass("Bu\xcc\x88cher.de", "xn--bcher-kva.de", false); }
177test { try toAsciiPass("Bu\xcc\x88cher.de", "xn--bcher-kva.de", true); }
100test { try toUnicodePass("bu\xcc\x88cher.de", "b\xc3\xbccher.de"); }178test { try toUnicodePass("bu\xcc\x88cher.de", "b\xc3\xbccher.de"); }
179test { try toAsciiPass("bu\xcc\x88cher.de", "xn--bcher-kva.de", false); }
180test { try toAsciiPass("bu\xcc\x88cher.de", "xn--bcher-kva.de", true); }
101test { try toUnicodePass("b\xc3\xbccher.de", "b\xc3\xbccher.de"); }181test { try toUnicodePass("b\xc3\xbccher.de", "b\xc3\xbccher.de"); }
182test { try toAsciiPass("b\xc3\xbccher.de", "xn--bcher-kva.de", false); }
183test { try toAsciiPass("b\xc3\xbccher.de", "xn--bcher-kva.de", true); }
102test { try toUnicodePass("B\xc3\x9cCHER.DE", "b\xc3\xbccher.de"); }184test { try toUnicodePass("B\xc3\x9cCHER.DE", "b\xc3\xbccher.de"); }
185test { try toAsciiPass("B\xc3\x9cCHER.DE", "xn--bcher-kva.de", false); }
186test { try toAsciiPass("B\xc3\x9cCHER.DE", "xn--bcher-kva.de", true); }
103test { try toUnicodePass("BU\xcc\x88CHER.DE", "b\xc3\xbccher.de"); }187test { try toUnicodePass("BU\xcc\x88CHER.DE", "b\xc3\xbccher.de"); }
188test { try toAsciiPass("BU\xcc\x88CHER.DE", "xn--bcher-kva.de", false); }
189test { try toAsciiPass("BU\xcc\x88CHER.DE", "xn--bcher-kva.de", true); }
104test { try toUnicodePass("xn--bcher-kva.de", "b\xc3\xbccher.de"); }190test { try toUnicodePass("xn--bcher-kva.de", "b\xc3\xbccher.de"); }
191test { try toAsciiPass("xn--bcher-kva.de", "xn--bcher-kva.de", false); }
192test { try toAsciiPass("xn--bcher-kva.de", "xn--bcher-kva.de", true); }
105test { try toUnicodePass("\xc3\x96BB", "\xc3\xb6bb"); }193test { try toUnicodePass("\xc3\x96BB", "\xc3\xb6bb"); }
194test { try toAsciiPass("\xc3\x96BB", "xn--bb-eka", false); }
195test { try toAsciiPass("\xc3\x96BB", "xn--bb-eka", true); }
106test { try toUnicodePass("O\xcc\x88BB", "\xc3\xb6bb"); }196test { try toUnicodePass("O\xcc\x88BB", "\xc3\xb6bb"); }
197test { try toAsciiPass("O\xcc\x88BB", "xn--bb-eka", false); }
198test { try toAsciiPass("O\xcc\x88BB", "xn--bb-eka", true); }
107test { try toUnicodePass("o\xcc\x88bb", "\xc3\xb6bb"); }199test { try toUnicodePass("o\xcc\x88bb", "\xc3\xb6bb"); }
200test { try toAsciiPass("o\xcc\x88bb", "xn--bb-eka", false); }
201test { try toAsciiPass("o\xcc\x88bb", "xn--bb-eka", true); }
108test { try toUnicodePass("\xc3\xb6bb", "\xc3\xb6bb"); }202test { try toUnicodePass("\xc3\xb6bb", "\xc3\xb6bb"); }
203test { try toAsciiPass("\xc3\xb6bb", "xn--bb-eka", false); }
204test { try toAsciiPass("\xc3\xb6bb", "xn--bb-eka", true); }
109test { try toUnicodePass("\xc3\x96bb", "\xc3\xb6bb"); }205test { try toUnicodePass("\xc3\x96bb", "\xc3\xb6bb"); }
206test { try toAsciiPass("\xc3\x96bb", "xn--bb-eka", false); }
207test { try toAsciiPass("\xc3\x96bb", "xn--bb-eka", true); }
110test { try toUnicodePass("O\xcc\x88bb", "\xc3\xb6bb"); }208test { try toUnicodePass("O\xcc\x88bb", "\xc3\xb6bb"); }
209test { try toAsciiPass("O\xcc\x88bb", "xn--bb-eka", false); }
210test { try toAsciiPass("O\xcc\x88bb", "xn--bb-eka", true); }
111test { try toUnicodePass("xn--bb-eka", "\xc3\xb6bb"); }211test { try toUnicodePass("xn--bb-eka", "\xc3\xb6bb"); }
212test { try toAsciiPass("xn--bb-eka", "xn--bb-eka", false); }
213test { try toAsciiPass("xn--bb-eka", "xn--bb-eka", true); }
112test { try toUnicodePass("FA\xe1\xba\x9e.de", "fa\xc3\x9f.de"); }214test { try toUnicodePass("FA\xe1\xba\x9e.de", "fa\xc3\x9f.de"); }
215test { try toAsciiPass("FA\xe1\xba\x9e.de", "xn--fa-hia.de", false); }
216test { try toAsciiPass("FA\xe1\xba\x9e.de", "fass.de", true); }
113test { try toUnicodePass("FA\xe1\xba\x9e.DE", "fa\xc3\x9f.de"); }217test { try toUnicodePass("FA\xe1\xba\x9e.DE", "fa\xc3\x9f.de"); }
218test { try toAsciiPass("FA\xe1\xba\x9e.DE", "xn--fa-hia.de", false); }
219test { try toAsciiPass("FA\xe1\xba\x9e.DE", "fass.de", true); }
114test { try toUnicodePass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }220test { try toUnicodePass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }
221test { try toAsciiPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmm1c.com", false); }
222test { try toAsciiPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmq6b.com", true); }
115test { try toUnicodePass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }223test { try toUnicodePass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }
224test { try toAsciiPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmm1c.com", false); }
225test { try toAsciiPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmq6b.com", true); }
116test { try toUnicodePass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3.COM", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }226test { try toUnicodePass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3.COM", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }
227test { try toAsciiPass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3.COM", "xn--nxasmq6b.com", false); }
228test { try toAsciiPass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3.COM", "xn--nxasmq6b.com", true); }
117test { try toUnicodePass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3.COM", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }229test { try toUnicodePass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3.COM", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }
230test { try toAsciiPass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3.COM", "xn--nxasmq6b.com", false); }
231test { try toAsciiPass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3.COM", "xn--nxasmq6b.com", true); }
118test { try toUnicodePass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }232test { try toUnicodePass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }
233test { try toAsciiPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com", false); }
234test { try toAsciiPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com", true); }
119test { try toUnicodePass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }235test { try toUnicodePass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }
236test { try toAsciiPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com", false); }
237test { try toAsciiPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com", true); }
120test { try toUnicodePass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }238test { try toUnicodePass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }
239test { try toAsciiPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com", false); }
240test { try toAsciiPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com", true); }
121test { try toUnicodePass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }241test { try toUnicodePass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }
242test { try toAsciiPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com", false); }
243test { try toAsciiPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com", "xn--nxasmq6b.com", true); }
122test { try toUnicodePass("xn--nxasmq6b.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }244test { try toUnicodePass("xn--nxasmq6b.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83.com"); }
245test { try toAsciiPass("xn--nxasmq6b.com", "xn--nxasmq6b.com", false); }
246test { try toAsciiPass("xn--nxasmq6b.com", "xn--nxasmq6b.com", true); }
123test { try toUnicodePass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }247test { try toUnicodePass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }
248test { try toAsciiPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmm1c.com", false); }
249test { try toAsciiPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmq6b.com", true); }
124test { try toUnicodePass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }250test { try toUnicodePass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }
251test { try toAsciiPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmm1c.com", false); }
252test { try toAsciiPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com", "xn--nxasmq6b.com", true); }
125test { try toUnicodePass("xn--nxasmm1c.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }253test { try toUnicodePass("xn--nxasmm1c.com", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82.com"); }
254test { try toAsciiPass("xn--nxasmm1c.com", "xn--nxasmm1c.com", false); }
255test { try toAsciiPass("xn--nxasmm1c.com", "xn--nxasmm1c.com", true); }
126test { try toUnicodePass("xn--nxasmm1c", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }256test { try toUnicodePass("xn--nxasmm1c", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }
257test { try toAsciiPass("xn--nxasmm1c", "xn--nxasmm1c", false); }
258test { try toAsciiPass("xn--nxasmm1c", "xn--nxasmm1c", true); }
127test { try toUnicodePass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }259test { try toUnicodePass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }
260test { try toAsciiPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmm1c", false); }
261test { try toAsciiPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmq6b", true); }
128test { try toUnicodePass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }262test { try toUnicodePass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }
263test { try toAsciiPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmm1c", false); }
264test { try toAsciiPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmq6b", true); }
129test { try toUnicodePass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }265test { try toUnicodePass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }
266test { try toAsciiPass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3", "xn--nxasmq6b", false); }
267test { try toAsciiPass("\xce\x92\xce\x9f\xcc\x81\xce\x9b\xce\x9f\xce\xa3", "xn--nxasmq6b", true); }
130test { try toUnicodePass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }268test { try toUnicodePass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }
269test { try toAsciiPass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3", "xn--nxasmq6b", false); }
270test { try toAsciiPass("\xce\x92\xce\x8c\xce\x9b\xce\x9f\xce\xa3", "xn--nxasmq6b", true); }
131test { try toUnicodePass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }271test { try toUnicodePass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }
272test { try toAsciiPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b", false); }
273test { try toAsciiPass("\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b", true); }
132test { try toUnicodePass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }274test { try toUnicodePass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }
275test { try toAsciiPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b", false); }
276test { try toAsciiPass("\xce\xb2\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b", true); }
133test { try toUnicodePass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }277test { try toUnicodePass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }
278test { try toAsciiPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b", false); }
279test { try toAsciiPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b", true); }
134test { try toUnicodePass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }280test { try toUnicodePass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }
281test { try toAsciiPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b", false); }
282test { try toAsciiPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x83", "xn--nxasmq6b", true); }
135test { try toUnicodePass("xn--nxasmq6b", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }283test { try toUnicodePass("xn--nxasmq6b", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x83"); }
284test { try toAsciiPass("xn--nxasmq6b", "xn--nxasmq6b", false); }
285test { try toAsciiPass("xn--nxasmq6b", "xn--nxasmq6b", true); }
136test { try toUnicodePass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }286test { try toUnicodePass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }
287test { try toAsciiPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmm1c", false); }
288test { try toAsciiPass("\xce\x92\xcf\x8c\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmq6b", true); }
137test { try toUnicodePass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }289test { try toUnicodePass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "\xce\xb2\xcf\x8c\xce\xbb\xce\xbf\xcf\x82"); }
290test { try toAsciiPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmm1c", false); }
291test { try toAsciiPass("\xce\x92\xce\xbf\xcc\x81\xce\xbb\xce\xbf\xcf\x82", "xn--nxasmq6b", true); }
138test { try toUnicodePass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com"); }292test { try toUnicodePass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com"); }
293test { try toAsciiPass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b660p.com", false); }
294test { try toAsciiPass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b.com", true); }
139test { try toUnicodePass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com"); }295test { try toUnicodePass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com"); }
296test { try toAsciiPass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.xn--10cl1a0b660p.com", false); }
297test { try toAsciiPass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.xn--10cl1a0b.com", true); }
140test { try toUnicodePass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com"); }298test { try toUnicodePass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com"); }
299test { try toAsciiPass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b660p.com", false); }
300test { try toAsciiPass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b.com", true); }
141test { try toUnicodePass("www.xn--10cl1a0b.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com"); }301test { try toUnicodePass("www.xn--10cl1a0b.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com"); }
302test { try toAsciiPass("www.xn--10cl1a0b.com", "www.xn--10cl1a0b.com", false); }
303test { try toAsciiPass("www.xn--10cl1a0b.com", "www.xn--10cl1a0b.com", true); }
142test { try toUnicodePass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com"); }304test { try toUnicodePass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com"); }
305test { try toAsciiPass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b.com", false); }
306test { try toAsciiPass("www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b.com", true); }
143test { try toUnicodePass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com"); }307test { try toUnicodePass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com"); }
308test { try toAsciiPass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.xn--10cl1a0b.com", false); }
309test { try toAsciiPass("WWW.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.COM", "www.xn--10cl1a0b.com", true); }
144test { try toUnicodePass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com"); }310test { try toUnicodePass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com"); }
311test { try toAsciiPass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b.com", false); }
312test { try toAsciiPass("Www.\xe0\xb7\x81\xe0\xb7\x8a\xe0\xb6\xbb\xe0\xb7\x93.com", "www.xn--10cl1a0b.com", true); }
145test { try toUnicodePass("www.xn--10cl1a0b660p.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com"); }313test { try toUnicodePass("www.xn--10cl1a0b660p.com", "www.\xe0\xb7\x81\xe0\xb7\x8a\xe2\x80\x8d\xe0\xb6\xbb\xe0\xb7\x93.com"); }
314test { try toAsciiPass("www.xn--10cl1a0b660p.com", "www.xn--10cl1a0b660p.com", false); }
315test { try toAsciiPass("www.xn--10cl1a0b660p.com", "www.xn--10cl1a0b660p.com", true); }
146test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c"); }316test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c"); }
317test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c", "xn--mgba3gch31f060k", false); }
318test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c", "xn--mgba3gch31f", true); }
147test { try toUnicodePass("xn--mgba3gch31f", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c"); }319test { try toUnicodePass("xn--mgba3gch31f", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c"); }
320test { try toAsciiPass("xn--mgba3gch31f", "xn--mgba3gch31f", false); }
321test { try toAsciiPass("xn--mgba3gch31f", "xn--mgba3gch31f", true); }
148test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c"); }322test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c"); }
323test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c", "xn--mgba3gch31f", false); }
324test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c", "xn--mgba3gch31f", true); }
149test { try toUnicodePass("xn--mgba3gch31f060k", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c"); }325test { try toUnicodePass("xn--mgba3gch31f060k", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c"); }
326test { try toAsciiPass("xn--mgba3gch31f060k", "xn--mgba3gch31f060k", false); }
327test { try toAsciiPass("xn--mgba3gch31f060k", "xn--mgba3gch31f060k", true); }
150test { try toUnicodePass("xn--mgba3gch31f060k.com", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com"); }328test { try toUnicodePass("xn--mgba3gch31f060k.com", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com"); }
329test { try toAsciiPass("xn--mgba3gch31f060k.com", "xn--mgba3gch31f060k.com", false); }
330test { try toAsciiPass("xn--mgba3gch31f060k.com", "xn--mgba3gch31f060k.com", true); }
151test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com"); }331test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com"); }
332test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com", "xn--mgba3gch31f060k.com", false); }
333test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com", "xn--mgba3gch31f.com", true); }
152test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.COM", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com"); }334test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.COM", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.com"); }
335test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.COM", "xn--mgba3gch31f060k.com", false); }
336test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xe2\x80\x8c\xd8\xa7\xdb\x8c.COM", "xn--mgba3gch31f.com", true); }
153test { try toUnicodePass("xn--mgba3gch31f.com", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com"); }337test { try toUnicodePass("xn--mgba3gch31f.com", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com"); }
338test { try toAsciiPass("xn--mgba3gch31f.com", "xn--mgba3gch31f.com", false); }
339test { try toAsciiPass("xn--mgba3gch31f.com", "xn--mgba3gch31f.com", true); }
154test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com"); }340test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com"); }
341test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com", "xn--mgba3gch31f.com", false); }
342test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com", "xn--mgba3gch31f.com", true); }
155test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.COM", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com"); }343test { try toUnicodePass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.COM", "\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.com"); }
344test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.COM", "xn--mgba3gch31f.com", false); }
345test { try toAsciiPass("\xd9\x86\xd8\xa7\xd9\x85\xd9\x87\xd8\xa7\xdb\x8c.COM", "xn--mgba3gch31f.com", true); }
156test { try toUnicodePass("a.b\xef\xbc\x8ec\xe3\x80\x82d\xef\xbd\xa1", "a.b.c.d."); }346test { try toUnicodePass("a.b\xef\xbc\x8ec\xe3\x80\x82d\xef\xbd\xa1", "a.b.c.d."); }
157test { try toUnicodePass("a.b.c\xe3\x80\x82d\xe3\x80\x82", "a.b.c.d."); }347test { try toUnicodePass("a.b.c\xe3\x80\x82d\xe3\x80\x82", "a.b.c.d."); }
158test { try toUnicodePass("A.B.C\xe3\x80\x82D\xe3\x80\x82", "a.b.c.d."); }348test { try toUnicodePass("A.B.C\xe3\x80\x82D\xe3\x80\x82", "a.b.c.d."); }
...@@ -161,33 +351,89 @@ test { try toUnicodePass("a.b.c.d.", "a.b.c.d."); }...@@ -161,33 +351,89 @@ test { try toUnicodePass("a.b.c.d.", "a.b.c.d."); }
161test { try toUnicodePass("A.B\xef\xbc\x8eC\xe3\x80\x82D\xef\xbd\xa1", "a.b.c.d."); }351test { try toUnicodePass("A.B\xef\xbc\x8eC\xe3\x80\x82D\xef\xbd\xa1", "a.b.c.d."); }
162test { try toUnicodePass("A.b\xef\xbc\x8ec\xe3\x80\x82D\xef\xbd\xa1", "a.b.c.d."); }352test { try toUnicodePass("A.b\xef\xbc\x8ec\xe3\x80\x82D\xef\xbd\xa1", "a.b.c.d."); }
163test { try toUnicodePass("U\xcc\x88.xn--tda", "\xc3\xbc.\xc3\xbc"); }353test { try toUnicodePass("U\xcc\x88.xn--tda", "\xc3\xbc.\xc3\xbc"); }
354test { try toAsciiPass("U\xcc\x88.xn--tda", "xn--tda.xn--tda", false); }
355test { try toAsciiPass("U\xcc\x88.xn--tda", "xn--tda.xn--tda", true); }
164test { try toUnicodePass("\xc3\x9c.xn--tda", "\xc3\xbc.\xc3\xbc"); }356test { try toUnicodePass("\xc3\x9c.xn--tda", "\xc3\xbc.\xc3\xbc"); }
357test { try toAsciiPass("\xc3\x9c.xn--tda", "xn--tda.xn--tda", false); }
358test { try toAsciiPass("\xc3\x9c.xn--tda", "xn--tda.xn--tda", true); }
165test { try toUnicodePass("\xc3\xbc.xn--tda", "\xc3\xbc.\xc3\xbc"); }359test { try toUnicodePass("\xc3\xbc.xn--tda", "\xc3\xbc.\xc3\xbc"); }
360test { try toAsciiPass("\xc3\xbc.xn--tda", "xn--tda.xn--tda", false); }
361test { try toAsciiPass("\xc3\xbc.xn--tda", "xn--tda.xn--tda", true); }
166test { try toUnicodePass("u\xcc\x88.xn--tda", "\xc3\xbc.\xc3\xbc"); }362test { try toUnicodePass("u\xcc\x88.xn--tda", "\xc3\xbc.\xc3\xbc"); }
363test { try toAsciiPass("u\xcc\x88.xn--tda", "xn--tda.xn--tda", false); }
364test { try toAsciiPass("u\xcc\x88.xn--tda", "xn--tda.xn--tda", true); }
167test { try toUnicodePass("U\xcc\x88.XN--TDA", "\xc3\xbc.\xc3\xbc"); }365test { try toUnicodePass("U\xcc\x88.XN--TDA", "\xc3\xbc.\xc3\xbc"); }
366test { try toAsciiPass("U\xcc\x88.XN--TDA", "xn--tda.xn--tda", false); }
367test { try toAsciiPass("U\xcc\x88.XN--TDA", "xn--tda.xn--tda", true); }
168test { try toUnicodePass("\xc3\x9c.XN--TDA", "\xc3\xbc.\xc3\xbc"); }368test { try toUnicodePass("\xc3\x9c.XN--TDA", "\xc3\xbc.\xc3\xbc"); }
369test { try toAsciiPass("\xc3\x9c.XN--TDA", "xn--tda.xn--tda", false); }
370test { try toAsciiPass("\xc3\x9c.XN--TDA", "xn--tda.xn--tda", true); }
169test { try toUnicodePass("\xc3\x9c.xn--Tda", "\xc3\xbc.\xc3\xbc"); }371test { try toUnicodePass("\xc3\x9c.xn--Tda", "\xc3\xbc.\xc3\xbc"); }
372test { try toAsciiPass("\xc3\x9c.xn--Tda", "xn--tda.xn--tda", false); }
373test { try toAsciiPass("\xc3\x9c.xn--Tda", "xn--tda.xn--tda", true); }
170test { try toUnicodePass("U\xcc\x88.xn--Tda", "\xc3\xbc.\xc3\xbc"); }374test { try toUnicodePass("U\xcc\x88.xn--Tda", "\xc3\xbc.\xc3\xbc"); }
375test { try toAsciiPass("U\xcc\x88.xn--Tda", "xn--tda.xn--tda", false); }
376test { try toAsciiPass("U\xcc\x88.xn--Tda", "xn--tda.xn--tda", true); }
171test { try toUnicodePass("xn--tda.xn--tda", "\xc3\xbc.\xc3\xbc"); }377test { try toUnicodePass("xn--tda.xn--tda", "\xc3\xbc.\xc3\xbc"); }
378test { try toAsciiPass("xn--tda.xn--tda", "xn--tda.xn--tda", false); }
379test { try toAsciiPass("xn--tda.xn--tda", "xn--tda.xn--tda", true); }
172test { try toUnicodePass("\xc3\xbc.\xc3\xbc", "\xc3\xbc.\xc3\xbc"); }380test { try toUnicodePass("\xc3\xbc.\xc3\xbc", "\xc3\xbc.\xc3\xbc"); }
381test { try toAsciiPass("\xc3\xbc.\xc3\xbc", "xn--tda.xn--tda", false); }
382test { try toAsciiPass("\xc3\xbc.\xc3\xbc", "xn--tda.xn--tda", true); }
173test { try toUnicodePass("u\xcc\x88.u\xcc\x88", "\xc3\xbc.\xc3\xbc"); }383test { try toUnicodePass("u\xcc\x88.u\xcc\x88", "\xc3\xbc.\xc3\xbc"); }
384test { try toAsciiPass("u\xcc\x88.u\xcc\x88", "xn--tda.xn--tda", false); }
385test { try toAsciiPass("u\xcc\x88.u\xcc\x88", "xn--tda.xn--tda", true); }
174test { try toUnicodePass("U\xcc\x88.U\xcc\x88", "\xc3\xbc.\xc3\xbc"); }386test { try toUnicodePass("U\xcc\x88.U\xcc\x88", "\xc3\xbc.\xc3\xbc"); }
387test { try toAsciiPass("U\xcc\x88.U\xcc\x88", "xn--tda.xn--tda", false); }
388test { try toAsciiPass("U\xcc\x88.U\xcc\x88", "xn--tda.xn--tda", true); }
175test { try toUnicodePass("\xc3\x9c.\xc3\x9c", "\xc3\xbc.\xc3\xbc"); }389test { try toUnicodePass("\xc3\x9c.\xc3\x9c", "\xc3\xbc.\xc3\xbc"); }
390test { try toAsciiPass("\xc3\x9c.\xc3\x9c", "xn--tda.xn--tda", false); }
391test { try toAsciiPass("\xc3\x9c.\xc3\x9c", "xn--tda.xn--tda", true); }
176test { try toUnicodePass("\xc3\x9c.\xc3\xbc", "\xc3\xbc.\xc3\xbc"); }392test { try toUnicodePass("\xc3\x9c.\xc3\xbc", "\xc3\xbc.\xc3\xbc"); }
393test { try toAsciiPass("\xc3\x9c.\xc3\xbc", "xn--tda.xn--tda", false); }
394test { try toAsciiPass("\xc3\x9c.\xc3\xbc", "xn--tda.xn--tda", true); }
177test { try toUnicodePass("U\xcc\x88.u\xcc\x88", "\xc3\xbc.\xc3\xbc"); }395test { try toUnicodePass("U\xcc\x88.u\xcc\x88", "\xc3\xbc.\xc3\xbc"); }
396test { try toAsciiPass("U\xcc\x88.u\xcc\x88", "xn--tda.xn--tda", false); }
397test { try toAsciiPass("U\xcc\x88.u\xcc\x88", "xn--tda.xn--tda", true); }
178test { try toUnicodePass("a1.com", "a1.com"); }398test { try toUnicodePass("a1.com", "a1.com"); }
399test { try toAsciiPass("a1.com", "a1.com", false); }
400test { try toAsciiPass("a1.com", "a1.com", true); }
179test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbc\xb0", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }401test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbc\xb0", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
402test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbc\xb0", "xn--wgv71a119e.jp", false); }
403test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbc\xb0", "xn--wgv71a119e.jp", true); }
180test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82JP", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }404test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82JP", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
405test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82JP", "xn--wgv71a119e.jp", false); }
406test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82JP", "xn--wgv71a119e.jp", true); }
181test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }407test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
408test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82jp", "xn--wgv71a119e.jp", false); }
409test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82jp", "xn--wgv71a119e.jp", true); }
182test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82Jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }410test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82Jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
411test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82Jp", "xn--wgv71a119e.jp", false); }
412test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82Jp", "xn--wgv71a119e.jp", true); }
183test { try toUnicodePass("xn--wgv71a119e.jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }413test { try toUnicodePass("xn--wgv71a119e.jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
414test { try toAsciiPass("xn--wgv71a119e.jp", "xn--wgv71a119e.jp", false); }
415test { try toAsciiPass("xn--wgv71a119e.jp", "xn--wgv71a119e.jp", true); }
184test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }416test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
417test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp", "xn--wgv71a119e.jp", false); }
418test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp", "xn--wgv71a119e.jp", true); }
185test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.JP", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }419test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.JP", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
420test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.JP", "xn--wgv71a119e.jp", false); }
421test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.JP", "xn--wgv71a119e.jp", true); }
186test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.Jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }422test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.Jp", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
423test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.Jp", "xn--wgv71a119e.jp", false); }
424test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.Jp", "xn--wgv71a119e.jp", true); }
187test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbd\x8a\xef\xbd\x90", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }425test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbd\x8a\xef\xbd\x90", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
426test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbd\x8a\xef\xbd\x90", "xn--wgv71a119e.jp", false); }
427test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbd\x8a\xef\xbd\x90", "xn--wgv71a119e.jp", true); }
188test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbd\x90", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }428test { try toUnicodePass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbd\x90", "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e.jp"); }
429test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbd\x90", "xn--wgv71a119e.jp", false); }
430test { try toAsciiPass("\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\xe3\x80\x82\xef\xbc\xaa\xef\xbd\x90", "xn--wgv71a119e.jp", true); }
189test { try toUnicodePass("\xe2\x98\x95", "\xe2\x98\x95"); }431test { try toUnicodePass("\xe2\x98\x95", "\xe2\x98\x95"); }
432test { try toAsciiPass("\xe2\x98\x95", "xn--53h", false); }
433test { try toAsciiPass("\xe2\x98\x95", "xn--53h", true); }
190test { try toUnicodePass("xn--53h", "\xe2\x98\x95"); }434test { try toUnicodePass("xn--53h", "\xe2\x98\x95"); }
435test { try toAsciiPass("xn--53h", "xn--53h", false); }
436test { try toAsciiPass("xn--53h", "xn--53h", true); }
191test { try toUnicodePass("1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }437test { try toUnicodePass("1.xn--assbcssssssssdssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssssssz-pxq1419aa", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }
192test { try toUnicodePass("1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }438test { try toUnicodePass("1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }
193test { try toUnicodePass("1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\xcc\x82ssz", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }439test { try toUnicodePass("1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\xcc\x82ssz", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }
...@@ -195,34 +441,85 @@ test { try toUnicodePass("1.ASSBCSSSSSSSSD\xce\xa3\xce\xa3SSSSSSSSSSSSSSSSESSSSS...@@ -195,34 +441,85 @@ test { try toUnicodePass("1.ASSBCSSSSSSSSD\xce\xa3\xce\xa3SSSSSSSSSSSSSSSSESSSSS
195test { try toUnicodePass("1.ASSBCSSSSSSSSD\xce\xa3\xce\xa3SSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSS\xc5\x9cSSZ", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }441test { try toUnicodePass("1.ASSBCSSSSSSSSD\xce\xa3\xce\xa3SSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSXSSSSSSSSSSSSSSSSSSSSYSSSSSSSSSSSSSSS\xc5\x9cSSZ", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }
196test { try toUnicodePass("1.Assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }442test { try toUnicodePass("1.Assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }
197test { try toUnicodePass("1.Assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\xcc\x82ssz", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }443test { try toUnicodePass("1.Assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssyssssssssssssssss\xcc\x82ssz", "1.assbcssssssssd\xcf\x83\xcf\x83ssssssssssssssssessssssssssssssssssssxssssssssssssssssssssysssssssssssssss\xc5\x9dssz"); }
444test { try toAsciiPass("\xe2\x80\x8cx\xe2\x80\x8dn\xe2\x80\x8c-\xe2\x80\x8d-b\xc3\x9f", "xn--bss", true); }
445test { try toAsciiPass("\xe2\x80\x8cX\xe2\x80\x8dN\xe2\x80\x8c-\xe2\x80\x8d-BSS", "xn--bss", true); }
446test { try toAsciiPass("\xe2\x80\x8cx\xe2\x80\x8dn\xe2\x80\x8c-\xe2\x80\x8d-bss", "xn--bss", true); }
447test { try toAsciiPass("\xe2\x80\x8cX\xe2\x80\x8dn\xe2\x80\x8c-\xe2\x80\x8d-Bss", "xn--bss", true); }
198test { try toUnicodePass("xn--bss", "\xe5\xa4\x99"); }448test { try toUnicodePass("xn--bss", "\xe5\xa4\x99"); }
449test { try toAsciiPass("xn--bss", "xn--bss", false); }
450test { try toAsciiPass("xn--bss", "xn--bss", true); }
199test { try toUnicodePass("\xe5\xa4\x99", "\xe5\xa4\x99"); }451test { try toUnicodePass("\xe5\xa4\x99", "\xe5\xa4\x99"); }
452test { try toAsciiPass("\xe5\xa4\x99", "xn--bss", false); }
453test { try toAsciiPass("\xe5\xa4\x99", "xn--bss", true); }
454test { try toAsciiPass("\xe2\x80\x8cX\xe2\x80\x8dn\xe2\x80\x8c-\xe2\x80\x8d-B\xc3\x9f", "xn--bss", true); }
200test { try toUnicodePass("\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", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }455test { try toUnicodePass("\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", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
456test { try toAsciiPass("\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", false); }
457test { try toAsciiPass("\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", true); }
201test { try toUnicodePass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }458test { try toUnicodePass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
459test { try toAsciiPass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl", false); }
460test { try toAsciiPass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl", true); }
202test { try toUnicodePass("x\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cb\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }461test { try toUnicodePass("x\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cb\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
462test { try toAsciiPass("x\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cb\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl", false); }
463test { try toAsciiPass("x\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cb\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl", true); }
203test { try toUnicodePass("X\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4S\xf3\xa0\x87\xafFFL", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }464test { try toUnicodePass("X\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4S\xf3\xa0\x87\xafFFL", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
465test { try toAsciiPass("X\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4S\xf3\xa0\x87\xafFFL", "xn--bssffl", false); }
466test { try toAsciiPass("X\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4S\xf3\xa0\x87\xafFFL", "xn--bssffl", true); }
204test { try toUnicodePass("X\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }467test { try toUnicodePass("X\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
468test { try toAsciiPass("X\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl", false); }
469test { try toAsciiPass("X\xcd\x8fn\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80s\xe2\x81\xa4s\xf3\xa0\x87\xafffl", "xn--bssffl", true); }
205test { try toUnicodePass("xn--bssffl", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }470test { try toUnicodePass("xn--bssffl", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
471test { try toAsciiPass("xn--bssffl", "xn--bssffl", false); }
472test { try toAsciiPass("xn--bssffl", "xn--bssffl", true); }
206test { try toUnicodePass("\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }473test { try toUnicodePass("\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
474test { try toAsciiPass("\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99", "xn--bssffl", false); }
475test { try toAsciiPass("\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99", "xn--bssffl", true); }
207test { try toUnicodePass("\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", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }476test { try toUnicodePass("\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", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
477test { try toAsciiPass("\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", false); }
478test { try toAsciiPass("\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", true); }
208test { try toUnicodePass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4s\xf3\xa0\x87\xafFFL", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }479test { try toUnicodePass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4s\xf3\xa0\x87\xafFFL", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
480test { try toAsciiPass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4s\xf3\xa0\x87\xafFFL", "xn--bssffl", false); }
481test { try toAsciiPass("x\xcd\x8fN\xe2\x80\x8b-\xc2\xad-\xe1\xa0\x8cB\xef\xb8\x80S\xe2\x81\xa4s\xf3\xa0\x87\xafFFL", "xn--bssffl", true); }
209test { try toUnicodePass("\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", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }482test { try toUnicodePass("\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", "\xe5\xa4\xa1\xe5\xa4\x9e\xe5\xa4\x9c\xe5\xa4\x99"); }
483test { try toAsciiPass("\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", false); }
484test { try toAsciiPass("\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", true); }
210test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }485test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
486test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", false); }
487test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", true); }
211test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }488test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
212test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }489test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
213test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }490test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a"); }
214test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a.", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }491test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a.", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.12345678901234567890123456789012345678901234567890123456789a."); }
215test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }492test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901234.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
216test { try toUnicodePass("\xc3\xa41234567890123456789012345678901234567890123456789012345", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }493test { try toUnicodePass("\xc3\xa41234567890123456789012345678901234567890123456789012345", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }
494test { try toAsciiPass("\xc3\xa41234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te", false); }
495test { try toAsciiPass("\xc3\xa41234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te", true); }
217test { try toUnicodePass("a\xcc\x881234567890123456789012345678901234567890123456789012345", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }496test { try toUnicodePass("a\xcc\x881234567890123456789012345678901234567890123456789012345", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }
497test { try toAsciiPass("a\xcc\x881234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te", false); }
498test { try toAsciiPass("a\xcc\x881234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te", true); }
218test { try toUnicodePass("A\xcc\x881234567890123456789012345678901234567890123456789012345", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }499test { try toUnicodePass("A\xcc\x881234567890123456789012345678901234567890123456789012345", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }
500test { try toAsciiPass("A\xcc\x881234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te", false); }
501test { try toAsciiPass("A\xcc\x881234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te", true); }
219test { try toUnicodePass("\xc3\x841234567890123456789012345678901234567890123456789012345", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }502test { try toUnicodePass("\xc3\x841234567890123456789012345678901234567890123456789012345", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }
503test { try toAsciiPass("\xc3\x841234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te", false); }
504test { try toAsciiPass("\xc3\x841234567890123456789012345678901234567890123456789012345", "xn--1234567890123456789012345678901234567890123456789012345-9te", true); }
220test { try toUnicodePass("xn--1234567890123456789012345678901234567890123456789012345-9te", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }505test { try toUnicodePass("xn--1234567890123456789012345678901234567890123456789012345-9te", "\xc3\xa41234567890123456789012345678901234567890123456789012345"); }
506test { try toAsciiPass("xn--1234567890123456789012345678901234567890123456789012345-9te", "xn--1234567890123456789012345678901234567890123456789012345-9te", false); }
507test { try toAsciiPass("xn--1234567890123456789012345678901234567890123456789012345-9te", "xn--1234567890123456789012345678901234567890123456789012345-9te", true); }
221test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }508test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
509test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", false); }
510test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", true); }
222test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }511test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
512test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", false); }
513test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", true); }
223test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }514test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
515test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", false); }
516test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", true); }
224test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }517test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
518test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", false); }
519test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", true); }
225test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }520test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
521test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", false); }
522test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", true); }
226test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }523test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
227test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }524test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890a\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
228test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }525test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
...@@ -249,69 +546,202 @@ test { try toUnicodePass("123456789012345678901234567890123456789012345678901234...@@ -249,69 +546,202 @@ test { try toUnicodePass("123456789012345678901234567890123456789012345678901234
249test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }546test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890B", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
250test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }547test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.xn--12345678901234567890123456789012345678901234567890123456-fxe.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
251test { try toUnicodePass("A0", "a0"); }548test { try toUnicodePass("A0", "a0"); }
549test { try toAsciiPass("A0", "a0", false); }
550test { try toAsciiPass("A0", "a0", true); }
252test { try toUnicodePass("0A", "0a"); }551test { try toUnicodePass("0A", "0a"); }
552test { try toAsciiPass("0A", "0a", false); }
553test { try toAsciiPass("0A", "0a", true); }
253test { try toUnicodePass("\xd7\x90\xd7\x87", "\xd7\x90\xd7\x87"); }554test { try toUnicodePass("\xd7\x90\xd7\x87", "\xd7\x90\xd7\x87"); }
555test { try toAsciiPass("\xd7\x90\xd7\x87", "xn--vdbr", false); }
556test { try toAsciiPass("\xd7\x90\xd7\x87", "xn--vdbr", true); }
254test { try toUnicodePass("xn--vdbr", "\xd7\x90\xd7\x87"); }557test { try toUnicodePass("xn--vdbr", "\xd7\x90\xd7\x87"); }
558test { try toAsciiPass("xn--vdbr", "xn--vdbr", false); }
559test { try toAsciiPass("xn--vdbr", "xn--vdbr", true); }
255test { try toUnicodePass("\xd7\x909\xd7\x87", "\xd7\x909\xd7\x87"); }560test { try toUnicodePass("\xd7\x909\xd7\x87", "\xd7\x909\xd7\x87"); }
561test { try toAsciiPass("\xd7\x909\xd7\x87", "xn--9-ihcz", false); }
562test { try toAsciiPass("\xd7\x909\xd7\x87", "xn--9-ihcz", true); }
256test { try toUnicodePass("xn--9-ihcz", "\xd7\x909\xd7\x87"); }563test { try toUnicodePass("xn--9-ihcz", "\xd7\x909\xd7\x87"); }
564test { try toAsciiPass("xn--9-ihcz", "xn--9-ihcz", false); }
565test { try toAsciiPass("xn--9-ihcz", "xn--9-ihcz", true); }
257test { try toUnicodePass("\xd7\x90\xd7\xaa", "\xd7\x90\xd7\xaa"); }566test { try toUnicodePass("\xd7\x90\xd7\xaa", "\xd7\x90\xd7\xaa"); }
567test { try toAsciiPass("\xd7\x90\xd7\xaa", "xn--4db6c", false); }
568test { try toAsciiPass("\xd7\x90\xd7\xaa", "xn--4db6c", true); }
258test { try toUnicodePass("xn--4db6c", "\xd7\x90\xd7\xaa"); }569test { try toUnicodePass("xn--4db6c", "\xd7\x90\xd7\xaa"); }
570test { try toAsciiPass("xn--4db6c", "xn--4db6c", false); }
571test { try toAsciiPass("xn--4db6c", "xn--4db6c", true); }
259test { try toUnicodePass("\xd7\x90\xd7\xb3\xd7\xaa", "\xd7\x90\xd7\xb3\xd7\xaa"); }572test { try toUnicodePass("\xd7\x90\xd7\xb3\xd7\xaa", "\xd7\x90\xd7\xb3\xd7\xaa"); }
573test { try toAsciiPass("\xd7\x90\xd7\xb3\xd7\xaa", "xn--4db6c0a", false); }
574test { try toAsciiPass("\xd7\x90\xd7\xb3\xd7\xaa", "xn--4db6c0a", true); }
260test { try toUnicodePass("xn--4db6c0a", "\xd7\x90\xd7\xb3\xd7\xaa"); }575test { try toUnicodePass("xn--4db6c0a", "\xd7\x90\xd7\xb3\xd7\xaa"); }
576test { try toAsciiPass("xn--4db6c0a", "xn--4db6c0a", false); }
577test { try toAsciiPass("xn--4db6c0a", "xn--4db6c0a", true); }
261test { try toUnicodePass("\xd7\x907\xd7\xaa", "\xd7\x907\xd7\xaa"); }578test { try toUnicodePass("\xd7\x907\xd7\xaa", "\xd7\x907\xd7\xaa"); }
579test { try toAsciiPass("\xd7\x907\xd7\xaa", "xn--7-zhc3f", false); }
580test { try toAsciiPass("\xd7\x907\xd7\xaa", "xn--7-zhc3f", true); }
262test { try toUnicodePass("xn--7-zhc3f", "\xd7\x907\xd7\xaa"); }581test { try toUnicodePass("xn--7-zhc3f", "\xd7\x907\xd7\xaa"); }
582test { try toAsciiPass("xn--7-zhc3f", "xn--7-zhc3f", false); }
583test { try toAsciiPass("xn--7-zhc3f", "xn--7-zhc3f", true); }
263test { try toUnicodePass("\xd7\x90\xd9\xa7\xd7\xaa", "\xd7\x90\xd9\xa7\xd7\xaa"); }584test { try toUnicodePass("\xd7\x90\xd9\xa7\xd7\xaa", "\xd7\x90\xd9\xa7\xd7\xaa"); }
585test { try toAsciiPass("\xd7\x90\xd9\xa7\xd7\xaa", "xn--4db6c6t", false); }
586test { try toAsciiPass("\xd7\x90\xd9\xa7\xd7\xaa", "xn--4db6c6t", true); }
264test { try toUnicodePass("xn--4db6c6t", "\xd7\x90\xd9\xa7\xd7\xaa"); }587test { try toUnicodePass("xn--4db6c6t", "\xd7\x90\xd9\xa7\xd7\xaa"); }
588test { try toAsciiPass("xn--4db6c6t", "xn--4db6c6t", false); }
589test { try toAsciiPass("xn--4db6c6t", "xn--4db6c6t", true); }
265test { try toUnicodePass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d", "\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d"); }590test { try toUnicodePass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d", "\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d"); }
591test { try toAsciiPass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d", "xn--dmc4b194h", false); }
592test { try toAsciiPass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d", "xn--dmc4b", true); }
266test { try toUnicodePass("xn--dmc4b", "\xe0\xae\xb9\xe0\xaf\x8d"); }593test { try toUnicodePass("xn--dmc4b", "\xe0\xae\xb9\xe0\xaf\x8d"); }
594test { try toAsciiPass("xn--dmc4b", "xn--dmc4b", false); }
595test { try toAsciiPass("xn--dmc4b", "xn--dmc4b", true); }
267test { try toUnicodePass("\xe0\xae\xb9\xe0\xaf\x8d", "\xe0\xae\xb9\xe0\xaf\x8d"); }596test { try toUnicodePass("\xe0\xae\xb9\xe0\xaf\x8d", "\xe0\xae\xb9\xe0\xaf\x8d"); }
597test { try toAsciiPass("\xe0\xae\xb9\xe0\xaf\x8d", "xn--dmc4b", false); }
598test { try toAsciiPass("\xe0\xae\xb9\xe0\xaf\x8d", "xn--dmc4b", true); }
268test { try toUnicodePass("xn--dmc4b194h", "\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d"); }599test { try toUnicodePass("xn--dmc4b194h", "\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8d"); }
600test { try toAsciiPass("xn--dmc4b194h", "xn--dmc4b194h", false); }
601test { try toAsciiPass("xn--dmc4b194h", "xn--dmc4b194h", true); }
602test { try toAsciiPass("\xe0\xae\xb9\xe2\x80\x8d", "xn--dmc", true); }
269test { try toUnicodePass("xn--dmc", "\xe0\xae\xb9"); }603test { try toUnicodePass("xn--dmc", "\xe0\xae\xb9"); }
604test { try toAsciiPass("xn--dmc", "xn--dmc", false); }
605test { try toAsciiPass("xn--dmc", "xn--dmc", true); }
270test { try toUnicodePass("\xe0\xae\xb9", "\xe0\xae\xb9"); }606test { try toUnicodePass("\xe0\xae\xb9", "\xe0\xae\xb9"); }
607test { try toAsciiPass("\xe0\xae\xb9", "xn--dmc", false); }
608test { try toAsciiPass("\xe0\xae\xb9", "xn--dmc", true); }
271test { try toUnicodePass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c", "\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c"); }609test { try toUnicodePass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c", "\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c"); }
610test { try toAsciiPass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c", "xn--dmc4by94h", false); }
611test { try toAsciiPass("\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c", "xn--dmc4b", true); }
272test { try toUnicodePass("xn--dmc4by94h", "\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c"); }612test { try toUnicodePass("xn--dmc4by94h", "\xe0\xae\xb9\xe0\xaf\x8d\xe2\x80\x8c"); }
613test { try toAsciiPass("xn--dmc4by94h", "xn--dmc4by94h", false); }
614test { try toAsciiPass("xn--dmc4by94h", "xn--dmc4by94h", true); }
615test { try toAsciiPass("\xe0\xae\xb9\xe2\x80\x8c", "xn--dmc", true); }
273test { try toUnicodePass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf", "\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf"); }616test { try toUnicodePass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf", "\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf"); }
617test { try toAsciiPass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf", "xn--ghb2gxqia7523a", false); }
618test { try toAsciiPass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf", "xn--ghb2gxqia", true); }
274test { try toUnicodePass("xn--ghb2gxqia", "\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf"); }619test { try toUnicodePass("xn--ghb2gxqia", "\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf"); }
620test { try toAsciiPass("xn--ghb2gxqia", "xn--ghb2gxqia", false); }
621test { try toAsciiPass("xn--ghb2gxqia", "xn--ghb2gxqia", true); }
275test { try toUnicodePass("\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf", "\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf"); }622test { try toUnicodePass("\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf", "\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf"); }
623test { try toAsciiPass("\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf", "xn--ghb2gxqia", false); }
624test { try toAsciiPass("\xd9\x84\xd9\xb0\xdb\xad\xdb\xaf", "xn--ghb2gxqia", true); }
276test { try toUnicodePass("xn--ghb2gxqia7523a", "\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf"); }625test { try toUnicodePass("xn--ghb2gxqia7523a", "\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad\xdb\xaf"); }
626test { try toAsciiPass("xn--ghb2gxqia7523a", "xn--ghb2gxqia7523a", false); }
627test { try toAsciiPass("xn--ghb2gxqia7523a", "xn--ghb2gxqia7523a", true); }
277test { try toUnicodePass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf", "\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf"); }628test { try toUnicodePass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf", "\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf"); }
629test { try toAsciiPass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf", "xn--ghb2g3qq34f", false); }
630test { try toAsciiPass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf", "xn--ghb2g3q", true); }
278test { try toUnicodePass("xn--ghb2g3q", "\xd9\x84\xd9\xb0\xdb\xaf"); }631test { try toUnicodePass("xn--ghb2g3q", "\xd9\x84\xd9\xb0\xdb\xaf"); }
632test { try toAsciiPass("xn--ghb2g3q", "xn--ghb2g3q", false); }
633test { try toAsciiPass("xn--ghb2g3q", "xn--ghb2g3q", true); }
279test { try toUnicodePass("\xd9\x84\xd9\xb0\xdb\xaf", "\xd9\x84\xd9\xb0\xdb\xaf"); }634test { try toUnicodePass("\xd9\x84\xd9\xb0\xdb\xaf", "\xd9\x84\xd9\xb0\xdb\xaf"); }
635test { try toAsciiPass("\xd9\x84\xd9\xb0\xdb\xaf", "xn--ghb2g3q", false); }
636test { try toAsciiPass("\xd9\x84\xd9\xb0\xdb\xaf", "xn--ghb2g3q", true); }
280test { try toUnicodePass("xn--ghb2g3qq34f", "\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf"); }637test { try toUnicodePass("xn--ghb2g3qq34f", "\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xaf"); }
638test { try toAsciiPass("xn--ghb2g3qq34f", "xn--ghb2g3qq34f", false); }
639test { try toAsciiPass("xn--ghb2g3qq34f", "xn--ghb2g3qq34f", true); }
281test { try toUnicodePass("\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf", "\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf"); }640test { try toUnicodePass("\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf", "\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf"); }
641test { try toAsciiPass("\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf", "xn--ghb25aga828w", false); }
642test { try toAsciiPass("\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf", "xn--ghb25aga", true); }
282test { try toUnicodePass("xn--ghb25aga", "\xd9\x84\xdb\xad\xdb\xaf"); }643test { try toUnicodePass("xn--ghb25aga", "\xd9\x84\xdb\xad\xdb\xaf"); }
644test { try toAsciiPass("xn--ghb25aga", "xn--ghb25aga", false); }
645test { try toAsciiPass("xn--ghb25aga", "xn--ghb25aga", true); }
283test { try toUnicodePass("\xd9\x84\xdb\xad\xdb\xaf", "\xd9\x84\xdb\xad\xdb\xaf"); }646test { try toUnicodePass("\xd9\x84\xdb\xad\xdb\xaf", "\xd9\x84\xdb\xad\xdb\xaf"); }
647test { try toAsciiPass("\xd9\x84\xdb\xad\xdb\xaf", "xn--ghb25aga", false); }
648test { try toAsciiPass("\xd9\x84\xdb\xad\xdb\xaf", "xn--ghb25aga", true); }
284test { try toUnicodePass("xn--ghb25aga828w", "\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf"); }649test { try toUnicodePass("xn--ghb25aga828w", "\xd9\x84\xe2\x80\x8c\xdb\xad\xdb\xaf"); }
650test { try toAsciiPass("xn--ghb25aga828w", "xn--ghb25aga828w", false); }
651test { try toAsciiPass("xn--ghb25aga828w", "xn--ghb25aga828w", true); }
285test { try toUnicodePass("\xd9\x84\xe2\x80\x8c\xdb\xaf", "\xd9\x84\xe2\x80\x8c\xdb\xaf"); }652test { try toUnicodePass("\xd9\x84\xe2\x80\x8c\xdb\xaf", "\xd9\x84\xe2\x80\x8c\xdb\xaf"); }
653test { try toAsciiPass("\xd9\x84\xe2\x80\x8c\xdb\xaf", "xn--ghb65a953d", false); }
654test { try toAsciiPass("\xd9\x84\xe2\x80\x8c\xdb\xaf", "xn--ghb65a", true); }
286test { try toUnicodePass("xn--ghb65a", "\xd9\x84\xdb\xaf"); }655test { try toUnicodePass("xn--ghb65a", "\xd9\x84\xdb\xaf"); }
656test { try toAsciiPass("xn--ghb65a", "xn--ghb65a", false); }
657test { try toAsciiPass("xn--ghb65a", "xn--ghb65a", true); }
287test { try toUnicodePass("\xd9\x84\xdb\xaf", "\xd9\x84\xdb\xaf"); }658test { try toUnicodePass("\xd9\x84\xdb\xaf", "\xd9\x84\xdb\xaf"); }
659test { try toAsciiPass("\xd9\x84\xdb\xaf", "xn--ghb65a", false); }
660test { try toAsciiPass("\xd9\x84\xdb\xaf", "xn--ghb65a", true); }
288test { try toUnicodePass("xn--ghb65a953d", "\xd9\x84\xe2\x80\x8c\xdb\xaf"); }661test { try toUnicodePass("xn--ghb65a953d", "\xd9\x84\xe2\x80\x8c\xdb\xaf"); }
662test { try toAsciiPass("xn--ghb65a953d", "xn--ghb65a953d", false); }
663test { try toAsciiPass("xn--ghb65a953d", "xn--ghb65a953d", true); }
664test { try toAsciiPass("\xd9\x84\xd9\xb0\xe2\x80\x8c\xdb\xad", "xn--ghb2gxq", true); }
289test { try toUnicodePass("xn--ghb2gxq", "\xd9\x84\xd9\xb0\xdb\xad"); }665test { try toUnicodePass("xn--ghb2gxq", "\xd9\x84\xd9\xb0\xdb\xad"); }
666test { try toAsciiPass("xn--ghb2gxq", "xn--ghb2gxq", false); }
667test { try toAsciiPass("xn--ghb2gxq", "xn--ghb2gxq", true); }
290test { try toUnicodePass("\xd9\x84\xd9\xb0\xdb\xad", "\xd9\x84\xd9\xb0\xdb\xad"); }668test { try toUnicodePass("\xd9\x84\xd9\xb0\xdb\xad", "\xd9\x84\xd9\xb0\xdb\xad"); }
669test { try toAsciiPass("\xd9\x84\xd9\xb0\xdb\xad", "xn--ghb2gxq", false); }
670test { try toAsciiPass("\xd9\x84\xd9\xb0\xdb\xad", "xn--ghb2gxq", true); }
671test { try toAsciiPass("\xdb\xaf\xe2\x80\x8c\xdb\xaf", "xn--cmba", true); }
291test { try toUnicodePass("xn--cmba", "\xdb\xaf\xdb\xaf"); }672test { try toUnicodePass("xn--cmba", "\xdb\xaf\xdb\xaf"); }
673test { try toAsciiPass("xn--cmba", "xn--cmba", false); }
674test { try toAsciiPass("xn--cmba", "xn--cmba", true); }
292test { try toUnicodePass("\xdb\xaf\xdb\xaf", "\xdb\xaf\xdb\xaf"); }675test { try toUnicodePass("\xdb\xaf\xdb\xaf", "\xdb\xaf\xdb\xaf"); }
676test { try toAsciiPass("\xdb\xaf\xdb\xaf", "xn--cmba", false); }
677test { try toAsciiPass("\xdb\xaf\xdb\xaf", "xn--cmba", true); }
678test { try toAsciiPass("\xd9\x84\xe2\x80\x8c", "xn--ghb", true); }
293test { try toUnicodePass("xn--ghb", "\xd9\x84"); }679test { try toUnicodePass("xn--ghb", "\xd9\x84"); }
680test { try toAsciiPass("xn--ghb", "xn--ghb", false); }
681test { try toAsciiPass("xn--ghb", "xn--ghb", true); }
294test { try toUnicodePass("\xd9\x84", "\xd9\x84"); }682test { try toUnicodePass("\xd9\x84", "\xd9\x84"); }
683test { try toAsciiPass("\xd9\x84", "xn--ghb", false); }
684test { try toAsciiPass("\xd9\x84", "xn--ghb", true); }
295test { try toUnicodePass("ascii", "ascii"); }685test { try toUnicodePass("ascii", "ascii"); }
686test { try toAsciiPass("ascii", "ascii", false); }
687test { try toAsciiPass("ascii", "ascii", true); }
296test { try toUnicodePass("unicode.org", "unicode.org"); }688test { try toUnicodePass("unicode.org", "unicode.org"); }
689test { try toAsciiPass("unicode.org", "unicode.org", false); }
690test { try toAsciiPass("unicode.org", "unicode.org", true); }
297test { try toUnicodePass("\xef\xa5\x91\xf0\xaf\xa1\xa8\xf0\xaf\xa1\xb4\xf0\xaf\xa4\x9f\xf0\xaf\xa5\x9f\xf0\xaf\xa6\xbf", "\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97"); }691test { try toUnicodePass("\xef\xa5\x91\xf0\xaf\xa1\xa8\xf0\xaf\xa1\xb4\xf0\xaf\xa4\x9f\xf0\xaf\xa5\x9f\xf0\xaf\xa6\xbf", "\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97"); }
692test { try toAsciiPass("\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", false); }
693test { try toAsciiPass("\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", true); }
298test { try toUnicodePass("\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97", "\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97"); }694test { try toUnicodePass("\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97", "\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97"); }
695test { try toAsciiPass("\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97", "xn--snl253bgitxhzwu2arn60c", false); }
696test { try toAsciiPass("\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97", "xn--snl253bgitxhzwu2arn60c", true); }
299test { try toUnicodePass("xn--snl253bgitxhzwu2arn60c", "\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97"); }697test { try toUnicodePass("xn--snl253bgitxhzwu2arn60c", "\xe9\x99\x8b\xe3\x9b\xbc\xe5\xbd\x93\xf0\xa4\x8e\xab\xe7\xab\xae\xe4\x97\x97"); }
698test { try toAsciiPass("xn--snl253bgitxhzwu2arn60c", "xn--snl253bgitxhzwu2arn60c", false); }
699test { try toAsciiPass("xn--snl253bgitxhzwu2arn60c", "xn--snl253bgitxhzwu2arn60c", true); }
300test { try toUnicodePass("\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97", "\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97"); }700test { try toUnicodePass("\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97", "\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97"); }
701test { try toAsciiPass("\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97", "xn--kbo60w31ob3z6t3av9z5b", false); }
702test { try toAsciiPass("\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97", "xn--kbo60w31ob3z6t3av9z5b", true); }
301test { try toUnicodePass("xn--kbo60w31ob3z6t3av9z5b", "\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97"); }703test { try toUnicodePass("xn--kbo60w31ob3z6t3av9z5b", "\xe9\x9b\xbb\xf0\xa1\x8d\xaa\xe5\xbc\xb3\xe4\x8e\xab\xe7\xaa\xae\xe4\xb5\x97"); }
704test { try toAsciiPass("xn--kbo60w31ob3z6t3av9z5b", "xn--kbo60w31ob3z6t3av9z5b", false); }
705test { try toAsciiPass("xn--kbo60w31ob3z6t3av9z5b", "xn--kbo60w31ob3z6t3av9z5b", true); }
302test { try toUnicodePass("xn--A-1ga", "a\xc3\xb6"); }706test { try toUnicodePass("xn--A-1ga", "a\xc3\xb6"); }
707test { try toAsciiPass("xn--A-1ga", "xn--a-1ga", false); }
708test { try toAsciiPass("xn--A-1ga", "xn--a-1ga", true); }
303test { try toUnicodePass("a\xc3\xb6", "a\xc3\xb6"); }709test { try toUnicodePass("a\xc3\xb6", "a\xc3\xb6"); }
710test { try toAsciiPass("a\xc3\xb6", "xn--a-1ga", false); }
711test { try toAsciiPass("a\xc3\xb6", "xn--a-1ga", true); }
304test { try toUnicodePass("ao\xcc\x88", "a\xc3\xb6"); }712test { try toUnicodePass("ao\xcc\x88", "a\xc3\xb6"); }
713test { try toAsciiPass("ao\xcc\x88", "xn--a-1ga", false); }
714test { try toAsciiPass("ao\xcc\x88", "xn--a-1ga", true); }
305test { try toUnicodePass("AO\xcc\x88", "a\xc3\xb6"); }715test { try toUnicodePass("AO\xcc\x88", "a\xc3\xb6"); }
716test { try toAsciiPass("AO\xcc\x88", "xn--a-1ga", false); }
717test { try toAsciiPass("AO\xcc\x88", "xn--a-1ga", true); }
306test { try toUnicodePass("A\xc3\x96", "a\xc3\xb6"); }718test { try toUnicodePass("A\xc3\x96", "a\xc3\xb6"); }
719test { try toAsciiPass("A\xc3\x96", "xn--a-1ga", false); }
720test { try toAsciiPass("A\xc3\x96", "xn--a-1ga", true); }
307test { try toUnicodePass("A\xc3\xb6", "a\xc3\xb6"); }721test { try toUnicodePass("A\xc3\xb6", "a\xc3\xb6"); }
722test { try toAsciiPass("A\xc3\xb6", "xn--a-1ga", false); }
723test { try toAsciiPass("A\xc3\xb6", "xn--a-1ga", true); }
308test { try toUnicodePass("Ao\xcc\x88", "a\xc3\xb6"); }724test { try toUnicodePass("Ao\xcc\x88", "a\xc3\xb6"); }
725test { try toAsciiPass("Ao\xcc\x88", "xn--a-1ga", false); }
726test { try toAsciiPass("Ao\xcc\x88", "xn--a-1ga", true); }
309test { try toUnicodePass("\xef\xbc\x9d\xcc\xb8", "\xe2\x89\xa0"); }727test { try toUnicodePass("\xef\xbc\x9d\xcc\xb8", "\xe2\x89\xa0"); }
728test { try toAsciiPass("\xef\xbc\x9d\xcc\xb8", "xn--1ch", false); }
729test { try toAsciiPass("\xef\xbc\x9d\xcc\xb8", "xn--1ch", true); }
310test { try toUnicodePass("\xe2\x89\xa0", "\xe2\x89\xa0"); }730test { try toUnicodePass("\xe2\x89\xa0", "\xe2\x89\xa0"); }
731test { try toAsciiPass("\xe2\x89\xa0", "xn--1ch", false); }
732test { try toAsciiPass("\xe2\x89\xa0", "xn--1ch", true); }
311test { try toUnicodePass("=\xcc\xb8", "\xe2\x89\xa0"); }733test { try toUnicodePass("=\xcc\xb8", "\xe2\x89\xa0"); }
734test { try toAsciiPass("=\xcc\xb8", "xn--1ch", false); }
735test { try toAsciiPass("=\xcc\xb8", "xn--1ch", true); }
312test { try toUnicodePass("xn--1ch", "\xe2\x89\xa0"); }736test { try toUnicodePass("xn--1ch", "\xe2\x89\xa0"); }
737test { try toAsciiPass("xn--1ch", "xn--1ch", false); }
738test { try toAsciiPass("xn--1ch", "xn--1ch", true); }
313test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }739test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
740test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", false); }
741test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", true); }
314test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }742test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
743test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", false); }
744test { try toAsciiPass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.xn--1234567890123456789012345678901234567890123456789012345-kue.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", true); }
315test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }745test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
316test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }746test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x84123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b.", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b."); }
317test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }747test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x88123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa4123456789012345678901234567890123456789012345.123456789012345678901234567890123456789012345678901234567890123.1234567890123456789012345678901234567890123456789012345678901c"); }
...@@ -323,12 +753,30 @@ test { try toUnicodePass("123456789012345678901234567890123456789012345678901234...@@ -323,12 +753,30 @@ test { try toUnicodePass("123456789012345678901234567890123456789012345678901234
323test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }753test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890A\xcc\x881234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
324test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }754test { try toUnicodePass("123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\x841234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b", "123456789012345678901234567890123456789012345678901234567890123.1234567890\xc3\xa41234567890123456789012345678901234567890123456.123456789012345678901234567890123456789012345678901234567890123.123456789012345678901234567890123456789012345678901234567890b"); }
325test { try toUnicodePass("\xea\xa1\xa3.\xdf\x8f", "\xea\xa1\xa3.\xdf\x8f"); }755test { try toUnicodePass("\xea\xa1\xa3.\xdf\x8f", "\xea\xa1\xa3.\xdf\x8f"); }
756test { try toAsciiPass("\xea\xa1\xa3.\xdf\x8f", "xn--8c9a.xn--qsb", false); }
757test { try toAsciiPass("\xea\xa1\xa3.\xdf\x8f", "xn--8c9a.xn--qsb", true); }
326test { try toUnicodePass("xn--8c9a.xn--qsb", "\xea\xa1\xa3.\xdf\x8f"); }758test { try toUnicodePass("xn--8c9a.xn--qsb", "\xea\xa1\xa3.\xdf\x8f"); }
759test { try toAsciiPass("xn--8c9a.xn--qsb", "xn--8c9a.xn--qsb", false); }
760test { try toAsciiPass("xn--8c9a.xn--qsb", "xn--8c9a.xn--qsb", true); }
761test { try toAsciiPass("\xe2\x80\x8d\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe1\x82\xa0", "xn--jbf911clb.xn----p9j493ivi4l", true); }
762test { try toAsciiPass("\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", "xn--jbf911clb.xn----p9j493ivi4l", true); }
763test { try toAsciiPass("\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", "xn--jbf911clb.xn----p9j493ivi4l", true); }
764test { try toAsciiPass("\xe2\x80\x8d\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80", "xn--jbf911clb.xn----p9j493ivi4l", true); }
327test { try toUnicodePass("xn--jbf911clb.xn----p9j493ivi4l", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }765test { try toUnicodePass("xn--jbf911clb.xn----p9j493ivi4l", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }
766test { try toAsciiPass("xn--jbf911clb.xn----p9j493ivi4l", "xn--jbf911clb.xn----p9j493ivi4l", false); }
767test { try toAsciiPass("xn--jbf911clb.xn----p9j493ivi4l", "xn--jbf911clb.xn----p9j493ivi4l", true); }
328test { try toUnicodePass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }768test { try toUnicodePass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }
769test { try toAsciiPass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80", "xn--jbf911clb.xn----p9j493ivi4l", false); }
770test { try toAsciiPass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80", "xn--jbf911clb.xn----p9j493ivi4l", true); }
329test { try toUnicodePass("=\xcc\xb8\xe1\xa2\x99>\xcc\xb8.\xe1\x84\x89\xe1\x85\xa9\xe1\x86\xbe-\xe1\xa1\xb4\xe2\xb4\x80", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }771test { try toUnicodePass("=\xcc\xb8\xe1\xa2\x99>\xcc\xb8.\xe1\x84\x89\xe1\x85\xa9\xe1\x86\xbe-\xe1\xa1\xb4\xe2\xb4\x80", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }
772test { try toAsciiPass("=\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", false); }
773test { try toAsciiPass("=\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", true); }
330test { try toUnicodePass("=\xcc\xb8\xe1\xa2\x99>\xcc\xb8.\xe1\x84\x89\xe1\x85\xa9\xe1\x86\xbe-\xe1\xa1\xb4\xe1\x82\xa0", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }774test { try toUnicodePass("=\xcc\xb8\xe1\xa2\x99>\xcc\xb8.\xe1\x84\x89\xe1\x85\xa9\xe1\x86\xbe-\xe1\xa1\xb4\xe1\x82\xa0", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }
775test { try toAsciiPass("=\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", false); }
776test { try toAsciiPass("=\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", true); }
331test { try toUnicodePass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe1\x82\xa0", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }777test { try toUnicodePass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe1\x82\xa0", "\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe2\xb4\x80"); }
778test { try toAsciiPass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe1\x82\xa0", "xn--jbf911clb.xn----p9j493ivi4l", false); }
779test { try toAsciiPass("\xe2\x89\xa0\xe1\xa2\x99\xe2\x89\xaf.\xec\x86\xa3-\xe1\xa1\xb4\xe1\x82\xa0", "xn--jbf911clb.xn----p9j493ivi4l", true); }
332test { try toUnicodePass("\xe7\xb9\xb1\xf0\x91\x96\xbf\xe2\x80\x8d.8\xe3\x80\x82", "\xe7\xb9\xb1\xf0\x91\x96\xbf\xe2\x80\x8d.8."); }780test { try toUnicodePass("\xe7\xb9\xb1\xf0\x91\x96\xbf\xe2\x80\x8d.8\xe3\x80\x82", "\xe7\xb9\xb1\xf0\x91\x96\xbf\xe2\x80\x8d.8."); }
333test { try toUnicodePass("xn--gl0as212a.i.", "\xe7\xb9\xb1\xf0\x91\x96\xbf.i."); }781test { try toUnicodePass("xn--gl0as212a.i.", "\xe7\xb9\xb1\xf0\x91\x96\xbf.i."); }
334test { try toUnicodePass("\xe7\xb9\xb1\xf0\x91\x96\xbf.i.", "\xe7\xb9\xb1\xf0\x91\x96\xbf.i."); }782test { try toUnicodePass("\xe7\xb9\xb1\xf0\x91\x96\xbf.i.", "\xe7\xb9\xb1\xf0\x91\x96\xbf.i."); }
...@@ -341,253 +789,793 @@ test { try toUnicodePass("ss\xdb\xab.", "ss\xdb\xab."); }...@@ -341,253 +789,793 @@ test { try toUnicodePass("ss\xdb\xab.", "ss\xdb\xab."); }
341test { try toUnicodePass("SS\xdb\xab.", "ss\xdb\xab."); }789test { try toUnicodePass("SS\xdb\xab.", "ss\xdb\xab."); }
342test { try toUnicodePass("Ss\xdb\xab.", "ss\xdb\xab."); }790test { try toUnicodePass("Ss\xdb\xab.", "ss\xdb\xab."); }
343test { try toUnicodePass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }791test { try toUnicodePass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }
792test { try toAsciiPass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "xn--ve6h.xn--jgb1694kz0b2176a", false); }
793test { try toAsciiPass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "xn--ve6h.xn--jgb1694kz0b2176a", true); }
344test { try toUnicodePass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }794test { try toUnicodePass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }
795test { try toAsciiPass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "xn--ve6h.xn--jgb1694kz0b2176a", false); }
796test { try toAsciiPass("\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "xn--ve6h.xn--jgb1694kz0b2176a", true); }
345test { try toUnicodePass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }797test { try toUnicodePass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }
798test { try toAsciiPass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "xn--ve6h.xn--jgb1694kz0b2176a", false); }
799test { try toAsciiPass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd9\x88\xd9\x94", "xn--ve6h.xn--jgb1694kz0b2176a", true); }
346test { try toUnicodePass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }800test { try toUnicodePass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }
801test { try toAsciiPass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "xn--ve6h.xn--jgb1694kz0b2176a", false); }
802test { try toAsciiPass("\xf0\x9e\xa4\x95.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4", "xn--ve6h.xn--jgb1694kz0b2176a", true); }
347test { try toUnicodePass("xn--ve6h.xn--jgb1694kz0b2176a", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }803test { try toUnicodePass("xn--ve6h.xn--jgb1694kz0b2176a", "\xf0\x9e\xa4\xb7.\xf0\x90\xae\x90\xf0\x9e\xa2\x81\xf0\x90\xb9\xa0\xd8\xa4"); }
804test { try toAsciiPass("xn--ve6h.xn--jgb1694kz0b2176a", "xn--ve6h.xn--jgb1694kz0b2176a", false); }
805test { try toAsciiPass("xn--ve6h.xn--jgb1694kz0b2176a", "xn--ve6h.xn--jgb1694kz0b2176a", true); }
348test { try toUnicodePass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }806test { try toUnicodePass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
807test { try toAsciiPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", false); }
808test { try toAsciiPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", true); }
349test { try toUnicodePass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }809test { try toUnicodePass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
810test { try toAsciiPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", false); }
811test { try toAsciiPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", true); }
350test { try toUnicodePass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }812test { try toUnicodePass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
813test { try toAsciiPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", false); }
814test { try toAsciiPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", true); }
351test { try toUnicodePass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }815test { try toUnicodePass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
816test { try toAsciiPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", false); }
817test { try toAsciiPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", true); }
352test { try toUnicodePass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }818test { try toUnicodePass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
819test { try toAsciiPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", false); }
820test { try toAsciiPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", true); }
353test { try toUnicodePass("xn--de6h.xn--37e857h", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }821test { try toUnicodePass("xn--de6h.xn--37e857h", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
822test { try toAsciiPass("xn--de6h.xn--37e857h", "xn--de6h.xn--37e857h", false); }
823test { try toAsciiPass("xn--de6h.xn--37e857h", "xn--de6h.xn--37e857h", true); }
354test { try toUnicodePass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }824test { try toUnicodePass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
825test { try toAsciiPass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", false); }
826test { try toAsciiPass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", true); }
355test { try toUnicodePass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }827test { try toUnicodePass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
828test { try toAsciiPass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", false); }
829test { try toAsciiPass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", true); }
356test { try toUnicodePass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }830test { try toUnicodePass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
831test { try toAsciiPass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", false); }
832test { try toAsciiPass("\xf0\x9e\xa4\x83.\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", true); }
357test { try toUnicodePass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }833test { try toUnicodePass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
834test { try toAsciiPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", false); }
835test { try toAsciiPass("\xf0\x9e\xa4\xa5\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", true); }
358test { try toUnicodePass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }836test { try toUnicodePass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
837test { try toAsciiPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", false); }
838test { try toAsciiPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", true); }
359test { try toUnicodePass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }839test { try toUnicodePass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
840test { try toAsciiPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", false); }
841test { try toAsciiPass("\xf0\x9e\xa4\x83\xf3\xa0\x85\xae\xef\xbc\x8e\xe1\xa1\x84\xe2\xb4\x8e", "xn--de6h.xn--37e857h", true); }
360test { try toUnicodePass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }842test { try toUnicodePass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe1\x82\xae", "\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe2\xb4\x8e"); }
843test { try toAsciiPass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", false); }
844test { try toAsciiPass("\xf0\x9e\xa4\xa5.\xe1\xa1\x84\xe1\x82\xae", "xn--de6h.xn--37e857h", true); }
845test { try toAsciiPass("\xdd\x96\xe3\x80\x82\xe3\x85\xa4\xe2\x80\x8d\xcf\x82", "xn--9ob.xn--4xa", true); }
846test { try toAsciiPass("\xdd\x96\xe3\x80\x82\xe1\x85\xa0\xe2\x80\x8d\xcf\x82", "xn--9ob.xn--4xa", true); }
847test { try toAsciiPass("\xdd\x96\xe3\x80\x82\xe1\x85\xa0\xe2\x80\x8d\xce\xa3", "xn--9ob.xn--4xa", true); }
848test { try toAsciiPass("\xdd\x96\xe3\x80\x82\xe1\x85\xa0\xe2\x80\x8d\xcf\x83", "xn--9ob.xn--4xa", true); }
361test { try toUnicodePass("xn--9ob.xn--4xa", "\xdd\x96.\xcf\x83"); }849test { try toUnicodePass("xn--9ob.xn--4xa", "\xdd\x96.\xcf\x83"); }
850test { try toAsciiPass("xn--9ob.xn--4xa", "xn--9ob.xn--4xa", false); }
851test { try toAsciiPass("xn--9ob.xn--4xa", "xn--9ob.xn--4xa", true); }
362test { try toUnicodePass("\xdd\x96.\xcf\x83", "\xdd\x96.\xcf\x83"); }852test { try toUnicodePass("\xdd\x96.\xcf\x83", "\xdd\x96.\xcf\x83"); }
853test { try toAsciiPass("\xdd\x96.\xcf\x83", "xn--9ob.xn--4xa", false); }
854test { try toAsciiPass("\xdd\x96.\xcf\x83", "xn--9ob.xn--4xa", true); }
363test { try toUnicodePass("\xdd\x96.\xce\xa3", "\xdd\x96.\xcf\x83"); }855test { try toUnicodePass("\xdd\x96.\xce\xa3", "\xdd\x96.\xcf\x83"); }
856test { try toAsciiPass("\xdd\x96.\xce\xa3", "xn--9ob.xn--4xa", false); }
857test { try toAsciiPass("\xdd\x96.\xce\xa3", "xn--9ob.xn--4xa", true); }
858test { try toAsciiPass("\xdd\x96\xe3\x80\x82\xe3\x85\xa4\xe2\x80\x8d\xce\xa3", "xn--9ob.xn--4xa", true); }
859test { try toAsciiPass("\xdd\x96\xe3\x80\x82\xe3\x85\xa4\xe2\x80\x8d\xcf\x83", "xn--9ob.xn--4xa", true); }
364test { try toUnicodePass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }860test { try toUnicodePass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
861test { try toAsciiPass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m", false); }
862test { try toAsciiPass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
365test { try toUnicodePass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }863test { try toUnicodePass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
864test { try toAsciiPass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m", false); }
865test { try toAsciiPass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
366test { try toUnicodePass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }866test { try toUnicodePass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
867test { try toAsciiPass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m", false); }
868test { try toAsciiPass("\xc3\x9f\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
367test { try toUnicodePass("SS\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }869test { try toUnicodePass("SS\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
870test { try toAsciiPass("SS\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
871test { try toAsciiPass("SS\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
368test { try toUnicodePass("ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }872test { try toUnicodePass("ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
873test { try toAsciiPass("ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
874test { try toAsciiPass("ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
369test { try toUnicodePass("Ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }875test { try toUnicodePass("Ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
876test { try toAsciiPass("Ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
877test { try toAsciiPass("Ss\xe3\x80\x82\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
370test { try toUnicodePass("ss.xn--lgd921mvv0m", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }878test { try toUnicodePass("ss.xn--lgd921mvv0m", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
879test { try toAsciiPass("ss.xn--lgd921mvv0m", "ss.xn--lgd921mvv0m", false); }
880test { try toAsciiPass("ss.xn--lgd921mvv0m", "ss.xn--lgd921mvv0m", true); }
371test { try toUnicodePass("ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }881test { try toUnicodePass("ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
882test { try toAsciiPass("ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
883test { try toAsciiPass("ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
372test { try toUnicodePass("SS.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }884test { try toUnicodePass("SS.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
885test { try toAsciiPass("SS.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
886test { try toAsciiPass("SS.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
373test { try toUnicodePass("Ss.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }887test { try toUnicodePass("Ss.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
888test { try toAsciiPass("Ss.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
889test { try toAsciiPass("Ss.\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
374test { try toUnicodePass("xn--zca.xn--lgd921mvv0m", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }890test { try toUnicodePass("xn--zca.xn--lgd921mvv0m", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
891test { try toAsciiPass("xn--zca.xn--lgd921mvv0m", "xn--zca.xn--lgd921mvv0m", false); }
892test { try toAsciiPass("xn--zca.xn--lgd921mvv0m", "xn--zca.xn--lgd921mvv0m", true); }
375test { try toUnicodePass("\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }893test { try toUnicodePass("\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
894test { try toAsciiPass("\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m", false); }
895test { try toAsciiPass("\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
376test { try toUnicodePass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }896test { try toUnicodePass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "\xc3\x9f.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
897test { try toAsciiPass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "xn--zca.xn--lgd921mvv0m", false); }
898test { try toAsciiPass("\xc3\x9f\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
377test { try toUnicodePass("SS\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }899test { try toUnicodePass("SS\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
900test { try toAsciiPass("SS\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
901test { try toAsciiPass("SS\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
378test { try toUnicodePass("ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }902test { try toUnicodePass("ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
903test { try toAsciiPass("ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
904test { try toAsciiPass("ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
379test { try toUnicodePass("Ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }905test { try toUnicodePass("Ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.\xf0\x90\x8b\xb3\xe2\xb4\x8c\xe0\xbe\xb8"); }
906test { try toAsciiPass("Ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", false); }
907test { try toAsciiPass("Ss\xef\xbd\xa1\xf0\x90\x8b\xb3\xe1\x82\xac\xe0\xbe\xb8", "ss.xn--lgd921mvv0m", true); }
380test { try toUnicodePass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1"); }908test { try toUnicodePass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1"); }
909test { try toAsciiPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--zca4946pblnc", false); }
910test { try toAsciiPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
381test { try toUnicodePass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1"); }911test { try toUnicodePass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1"); }
912test { try toAsciiPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--zca4946pblnc", false); }
913test { try toAsciiPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
382test { try toUnicodePass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }914test { try toUnicodePass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
915test { try toAsciiPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
916test { try toAsciiPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
383test { try toUnicodePass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }917test { try toUnicodePass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
918test { try toAsciiPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
919test { try toAsciiPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
384test { try toUnicodePass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }920test { try toUnicodePass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
921test { try toAsciiPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
922test { try toAsciiPass("\xe1\x9a\xad\xe3\x80\x82\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
385test { try toUnicodePass("xn--hwe.xn--ss-ci1ub261a", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }923test { try toUnicodePass("xn--hwe.xn--ss-ci1ub261a", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
924test { try toAsciiPass("xn--hwe.xn--ss-ci1ub261a", "xn--hwe.xn--ss-ci1ub261a", false); }
925test { try toAsciiPass("xn--hwe.xn--ss-ci1ub261a", "xn--hwe.xn--ss-ci1ub261a", true); }
386test { try toUnicodePass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }926test { try toUnicodePass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
927test { try toAsciiPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
928test { try toAsciiPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
387test { try toUnicodePass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }929test { try toUnicodePass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
930test { try toAsciiPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
931test { try toAsciiPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
388test { try toUnicodePass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }932test { try toUnicodePass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
933test { try toAsciiPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
934test { try toAsciiPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
389test { try toUnicodePass("xn--hwe.xn--zca4946pblnc", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1"); }935test { try toUnicodePass("xn--hwe.xn--zca4946pblnc", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1"); }
936test { try toAsciiPass("xn--hwe.xn--zca4946pblnc", "xn--hwe.xn--zca4946pblnc", false); }
937test { try toAsciiPass("xn--hwe.xn--zca4946pblnc", "xn--hwe.xn--zca4946pblnc", true); }
390test { try toUnicodePass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1"); }938test { try toUnicodePass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1"); }
939test { try toAsciiPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--zca4946pblnc", false); }
940test { try toAsciiPass("\xe1\x9a\xad.\xf0\x9d\x8c\xa0\xc3\x9f\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
391test { try toUnicodePass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }941test { try toUnicodePass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
942test { try toAsciiPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
943test { try toAsciiPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0SS\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
392test { try toUnicodePass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }944test { try toUnicodePass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
945test { try toAsciiPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
946test { try toAsciiPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
393test { try toUnicodePass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }947test { try toUnicodePass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "\xe1\x9a\xad.\xf0\x9d\x8c\xa0ss\xf0\x96\xab\xb1"); }
948test { try toAsciiPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", false); }
949test { try toAsciiPass("\xe1\x9a\xad\xef\xbd\xa1\xf0\x9d\x8c\xa0Ss\xf0\x96\xab\xb1", "xn--hwe.xn--ss-ci1ub261a", true); }
394test { try toUnicodePass("\xf0\x9e\xa5\x93\xef\xbc\x8e\xdc\x98", "\xf0\x9e\xa5\x93.\xdc\x98"); }950test { try toUnicodePass("\xf0\x9e\xa5\x93\xef\xbc\x8e\xdc\x98", "\xf0\x9e\xa5\x93.\xdc\x98"); }
951test { try toAsciiPass("\xf0\x9e\xa5\x93\xef\xbc\x8e\xdc\x98", "xn--of6h.xn--inb", false); }
952test { try toAsciiPass("\xf0\x9e\xa5\x93\xef\xbc\x8e\xdc\x98", "xn--of6h.xn--inb", true); }
395test { try toUnicodePass("\xf0\x9e\xa5\x93.\xdc\x98", "\xf0\x9e\xa5\x93.\xdc\x98"); }953test { try toUnicodePass("\xf0\x9e\xa5\x93.\xdc\x98", "\xf0\x9e\xa5\x93.\xdc\x98"); }
954test { try toAsciiPass("\xf0\x9e\xa5\x93.\xdc\x98", "xn--of6h.xn--inb", false); }
955test { try toAsciiPass("\xf0\x9e\xa5\x93.\xdc\x98", "xn--of6h.xn--inb", true); }
396test { try toUnicodePass("xn--of6h.xn--inb", "\xf0\x9e\xa5\x93.\xdc\x98"); }956test { try toUnicodePass("xn--of6h.xn--inb", "\xf0\x9e\xa5\x93.\xdc\x98"); }
957test { try toAsciiPass("xn--of6h.xn--inb", "xn--of6h.xn--inb", false); }
958test { try toAsciiPass("xn--of6h.xn--inb", "xn--of6h.xn--inb", true); }
397test { try toUnicodePass("\xe1\x82\xba\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x82\xf0\x9d\x9f\x9d\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }959test { try toUnicodePass("\xe1\x82\xba\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x82\xf0\x9d\x9f\x9d\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }
960test { try toAsciiPass("\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", false); }
961test { try toAsciiPass("\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", true); }
398test { try toUnicodePass("\xe1\x82\xba\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x825\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }962test { try toUnicodePass("\xe1\x82\xba\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x825\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }
963test { try toAsciiPass("\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", false); }
964test { try toAsciiPass("\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", true); }
399test { try toUnicodePass("\xe2\xb4\x9a\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x825\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }965test { try toUnicodePass("\xe2\xb4\x9a\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x825\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }
966test { try toAsciiPass("\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", false); }
967test { try toAsciiPass("\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", true); }
400test { try toUnicodePass("xn--ilj2659d.xn--5-dug9054m", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }968test { try toUnicodePass("xn--ilj2659d.xn--5-dug9054m", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }
969test { try toAsciiPass("xn--ilj2659d.xn--5-dug9054m", "xn--ilj2659d.xn--5-dug9054m", false); }
970test { try toAsciiPass("xn--ilj2659d.xn--5-dug9054m", "xn--ilj2659d.xn--5-dug9054m", true); }
401test { try toUnicodePass("\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }971test { try toUnicodePass("\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }
972test { try toAsciiPass("\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m", false); }
973test { try toAsciiPass("\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m", true); }
402test { try toUnicodePass("\xe1\x82\xba\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }974test { try toUnicodePass("\xe1\x82\xba\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }
975test { try toAsciiPass("\xe1\x82\xba\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m", false); }
976test { try toAsciiPass("\xe1\x82\xba\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba", "xn--ilj2659d.xn--5-dug9054m", true); }
403test { try toUnicodePass("\xe2\xb4\x9a\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x82\xf0\x9d\x9f\x9d\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }977test { try toUnicodePass("\xe2\xb4\x9a\xf0\x90\x8b\xb8\xf3\xa0\x84\x84\xe3\x80\x82\xf0\x9d\x9f\x9d\xed\x9f\xb6\xe1\x80\xba", "\xe2\xb4\x9a\xf0\x90\x8b\xb8.5\xed\x9f\xb6\xe1\x80\xba"); }
978test { try toAsciiPass("\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", false); }
979test { try toAsciiPass("\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", true); }
404test { try toUnicodePass("\xe2\x89\xa0.\xe1\xa0\xbf", "\xe2\x89\xa0.\xe1\xa0\xbf"); }980test { try toUnicodePass("\xe2\x89\xa0.\xe1\xa0\xbf", "\xe2\x89\xa0.\xe1\xa0\xbf"); }
981test { try toAsciiPass("\xe2\x89\xa0.\xe1\xa0\xbf", "xn--1ch.xn--y7e", false); }
982test { try toAsciiPass("\xe2\x89\xa0.\xe1\xa0\xbf", "xn--1ch.xn--y7e", true); }
405test { try toUnicodePass("=\xcc\xb8.\xe1\xa0\xbf", "\xe2\x89\xa0.\xe1\xa0\xbf"); }983test { try toUnicodePass("=\xcc\xb8.\xe1\xa0\xbf", "\xe2\x89\xa0.\xe1\xa0\xbf"); }
984test { try toAsciiPass("=\xcc\xb8.\xe1\xa0\xbf", "xn--1ch.xn--y7e", false); }
985test { try toAsciiPass("=\xcc\xb8.\xe1\xa0\xbf", "xn--1ch.xn--y7e", true); }
406test { try toUnicodePass("xn--1ch.xn--y7e", "\xe2\x89\xa0.\xe1\xa0\xbf"); }986test { try toUnicodePass("xn--1ch.xn--y7e", "\xe2\x89\xa0.\xe1\xa0\xbf"); }
987test { try toAsciiPass("xn--1ch.xn--y7e", "xn--1ch.xn--y7e", false); }
988test { try toAsciiPass("xn--1ch.xn--y7e", "xn--1ch.xn--y7e", true); }
407test { try toUnicodePass("\xdc\xa3\xd6\xa3\xef\xbd\xa1\xe3\x8c\xaa", "\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84"); }989test { try toUnicodePass("\xdc\xa3\xd6\xa3\xef\xbd\xa1\xe3\x8c\xaa", "\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84"); }
990test { try toAsciiPass("\xdc\xa3\xd6\xa3\xef\xbd\xa1\xe3\x8c\xaa", "xn--ucb18e.xn--eck4c5a", false); }
991test { try toAsciiPass("\xdc\xa3\xd6\xa3\xef\xbd\xa1\xe3\x8c\xaa", "xn--ucb18e.xn--eck4c5a", true); }
408test { try toUnicodePass("\xdc\xa3\xd6\xa3\xe3\x80\x82\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84"); }992test { try toUnicodePass("\xdc\xa3\xd6\xa3\xe3\x80\x82\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84"); }
993test { try toAsciiPass("\xdc\xa3\xd6\xa3\xe3\x80\x82\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "xn--ucb18e.xn--eck4c5a", false); }
994test { try toAsciiPass("\xdc\xa3\xd6\xa3\xe3\x80\x82\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "xn--ucb18e.xn--eck4c5a", true); }
409test { try toUnicodePass("xn--ucb18e.xn--eck4c5a", "\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84"); }995test { try toUnicodePass("xn--ucb18e.xn--eck4c5a", "\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84"); }
996test { try toAsciiPass("xn--ucb18e.xn--eck4c5a", "xn--ucb18e.xn--eck4c5a", false); }
997test { try toAsciiPass("xn--ucb18e.xn--eck4c5a", "xn--ucb18e.xn--eck4c5a", true); }
410test { try toUnicodePass("\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84"); }998test { try toUnicodePass("\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84"); }
999test { try toAsciiPass("\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "xn--ucb18e.xn--eck4c5a", false); }
1000test { try toAsciiPass("\xdc\xa3\xd6\xa3.\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "xn--ucb18e.xn--eck4c5a", true); }
411test { try toUnicodePass("xn--skb", "\xda\xb9"); }1001test { try toUnicodePass("xn--skb", "\xda\xb9"); }
1002test { try toAsciiPass("xn--skb", "xn--skb", false); }
1003test { try toAsciiPass("xn--skb", "xn--skb", true); }
412test { try toUnicodePass("\xda\xb9", "\xda\xb9"); }1004test { try toUnicodePass("\xda\xb9", "\xda\xb9"); }
1005test { try toAsciiPass("\xda\xb9", "xn--skb", false); }
1006test { try toAsciiPass("\xda\xb9", "xn--skb", true); }
413test { try toUnicodePass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1007test { try toUnicodePass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1008test { try toAsciiPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--zca266bwrr.xn--85-psd", false); }
1009test { try toAsciiPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd", true); }
414test { try toUnicodePass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1010test { try toUnicodePass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1011test { try toAsciiPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--zca266bwrr.xn--85-psd", false); }
1012test { try toAsciiPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", true); }
415test { try toUnicodePass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1013test { try toUnicodePass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1014test { try toAsciiPass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", false); }
1015test { try toAsciiPass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", true); }
416test { try toUnicodePass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1016test { try toUnicodePass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1017test { try toAsciiPass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", false); }
1018test { try toAsciiPass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", true); }
417test { try toUnicodePass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1019test { try toUnicodePass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1020test { try toAsciiPass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", false); }
1021test { try toAsciiPass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", true); }
418test { try toUnicodePass("xn--ss-e2f077r.xn--85-psd", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1022test { try toUnicodePass("xn--ss-e2f077r.xn--85-psd", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1023test { try toAsciiPass("xn--ss-e2f077r.xn--85-psd", "xn--ss-e2f077r.xn--85-psd", false); }
1024test { try toAsciiPass("xn--ss-e2f077r.xn--85-psd", "xn--ss-e2f077r.xn--85-psd", true); }
419test { try toUnicodePass("ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1025test { try toUnicodePass("ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1026test { try toAsciiPass("ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", false); }
1027test { try toAsciiPass("ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", true); }
420test { try toUnicodePass("SS\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1028test { try toUnicodePass("SS\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1029test { try toAsciiPass("SS\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", false); }
1030test { try toAsciiPass("SS\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", true); }
421test { try toUnicodePass("Ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1031test { try toUnicodePass("Ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1032test { try toAsciiPass("Ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", false); }
1033test { try toAsciiPass("Ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", true); }
422test { try toUnicodePass("xn--zca266bwrr.xn--85-psd", "\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1034test { try toUnicodePass("xn--zca266bwrr.xn--85-psd", "\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1035test { try toAsciiPass("xn--zca266bwrr.xn--85-psd", "xn--zca266bwrr.xn--85-psd", false); }
1036test { try toAsciiPass("xn--zca266bwrr.xn--85-psd", "xn--zca266bwrr.xn--85-psd", true); }
423test { try toUnicodePass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1037test { try toUnicodePass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1038test { try toAsciiPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--zca266bwrr.xn--85-psd", false); }
1039test { try toAsciiPass("\xc3\x9f\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085", "xn--ss-e2f077r.xn--85-psd", true); }
424test { try toUnicodePass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1040test { try toUnicodePass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1041test { try toAsciiPass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd", false); }
1042test { try toAsciiPass("SS\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd", true); }
425test { try toUnicodePass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1043test { try toUnicodePass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1044test { try toAsciiPass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd", false); }
1045test { try toAsciiPass("ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd", true); }
426test { try toUnicodePass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }1046test { try toUnicodePass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "ss\xe0\xa7\x81\xe1\xb7\xad.\xd8\xa085"); }
1047test { try toAsciiPass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd", false); }
1048test { try toAsciiPass("Ss\xe0\xa7\x81\xe1\xb7\xad\xe3\x80\x82\xd8\xa08\xe2\x82\x85", "xn--ss-e2f077r.xn--85-psd", true); }
427test { try toUnicodePass("\xef\xb8\x8d\xe0\xaa\x9b\xe3\x80\x82\xe5\xb5\xa8", "\xe0\xaa\x9b.\xe5\xb5\xa8"); }1049test { try toUnicodePass("\xef\xb8\x8d\xe0\xaa\x9b\xe3\x80\x82\xe5\xb5\xa8", "\xe0\xaa\x9b.\xe5\xb5\xa8"); }
1050test { try toAsciiPass("\xef\xb8\x8d\xe0\xaa\x9b\xe3\x80\x82\xe5\xb5\xa8", "xn--6dc.xn--tot", false); }
1051test { try toAsciiPass("\xef\xb8\x8d\xe0\xaa\x9b\xe3\x80\x82\xe5\xb5\xa8", "xn--6dc.xn--tot", true); }
428test { try toUnicodePass("xn--6dc.xn--tot", "\xe0\xaa\x9b.\xe5\xb5\xa8"); }1052test { try toUnicodePass("xn--6dc.xn--tot", "\xe0\xaa\x9b.\xe5\xb5\xa8"); }
1053test { try toAsciiPass("xn--6dc.xn--tot", "xn--6dc.xn--tot", false); }
1054test { try toAsciiPass("xn--6dc.xn--tot", "xn--6dc.xn--tot", true); }
429test { try toUnicodePass("\xe0\xaa\x9b.\xe5\xb5\xa8", "\xe0\xaa\x9b.\xe5\xb5\xa8"); }1055test { try toUnicodePass("\xe0\xaa\x9b.\xe5\xb5\xa8", "\xe0\xaa\x9b.\xe5\xb5\xa8"); }
1056test { try toAsciiPass("\xe0\xaa\x9b.\xe5\xb5\xa8", "xn--6dc.xn--tot", false); }
1057test { try toAsciiPass("\xe0\xaa\x9b.\xe5\xb5\xa8", "xn--6dc.xn--tot", true); }
430test { try toUnicodePass("xn--t6f5138v", "\xf0\xa6\x80\xbe\xe1\xb3\xa0"); }1058test { try toUnicodePass("xn--t6f5138v", "\xf0\xa6\x80\xbe\xe1\xb3\xa0"); }
1059test { try toAsciiPass("xn--t6f5138v", "xn--t6f5138v", false); }
1060test { try toAsciiPass("xn--t6f5138v", "xn--t6f5138v", true); }
431test { try toUnicodePass("\xf0\xa6\x80\xbe\xe1\xb3\xa0", "\xf0\xa6\x80\xbe\xe1\xb3\xa0"); }1061test { try toUnicodePass("\xf0\xa6\x80\xbe\xe1\xb3\xa0", "\xf0\xa6\x80\xbe\xe1\xb3\xa0"); }
1062test { try toAsciiPass("\xf0\xa6\x80\xbe\xe1\xb3\xa0", "xn--t6f5138v", false); }
1063test { try toAsciiPass("\xf0\xa6\x80\xbe\xe1\xb3\xa0", "xn--t6f5138v", true); }
1064test { try toAsciiPass("\xe1\xa1\x99\xe2\x80\x8c\xef\xbd\xa1\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0", "xn--p8e.xn--1ch3a7084l", true); }
1065test { try toAsciiPass("\xe1\xa1\x99\xe2\x80\x8c\xef\xbd\xa1>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8", "xn--p8e.xn--1ch3a7084l", true); }
1066test { try toAsciiPass("\xe1\xa1\x99\xe2\x80\x8c\xe3\x80\x82\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0", "xn--p8e.xn--1ch3a7084l", true); }
1067test { try toAsciiPass("\xe1\xa1\x99\xe2\x80\x8c\xe3\x80\x82>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8", "xn--p8e.xn--1ch3a7084l", true); }
432test { try toUnicodePass("xn--p8e.xn--1ch3a7084l", "\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0"); }1068test { try toUnicodePass("xn--p8e.xn--1ch3a7084l", "\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0"); }
1069test { try toAsciiPass("xn--p8e.xn--1ch3a7084l", "xn--p8e.xn--1ch3a7084l", false); }
1070test { try toAsciiPass("xn--p8e.xn--1ch3a7084l", "xn--p8e.xn--1ch3a7084l", true); }
433test { try toUnicodePass("\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0", "\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0"); }1071test { try toUnicodePass("\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0", "\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0"); }
1072test { try toAsciiPass("\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0", "xn--p8e.xn--1ch3a7084l", false); }
1073test { try toAsciiPass("\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0", "xn--p8e.xn--1ch3a7084l", true); }
434test { try toUnicodePass("\xe1\xa1\x99.>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8", "\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0"); }1074test { try toUnicodePass("\xe1\xa1\x99.>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8", "\xe1\xa1\x99.\xe2\x89\xaf\xf0\x90\x8b\xb2\xe2\x89\xa0"); }
1075test { try toAsciiPass("\xe1\xa1\x99.>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8", "xn--p8e.xn--1ch3a7084l", false); }
1076test { try toAsciiPass("\xe1\xa1\x99.>\xcc\xb8\xf0\x90\x8b\xb2=\xcc\xb8", "xn--p8e.xn--1ch3a7084l", true); }
1077test { try toAsciiPass("\xe2\x84\xb2\xe1\x9f\x92\xe2\x80\x8d\xef\xbd\xa1\xe2\x89\xa0\xe2\x80\x8d\xe2\x80\x8c", "xn--u4e969b.xn--1ch", true); }
1078test { try toAsciiPass("\xe2\x84\xb2\xe1\x9f\x92\xe2\x80\x8d\xef\xbd\xa1=\xcc\xb8\xe2\x80\x8d\xe2\x80\x8c", "xn--u4e969b.xn--1ch", true); }
1079test { try toAsciiPass("\xe2\x84\xb2\xe1\x9f\x92\xe2\x80\x8d\xe3\x80\x82\xe2\x89\xa0\xe2\x80\x8d\xe2\x80\x8c", "xn--u4e969b.xn--1ch", true); }
1080test { try toAsciiPass("\xe2\x84\xb2\xe1\x9f\x92\xe2\x80\x8d\xe3\x80\x82=\xcc\xb8\xe2\x80\x8d\xe2\x80\x8c", "xn--u4e969b.xn--1ch", true); }
1081test { try toAsciiPass("\xe2\x85\x8e\xe1\x9f\x92\xe2\x80\x8d\xe3\x80\x82=\xcc\xb8\xe2\x80\x8d\xe2\x80\x8c", "xn--u4e969b.xn--1ch", true); }
1082test { try toAsciiPass("\xe2\x85\x8e\xe1\x9f\x92\xe2\x80\x8d\xe3\x80\x82\xe2\x89\xa0\xe2\x80\x8d\xe2\x80\x8c", "xn--u4e969b.xn--1ch", true); }
435test { try toUnicodePass("xn--u4e969b.xn--1ch", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }1083test { try toUnicodePass("xn--u4e969b.xn--1ch", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }
1084test { try toAsciiPass("xn--u4e969b.xn--1ch", "xn--u4e969b.xn--1ch", false); }
1085test { try toAsciiPass("xn--u4e969b.xn--1ch", "xn--u4e969b.xn--1ch", true); }
436test { try toUnicodePass("\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }1086test { try toUnicodePass("\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }
1087test { try toAsciiPass("\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0", "xn--u4e969b.xn--1ch", false); }
1088test { try toAsciiPass("\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0", "xn--u4e969b.xn--1ch", true); }
437test { try toUnicodePass("\xe2\x85\x8e\xe1\x9f\x92.=\xcc\xb8", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }1089test { try toUnicodePass("\xe2\x85\x8e\xe1\x9f\x92.=\xcc\xb8", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }
1090test { try toAsciiPass("\xe2\x85\x8e\xe1\x9f\x92.=\xcc\xb8", "xn--u4e969b.xn--1ch", false); }
1091test { try toAsciiPass("\xe2\x85\x8e\xe1\x9f\x92.=\xcc\xb8", "xn--u4e969b.xn--1ch", true); }
438test { try toUnicodePass("\xe2\x84\xb2\xe1\x9f\x92.=\xcc\xb8", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }1092test { try toUnicodePass("\xe2\x84\xb2\xe1\x9f\x92.=\xcc\xb8", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }
1093test { try toAsciiPass("\xe2\x84\xb2\xe1\x9f\x92.=\xcc\xb8", "xn--u4e969b.xn--1ch", false); }
1094test { try toAsciiPass("\xe2\x84\xb2\xe1\x9f\x92.=\xcc\xb8", "xn--u4e969b.xn--1ch", true); }
439test { try toUnicodePass("\xe2\x84\xb2\xe1\x9f\x92.\xe2\x89\xa0", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }1095test { try toUnicodePass("\xe2\x84\xb2\xe1\x9f\x92.\xe2\x89\xa0", "\xe2\x85\x8e\xe1\x9f\x92.\xe2\x89\xa0"); }
1096test { try toAsciiPass("\xe2\x84\xb2\xe1\x9f\x92.\xe2\x89\xa0", "xn--u4e969b.xn--1ch", false); }
1097test { try toAsciiPass("\xe2\x84\xb2\xe1\x9f\x92.\xe2\x89\xa0", "xn--u4e969b.xn--1ch", true); }
1098test { try toAsciiPass("\xe2\x85\x8e\xe1\x9f\x92\xe2\x80\x8d\xef\xbd\xa1=\xcc\xb8\xe2\x80\x8d\xe2\x80\x8c", "xn--u4e969b.xn--1ch", true); }
1099test { try toAsciiPass("\xe2\x85\x8e\xe1\x9f\x92\xe2\x80\x8d\xef\xbd\xa1\xe2\x89\xa0\xe2\x80\x8d\xe2\x80\x8c", "xn--u4e969b.xn--1ch", true); }
440test { try toUnicodePass("xn--9-mfs8024b.", "9\xe9\x9a\x81\xe2\xaf\xae."); }1100test { try toUnicodePass("xn--9-mfs8024b.", "9\xe9\x9a\x81\xe2\xaf\xae."); }
441test { try toUnicodePass("9\xe9\x9a\x81\xe2\xaf\xae.", "9\xe9\x9a\x81\xe2\xaf\xae."); }1101test { try toUnicodePass("9\xe9\x9a\x81\xe2\xaf\xae.", "9\xe9\x9a\x81\xe2\xaf\xae."); }
1102test { try toAsciiPass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\x93\xe2\x80\x8d", "xn--2ib43l.xn--te6h", true); }
1103test { try toAsciiPass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5\xe2\x80\x8d", "xn--2ib43l.xn--te6h", true); }
442test { try toUnicodePass("xn--2ib43l.xn--te6h", "\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5"); }1104test { try toUnicodePass("xn--2ib43l.xn--te6h", "\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5"); }
1105test { try toAsciiPass("xn--2ib43l.xn--te6h", "xn--2ib43l.xn--te6h", false); }
1106test { try toAsciiPass("xn--2ib43l.xn--te6h", "xn--2ib43l.xn--te6h", true); }
443test { try toUnicodePass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5", "\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5"); }1107test { try toUnicodePass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5", "\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5"); }
1108test { try toAsciiPass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5", "xn--2ib43l.xn--te6h", false); }
1109test { try toAsciiPass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5", "xn--2ib43l.xn--te6h", true); }
444test { try toUnicodePass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\x93", "\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5"); }1110test { try toUnicodePass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\x93", "\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\xb5"); }
1111test { try toAsciiPass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\x93", "xn--2ib43l.xn--te6h", false); }
1112test { try toAsciiPass("\xd9\xbd\xe0\xa5\x83.\xf0\x9e\xa4\x93", "xn--2ib43l.xn--te6h", true); }
445test { try toUnicodePass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1113test { try toUnicodePass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1114test { try toAsciiPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b", false); }
1115test { try toAsciiPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b", true); }
446test { try toUnicodePass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1116test { try toUnicodePass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1117test { try toAsciiPass("\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", false); }
1118test { try toAsciiPass("\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", true); }
447test { try toUnicodePass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1119test { try toUnicodePass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1120test { try toAsciiPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b", false); }
1121test { try toAsciiPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b", true); }
448test { try toUnicodePass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1122test { try toUnicodePass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1123test { try toAsciiPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "xn--s5a04sn4u297k.xn--2e1b", false); }
1124test { try toAsciiPass("\xea\xa7\x90\xd3\x80\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "xn--s5a04sn4u297k.xn--2e1b", true); }
449test { try toUnicodePass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1125test { try toUnicodePass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1126test { try toAsciiPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "xn--s5a04sn4u297k.xn--2e1b", false); }
1127test { try toAsciiPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "xn--s5a04sn4u297k.xn--2e1b", true); }
450test { try toUnicodePass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1128test { try toUnicodePass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1129test { try toAsciiPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b", false); }
1130test { try toAsciiPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b", true); }
451test { try toUnicodePass("xn--s5a04sn4u297k.xn--2e1b", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1131test { try toUnicodePass("xn--s5a04sn4u297k.xn--2e1b", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1132test { try toAsciiPass("xn--s5a04sn4u297k.xn--2e1b", "xn--s5a04sn4u297k.xn--2e1b", false); }
1133test { try toAsciiPass("xn--s5a04sn4u297k.xn--2e1b", "xn--s5a04sn4u297k.xn--2e1b", true); }
452test { try toUnicodePass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1134test { try toUnicodePass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xe1\x84\x82\xe1\x85\xaf\xe1\x86\xbc", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1135test { try toAsciiPass("\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", false); }
1136test { try toAsciiPass("\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", true); }
453test { try toUnicodePass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }1137test { try toUnicodePass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6.\xeb\x88\xb5"); }
1138test { try toAsciiPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b", false); }
1139test { try toAsciiPass("\xea\xa7\x90\xd3\x8f\xe1\xae\xaa\xe0\xa3\xb6\xef\xbc\x8e\xeb\x88\xb5", "xn--s5a04sn4u297k.xn--2e1b", true); }
454test { try toUnicodePass("xn--9hb7344k.", "\xf0\x90\xab\x87\xd9\xa1."); }1140test { try toUnicodePass("xn--9hb7344k.", "\xf0\x90\xab\x87\xd9\xa1."); }
455test { try toUnicodePass("\xf0\x90\xab\x87\xd9\xa1.", "\xf0\x90\xab\x87\xd9\xa1."); }1141test { try toUnicodePass("\xf0\x90\xab\x87\xd9\xa1.", "\xf0\x90\xab\x87\xd9\xa1."); }
456test { try toUnicodePass("\xdf\xa5.\xda\xb5", "\xdf\xa5.\xda\xb5"); }1142test { try toUnicodePass("\xdf\xa5.\xda\xb5", "\xdf\xa5.\xda\xb5"); }
1143test { try toAsciiPass("\xdf\xa5.\xda\xb5", "xn--dtb.xn--okb", false); }
1144test { try toAsciiPass("\xdf\xa5.\xda\xb5", "xn--dtb.xn--okb", true); }
457test { try toUnicodePass("xn--dtb.xn--okb", "\xdf\xa5.\xda\xb5"); }1145test { try toUnicodePass("xn--dtb.xn--okb", "\xdf\xa5.\xda\xb5"); }
1146test { try toAsciiPass("xn--dtb.xn--okb", "xn--dtb.xn--okb", false); }
1147test { try toAsciiPass("xn--dtb.xn--okb", "xn--dtb.xn--okb", true); }
458test { try toUnicodePass("xn--3e6h", "\xf0\x9e\xa4\xbf"); }1148test { try toUnicodePass("xn--3e6h", "\xf0\x9e\xa4\xbf"); }
1149test { try toAsciiPass("xn--3e6h", "xn--3e6h", false); }
1150test { try toAsciiPass("xn--3e6h", "xn--3e6h", true); }
459test { try toUnicodePass("\xf0\x9e\xa4\xbf", "\xf0\x9e\xa4\xbf"); }1151test { try toUnicodePass("\xf0\x9e\xa4\xbf", "\xf0\x9e\xa4\xbf"); }
1152test { try toAsciiPass("\xf0\x9e\xa4\xbf", "xn--3e6h", false); }
1153test { try toAsciiPass("\xf0\x9e\xa4\xbf", "xn--3e6h", true); }
460test { try toUnicodePass("\xf0\x9e\xa4\x9d", "\xf0\x9e\xa4\xbf"); }1154test { try toUnicodePass("\xf0\x9e\xa4\x9d", "\xf0\x9e\xa4\xbf"); }
1155test { try toAsciiPass("\xf0\x9e\xa4\x9d", "xn--3e6h", false); }
1156test { try toAsciiPass("\xf0\x9e\xa4\x9d", "xn--3e6h", true); }
461test { try toUnicodePass("\xda\xb9\xef\xbc\x8e\xe1\xa1\xb3\xe1\x85\x9f", "\xda\xb9.\xe1\xa1\xb3"); }1157test { try toUnicodePass("\xda\xb9\xef\xbc\x8e\xe1\xa1\xb3\xe1\x85\x9f", "\xda\xb9.\xe1\xa1\xb3"); }
1158test { try toAsciiPass("\xda\xb9\xef\xbc\x8e\xe1\xa1\xb3\xe1\x85\x9f", "xn--skb.xn--g9e", false); }
1159test { try toAsciiPass("\xda\xb9\xef\xbc\x8e\xe1\xa1\xb3\xe1\x85\x9f", "xn--skb.xn--g9e", true); }
462test { try toUnicodePass("\xda\xb9.\xe1\xa1\xb3\xe1\x85\x9f", "\xda\xb9.\xe1\xa1\xb3"); }1160test { try toUnicodePass("\xda\xb9.\xe1\xa1\xb3\xe1\x85\x9f", "\xda\xb9.\xe1\xa1\xb3"); }
1161test { try toAsciiPass("\xda\xb9.\xe1\xa1\xb3\xe1\x85\x9f", "xn--skb.xn--g9e", false); }
1162test { try toAsciiPass("\xda\xb9.\xe1\xa1\xb3\xe1\x85\x9f", "xn--skb.xn--g9e", true); }
463test { try toUnicodePass("xn--skb.xn--g9e", "\xda\xb9.\xe1\xa1\xb3"); }1163test { try toUnicodePass("xn--skb.xn--g9e", "\xda\xb9.\xe1\xa1\xb3"); }
1164test { try toAsciiPass("xn--skb.xn--g9e", "xn--skb.xn--g9e", false); }
1165test { try toAsciiPass("xn--skb.xn--g9e", "xn--skb.xn--g9e", true); }
464test { try toUnicodePass("\xda\xb9.\xe1\xa1\xb3", "\xda\xb9.\xe1\xa1\xb3"); }1166test { try toUnicodePass("\xda\xb9.\xe1\xa1\xb3", "\xda\xb9.\xe1\xa1\xb3"); }
1167test { try toAsciiPass("\xda\xb9.\xe1\xa1\xb3", "xn--skb.xn--g9e", false); }
1168test { try toAsciiPass("\xda\xb9.\xe1\xa1\xb3", "xn--skb.xn--g9e", true); }
1169test { try toAsciiPass("\xc3\x9f\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1170test { try toAsciiPass("\xc3\x9f\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1171test { try toAsciiPass("\xc3\x9f\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1172test { try toAsciiPass("SS\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1173test { try toAsciiPass("ss\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1174test { try toAsciiPass("Ss\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", true); }
465test { try toUnicodePass("xn--ss-4epx629f.xn--ifh802b6a", "ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }1175test { try toUnicodePass("xn--ss-4epx629f.xn--ifh802b6a", "ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }
1176test { try toAsciiPass("xn--ss-4epx629f.xn--ifh802b6a", "xn--ss-4epx629f.xn--ifh802b6a", false); }
1177test { try toAsciiPass("xn--ss-4epx629f.xn--ifh802b6a", "xn--ss-4epx629f.xn--ifh802b6a", true); }
466test { try toUnicodePass("ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }1178test { try toUnicodePass("ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }
1179test { try toAsciiPass("ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", false); }
1180test { try toAsciiPass("ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", true); }
467test { try toUnicodePass("SS\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }1181test { try toUnicodePass("SS\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }
1182test { try toAsciiPass("SS\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "xn--ss-4epx629f.xn--ifh802b6a", false); }
1183test { try toAsciiPass("SS\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "xn--ss-4epx629f.xn--ifh802b6a", true); }
468test { try toUnicodePass("Ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96", "ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }1184test { try toUnicodePass("Ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96", "ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96"); }
1185test { try toAsciiPass("Ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", false); }
1186test { try toAsciiPass("Ss\xea\xab\xb6\xe1\xa2\xa5.\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1187test { try toAsciiPass("\xc3\x9f\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1188test { try toAsciiPass("SS\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe1\x83\x81\xe1\x82\xb6", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1189test { try toAsciiPass("ss\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe2\xb4\xa1\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", true); }
1190test { try toAsciiPass("Ss\xe2\x80\x8c\xea\xab\xb6\xe1\xa2\xa5\xef\xbc\x8e\xe2\x8a\xb6\xe1\x83\x81\xe2\xb4\x96", "xn--ss-4epx629f.xn--ifh802b6a", true); }
469test { try toUnicodePass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }1191test { try toUnicodePass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }
1192test { try toAsciiPass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "xn--1ch.xn--6-dl4s", false); }
1193test { try toAsciiPass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "xn--1ch.xn--6-dl4s", true); }
470test { try toUnicodePass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }1194test { try toUnicodePass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }
1195test { try toAsciiPass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "xn--1ch.xn--6-dl4s", false); }
1196test { try toAsciiPass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb3\xf0\x9d\x9f\xb2", "xn--1ch.xn--6-dl4s", true); }
471test { try toUnicodePass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb36", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }1197test { try toUnicodePass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb36", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }
1198test { try toAsciiPass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s", false); }
1199test { try toAsciiPass("\xe2\x89\xa0\xe3\x80\x82\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s", true); }
472test { try toUnicodePass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb36", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }1200test { try toUnicodePass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb36", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }
1201test { try toAsciiPass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s", false); }
1202test { try toAsciiPass("=\xcc\xb8\xe3\x80\x82\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s", true); }
473test { try toUnicodePass("xn--1ch.xn--6-dl4s", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }1203test { try toUnicodePass("xn--1ch.xn--6-dl4s", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }
1204test { try toAsciiPass("xn--1ch.xn--6-dl4s", "xn--1ch.xn--6-dl4s", false); }
1205test { try toAsciiPass("xn--1ch.xn--6-dl4s", "xn--1ch.xn--6-dl4s", true); }
474test { try toUnicodePass("\xe2\x89\xa0.\xf0\x9f\x9e\xb36", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }1206test { try toUnicodePass("\xe2\x89\xa0.\xf0\x9f\x9e\xb36", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }
1207test { try toAsciiPass("\xe2\x89\xa0.\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s", false); }
1208test { try toAsciiPass("\xe2\x89\xa0.\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s", true); }
475test { try toUnicodePass("=\xcc\xb8.\xf0\x9f\x9e\xb36", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }1209test { try toUnicodePass("=\xcc\xb8.\xf0\x9f\x9e\xb36", "\xe2\x89\xa0.\xf0\x9f\x9e\xb36"); }
1210test { try toAsciiPass("=\xcc\xb8.\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s", false); }
1211test { try toAsciiPass("=\xcc\xb8.\xf0\x9f\x9e\xb36", "xn--1ch.xn--6-dl4s", true); }
476test { try toUnicodePass("j", "j"); }1212test { try toUnicodePass("j", "j"); }
1213test { try toAsciiPass("j", "j", false); }
1214test { try toAsciiPass("j", "j", true); }
477test { try toUnicodePass("xn--rt6a.", "\xe9\xb1\x8a."); }1215test { try toUnicodePass("xn--rt6a.", "\xe9\xb1\x8a."); }
478test { try toUnicodePass("\xe9\xb1\x8a.", "\xe9\xb1\x8a."); }1216test { try toUnicodePass("\xe9\xb1\x8a.", "\xe9\xb1\x8a."); }
479test { try toUnicodePass("xn--4-0bd15808a.", "\xf0\x9e\xa4\xba\xdf\x8c4."); }1217test { try toUnicodePass("xn--4-0bd15808a.", "\xf0\x9e\xa4\xba\xdf\x8c4."); }
480test { try toUnicodePass("\xf0\x9e\xa4\xba\xdf\x8c4.", "\xf0\x9e\xa4\xba\xdf\x8c4."); }1218test { try toUnicodePass("\xf0\x9e\xa4\xba\xdf\x8c4.", "\xf0\x9e\xa4\xba\xdf\x8c4."); }
481test { try toUnicodePass("\xf0\x9e\xa4\x98\xdf\x8c4.", "\xf0\x9e\xa4\xba\xdf\x8c4."); }1219test { try toUnicodePass("\xf0\x9e\xa4\x98\xdf\x8c4.", "\xf0\x9e\xa4\xba\xdf\x8c4."); }
482test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xaf\xc3\x9f", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }1220test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xaf\xc3\x9f", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }
1221test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xaf\xc3\x9f", "xn--tc1a.xn--5-qfa988w745i", false); }
1222test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xaf\xc3\x9f", "xn--tc1a.xn--5ss-3m2a5009e", true); }
483test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8\xc3\x9f", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }1223test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8\xc3\x9f", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }
1224test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8\xc3\x9f", "xn--tc1a.xn--5-qfa988w745i", false); }
1225test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8\xc3\x9f", "xn--tc1a.xn--5ss-3m2a5009e", true); }
484test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }1226test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }
1227test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f", "xn--tc1a.xn--5-qfa988w745i", false); }
1228test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f", "xn--tc1a.xn--5ss-3m2a5009e", true); }
485test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8\xc3\x9f", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }1229test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8\xc3\x9f", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }
1230test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8\xc3\x9f", "xn--tc1a.xn--5-qfa988w745i", false); }
1231test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8\xc3\x9f", "xn--tc1a.xn--5ss-3m2a5009e", true); }
486test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8SS", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1232test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8SS", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1233test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8SS", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1234test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8SS", "xn--tc1a.xn--5ss-3m2a5009e", true); }
487test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSS", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1235test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSS", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1236test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSS", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1237test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSS", "xn--tc1a.xn--5ss-3m2a5009e", true); }
488test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1238test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1239test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1240test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss", "xn--tc1a.xn--5ss-3m2a5009e", true); }
489test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8ss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1241test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8ss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1242test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8ss", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1243test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8ss", "xn--tc1a.xn--5ss-3m2a5009e", true); }
490test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8Ss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1244test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8Ss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1245test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8Ss", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1246test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885>\xcc\xb8Ss", "xn--tc1a.xn--5ss-3m2a5009e", true); }
491test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSs", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1247test { try toUnicodePass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSs", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1248test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSs", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1249test { try toAsciiPass("\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafSs", "xn--tc1a.xn--5ss-3m2a5009e", true); }
492test { try toUnicodePass("xn--tc1a.xn--5ss-3m2a5009e", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1250test { try toUnicodePass("xn--tc1a.xn--5ss-3m2a5009e", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1251test { try toAsciiPass("xn--tc1a.xn--5ss-3m2a5009e", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1252test { try toAsciiPass("xn--tc1a.xn--5ss-3m2a5009e", "xn--tc1a.xn--5ss-3m2a5009e", true); }
493test { try toUnicodePass("xn--tc1a.xn--5-qfa988w745i", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }1253test { try toUnicodePass("xn--tc1a.xn--5-qfa988w745i", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xaf\xc3\x9f"); }
1254test { try toAsciiPass("xn--tc1a.xn--5-qfa988w745i", "xn--tc1a.xn--5-qfa988w745i", false); }
1255test { try toAsciiPass("xn--tc1a.xn--5-qfa988w745i", "xn--tc1a.xn--5-qfa988w745i", true); }
494test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8SS", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1256test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8SS", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1257test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8SS", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1258test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8SS", "xn--tc1a.xn--5ss-3m2a5009e", true); }
495test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSS", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1259test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSS", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1260test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSS", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1261test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSS", "xn--tc1a.xn--5ss-3m2a5009e", true); }
496test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1262test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1263test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafss", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1264test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafss", "xn--tc1a.xn--5ss-3m2a5009e", true); }
497test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8ss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1265test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8ss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1266test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8ss", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1267test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8ss", "xn--tc1a.xn--5ss-3m2a5009e", true); }
498test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8Ss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1268test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8Ss", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1269test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8Ss", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1270test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95>\xcc\xb8Ss", "xn--tc1a.xn--5ss-3m2a5009e", true); }
499test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSs", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }1271test { try toUnicodePass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSs", "\xe8\x88\x8c.\xea\xa1\x885\xe2\x89\xafss"); }
1272test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSs", "xn--tc1a.xn--5ss-3m2a5009e", false); }
1273test { try toAsciiPass("\xe2\xbe\x86\xef\xbc\x8e\xea\xa1\x88\xef\xbc\x95\xe2\x89\xafSs", "xn--tc1a.xn--5ss-3m2a5009e", true); }
500test { try toUnicodePass("\xf0\x9e\xa4\xaa.\xcf\x82", "\xf0\x9e\xa4\xaa.\xcf\x82"); }1274test { try toUnicodePass("\xf0\x9e\xa4\xaa.\xcf\x82", "\xf0\x9e\xa4\xaa.\xcf\x82"); }
1275test { try toAsciiPass("\xf0\x9e\xa4\xaa.\xcf\x82", "xn--ie6h.xn--3xa", false); }
1276test { try toAsciiPass("\xf0\x9e\xa4\xaa.\xcf\x82", "xn--ie6h.xn--4xa", true); }
501test { try toUnicodePass("\xf0\x9e\xa4\x88.\xce\xa3", "\xf0\x9e\xa4\xaa.\xcf\x83"); }1277test { try toUnicodePass("\xf0\x9e\xa4\x88.\xce\xa3", "\xf0\x9e\xa4\xaa.\xcf\x83"); }
1278test { try toAsciiPass("\xf0\x9e\xa4\x88.\xce\xa3", "xn--ie6h.xn--4xa", false); }
1279test { try toAsciiPass("\xf0\x9e\xa4\x88.\xce\xa3", "xn--ie6h.xn--4xa", true); }
502test { try toUnicodePass("\xf0\x9e\xa4\xaa.\xcf\x83", "\xf0\x9e\xa4\xaa.\xcf\x83"); }1280test { try toUnicodePass("\xf0\x9e\xa4\xaa.\xcf\x83", "\xf0\x9e\xa4\xaa.\xcf\x83"); }
1281test { try toAsciiPass("\xf0\x9e\xa4\xaa.\xcf\x83", "xn--ie6h.xn--4xa", false); }
1282test { try toAsciiPass("\xf0\x9e\xa4\xaa.\xcf\x83", "xn--ie6h.xn--4xa", true); }
503test { try toUnicodePass("\xf0\x9e\xa4\x88.\xcf\x83", "\xf0\x9e\xa4\xaa.\xcf\x83"); }1283test { try toUnicodePass("\xf0\x9e\xa4\x88.\xcf\x83", "\xf0\x9e\xa4\xaa.\xcf\x83"); }
1284test { try toAsciiPass("\xf0\x9e\xa4\x88.\xcf\x83", "xn--ie6h.xn--4xa", false); }
1285test { try toAsciiPass("\xf0\x9e\xa4\x88.\xcf\x83", "xn--ie6h.xn--4xa", true); }
504test { try toUnicodePass("xn--ie6h.xn--4xa", "\xf0\x9e\xa4\xaa.\xcf\x83"); }1286test { try toUnicodePass("xn--ie6h.xn--4xa", "\xf0\x9e\xa4\xaa.\xcf\x83"); }
1287test { try toAsciiPass("xn--ie6h.xn--4xa", "xn--ie6h.xn--4xa", false); }
1288test { try toAsciiPass("xn--ie6h.xn--4xa", "xn--ie6h.xn--4xa", true); }
505test { try toUnicodePass("\xf0\x9e\xa4\x88.\xcf\x82", "\xf0\x9e\xa4\xaa.\xcf\x82"); }1289test { try toUnicodePass("\xf0\x9e\xa4\x88.\xcf\x82", "\xf0\x9e\xa4\xaa.\xcf\x82"); }
1290test { try toAsciiPass("\xf0\x9e\xa4\x88.\xcf\x82", "xn--ie6h.xn--3xa", false); }
1291test { try toAsciiPass("\xf0\x9e\xa4\x88.\xcf\x82", "xn--ie6h.xn--4xa", true); }
506test { try toUnicodePass("xn--ie6h.xn--3xa", "\xf0\x9e\xa4\xaa.\xcf\x82"); }1292test { try toUnicodePass("xn--ie6h.xn--3xa", "\xf0\x9e\xa4\xaa.\xcf\x82"); }
1293test { try toAsciiPass("xn--ie6h.xn--3xa", "xn--ie6h.xn--3xa", false); }
1294test { try toAsciiPass("xn--ie6h.xn--3xa", "xn--ie6h.xn--3xa", true); }
507test { try toUnicodePass("\xf0\x9e\xa4\xaa.\xce\xa3", "\xf0\x9e\xa4\xaa.\xcf\x83"); }1295test { try toUnicodePass("\xf0\x9e\xa4\xaa.\xce\xa3", "\xf0\x9e\xa4\xaa.\xcf\x83"); }
1296test { try toAsciiPass("\xf0\x9e\xa4\xaa.\xce\xa3", "xn--ie6h.xn--4xa", false); }
1297test { try toAsciiPass("\xf0\x9e\xa4\xaa.\xce\xa3", "xn--ie6h.xn--4xa", true); }
1298test { try toAsciiPass("\xe2\x80\x8c\xe1\x82\xba\xef\xbd\xa1\xcf\x82", "xn--ilj.xn--4xa", true); }
1299test { try toAsciiPass("\xe2\x80\x8c\xe1\x82\xba\xe3\x80\x82\xcf\x82", "xn--ilj.xn--4xa", true); }
1300test { try toAsciiPass("\xe2\x80\x8c\xe2\xb4\x9a\xe3\x80\x82\xcf\x82", "xn--ilj.xn--4xa", true); }
1301test { try toAsciiPass("\xe2\x80\x8c\xe1\x82\xba\xe3\x80\x82\xce\xa3", "xn--ilj.xn--4xa", true); }
1302test { try toAsciiPass("\xe2\x80\x8c\xe2\xb4\x9a\xe3\x80\x82\xcf\x83", "xn--ilj.xn--4xa", true); }
508test { try toUnicodePass("xn--ilj.xn--4xa", "\xe2\xb4\x9a.\xcf\x83"); }1303test { try toUnicodePass("xn--ilj.xn--4xa", "\xe2\xb4\x9a.\xcf\x83"); }
1304test { try toAsciiPass("xn--ilj.xn--4xa", "xn--ilj.xn--4xa", false); }
1305test { try toAsciiPass("xn--ilj.xn--4xa", "xn--ilj.xn--4xa", true); }
509test { try toUnicodePass("\xe2\xb4\x9a.\xcf\x83", "\xe2\xb4\x9a.\xcf\x83"); }1306test { try toUnicodePass("\xe2\xb4\x9a.\xcf\x83", "\xe2\xb4\x9a.\xcf\x83"); }
1307test { try toAsciiPass("\xe2\xb4\x9a.\xcf\x83", "xn--ilj.xn--4xa", false); }
1308test { try toAsciiPass("\xe2\xb4\x9a.\xcf\x83", "xn--ilj.xn--4xa", true); }
510test { try toUnicodePass("\xe1\x82\xba.\xce\xa3", "\xe2\xb4\x9a.\xcf\x83"); }1309test { try toUnicodePass("\xe1\x82\xba.\xce\xa3", "\xe2\xb4\x9a.\xcf\x83"); }
1310test { try toAsciiPass("\xe1\x82\xba.\xce\xa3", "xn--ilj.xn--4xa", false); }
1311test { try toAsciiPass("\xe1\x82\xba.\xce\xa3", "xn--ilj.xn--4xa", true); }
511test { try toUnicodePass("\xe2\xb4\x9a.\xcf\x82", "\xe2\xb4\x9a.\xcf\x82"); }1312test { try toUnicodePass("\xe2\xb4\x9a.\xcf\x82", "\xe2\xb4\x9a.\xcf\x82"); }
1313test { try toAsciiPass("\xe2\xb4\x9a.\xcf\x82", "xn--ilj.xn--3xa", false); }
1314test { try toAsciiPass("\xe2\xb4\x9a.\xcf\x82", "xn--ilj.xn--4xa", true); }
512test { try toUnicodePass("\xe1\x82\xba.\xcf\x82", "\xe2\xb4\x9a.\xcf\x82"); }1315test { try toUnicodePass("\xe1\x82\xba.\xcf\x82", "\xe2\xb4\x9a.\xcf\x82"); }
1316test { try toAsciiPass("\xe1\x82\xba.\xcf\x82", "xn--ilj.xn--3xa", false); }
1317test { try toAsciiPass("\xe1\x82\xba.\xcf\x82", "xn--ilj.xn--4xa", true); }
513test { try toUnicodePass("xn--ilj.xn--3xa", "\xe2\xb4\x9a.\xcf\x82"); }1318test { try toUnicodePass("xn--ilj.xn--3xa", "\xe2\xb4\x9a.\xcf\x82"); }
1319test { try toAsciiPass("xn--ilj.xn--3xa", "xn--ilj.xn--3xa", false); }
1320test { try toAsciiPass("xn--ilj.xn--3xa", "xn--ilj.xn--3xa", true); }
514test { try toUnicodePass("\xe1\x82\xba.\xcf\x83", "\xe2\xb4\x9a.\xcf\x83"); }1321test { try toUnicodePass("\xe1\x82\xba.\xcf\x83", "\xe2\xb4\x9a.\xcf\x83"); }
1322test { try toAsciiPass("\xe1\x82\xba.\xcf\x83", "xn--ilj.xn--4xa", false); }
1323test { try toAsciiPass("\xe1\x82\xba.\xcf\x83", "xn--ilj.xn--4xa", true); }
1324test { try toAsciiPass("\xe2\x80\x8c\xe2\xb4\x9a\xef\xbd\xa1\xcf\x82", "xn--ilj.xn--4xa", true); }
1325test { try toAsciiPass("\xe2\x80\x8c\xe1\x82\xba\xef\xbd\xa1\xce\xa3", "xn--ilj.xn--4xa", true); }
1326test { try toAsciiPass("\xe2\x80\x8c\xe2\xb4\x9a\xef\xbd\xa1\xcf\x83", "xn--ilj.xn--4xa", true); }
515test { try toUnicodePass("\xe6\xb7\xbd\xe3\x80\x82\xe1\xa0\xbe", "\xe6\xb7\xbd.\xe1\xa0\xbe"); }1327test { try toUnicodePass("\xe6\xb7\xbd\xe3\x80\x82\xe1\xa0\xbe", "\xe6\xb7\xbd.\xe1\xa0\xbe"); }
1328test { try toAsciiPass("\xe6\xb7\xbd\xe3\x80\x82\xe1\xa0\xbe", "xn--34w.xn--x7e", false); }
1329test { try toAsciiPass("\xe6\xb7\xbd\xe3\x80\x82\xe1\xa0\xbe", "xn--34w.xn--x7e", true); }
516test { try toUnicodePass("xn--34w.xn--x7e", "\xe6\xb7\xbd.\xe1\xa0\xbe"); }1330test { try toUnicodePass("xn--34w.xn--x7e", "\xe6\xb7\xbd.\xe1\xa0\xbe"); }
1331test { try toAsciiPass("xn--34w.xn--x7e", "xn--34w.xn--x7e", false); }
1332test { try toAsciiPass("xn--34w.xn--x7e", "xn--34w.xn--x7e", true); }
517test { try toUnicodePass("\xe6\xb7\xbd.\xe1\xa0\xbe", "\xe6\xb7\xbd.\xe1\xa0\xbe"); }1333test { try toUnicodePass("\xe6\xb7\xbd.\xe1\xa0\xbe", "\xe6\xb7\xbd.\xe1\xa0\xbe"); }
1334test { try toAsciiPass("\xe6\xb7\xbd.\xe1\xa0\xbe", "xn--34w.xn--x7e", false); }
1335test { try toAsciiPass("\xe6\xb7\xbd.\xe1\xa0\xbe", "xn--34w.xn--x7e", true); }
518test { try toUnicodePass("\xea\xa1\xa0\xef\xbc\x8e\xdb\xb2", "\xea\xa1\xa0.\xdb\xb2"); }1336test { try toUnicodePass("\xea\xa1\xa0\xef\xbc\x8e\xdb\xb2", "\xea\xa1\xa0.\xdb\xb2"); }
1337test { try toAsciiPass("\xea\xa1\xa0\xef\xbc\x8e\xdb\xb2", "xn--5c9a.xn--fmb", false); }
1338test { try toAsciiPass("\xea\xa1\xa0\xef\xbc\x8e\xdb\xb2", "xn--5c9a.xn--fmb", true); }
519test { try toUnicodePass("\xea\xa1\xa0.\xdb\xb2", "\xea\xa1\xa0.\xdb\xb2"); }1339test { try toUnicodePass("\xea\xa1\xa0.\xdb\xb2", "\xea\xa1\xa0.\xdb\xb2"); }
1340test { try toAsciiPass("\xea\xa1\xa0.\xdb\xb2", "xn--5c9a.xn--fmb", false); }
1341test { try toAsciiPass("\xea\xa1\xa0.\xdb\xb2", "xn--5c9a.xn--fmb", true); }
520test { try toUnicodePass("xn--5c9a.xn--fmb", "\xea\xa1\xa0.\xdb\xb2"); }1342test { try toUnicodePass("xn--5c9a.xn--fmb", "\xea\xa1\xa0.\xdb\xb2"); }
1343test { try toAsciiPass("xn--5c9a.xn--fmb", "xn--5c9a.xn--fmb", false); }
1344test { try toAsciiPass("xn--5c9a.xn--fmb", "xn--5c9a.xn--fmb", true); }
1345test { try toAsciiPass("\xf0\x9d\x9f\x99\xef\xbd\xa1\xe2\x80\x8d\xf0\x9d\x9f\xb8\xe2\x80\x8d\xe2\x81\xb7", "1.27", true); }
1346test { try toAsciiPass("1\xe3\x80\x82\xe2\x80\x8d2\xe2\x80\x8d7", "1.27", true); }
521test { try toUnicodePass("1.2h", "1.2h"); }1347test { try toUnicodePass("1.2h", "1.2h"); }
1348test { try toAsciiPass("1.2h", "1.2h", false); }
1349test { try toAsciiPass("1.2h", "1.2h", true); }
1350test { try toAsciiPass("\xe2\x80\x8c\xe1\x82\xa1\xe7\x95\x9d\xe2\x80\x8d\xef\xbc\x8e\xe2\x89\xae", "xn--skjy82u.xn--gdh", true); }
1351test { try toAsciiPass("\xe2\x80\x8c\xe1\x82\xa1\xe7\x95\x9d\xe2\x80\x8d\xef\xbc\x8e<\xcc\xb8", "xn--skjy82u.xn--gdh", true); }
1352test { try toAsciiPass("\xe2\x80\x8c\xe1\x82\xa1\xe7\x95\x9d\xe2\x80\x8d.\xe2\x89\xae", "xn--skjy82u.xn--gdh", true); }
1353test { try toAsciiPass("\xe2\x80\x8c\xe1\x82\xa1\xe7\x95\x9d\xe2\x80\x8d.<\xcc\xb8", "xn--skjy82u.xn--gdh", true); }
1354test { try toAsciiPass("\xe2\x80\x8c\xe2\xb4\x81\xe7\x95\x9d\xe2\x80\x8d.<\xcc\xb8", "xn--skjy82u.xn--gdh", true); }
1355test { try toAsciiPass("\xe2\x80\x8c\xe2\xb4\x81\xe7\x95\x9d\xe2\x80\x8d.\xe2\x89\xae", "xn--skjy82u.xn--gdh", true); }
522test { try toUnicodePass("xn--skjy82u.xn--gdh", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }1356test { try toUnicodePass("xn--skjy82u.xn--gdh", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }
1357test { try toAsciiPass("xn--skjy82u.xn--gdh", "xn--skjy82u.xn--gdh", false); }
1358test { try toAsciiPass("xn--skjy82u.xn--gdh", "xn--skjy82u.xn--gdh", true); }
523test { try toUnicodePass("\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }1359test { try toUnicodePass("\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }
1360test { try toAsciiPass("\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae", "xn--skjy82u.xn--gdh", false); }
1361test { try toAsciiPass("\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae", "xn--skjy82u.xn--gdh", true); }
524test { try toUnicodePass("\xe2\xb4\x81\xe7\x95\x9d.<\xcc\xb8", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }1362test { try toUnicodePass("\xe2\xb4\x81\xe7\x95\x9d.<\xcc\xb8", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }
1363test { try toAsciiPass("\xe2\xb4\x81\xe7\x95\x9d.<\xcc\xb8", "xn--skjy82u.xn--gdh", false); }
1364test { try toAsciiPass("\xe2\xb4\x81\xe7\x95\x9d.<\xcc\xb8", "xn--skjy82u.xn--gdh", true); }
525test { try toUnicodePass("\xe1\x82\xa1\xe7\x95\x9d.<\xcc\xb8", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }1365test { try toUnicodePass("\xe1\x82\xa1\xe7\x95\x9d.<\xcc\xb8", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }
1366test { try toAsciiPass("\xe1\x82\xa1\xe7\x95\x9d.<\xcc\xb8", "xn--skjy82u.xn--gdh", false); }
1367test { try toAsciiPass("\xe1\x82\xa1\xe7\x95\x9d.<\xcc\xb8", "xn--skjy82u.xn--gdh", true); }
526test { try toUnicodePass("\xe1\x82\xa1\xe7\x95\x9d.\xe2\x89\xae", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }1368test { try toUnicodePass("\xe1\x82\xa1\xe7\x95\x9d.\xe2\x89\xae", "\xe2\xb4\x81\xe7\x95\x9d.\xe2\x89\xae"); }
1369test { try toAsciiPass("\xe1\x82\xa1\xe7\x95\x9d.\xe2\x89\xae", "xn--skjy82u.xn--gdh", false); }
1370test { try toAsciiPass("\xe1\x82\xa1\xe7\x95\x9d.\xe2\x89\xae", "xn--skjy82u.xn--gdh", true); }
1371test { try toAsciiPass("\xe2\x80\x8c\xe2\xb4\x81\xe7\x95\x9d\xe2\x80\x8d\xef\xbc\x8e<\xcc\xb8", "xn--skjy82u.xn--gdh", true); }
1372test { try toAsciiPass("\xe2\x80\x8c\xe2\xb4\x81\xe7\x95\x9d\xe2\x80\x8d\xef\xbc\x8e\xe2\x89\xae", "xn--skjy82u.xn--gdh", true); }
527test { try toUnicodePass("\xf0\x9f\x95\xbc\xef\xbc\x8e\xef\xbe\xa0", "\xf0\x9f\x95\xbc."); }1373test { try toUnicodePass("\xf0\x9f\x95\xbc\xef\xbc\x8e\xef\xbe\xa0", "\xf0\x9f\x95\xbc."); }
528test { try toUnicodePass("\xf0\x9f\x95\xbc.\xe1\x85\xa0", "\xf0\x9f\x95\xbc."); }1374test { try toUnicodePass("\xf0\x9f\x95\xbc.\xe1\x85\xa0", "\xf0\x9f\x95\xbc."); }
529test { try toUnicodePass("xn--my8h.", "\xf0\x9f\x95\xbc."); }1375test { try toUnicodePass("xn--my8h.", "\xf0\x9f\x95\xbc."); }
530test { try toUnicodePass("\xf0\x9f\x95\xbc.", "\xf0\x9f\x95\xbc."); }1376test { try toUnicodePass("\xf0\x9f\x95\xbc.", "\xf0\x9f\x95\xbc."); }
531test { try toUnicodePass("\xcf\x82\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "\xcf\x82\xe2\xb4\xa5.\xdd\x9a"); }1377test { try toUnicodePass("\xcf\x82\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "\xcf\x82\xe2\xb4\xa5.\xdd\x9a"); }
1378test { try toAsciiPass("\xcf\x82\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "xn--3xa403s.xn--epb", false); }
1379test { try toAsciiPass("\xcf\x82\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb", true); }
532test { try toUnicodePass("\xcf\x82\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "\xcf\x82\xe2\xb4\xa5.\xdd\x9a"); }1380test { try toUnicodePass("\xcf\x82\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "\xcf\x82\xe2\xb4\xa5.\xdd\x9a"); }
1381test { try toAsciiPass("\xcf\x82\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--3xa403s.xn--epb", false); }
1382test { try toAsciiPass("\xcf\x82\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb", true); }
533test { try toUnicodePass("\xce\xa3\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }1383test { try toUnicodePass("\xce\xa3\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }
1384test { try toAsciiPass("\xce\xa3\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb", false); }
1385test { try toAsciiPass("\xce\xa3\xe1\x83\x85\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb", true); }
534test { try toUnicodePass("\xcf\x83\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }1386test { try toUnicodePass("\xcf\x83\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }
1387test { try toAsciiPass("\xcf\x83\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb", false); }
1388test { try toAsciiPass("\xcf\x83\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb", true); }
535test { try toUnicodePass("\xce\xa3\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }1389test { try toUnicodePass("\xce\xa3\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }
1390test { try toAsciiPass("\xce\xa3\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb", false); }
1391test { try toAsciiPass("\xce\xa3\xe2\xb4\xa5\xe3\x80\x82\xdd\x9a", "xn--4xa203s.xn--epb", true); }
536test { try toUnicodePass("xn--4xa203s.xn--epb", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }1392test { try toUnicodePass("xn--4xa203s.xn--epb", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }
1393test { try toAsciiPass("xn--4xa203s.xn--epb", "xn--4xa203s.xn--epb", false); }
1394test { try toAsciiPass("xn--4xa203s.xn--epb", "xn--4xa203s.xn--epb", true); }
537test { try toUnicodePass("\xcf\x83\xe2\xb4\xa5.\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }1395test { try toUnicodePass("\xcf\x83\xe2\xb4\xa5.\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }
1396test { try toAsciiPass("\xcf\x83\xe2\xb4\xa5.\xdd\x9a", "xn--4xa203s.xn--epb", false); }
1397test { try toAsciiPass("\xcf\x83\xe2\xb4\xa5.\xdd\x9a", "xn--4xa203s.xn--epb", true); }
538test { try toUnicodePass("\xce\xa3\xe1\x83\x85.\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }1398test { try toUnicodePass("\xce\xa3\xe1\x83\x85.\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }
1399test { try toAsciiPass("\xce\xa3\xe1\x83\x85.\xdd\x9a", "xn--4xa203s.xn--epb", false); }
1400test { try toAsciiPass("\xce\xa3\xe1\x83\x85.\xdd\x9a", "xn--4xa203s.xn--epb", true); }
539test { try toUnicodePass("\xce\xa3\xe2\xb4\xa5.\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }1401test { try toUnicodePass("\xce\xa3\xe2\xb4\xa5.\xdd\x9a", "\xcf\x83\xe2\xb4\xa5.\xdd\x9a"); }
1402test { try toAsciiPass("\xce\xa3\xe2\xb4\xa5.\xdd\x9a", "xn--4xa203s.xn--epb", false); }
1403test { try toAsciiPass("\xce\xa3\xe2\xb4\xa5.\xdd\x9a", "xn--4xa203s.xn--epb", true); }
540test { try toUnicodePass("xn--3xa403s.xn--epb", "\xcf\x82\xe2\xb4\xa5.\xdd\x9a"); }1404test { try toUnicodePass("xn--3xa403s.xn--epb", "\xcf\x82\xe2\xb4\xa5.\xdd\x9a"); }
1405test { try toAsciiPass("xn--3xa403s.xn--epb", "xn--3xa403s.xn--epb", false); }
1406test { try toAsciiPass("xn--3xa403s.xn--epb", "xn--3xa403s.xn--epb", true); }
541test { try toUnicodePass("\xcf\x82\xe2\xb4\xa5.\xdd\x9a", "\xcf\x82\xe2\xb4\xa5.\xdd\x9a"); }1407test { try toUnicodePass("\xcf\x82\xe2\xb4\xa5.\xdd\x9a", "\xcf\x82\xe2\xb4\xa5.\xdd\x9a"); }
1408test { try toAsciiPass("\xcf\x82\xe2\xb4\xa5.\xdd\x9a", "xn--3xa403s.xn--epb", false); }
1409test { try toAsciiPass("\xcf\x82\xe2\xb4\xa5.\xdd\x9a", "xn--4xa203s.xn--epb", true); }
1410test { try toAsciiPass("\xda\xbc\xef\xbd\xa1\xe2\x80\x8d\xe1\xba\x8f\xe2\x80\x8c\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
1411test { try toAsciiPass("\xda\xbc\xef\xbd\xa1\xe2\x80\x8dy\xcc\x87\xe2\x80\x8c\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
1412test { try toAsciiPass("\xda\xbc\xe3\x80\x82\xe2\x80\x8d\xe1\xba\x8f\xe2\x80\x8c\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
1413test { try toAsciiPass("\xda\xbc\xe3\x80\x82\xe2\x80\x8dy\xcc\x87\xe2\x80\x8c\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
1414test { try toAsciiPass("\xda\xbc\xe3\x80\x82\xe2\x80\x8dY\xcc\x87\xe2\x80\x8c\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
1415test { try toAsciiPass("\xda\xbc\xe3\x80\x82\xe2\x80\x8d\xe1\xba\x8e\xe2\x80\x8c\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
542test { try toUnicodePass("xn--vkb.xn--08e172a", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }1416test { try toUnicodePass("xn--vkb.xn--08e172a", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }
1417test { try toAsciiPass("xn--vkb.xn--08e172a", "xn--vkb.xn--08e172a", false); }
1418test { try toAsciiPass("xn--vkb.xn--08e172a", "xn--vkb.xn--08e172a", true); }
543test { try toUnicodePass("\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }1419test { try toUnicodePass("\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }
1420test { try toAsciiPass("\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4", "xn--vkb.xn--08e172a", false); }
1421test { try toAsciiPass("\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
544test { try toUnicodePass("\xda\xbc.y\xcc\x87\xe1\xa1\xa4", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }1422test { try toUnicodePass("\xda\xbc.y\xcc\x87\xe1\xa1\xa4", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }
1423test { try toAsciiPass("\xda\xbc.y\xcc\x87\xe1\xa1\xa4", "xn--vkb.xn--08e172a", false); }
1424test { try toAsciiPass("\xda\xbc.y\xcc\x87\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
545test { try toUnicodePass("\xda\xbc.Y\xcc\x87\xe1\xa1\xa4", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }1425test { try toUnicodePass("\xda\xbc.Y\xcc\x87\xe1\xa1\xa4", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }
1426test { try toAsciiPass("\xda\xbc.Y\xcc\x87\xe1\xa1\xa4", "xn--vkb.xn--08e172a", false); }
1427test { try toAsciiPass("\xda\xbc.Y\xcc\x87\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
546test { try toUnicodePass("\xda\xbc.\xe1\xba\x8e\xe1\xa1\xa4", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }1428test { try toUnicodePass("\xda\xbc.\xe1\xba\x8e\xe1\xa1\xa4", "\xda\xbc.\xe1\xba\x8f\xe1\xa1\xa4"); }
1429test { try toAsciiPass("\xda\xbc.\xe1\xba\x8e\xe1\xa1\xa4", "xn--vkb.xn--08e172a", false); }
1430test { try toAsciiPass("\xda\xbc.\xe1\xba\x8e\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
1431test { try toAsciiPass("\xda\xbc\xef\xbd\xa1\xe2\x80\x8dY\xcc\x87\xe2\x80\x8c\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
1432test { try toAsciiPass("\xda\xbc\xef\xbd\xa1\xe2\x80\x8d\xe1\xba\x8e\xe2\x80\x8c\xe1\xa1\xa4", "xn--vkb.xn--08e172a", true); }
1433test { try toAsciiPass("\xf0\x90\xa9\x97\xe2\x80\x8d\xef\xbd\xa1\xe1\x82\xa9\xe1\x82\xb5", "xn--pt9c.xn--0kjya", true); }
1434test { try toAsciiPass("\xf0\x90\xa9\x97\xe2\x80\x8d\xe3\x80\x82\xe1\x82\xa9\xe1\x82\xb5", "xn--pt9c.xn--0kjya", true); }
1435test { try toAsciiPass("\xf0\x90\xa9\x97\xe2\x80\x8d\xe3\x80\x82\xe2\xb4\x89\xe2\xb4\x95", "xn--pt9c.xn--0kjya", true); }
1436test { try toAsciiPass("\xf0\x90\xa9\x97\xe2\x80\x8d\xe3\x80\x82\xe1\x82\xa9\xe2\xb4\x95", "xn--pt9c.xn--0kjya", true); }
547test { try toUnicodePass("xn--pt9c.xn--0kjya", "\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95"); }1437test { try toUnicodePass("xn--pt9c.xn--0kjya", "\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95"); }
1438test { try toAsciiPass("xn--pt9c.xn--0kjya", "xn--pt9c.xn--0kjya", false); }
1439test { try toAsciiPass("xn--pt9c.xn--0kjya", "xn--pt9c.xn--0kjya", true); }
548test { try toUnicodePass("\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95", "\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95"); }1440test { try toUnicodePass("\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95", "\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95"); }
1441test { try toAsciiPass("\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95", "xn--pt9c.xn--0kjya", false); }
1442test { try toAsciiPass("\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95", "xn--pt9c.xn--0kjya", true); }
549test { try toUnicodePass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe1\x82\xb5", "\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95"); }1443test { try toUnicodePass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe1\x82\xb5", "\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95"); }
1444test { try toAsciiPass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe1\x82\xb5", "xn--pt9c.xn--0kjya", false); }
1445test { try toAsciiPass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe1\x82\xb5", "xn--pt9c.xn--0kjya", true); }
550test { try toUnicodePass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe2\xb4\x95", "\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95"); }1446test { try toUnicodePass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe2\xb4\x95", "\xf0\x90\xa9\x97.\xe2\xb4\x89\xe2\xb4\x95"); }
1447test { try toAsciiPass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe2\xb4\x95", "xn--pt9c.xn--0kjya", false); }
1448test { try toAsciiPass("\xf0\x90\xa9\x97.\xe1\x82\xa9\xe2\xb4\x95", "xn--pt9c.xn--0kjya", true); }
1449test { try toAsciiPass("\xf0\x90\xa9\x97\xe2\x80\x8d\xef\xbd\xa1\xe2\xb4\x89\xe2\xb4\x95", "xn--pt9c.xn--0kjya", true); }
1450test { try toAsciiPass("\xf0\x90\xa9\x97\xe2\x80\x8d\xef\xbd\xa1\xe1\x82\xa9\xe2\xb4\x95", "xn--pt9c.xn--0kjya", true); }
551test { try toUnicodePass("\xf0\xb2\xa4\xb120.\xe9\x9f\xb3.\xea\xa1\xa61.", "\xf0\xb2\xa4\xb120.\xe9\x9f\xb3.\xea\xa1\xa61."); }1451test { try toUnicodePass("\xf0\xb2\xa4\xb120.\xe9\x9f\xb3.\xea\xa1\xa61.", "\xf0\xb2\xa4\xb120.\xe9\x9f\xb3.\xea\xa1\xa61."); }
552test { try toUnicodePass("xn--20-9802c.xn--0w5a.xn--1-eg4e.", "\xf0\xb2\xa4\xb120.\xe9\x9f\xb3.\xea\xa1\xa61."); }1452test { try toUnicodePass("xn--20-9802c.xn--0w5a.xn--1-eg4e.", "\xf0\xb2\xa4\xb120.\xe9\x9f\xb3.\xea\xa1\xa61."); }
553test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }1453test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }
1454test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g", false); }
1455test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
554test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }1456test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }
1457test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g", false); }
1458test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
555test { try toUnicodePass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }1459test { try toUnicodePass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }
1460test { try toAsciiPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g", false); }
1461test { try toAsciiPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
556test { try toUnicodePass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }1462test { try toUnicodePass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }
1463test { try toAsciiPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g", false); }
1464test { try toAsciiPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
557test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1465test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1466test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1467test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
558test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8SS\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1468test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8SS\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1469test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8SS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1470test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8SS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
559test { try toUnicodePass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8ss\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1471test { try toUnicodePass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8ss\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1472test { try toAsciiPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1473test { try toAsciiPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0<\xcc\xb8ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
560test { try toUnicodePass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xaess\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1474test { try toUnicodePass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xaess\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1475test { try toAsciiPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xaess\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1476test { try toAsciiPass("\xe2\xb4\x95\xe3\x80\x82\xdb\xb0\xe2\x89\xaess\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
561test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1477test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1478test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1479test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
562test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8Ss\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1480test { try toUnicodePass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8Ss\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1481test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8Ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1482test { try toAsciiPass("\xe1\x82\xb5\xe3\x80\x82\xdb\xb0<\xcc\xb8Ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
563test { try toUnicodePass("xn--dlj.xn--ss-jbe65aw27i", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1483test { try toUnicodePass("xn--dlj.xn--ss-jbe65aw27i", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1484test { try toAsciiPass("xn--dlj.xn--ss-jbe65aw27i", "xn--dlj.xn--ss-jbe65aw27i", false); }
1485test { try toAsciiPass("xn--dlj.xn--ss-jbe65aw27i", "xn--dlj.xn--ss-jbe65aw27i", true); }
564test { try toUnicodePass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1486test { try toUnicodePass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1487test { try toAsciiPass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1488test { try toAsciiPass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
565test { try toUnicodePass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8ss\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1489test { try toUnicodePass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8ss\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1490test { try toAsciiPass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1491test { try toAsciiPass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
566test { try toUnicodePass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8SS\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1492test { try toUnicodePass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8SS\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1493test { try toAsciiPass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8SS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1494test { try toAsciiPass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8SS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
567test { try toUnicodePass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1495test { try toUnicodePass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1496test { try toAsciiPass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1497test { try toAsciiPass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSS\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
568test { try toUnicodePass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1498test { try toUnicodePass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1499test { try toAsciiPass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1500test { try toAsciiPass("\xe1\x82\xb5.\xdb\xb0\xe2\x89\xaeSs\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
569test { try toUnicodePass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8Ss\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }1501test { try toUnicodePass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8Ss\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xaess\xdd\x85"); }
1502test { try toAsciiPass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8Ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", false); }
1503test { try toAsciiPass("\xe1\x82\xb5.\xdb\xb0<\xcc\xb8Ss\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
570test { try toUnicodePass("xn--dlj.xn--zca912alh227g", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }1504test { try toUnicodePass("xn--dlj.xn--zca912alh227g", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }
1505test { try toAsciiPass("xn--dlj.xn--zca912alh227g", "xn--dlj.xn--zca912alh227g", false); }
1506test { try toAsciiPass("xn--dlj.xn--zca912alh227g", "xn--dlj.xn--zca912alh227g", true); }
571test { try toUnicodePass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }1507test { try toUnicodePass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }
1508test { try toAsciiPass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g", false); }
1509test { try toAsciiPass("\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
572test { try toUnicodePass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }1510test { try toUnicodePass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "\xe2\xb4\x95.\xdb\xb0\xe2\x89\xae\xc3\x9f\xdd\x85"); }
1511test { try toAsciiPass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--zca912alh227g", false); }
1512test { try toAsciiPass("\xe2\xb4\x95.\xdb\xb0<\xcc\xb8\xc3\x9f\xdd\x85", "xn--dlj.xn--ss-jbe65aw27i", true); }
1513test { try toAsciiPass("\xf0\x9e\xa4\xa8\xef\xbd\xa1\xea\xa1\x8f\xe2\x80\x8d\xe2\x80\x8c", "xn--ge6h.xn--oc9a", true); }
1514test { try toAsciiPass("\xf0\x9e\xa4\xa8\xe3\x80\x82\xea\xa1\x8f\xe2\x80\x8d\xe2\x80\x8c", "xn--ge6h.xn--oc9a", true); }
1515test { try toAsciiPass("\xf0\x9e\xa4\x86\xe3\x80\x82\xea\xa1\x8f\xe2\x80\x8d\xe2\x80\x8c", "xn--ge6h.xn--oc9a", true); }
573test { try toUnicodePass("xn--ge6h.xn--oc9a", "\xf0\x9e\xa4\xa8.\xea\xa1\x8f"); }1516test { try toUnicodePass("xn--ge6h.xn--oc9a", "\xf0\x9e\xa4\xa8.\xea\xa1\x8f"); }
1517test { try toAsciiPass("xn--ge6h.xn--oc9a", "xn--ge6h.xn--oc9a", false); }
1518test { try toAsciiPass("xn--ge6h.xn--oc9a", "xn--ge6h.xn--oc9a", true); }
574test { try toUnicodePass("\xf0\x9e\xa4\xa8.\xea\xa1\x8f", "\xf0\x9e\xa4\xa8.\xea\xa1\x8f"); }1519test { try toUnicodePass("\xf0\x9e\xa4\xa8.\xea\xa1\x8f", "\xf0\x9e\xa4\xa8.\xea\xa1\x8f"); }
1520test { try toAsciiPass("\xf0\x9e\xa4\xa8.\xea\xa1\x8f", "xn--ge6h.xn--oc9a", false); }
1521test { try toAsciiPass("\xf0\x9e\xa4\xa8.\xea\xa1\x8f", "xn--ge6h.xn--oc9a", true); }
575test { try toUnicodePass("\xf0\x9e\xa4\x86.\xea\xa1\x8f", "\xf0\x9e\xa4\xa8.\xea\xa1\x8f"); }1522test { try toUnicodePass("\xf0\x9e\xa4\x86.\xea\xa1\x8f", "\xf0\x9e\xa4\xa8.\xea\xa1\x8f"); }
1523test { try toAsciiPass("\xf0\x9e\xa4\x86.\xea\xa1\x8f", "xn--ge6h.xn--oc9a", false); }
1524test { try toAsciiPass("\xf0\x9e\xa4\x86.\xea\xa1\x8f", "xn--ge6h.xn--oc9a", true); }
1525test { try toAsciiPass("\xf0\x9e\xa4\x86\xef\xbd\xa1\xea\xa1\x8f\xe2\x80\x8d\xe2\x80\x8c", "xn--ge6h.xn--oc9a", true); }
576test { try toUnicodePass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.\xc3\x9f", "\xe9\xbd\x99--4.\xc3\x9f"); }1526test { try toUnicodePass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.\xc3\x9f", "\xe9\xbd\x99--4.\xc3\x9f"); }
1527test { try toAsciiPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.\xc3\x9f", "xn----4-p16k.xn--zca", false); }
1528test { try toAsciiPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.\xc3\x9f", "xn----4-p16k.ss", true); }
577test { try toUnicodePass("\xe9\xbd\x99--4.\xc3\x9f", "\xe9\xbd\x99--4.\xc3\x9f"); }1529test { try toUnicodePass("\xe9\xbd\x99--4.\xc3\x9f", "\xe9\xbd\x99--4.\xc3\x9f"); }
1530test { try toAsciiPass("\xe9\xbd\x99--4.\xc3\x9f", "xn----4-p16k.xn--zca", false); }
1531test { try toAsciiPass("\xe9\xbd\x99--4.\xc3\x9f", "xn----4-p16k.ss", true); }
578test { try toUnicodePass("\xe9\xbd\x99--4.SS", "\xe9\xbd\x99--4.ss"); }1532test { try toUnicodePass("\xe9\xbd\x99--4.SS", "\xe9\xbd\x99--4.ss"); }
1533test { try toAsciiPass("\xe9\xbd\x99--4.SS", "xn----4-p16k.ss", false); }
1534test { try toAsciiPass("\xe9\xbd\x99--4.SS", "xn----4-p16k.ss", true); }
579test { try toUnicodePass("\xe9\xbd\x99--4.ss", "\xe9\xbd\x99--4.ss"); }1535test { try toUnicodePass("\xe9\xbd\x99--4.ss", "\xe9\xbd\x99--4.ss"); }
1536test { try toAsciiPass("\xe9\xbd\x99--4.ss", "xn----4-p16k.ss", false); }
1537test { try toAsciiPass("\xe9\xbd\x99--4.ss", "xn----4-p16k.ss", true); }
580test { try toUnicodePass("\xe9\xbd\x99--4.Ss", "\xe9\xbd\x99--4.ss"); }1538test { try toUnicodePass("\xe9\xbd\x99--4.Ss", "\xe9\xbd\x99--4.ss"); }
1539test { try toAsciiPass("\xe9\xbd\x99--4.Ss", "xn----4-p16k.ss", false); }
1540test { try toAsciiPass("\xe9\xbd\x99--4.Ss", "xn----4-p16k.ss", true); }
581test { try toUnicodePass("xn----4-p16k.ss", "\xe9\xbd\x99--4.ss"); }1541test { try toUnicodePass("xn----4-p16k.ss", "\xe9\xbd\x99--4.ss"); }
1542test { try toAsciiPass("xn----4-p16k.ss", "xn----4-p16k.ss", false); }
1543test { try toAsciiPass("xn----4-p16k.ss", "xn----4-p16k.ss", true); }
582test { try toUnicodePass("xn----4-p16k.xn--zca", "\xe9\xbd\x99--4.\xc3\x9f"); }1544test { try toUnicodePass("xn----4-p16k.xn--zca", "\xe9\xbd\x99--4.\xc3\x9f"); }
1545test { try toAsciiPass("xn----4-p16k.xn--zca", "xn----4-p16k.xn--zca", false); }
1546test { try toAsciiPass("xn----4-p16k.xn--zca", "xn----4-p16k.xn--zca", true); }
583test { try toUnicodePass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.SS", "\xe9\xbd\x99--4.ss"); }1547test { try toUnicodePass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.SS", "\xe9\xbd\x99--4.ss"); }
1548test { try toAsciiPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.SS", "xn----4-p16k.ss", false); }
1549test { try toAsciiPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.SS", "xn----4-p16k.ss", true); }
584test { try toUnicodePass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.ss", "\xe9\xbd\x99--4.ss"); }1550test { try toUnicodePass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.ss", "\xe9\xbd\x99--4.ss"); }
1551test { try toAsciiPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.ss", "xn----4-p16k.ss", false); }
1552test { try toAsciiPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.ss", "xn----4-p16k.ss", true); }
585test { try toUnicodePass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.Ss", "\xe9\xbd\x99--4.ss"); }1553test { try toUnicodePass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.Ss", "\xe9\xbd\x99--4.ss"); }
1554test { try toAsciiPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.Ss", "xn----4-p16k.ss", false); }
1555test { try toAsciiPass("\xe9\xbd\x99--\xf0\x9d\x9f\xb0.Ss", "xn----4-p16k.ss", true); }
1556test { try toAsciiPass("\xf0\xb2\xae\x9a\xef\xbc\x99\xea\x8d\xa9\xe1\x9f\x93\xef\xbc\x8e\xe2\x80\x8d\xc3\x9f", "xn--9-i0j5967eg3qz.ss", true); }
1557test { try toAsciiPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.\xe2\x80\x8d\xc3\x9f", "xn--9-i0j5967eg3qz.ss", true); }
1558test { try toAsciiPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.\xe2\x80\x8dSS", "xn--9-i0j5967eg3qz.ss", true); }
1559test { try toAsciiPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.\xe2\x80\x8dss", "xn--9-i0j5967eg3qz.ss", true); }
586test { try toUnicodePass("xn--9-i0j5967eg3qz.ss", "\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss"); }1560test { try toUnicodePass("xn--9-i0j5967eg3qz.ss", "\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss"); }
1561test { try toAsciiPass("xn--9-i0j5967eg3qz.ss", "xn--9-i0j5967eg3qz.ss", false); }
1562test { try toAsciiPass("xn--9-i0j5967eg3qz.ss", "xn--9-i0j5967eg3qz.ss", true); }
587test { try toUnicodePass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss", "\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss"); }1563test { try toUnicodePass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss", "\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss"); }
1564test { try toAsciiPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss", "xn--9-i0j5967eg3qz.ss", false); }
1565test { try toAsciiPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss", "xn--9-i0j5967eg3qz.ss", true); }
588test { try toUnicodePass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.SS", "\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss"); }1566test { try toUnicodePass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.SS", "\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.ss"); }
1567test { try toAsciiPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.SS", "xn--9-i0j5967eg3qz.ss", false); }
1568test { try toAsciiPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.SS", "xn--9-i0j5967eg3qz.ss", true); }
1569test { try toAsciiPass("\xf0\xb2\xae\x9a\xef\xbc\x99\xea\x8d\xa9\xe1\x9f\x93\xef\xbc\x8e\xe2\x80\x8dSS", "xn--9-i0j5967eg3qz.ss", true); }
1570test { try toAsciiPass("\xf0\xb2\xae\x9a\xef\xbc\x99\xea\x8d\xa9\xe1\x9f\x93\xef\xbc\x8e\xe2\x80\x8dss", "xn--9-i0j5967eg3qz.ss", true); }
1571test { try toAsciiPass("\xf0\xb2\xae\x9a9\xea\x8d\xa9\xe1\x9f\x93.\xe2\x80\x8dSs", "xn--9-i0j5967eg3qz.ss", true); }
1572test { try toAsciiPass("\xf0\xb2\xae\x9a\xef\xbc\x99\xea\x8d\xa9\xe1\x9f\x93\xef\xbc\x8e\xe2\x80\x8dSs", "xn--9-i0j5967eg3qz.ss", true); }
589test { try toUnicodePass("\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92", "\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92"); }1573test { try toUnicodePass("\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92", "\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92"); }
1574test { try toAsciiPass("\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92", "xn--ju8a625r.xn--hpb0073k", false); }
1575test { try toAsciiPass("\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92", "xn--ju8a625r.xn--hpb0073k", true); }
590test { try toUnicodePass("xn--ju8a625r.xn--hpb0073k", "\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92"); }1576test { try toUnicodePass("xn--ju8a625r.xn--hpb0073k", "\xea\x97\xb7\xf0\x91\x86\x80.\xdd\x9d\xf0\x90\xa9\x92"); }
1577test { try toAsciiPass("xn--ju8a625r.xn--hpb0073k", "xn--ju8a625r.xn--hpb0073k", false); }
1578test { try toAsciiPass("xn--ju8a625r.xn--hpb0073k", "xn--ju8a625r.xn--hpb0073k", true); }
591test { try toUnicodePass("\xcf\x82.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "\xcf\x82.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1."); }1579test { try toUnicodePass("\xcf\x82.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "\xcf\x82.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1."); }
592test { try toUnicodePass("\xce\xa3.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "\xcf\x83.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1."); }1580test { try toUnicodePass("\xce\xa3.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "\xcf\x83.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1."); }
593test { try toUnicodePass("\xcf\x83.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "\xcf\x83.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1."); }1581test { try toUnicodePass("\xcf\x83.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1.", "\xcf\x83.\xd9\x81\xd9\x85\xd9\x8a\xf0\x9f\x9e\x9b1."); }
...@@ -596,15 +1584,41 @@ test { try toUnicodePass("xn--3xa.xn--1-gocmu97674d.", "\xcf\x82.\xd9\x81\xd9\x8...@@ -596,15 +1584,41 @@ test { try toUnicodePass("xn--3xa.xn--1-gocmu97674d.", "\xcf\x82.\xd9\x81\xd9\x8
596test { try toUnicodePass("xn--hva754s.", "\xe2\xb4\x96\xcd\xa6."); }1584test { try toUnicodePass("xn--hva754s.", "\xe2\xb4\x96\xcd\xa6."); }
597test { try toUnicodePass("\xe2\xb4\x96\xcd\xa6.", "\xe2\xb4\x96\xcd\xa6."); }1585test { try toUnicodePass("\xe2\xb4\x96\xcd\xa6.", "\xe2\xb4\x96\xcd\xa6."); }
598test { try toUnicodePass("\xe1\x82\xb6\xcd\xa6.", "\xe2\xb4\x96\xcd\xa6."); }1586test { try toUnicodePass("\xe1\x82\xb6\xcd\xa6.", "\xe2\xb4\x96\xcd\xa6."); }
1587test { try toAsciiPass("\xe0\xa2\xbb\xef\xbc\x8e\xe2\x80\x8c\xe1\x82\xa3\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l", true); }
1588test { try toAsciiPass("\xe0\xa2\xbb.\xe2\x80\x8c\xe1\x82\xa3\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l", true); }
1589test { try toAsciiPass("\xe0\xa2\xbb.\xe2\x80\x8c\xe2\xb4\x83\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l", true); }
599test { try toUnicodePass("xn--hzb.xn--ukj4430l", "\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92"); }1590test { try toUnicodePass("xn--hzb.xn--ukj4430l", "\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92"); }
1591test { try toAsciiPass("xn--hzb.xn--ukj4430l", "xn--hzb.xn--ukj4430l", false); }
1592test { try toAsciiPass("xn--hzb.xn--ukj4430l", "xn--hzb.xn--ukj4430l", true); }
600test { try toUnicodePass("\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92", "\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92"); }1593test { try toUnicodePass("\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92", "\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92"); }
1594test { try toAsciiPass("\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l", false); }
1595test { try toAsciiPass("\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l", true); }
601test { try toUnicodePass("\xe0\xa2\xbb.\xe1\x82\xa3\xf0\x9e\x80\x92", "\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92"); }1596test { try toUnicodePass("\xe0\xa2\xbb.\xe1\x82\xa3\xf0\x9e\x80\x92", "\xe0\xa2\xbb.\xe2\xb4\x83\xf0\x9e\x80\x92"); }
1597test { try toAsciiPass("\xe0\xa2\xbb.\xe1\x82\xa3\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l", false); }
1598test { try toAsciiPass("\xe0\xa2\xbb.\xe1\x82\xa3\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l", true); }
1599test { try toAsciiPass("\xe0\xa2\xbb\xef\xbc\x8e\xe2\x80\x8c\xe2\xb4\x83\xf0\x9e\x80\x92", "xn--hzb.xn--ukj4430l", true); }
1600test { try toAsciiPass("\xe2\x80\x8d\xe6\x94\x8c\xea\xaf\xad\xe3\x80\x82\xe1\xa2\x96-\xe1\x82\xb8", "xn--p9ut19m.xn----mck373i", true); }
1601test { try toAsciiPass("\xe2\x80\x8d\xe6\x94\x8c\xea\xaf\xad\xe3\x80\x82\xe1\xa2\x96-\xe2\xb4\x98", "xn--p9ut19m.xn----mck373i", true); }
602test { try toUnicodePass("xn--p9ut19m.xn----mck373i", "\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98"); }1602test { try toUnicodePass("xn--p9ut19m.xn----mck373i", "\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98"); }
1603test { try toAsciiPass("xn--p9ut19m.xn----mck373i", "xn--p9ut19m.xn----mck373i", false); }
1604test { try toAsciiPass("xn--p9ut19m.xn----mck373i", "xn--p9ut19m.xn----mck373i", true); }
603test { try toUnicodePass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98", "\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98"); }1605test { try toUnicodePass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98", "\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98"); }
1606test { try toAsciiPass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98", "xn--p9ut19m.xn----mck373i", false); }
1607test { try toAsciiPass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98", "xn--p9ut19m.xn----mck373i", true); }
604test { try toUnicodePass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe1\x82\xb8", "\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98"); }1608test { try toUnicodePass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe1\x82\xb8", "\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe2\xb4\x98"); }
1609test { try toAsciiPass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe1\x82\xb8", "xn--p9ut19m.xn----mck373i", false); }
1610test { try toAsciiPass("\xe6\x94\x8c\xea\xaf\xad.\xe1\xa2\x96-\xe1\x82\xb8", "xn--p9ut19m.xn----mck373i", true); }
1611test { try toAsciiPass("\xe2\x80\x8c\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3", "xn--9r8a.16.xn--3-nyc0117m", true); }
1612test { try toAsciiPass("\xe2\x80\x8c\xea\x96\xa8.16.3\xe1\x84\x90\xe1\x85\xad\xe1\x86\xa9\xdb\xb3", "xn--9r8a.16.xn--3-nyc0117m", true); }
605test { try toUnicodePass("xn--9r8a.16.xn--3-nyc0117m", "\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3"); }1613test { try toUnicodePass("xn--9r8a.16.xn--3-nyc0117m", "\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3"); }
1614test { try toAsciiPass("xn--9r8a.16.xn--3-nyc0117m", "xn--9r8a.16.xn--3-nyc0117m", false); }
1615test { try toAsciiPass("xn--9r8a.16.xn--3-nyc0117m", "xn--9r8a.16.xn--3-nyc0117m", true); }
606test { try toUnicodePass("\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3", "\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3"); }1616test { try toUnicodePass("\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3", "\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3"); }
1617test { try toAsciiPass("\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3", "xn--9r8a.16.xn--3-nyc0117m", false); }
1618test { try toAsciiPass("\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3", "xn--9r8a.16.xn--3-nyc0117m", true); }
607test { try toUnicodePass("\xea\x96\xa8.16.3\xe1\x84\x90\xe1\x85\xad\xe1\x86\xa9\xdb\xb3", "\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3"); }1619test { try toUnicodePass("\xea\x96\xa8.16.3\xe1\x84\x90\xe1\x85\xad\xe1\x86\xa9\xdb\xb3", "\xea\x96\xa8.16.3\xed\x88\x92\xdb\xb3"); }
1620test { try toAsciiPass("\xea\x96\xa8.16.3\xe1\x84\x90\xe1\x85\xad\xe1\x86\xa9\xdb\xb3", "xn--9r8a.16.xn--3-nyc0117m", false); }
1621test { try toAsciiPass("\xea\x96\xa8.16.3\xe1\x84\x90\xe1\x85\xad\xe1\x86\xa9\xdb\xb3", "xn--9r8a.16.xn--3-nyc0117m", true); }
608test { try toUnicodePass("xn--1-5bt6845n.", "1\xf0\x9d\xa8\x99\xe2\xb8\x96."); }1622test { try toUnicodePass("xn--1-5bt6845n.", "1\xf0\x9d\xa8\x99\xe2\xb8\x96."); }
609test { try toUnicodePass("1\xf0\x9d\xa8\x99\xe2\xb8\x96.", "1\xf0\x9d\xa8\x99\xe2\xb8\x96."); }1623test { try toUnicodePass("1\xf0\x9d\xa8\x99\xe2\xb8\x96.", "1\xf0\x9d\xa8\x99\xe2\xb8\x96."); }
610test { try toUnicodePass("xn--ss-f4j.b.", "ss\xe1\x80\xba.b."); }1624test { try toUnicodePass("xn--ss-f4j.b.", "ss\xe1\x80\xba.b."); }
...@@ -613,107 +1627,321 @@ test { try toUnicodePass("SS\xe1\x80\xba.B.", "ss\xe1\x80\xba.b."); }...@@ -613,107 +1627,321 @@ test { try toUnicodePass("SS\xe1\x80\xba.B.", "ss\xe1\x80\xba.b."); }
613test { try toUnicodePass("Ss\xe1\x80\xba.b.", "ss\xe1\x80\xba.b."); }1627test { try toUnicodePass("Ss\xe1\x80\xba.b.", "ss\xe1\x80\xba.b."); }
614test { try toUnicodePass("SS\xe1\x80\xba.b.", "ss\xe1\x80\xba.b."); }1628test { try toUnicodePass("SS\xe1\x80\xba.b.", "ss\xe1\x80\xba.b."); }
615test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8e\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac"); }1629test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8e\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1630test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8e\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--zca216edt0r", false); }
1631test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8e\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", true); }
616test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac"); }1632test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1633test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--zca216edt0r", false); }
1634test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", true); }
617test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf.SS\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }1635test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf.SS\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1636test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf.SS\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", false); }
1637test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf.SS\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", true); }
618test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }1638test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1639test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", false); }
1640test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", true); }
619test { try toUnicodePass("xn--clb2593k.xn--ss-toj6092t", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }1641test { try toUnicodePass("xn--clb2593k.xn--ss-toj6092t", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1642test { try toAsciiPass("xn--clb2593k.xn--ss-toj6092t", "xn--clb2593k.xn--ss-toj6092t", false); }
1643test { try toAsciiPass("xn--clb2593k.xn--ss-toj6092t", "xn--clb2593k.xn--ss-toj6092t", true); }
620test { try toUnicodePass("xn--clb2593k.xn--zca216edt0r", "\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac"); }1644test { try toUnicodePass("xn--clb2593k.xn--zca216edt0r", "\xdb\x8c\xf0\x90\xa8\xbf.\xc3\x9f\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1645test { try toAsciiPass("xn--clb2593k.xn--zca216edt0r", "xn--clb2593k.xn--zca216edt0r", false); }
1646test { try toAsciiPass("xn--clb2593k.xn--zca216edt0r", "xn--clb2593k.xn--zca216edt0r", true); }
621test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSS\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }1647test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSS\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1648test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSS\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", false); }
1649test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSS\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", true); }
622test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8ess\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }1650test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8ess\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1651test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8ess\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", false); }
1652test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8ess\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", true); }
623test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf.Ss\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }1653test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf.Ss\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1654test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf.Ss\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", false); }
1655test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf.Ss\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", true); }
624test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSs\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }1656test { try toUnicodePass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSs\xe0\xbe\x84\xf0\x91\x8d\xac", "\xdb\x8c\xf0\x90\xa8\xbf.ss\xe0\xbe\x84\xf0\x91\x8d\xac"); }
1657test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSs\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", false); }
1658test { try toAsciiPass("\xdb\x8c\xf0\x90\xa8\xbf\xef\xbc\x8eSs\xe0\xbe\x84\xf0\x91\x8d\xac", "xn--clb2593k.xn--ss-toj6092t", true); }
625test { try toUnicodePass("xn--8-ngo.", "8\xe2\x89\xae."); }1659test { try toUnicodePass("xn--8-ngo.", "8\xe2\x89\xae."); }
626test { try toUnicodePass("8\xe2\x89\xae.", "8\xe2\x89\xae."); }1660test { try toUnicodePass("8\xe2\x89\xae.", "8\xe2\x89\xae."); }
627test { try toUnicodePass("8<\xcc\xb8.", "8\xe2\x89\xae."); }1661test { try toUnicodePass("8<\xcc\xb8.", "8\xe2\x89\xae."); }
628test { try toUnicodePass("\xe7\xbe\x9a\xef\xbd\xa1\xe2\x89\xaf", "\xe7\xbe\x9a.\xe2\x89\xaf"); }1662test { try toUnicodePass("\xe7\xbe\x9a\xef\xbd\xa1\xe2\x89\xaf", "\xe7\xbe\x9a.\xe2\x89\xaf"); }
1663test { try toAsciiPass("\xe7\xbe\x9a\xef\xbd\xa1\xe2\x89\xaf", "xn--xt0a.xn--hdh", false); }
1664test { try toAsciiPass("\xe7\xbe\x9a\xef\xbd\xa1\xe2\x89\xaf", "xn--xt0a.xn--hdh", true); }
629test { try toUnicodePass("\xe7\xbe\x9a\xef\xbd\xa1>\xcc\xb8", "\xe7\xbe\x9a.\xe2\x89\xaf"); }1665test { try toUnicodePass("\xe7\xbe\x9a\xef\xbd\xa1>\xcc\xb8", "\xe7\xbe\x9a.\xe2\x89\xaf"); }
1666test { try toAsciiPass("\xe7\xbe\x9a\xef\xbd\xa1>\xcc\xb8", "xn--xt0a.xn--hdh", false); }
1667test { try toAsciiPass("\xe7\xbe\x9a\xef\xbd\xa1>\xcc\xb8", "xn--xt0a.xn--hdh", true); }
630test { try toUnicodePass("\xe7\xbe\x9a\xe3\x80\x82\xe2\x89\xaf", "\xe7\xbe\x9a.\xe2\x89\xaf"); }1668test { try toUnicodePass("\xe7\xbe\x9a\xe3\x80\x82\xe2\x89\xaf", "\xe7\xbe\x9a.\xe2\x89\xaf"); }
1669test { try toAsciiPass("\xe7\xbe\x9a\xe3\x80\x82\xe2\x89\xaf", "xn--xt0a.xn--hdh", false); }
1670test { try toAsciiPass("\xe7\xbe\x9a\xe3\x80\x82\xe2\x89\xaf", "xn--xt0a.xn--hdh", true); }
631test { try toUnicodePass("\xe7\xbe\x9a\xe3\x80\x82>\xcc\xb8", "\xe7\xbe\x9a.\xe2\x89\xaf"); }1671test { try toUnicodePass("\xe7\xbe\x9a\xe3\x80\x82>\xcc\xb8", "\xe7\xbe\x9a.\xe2\x89\xaf"); }
1672test { try toAsciiPass("\xe7\xbe\x9a\xe3\x80\x82>\xcc\xb8", "xn--xt0a.xn--hdh", false); }
1673test { try toAsciiPass("\xe7\xbe\x9a\xe3\x80\x82>\xcc\xb8", "xn--xt0a.xn--hdh", true); }
632test { try toUnicodePass("xn--xt0a.xn--hdh", "\xe7\xbe\x9a.\xe2\x89\xaf"); }1674test { try toUnicodePass("xn--xt0a.xn--hdh", "\xe7\xbe\x9a.\xe2\x89\xaf"); }
1675test { try toAsciiPass("xn--xt0a.xn--hdh", "xn--xt0a.xn--hdh", false); }
1676test { try toAsciiPass("xn--xt0a.xn--hdh", "xn--xt0a.xn--hdh", true); }
633test { try toUnicodePass("\xe7\xbe\x9a.\xe2\x89\xaf", "\xe7\xbe\x9a.\xe2\x89\xaf"); }1677test { try toUnicodePass("\xe7\xbe\x9a.\xe2\x89\xaf", "\xe7\xbe\x9a.\xe2\x89\xaf"); }
1678test { try toAsciiPass("\xe7\xbe\x9a.\xe2\x89\xaf", "xn--xt0a.xn--hdh", false); }
1679test { try toAsciiPass("\xe7\xbe\x9a.\xe2\x89\xaf", "xn--xt0a.xn--hdh", true); }
634test { try toUnicodePass("\xe7\xbe\x9a.>\xcc\xb8", "\xe7\xbe\x9a.\xe2\x89\xaf"); }1680test { try toUnicodePass("\xe7\xbe\x9a.>\xcc\xb8", "\xe7\xbe\x9a.\xe2\x89\xaf"); }
1681test { try toAsciiPass("\xe7\xbe\x9a.>\xcc\xb8", "xn--xt0a.xn--hdh", false); }
1682test { try toAsciiPass("\xe7\xbe\x9a.>\xcc\xb8", "xn--xt0a.xn--hdh", true); }
635test { try toUnicodePass("xn--ye6h", "\xf0\x9e\xa4\xba"); }1683test { try toUnicodePass("xn--ye6h", "\xf0\x9e\xa4\xba"); }
1684test { try toAsciiPass("xn--ye6h", "xn--ye6h", false); }
1685test { try toAsciiPass("xn--ye6h", "xn--ye6h", true); }
636test { try toUnicodePass("\xf0\x9e\xa4\xba", "\xf0\x9e\xa4\xba"); }1686test { try toUnicodePass("\xf0\x9e\xa4\xba", "\xf0\x9e\xa4\xba"); }
1687test { try toAsciiPass("\xf0\x9e\xa4\xba", "xn--ye6h", false); }
1688test { try toAsciiPass("\xf0\x9e\xa4\xba", "xn--ye6h", true); }
637test { try toUnicodePass("\xf0\x9e\xa4\x98", "\xf0\x9e\xa4\xba"); }1689test { try toUnicodePass("\xf0\x9e\xa4\x98", "\xf0\x9e\xa4\xba"); }
1690test { try toAsciiPass("\xf0\x9e\xa4\x98", "xn--ye6h", false); }
1691test { try toAsciiPass("\xf0\x9e\xa4\x98", "xn--ye6h", true); }
638test { try toUnicodePass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xef\xa7\xb8", "3.\xe7\xac\xa0"); }1692test { try toUnicodePass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xef\xa7\xb8", "3.\xe7\xac\xa0"); }
1693test { try toAsciiPass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xef\xa7\xb8", "3.xn--6vz", false); }
1694test { try toAsciiPass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xef\xa7\xb8", "3.xn--6vz", true); }
639test { try toUnicodePass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xe7\xac\xa0", "3.\xe7\xac\xa0"); }1695test { try toUnicodePass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xe7\xac\xa0", "3.\xe7\xac\xa0"); }
1696test { try toAsciiPass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xe7\xac\xa0", "3.xn--6vz", false); }
1697test { try toAsciiPass("\xf0\x9d\x9f\x9b\xef\xbc\x8e\xe7\xac\xa0", "3.xn--6vz", true); }
640test { try toUnicodePass("3.\xe7\xac\xa0", "3.\xe7\xac\xa0"); }1698test { try toUnicodePass("3.\xe7\xac\xa0", "3.\xe7\xac\xa0"); }
1699test { try toAsciiPass("3.\xe7\xac\xa0", "3.xn--6vz", false); }
1700test { try toAsciiPass("3.\xe7\xac\xa0", "3.xn--6vz", true); }
641test { try toUnicodePass("3.xn--6vz", "3.\xe7\xac\xa0"); }1701test { try toUnicodePass("3.xn--6vz", "3.\xe7\xac\xa0"); }
1702test { try toAsciiPass("3.xn--6vz", "3.xn--6vz", false); }
1703test { try toAsciiPass("3.xn--6vz", "3.xn--6vz", true); }
642test { try toUnicodePass("xn--1ch.", "\xe2\x89\xa0."); }1704test { try toUnicodePass("xn--1ch.", "\xe2\x89\xa0."); }
643test { try toUnicodePass("\xe2\x89\xa0.", "\xe2\x89\xa0."); }1705test { try toUnicodePass("\xe2\x89\xa0.", "\xe2\x89\xa0."); }
644test { try toUnicodePass("=\xcc\xb8.", "\xe2\x89\xa0."); }1706test { try toUnicodePass("=\xcc\xb8.", "\xe2\x89\xa0."); }
645test { try toUnicodePass("f", "f"); }1707test { try toUnicodePass("f", "f"); }
1708test { try toAsciiPass("f", "f", false); }
1709test { try toAsciiPass("f", "f", true); }
1710test { try toAsciiPass("\xe2\x80\x8d\xe3\xa8\xb2\xef\xbd\xa1\xc3\x9f", "xn--9bm.ss", true); }
1711test { try toAsciiPass("\xe2\x80\x8d\xe3\xa8\xb2\xe3\x80\x82\xc3\x9f", "xn--9bm.ss", true); }
1712test { try toAsciiPass("\xe2\x80\x8d\xe3\xa8\xb2\xe3\x80\x82SS", "xn--9bm.ss", true); }
1713test { try toAsciiPass("\xe2\x80\x8d\xe3\xa8\xb2\xe3\x80\x82ss", "xn--9bm.ss", true); }
1714test { try toAsciiPass("\xe2\x80\x8d\xe3\xa8\xb2\xe3\x80\x82Ss", "xn--9bm.ss", true); }
646test { try toUnicodePass("xn--9bm.ss", "\xe3\xa8\xb2.ss"); }1715test { try toUnicodePass("xn--9bm.ss", "\xe3\xa8\xb2.ss"); }
1716test { try toAsciiPass("xn--9bm.ss", "xn--9bm.ss", false); }
1717test { try toAsciiPass("xn--9bm.ss", "xn--9bm.ss", true); }
647test { try toUnicodePass("\xe3\xa8\xb2.ss", "\xe3\xa8\xb2.ss"); }1718test { try toUnicodePass("\xe3\xa8\xb2.ss", "\xe3\xa8\xb2.ss"); }
1719test { try toAsciiPass("\xe3\xa8\xb2.ss", "xn--9bm.ss", false); }
1720test { try toAsciiPass("\xe3\xa8\xb2.ss", "xn--9bm.ss", true); }
648test { try toUnicodePass("\xe3\xa8\xb2.SS", "\xe3\xa8\xb2.ss"); }1721test { try toUnicodePass("\xe3\xa8\xb2.SS", "\xe3\xa8\xb2.ss"); }
1722test { try toAsciiPass("\xe3\xa8\xb2.SS", "xn--9bm.ss", false); }
1723test { try toAsciiPass("\xe3\xa8\xb2.SS", "xn--9bm.ss", true); }
649test { try toUnicodePass("\xe3\xa8\xb2.Ss", "\xe3\xa8\xb2.ss"); }1724test { try toUnicodePass("\xe3\xa8\xb2.Ss", "\xe3\xa8\xb2.ss"); }
1725test { try toAsciiPass("\xe3\xa8\xb2.Ss", "xn--9bm.ss", false); }
1726test { try toAsciiPass("\xe3\xa8\xb2.Ss", "xn--9bm.ss", true); }
1727test { try toAsciiPass("\xe2\x80\x8d\xe3\xa8\xb2\xef\xbd\xa1SS", "xn--9bm.ss", true); }
1728test { try toAsciiPass("\xe2\x80\x8d\xe3\xa8\xb2\xef\xbd\xa1ss", "xn--9bm.ss", true); }
1729test { try toAsciiPass("\xe2\x80\x8d\xe3\xa8\xb2\xef\xbd\xa1Ss", "xn--9bm.ss", true); }
650test { try toUnicodePass("\xf0\x9d\x9f\x8e\xe3\x80\x82\xe7\x94\xaf", "0.\xe7\x94\xaf"); }1730test { try toUnicodePass("\xf0\x9d\x9f\x8e\xe3\x80\x82\xe7\x94\xaf", "0.\xe7\x94\xaf"); }
1731test { try toAsciiPass("\xf0\x9d\x9f\x8e\xe3\x80\x82\xe7\x94\xaf", "0.xn--qny", false); }
1732test { try toAsciiPass("\xf0\x9d\x9f\x8e\xe3\x80\x82\xe7\x94\xaf", "0.xn--qny", true); }
651test { try toUnicodePass("0\xe3\x80\x82\xe7\x94\xaf", "0.\xe7\x94\xaf"); }1733test { try toUnicodePass("0\xe3\x80\x82\xe7\x94\xaf", "0.\xe7\x94\xaf"); }
1734test { try toAsciiPass("0\xe3\x80\x82\xe7\x94\xaf", "0.xn--qny", false); }
1735test { try toAsciiPass("0\xe3\x80\x82\xe7\x94\xaf", "0.xn--qny", true); }
652test { try toUnicodePass("0.xn--qny", "0.\xe7\x94\xaf"); }1736test { try toUnicodePass("0.xn--qny", "0.\xe7\x94\xaf"); }
1737test { try toAsciiPass("0.xn--qny", "0.xn--qny", false); }
1738test { try toAsciiPass("0.xn--qny", "0.xn--qny", true); }
653test { try toUnicodePass("0.\xe7\x94\xaf", "0.\xe7\x94\xaf"); }1739test { try toUnicodePass("0.\xe7\x94\xaf", "0.\xe7\x94\xaf"); }
1740test { try toAsciiPass("0.\xe7\x94\xaf", "0.xn--qny", false); }
1741test { try toAsciiPass("0.\xe7\x94\xaf", "0.xn--qny", true); }
654test { try toUnicodePass("\xf0\x9f\x82\xb4\xe1\x82\xab.\xe2\x89\xae", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }1742test { try toUnicodePass("\xf0\x9f\x82\xb4\xe1\x82\xab.\xe2\x89\xae", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }
1743test { try toAsciiPass("\xf0\x9f\x82\xb4\xe1\x82\xab.\xe2\x89\xae", "xn--2kj7565l.xn--gdh", false); }
1744test { try toAsciiPass("\xf0\x9f\x82\xb4\xe1\x82\xab.\xe2\x89\xae", "xn--2kj7565l.xn--gdh", true); }
655test { try toUnicodePass("\xf0\x9f\x82\xb4\xe1\x82\xab.<\xcc\xb8", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }1745test { try toUnicodePass("\xf0\x9f\x82\xb4\xe1\x82\xab.<\xcc\xb8", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }
1746test { try toAsciiPass("\xf0\x9f\x82\xb4\xe1\x82\xab.<\xcc\xb8", "xn--2kj7565l.xn--gdh", false); }
1747test { try toAsciiPass("\xf0\x9f\x82\xb4\xe1\x82\xab.<\xcc\xb8", "xn--2kj7565l.xn--gdh", true); }
656test { try toUnicodePass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.<\xcc\xb8", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }1748test { try toUnicodePass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.<\xcc\xb8", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }
1749test { try toAsciiPass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.<\xcc\xb8", "xn--2kj7565l.xn--gdh", false); }
1750test { try toAsciiPass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.<\xcc\xb8", "xn--2kj7565l.xn--gdh", true); }
657test { try toUnicodePass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }1751test { try toUnicodePass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }
1752test { try toAsciiPass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae", "xn--2kj7565l.xn--gdh", false); }
1753test { try toAsciiPass("\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae", "xn--2kj7565l.xn--gdh", true); }
658test { try toUnicodePass("xn--2kj7565l.xn--gdh", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }1754test { try toUnicodePass("xn--2kj7565l.xn--gdh", "\xf0\x9f\x82\xb4\xe2\xb4\x8b.\xe2\x89\xae"); }
1755test { try toAsciiPass("xn--2kj7565l.xn--gdh", "xn--2kj7565l.xn--gdh", false); }
1756test { try toAsciiPass("xn--2kj7565l.xn--gdh", "xn--2kj7565l.xn--gdh", true); }
659test { try toUnicodePass("xn--gky8837e.", "\xe7\x92\xbc\xf0\x9d\xa8\xad."); }1757test { try toUnicodePass("xn--gky8837e.", "\xe7\x92\xbc\xf0\x9d\xa8\xad."); }
660test { try toUnicodePass("\xe7\x92\xbc\xf0\x9d\xa8\xad.", "\xe7\x92\xbc\xf0\x9d\xa8\xad."); }1758test { try toUnicodePass("\xe7\x92\xbc\xf0\x9d\xa8\xad.", "\xe7\x92\xbc\xf0\x9d\xa8\xad."); }
1759test { try toAsciiPass("\xe2\x80\x8d\xed\x8a\x9b.\xdc\x96", "xn--157b.xn--gnb", true); }
1760test { try toAsciiPass("\xe2\x80\x8d\xe1\x84\x90\xe1\x85\xb1\xe1\x87\x82.\xdc\x96", "xn--157b.xn--gnb", true); }
661test { try toUnicodePass("xn--157b.xn--gnb", "\xed\x8a\x9b.\xdc\x96"); }1761test { try toUnicodePass("xn--157b.xn--gnb", "\xed\x8a\x9b.\xdc\x96"); }
1762test { try toAsciiPass("xn--157b.xn--gnb", "xn--157b.xn--gnb", false); }
1763test { try toAsciiPass("xn--157b.xn--gnb", "xn--157b.xn--gnb", true); }
662test { try toUnicodePass("\xed\x8a\x9b.\xdc\x96", "\xed\x8a\x9b.\xdc\x96"); }1764test { try toUnicodePass("\xed\x8a\x9b.\xdc\x96", "\xed\x8a\x9b.\xdc\x96"); }
1765test { try toAsciiPass("\xed\x8a\x9b.\xdc\x96", "xn--157b.xn--gnb", false); }
1766test { try toAsciiPass("\xed\x8a\x9b.\xdc\x96", "xn--157b.xn--gnb", true); }
663test { try toUnicodePass("\xe1\x84\x90\xe1\x85\xb1\xe1\x87\x82.\xdc\x96", "\xed\x8a\x9b.\xdc\x96"); }1767test { try toUnicodePass("\xe1\x84\x90\xe1\x85\xb1\xe1\x87\x82.\xdc\x96", "\xed\x8a\x9b.\xdc\x96"); }
1768test { try toAsciiPass("\xe1\x84\x90\xe1\x85\xb1\xe1\x87\x82.\xdc\x96", "xn--157b.xn--gnb", false); }
1769test { try toAsciiPass("\xe1\x84\x90\xe1\x85\xb1\xe1\x87\x82.\xdc\x96", "xn--157b.xn--gnb", true); }
1770test { try toAsciiPass("\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", "xn--84-s850a.xn--59h6326e", true); }
1771test { try toAsciiPass("84\xf3\xa0\x87\x97\xf0\x9d\x88\xbb.\xe2\x80\x8d\xf0\x90\x8b\xb5\xe2\x9b\xa7\xe2\x80\x8d", "xn--84-s850a.xn--59h6326e", true); }
664test { try toUnicodePass("xn--84-s850a.xn--59h6326e", "84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7"); }1772test { try toUnicodePass("xn--84-s850a.xn--59h6326e", "84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7"); }
1773test { try toAsciiPass("xn--84-s850a.xn--59h6326e", "xn--84-s850a.xn--59h6326e", false); }
1774test { try toAsciiPass("xn--84-s850a.xn--59h6326e", "xn--84-s850a.xn--59h6326e", true); }
665test { try toUnicodePass("84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7", "84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7"); }1775test { try toUnicodePass("84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7", "84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7"); }
1776test { try toAsciiPass("84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7", "xn--84-s850a.xn--59h6326e", false); }
1777test { try toAsciiPass("84\xf0\x9d\x88\xbb.\xf0\x90\x8b\xb5\xe2\x9b\xa7", "xn--84-s850a.xn--59h6326e", true); }
666test { try toUnicodePass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }1778test { try toUnicodePass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }
1779test { try toAsciiPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "xn--7-mgo.xn--zca892oly5e", false); }
1780test { try toAsciiPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", true); }
667test { try toUnicodePass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }1781test { try toUnicodePass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }
1782test { try toAsciiPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f>\xcc\xb8", "xn--7-mgo.xn--zca892oly5e", false); }
1783test { try toAsciiPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96\xc3\x9f>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", true); }
668test { try toUnicodePass("\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }1784test { try toUnicodePass("\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }
1785test { try toAsciiPass("\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "xn--7-mgo.xn--zca892oly5e", false); }
1786test { try toAsciiPass("\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", true); }
669test { try toUnicodePass("<\xcc\xb87.\xe8\xac\x96\xc3\x9f>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }1787test { try toUnicodePass("<\xcc\xb87.\xe8\xac\x96\xc3\x9f>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }
1788test { try toAsciiPass("<\xcc\xb87.\xe8\xac\x96\xc3\x9f>\xcc\xb8", "xn--7-mgo.xn--zca892oly5e", false); }
1789test { try toAsciiPass("<\xcc\xb87.\xe8\xac\x96\xc3\x9f>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", true); }
670test { try toUnicodePass("<\xcc\xb87.\xe8\xac\x96SS>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1790test { try toUnicodePass("<\xcc\xb87.\xe8\xac\x96SS>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1791test { try toAsciiPass("<\xcc\xb87.\xe8\xac\x96SS>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", false); }
1792test { try toAsciiPass("<\xcc\xb87.\xe8\xac\x96SS>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", true); }
671test { try toUnicodePass("\xe2\x89\xae7.\xe8\xac\x96SS\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1793test { try toUnicodePass("\xe2\x89\xae7.\xe8\xac\x96SS\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1794test { try toAsciiPass("\xe2\x89\xae7.\xe8\xac\x96SS\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", false); }
1795test { try toAsciiPass("\xe2\x89\xae7.\xe8\xac\x96SS\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", true); }
672test { try toUnicodePass("\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1796test { try toUnicodePass("\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1797test { try toAsciiPass("\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", false); }
1798test { try toAsciiPass("\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", true); }
673test { try toUnicodePass("<\xcc\xb87.\xe8\xac\x96ss>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1799test { try toUnicodePass("<\xcc\xb87.\xe8\xac\x96ss>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1800test { try toAsciiPass("<\xcc\xb87.\xe8\xac\x96ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", false); }
1801test { try toAsciiPass("<\xcc\xb87.\xe8\xac\x96ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", true); }
674test { try toUnicodePass("<\xcc\xb87.\xe8\xac\x96Ss>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1802test { try toUnicodePass("<\xcc\xb87.\xe8\xac\x96Ss>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1803test { try toAsciiPass("<\xcc\xb87.\xe8\xac\x96Ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", false); }
1804test { try toAsciiPass("<\xcc\xb87.\xe8\xac\x96Ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", true); }
675test { try toUnicodePass("\xe2\x89\xae7.\xe8\xac\x96Ss\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1805test { try toUnicodePass("\xe2\x89\xae7.\xe8\xac\x96Ss\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1806test { try toAsciiPass("\xe2\x89\xae7.\xe8\xac\x96Ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", false); }
1807test { try toAsciiPass("\xe2\x89\xae7.\xe8\xac\x96Ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", true); }
676test { try toUnicodePass("xn--7-mgo.xn--ss-xjvv174c", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1808test { try toUnicodePass("xn--7-mgo.xn--ss-xjvv174c", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1809test { try toAsciiPass("xn--7-mgo.xn--ss-xjvv174c", "xn--7-mgo.xn--ss-xjvv174c", false); }
1810test { try toAsciiPass("xn--7-mgo.xn--ss-xjvv174c", "xn--7-mgo.xn--ss-xjvv174c", true); }
677test { try toUnicodePass("xn--7-mgo.xn--zca892oly5e", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }1811test { try toUnicodePass("xn--7-mgo.xn--zca892oly5e", "\xe2\x89\xae7.\xe8\xac\x96\xc3\x9f\xe2\x89\xaf"); }
1812test { try toAsciiPass("xn--7-mgo.xn--zca892oly5e", "xn--7-mgo.xn--zca892oly5e", false); }
1813test { try toAsciiPass("xn--7-mgo.xn--zca892oly5e", "xn--7-mgo.xn--zca892oly5e", true); }
678test { try toUnicodePass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1814test { try toUnicodePass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1815test { try toAsciiPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", false); }
1816test { try toAsciiPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", true); }
679test { try toUnicodePass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1817test { try toUnicodePass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1818test { try toAsciiPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", false); }
1819test { try toAsciiPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96SS\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", true); }
680test { try toUnicodePass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1820test { try toUnicodePass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1821test { try toAsciiPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", false); }
1822test { try toAsciiPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", true); }
681test { try toUnicodePass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1823test { try toUnicodePass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1824test { try toAsciiPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", false); }
1825test { try toAsciiPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", true); }
682test { try toUnicodePass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1826test { try toUnicodePass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss>\xcc\xb8", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1827test { try toAsciiPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", false); }
1828test { try toAsciiPass("<\xcc\xb8\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss>\xcc\xb8", "xn--7-mgo.xn--ss-xjvv174c", true); }
683test { try toUnicodePass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }1829test { try toUnicodePass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss\xe2\x89\xaf", "\xe2\x89\xae7.\xe8\xac\x96ss\xe2\x89\xaf"); }
1830test { try toAsciiPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", false); }
1831test { try toAsciiPass("\xe2\x89\xae\xf0\x9d\x9f\x95\xef\xbc\x8e\xe8\xac\x96Ss\xe2\x89\xaf", "xn--7-mgo.xn--ss-xjvv174c", true); }
684test { try toUnicodePass("xn--ss-bh7o", "ss\xf0\x91\x93\x83"); }1832test { try toUnicodePass("xn--ss-bh7o", "ss\xf0\x91\x93\x83"); }
1833test { try toAsciiPass("xn--ss-bh7o", "xn--ss-bh7o", false); }
1834test { try toAsciiPass("xn--ss-bh7o", "xn--ss-bh7o", true); }
685test { try toUnicodePass("ss\xf0\x91\x93\x83", "ss\xf0\x91\x93\x83"); }1835test { try toUnicodePass("ss\xf0\x91\x93\x83", "ss\xf0\x91\x93\x83"); }
1836test { try toAsciiPass("ss\xf0\x91\x93\x83", "xn--ss-bh7o", false); }
1837test { try toAsciiPass("ss\xf0\x91\x93\x83", "xn--ss-bh7o", true); }
686test { try toUnicodePass("SS\xf0\x91\x93\x83", "ss\xf0\x91\x93\x83"); }1838test { try toUnicodePass("SS\xf0\x91\x93\x83", "ss\xf0\x91\x93\x83"); }
1839test { try toAsciiPass("SS\xf0\x91\x93\x83", "xn--ss-bh7o", false); }
1840test { try toAsciiPass("SS\xf0\x91\x93\x83", "xn--ss-bh7o", true); }
687test { try toUnicodePass("Ss\xf0\x91\x93\x83", "ss\xf0\x91\x93\x83"); }1841test { try toUnicodePass("Ss\xf0\x91\x93\x83", "ss\xf0\x91\x93\x83"); }
1842test { try toAsciiPass("Ss\xf0\x91\x93\x83", "xn--ss-bh7o", false); }
1843test { try toAsciiPass("Ss\xf0\x91\x93\x83", "xn--ss-bh7o", true); }
688test { try toUnicodePass("xn--qekw60d.xn--gd9a", "\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa"); }1844test { try toUnicodePass("xn--qekw60d.xn--gd9a", "\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa"); }
1845test { try toAsciiPass("xn--qekw60d.xn--gd9a", "xn--qekw60d.xn--gd9a", false); }
1846test { try toAsciiPass("xn--qekw60d.xn--gd9a", "xn--qekw60d.xn--gd9a", true); }
689test { try toUnicodePass("\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa", "\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa"); }1847test { try toUnicodePass("\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa", "\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa"); }
1848test { try toAsciiPass("\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa", "xn--qekw60d.xn--gd9a", false); }
1849test { try toAsciiPass("\xe3\x83\xb6\xe4\x92\xa9.\xea\xa1\xaa", "xn--qekw60d.xn--gd9a", true); }
1850test { try toAsciiPass("\xe2\xbe\x87.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb\xe2\x80\x8d", "xn--8c1a.xn--2ib8jn539l", true); }
1851test { try toAsciiPass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb\xe2\x80\x8d", "xn--8c1a.xn--2ib8jn539l", true); }
1852test { try toAsciiPass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\x92\xda\xbb\xe2\x80\x8d", "xn--8c1a.xn--2ib8jn539l", true); }
690test { try toUnicodePass("xn--8c1a.xn--2ib8jn539l", "\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb"); }1853test { try toUnicodePass("xn--8c1a.xn--2ib8jn539l", "\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb"); }
1854test { try toAsciiPass("xn--8c1a.xn--2ib8jn539l", "xn--8c1a.xn--2ib8jn539l", false); }
1855test { try toAsciiPass("xn--8c1a.xn--2ib8jn539l", "xn--8c1a.xn--2ib8jn539l", true); }
691test { try toUnicodePass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb", "\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb"); }1856test { try toUnicodePass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb", "\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb"); }
1857test { try toAsciiPass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb", "xn--8c1a.xn--2ib8jn539l", false); }
1858test { try toAsciiPass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb", "xn--8c1a.xn--2ib8jn539l", true); }
692test { try toUnicodePass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\x92\xda\xbb", "\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb"); }1859test { try toUnicodePass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\x92\xda\xbb", "\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\xb4\xda\xbb"); }
1860test { try toAsciiPass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\x92\xda\xbb", "xn--8c1a.xn--2ib8jn539l", false); }
1861test { try toAsciiPass("\xe8\x88\x9b.\xd9\xbd\xf0\x9e\xa4\x92\xda\xbb", "xn--8c1a.xn--2ib8jn539l", true); }
1862test { try toAsciiPass("\xe2\xbe\x87.\xd9\xbd\xf0\x9e\xa4\x92\xda\xbb\xe2\x80\x8d", "xn--8c1a.xn--2ib8jn539l", true); }
693test { try toUnicodePass("xn--hcb32bni", "\xda\xbd\xd9\xa3\xd6\x96"); }1863test { try toUnicodePass("xn--hcb32bni", "\xda\xbd\xd9\xa3\xd6\x96"); }
1864test { try toAsciiPass("xn--hcb32bni", "xn--hcb32bni", false); }
1865test { try toAsciiPass("xn--hcb32bni", "xn--hcb32bni", true); }
694test { try toUnicodePass("\xda\xbd\xd9\xa3\xd6\x96", "\xda\xbd\xd9\xa3\xd6\x96"); }1866test { try toUnicodePass("\xda\xbd\xd9\xa3\xd6\x96", "\xda\xbd\xd9\xa3\xd6\x96"); }
1867test { try toAsciiPass("\xda\xbd\xd9\xa3\xd6\x96", "xn--hcb32bni", false); }
1868test { try toAsciiPass("\xda\xbd\xd9\xa3\xd6\x96", "xn--hcb32bni", true); }
1869test { try toAsciiPass("\xd8\xbd\xf0\x91\x88\xbe\xef\xbc\x8e\xd9\x89\xe2\x80\x8d\xea\xa4\xab", "xn--8gb2338k.xn--lhb0154f", true); }
1870test { try toAsciiPass("\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xe2\x80\x8d\xea\xa4\xab", "xn--8gb2338k.xn--lhb0154f", true); }
695test { try toUnicodePass("xn--8gb2338k.xn--lhb0154f", "\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab"); }1871test { try toUnicodePass("xn--8gb2338k.xn--lhb0154f", "\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab"); }
1872test { try toAsciiPass("xn--8gb2338k.xn--lhb0154f", "xn--8gb2338k.xn--lhb0154f", false); }
1873test { try toAsciiPass("xn--8gb2338k.xn--lhb0154f", "xn--8gb2338k.xn--lhb0154f", true); }
696test { try toUnicodePass("\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab", "\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab"); }1874test { try toUnicodePass("\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab", "\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab"); }
1875test { try toAsciiPass("\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab", "xn--8gb2338k.xn--lhb0154f", false); }
1876test { try toAsciiPass("\xd8\xbd\xf0\x91\x88\xbe.\xd9\x89\xea\xa4\xab", "xn--8gb2338k.xn--lhb0154f", true); }
697test { try toUnicodePass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83"); }1877test { try toUnicodePass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83"); }
1878test { try toAsciiPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--zca894k", false); }
1879test { try toAsciiPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
698test { try toUnicodePass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83"); }1880test { try toUnicodePass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83"); }
1881test { try toAsciiPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--zca894k", false); }
1882test { try toAsciiPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
699test { try toUnicodePass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82SS\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }1883test { try toUnicodePass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82SS\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }
1884test { try toAsciiPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82SS\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", false); }
1885test { try toAsciiPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98\xe3\x80\x82SS\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
700test { try toUnicodePass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82ss\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }1886test { try toUnicodePass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82ss\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }
1887test { try toAsciiPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", false); }
1888test { try toAsciiPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98\xe3\x80\x82ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
701test { try toUnicodePass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98\xe3\x80\x82Ss\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }1889test { try toUnicodePass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98\xe3\x80\x82Ss\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }
1890test { try toAsciiPass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98\xe3\x80\x82Ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", false); }
1891test { try toAsciiPass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98\xe3\x80\x82Ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
702test { try toUnicodePass("xn--6-8cb7433a2ba.xn--ss-2vq", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }1892test { try toUnicodePass("xn--6-8cb7433a2ba.xn--ss-2vq", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }
1893test { try toAsciiPass("xn--6-8cb7433a2ba.xn--ss-2vq", "xn--6-8cb7433a2ba.xn--ss-2vq", false); }
1894test { try toAsciiPass("xn--6-8cb7433a2ba.xn--ss-2vq", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
703test { try toUnicodePass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }1895test { try toUnicodePass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }
1896test { try toAsciiPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", false); }
1897test { try toAsciiPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
704test { try toUnicodePass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98.SS\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }1898test { try toUnicodePass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98.SS\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }
1899test { try toAsciiPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98.SS\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", false); }
1900test { try toAsciiPass("\xe1\x83\x81\xe1\x82\xb16\xcc\x98.SS\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
705test { try toUnicodePass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98.Ss\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }1901test { try toUnicodePass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98.Ss\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.ss\xe1\xac\x83"); }
1902test { try toAsciiPass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98.Ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", false); }
1903test { try toAsciiPass("\xe1\x83\x81\xe2\xb4\x916\xcc\x98.Ss\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
706test { try toUnicodePass("xn--6-8cb7433a2ba.xn--zca894k", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83"); }1904test { try toUnicodePass("xn--6-8cb7433a2ba.xn--zca894k", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83"); }
1905test { try toAsciiPass("xn--6-8cb7433a2ba.xn--zca894k", "xn--6-8cb7433a2ba.xn--zca894k", false); }
1906test { try toAsciiPass("xn--6-8cb7433a2ba.xn--zca894k", "xn--6-8cb7433a2ba.xn--zca894k", true); }
707test { try toUnicodePass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83"); }1907test { try toUnicodePass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83", "\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83"); }
1908test { try toAsciiPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--zca894k", false); }
1909test { try toAsciiPass("\xe2\xb4\xa1\xe2\xb4\x916\xcc\x98.\xc3\x9f\xe1\xac\x83", "xn--6-8cb7433a2ba.xn--ss-2vq", true); }
708test { try toUnicodePass("xn--7zv.", "\xe6\xa2\x89."); }1910test { try toUnicodePass("xn--7zv.", "\xe6\xa2\x89."); }
709test { try toUnicodePass("\xe6\xa2\x89.", "\xe6\xa2\x89."); }1911test { try toUnicodePass("\xe6\xa2\x89.", "\xe6\xa2\x89."); }
1912test { try toAsciiPass("\xe0\xa1\x93\xef\xbc\x8e\xe2\x80\x8c\xc3\x9f", "xn--iwb.ss", true); }
1913test { try toAsciiPass("\xe0\xa1\x93.\xe2\x80\x8c\xc3\x9f", "xn--iwb.ss", true); }
1914test { try toAsciiPass("\xe0\xa1\x93.\xe2\x80\x8cSS", "xn--iwb.ss", true); }
1915test { try toAsciiPass("\xe0\xa1\x93.\xe2\x80\x8css", "xn--iwb.ss", true); }
710test { try toUnicodePass("xn--iwb.ss", "\xe0\xa1\x93.ss"); }1916test { try toUnicodePass("xn--iwb.ss", "\xe0\xa1\x93.ss"); }
1917test { try toAsciiPass("xn--iwb.ss", "xn--iwb.ss", false); }
1918test { try toAsciiPass("xn--iwb.ss", "xn--iwb.ss", true); }
711test { try toUnicodePass("\xe0\xa1\x93.ss", "\xe0\xa1\x93.ss"); }1919test { try toUnicodePass("\xe0\xa1\x93.ss", "\xe0\xa1\x93.ss"); }
1920test { try toAsciiPass("\xe0\xa1\x93.ss", "xn--iwb.ss", false); }
1921test { try toAsciiPass("\xe0\xa1\x93.ss", "xn--iwb.ss", true); }
712test { try toUnicodePass("\xe0\xa1\x93.SS", "\xe0\xa1\x93.ss"); }1922test { try toUnicodePass("\xe0\xa1\x93.SS", "\xe0\xa1\x93.ss"); }
1923test { try toAsciiPass("\xe0\xa1\x93.SS", "xn--iwb.ss", false); }
1924test { try toAsciiPass("\xe0\xa1\x93.SS", "xn--iwb.ss", true); }
1925test { try toAsciiPass("\xe0\xa1\x93\xef\xbc\x8e\xe2\x80\x8cSS", "xn--iwb.ss", true); }
1926test { try toAsciiPass("\xe0\xa1\x93\xef\xbc\x8e\xe2\x80\x8css", "xn--iwb.ss", true); }
1927test { try toAsciiPass("\xe0\xa1\x93.\xe2\x80\x8cSs", "xn--iwb.ss", true); }
1928test { try toAsciiPass("\xe0\xa1\x93\xef\xbc\x8e\xe2\x80\x8cSs", "xn--iwb.ss", true); }
1929test { try toAsciiPass("\xf0\x90\xab\x9c\xf0\x91\x8c\xbc\xe2\x80\x8d\xef\xbc\x8e\xe5\xa9\x80", "xn--ix9c26l.xn--q0s", true); }
1930test { try toAsciiPass("\xf0\x90\xab\x9c\xf0\x91\x8c\xbc\xe2\x80\x8d.\xe5\xa9\x80", "xn--ix9c26l.xn--q0s", true); }
713test { try toUnicodePass("xn--ix9c26l.xn--q0s", "\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80"); }1931test { try toUnicodePass("xn--ix9c26l.xn--q0s", "\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80"); }
1932test { try toAsciiPass("xn--ix9c26l.xn--q0s", "xn--ix9c26l.xn--q0s", false); }
1933test { try toAsciiPass("xn--ix9c26l.xn--q0s", "xn--ix9c26l.xn--q0s", true); }
714test { try toUnicodePass("\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80", "\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80"); }1934test { try toUnicodePass("\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80", "\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80"); }
1935test { try toAsciiPass("\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80", "xn--ix9c26l.xn--q0s", false); }
1936test { try toAsciiPass("\xf0\x90\xab\x9c\xf0\x91\x8c\xbc.\xe5\xa9\x80", "xn--ix9c26l.xn--q0s", true); }
715test { try toUnicodePass("\xf0\x90\xab\x80\xef\xbc\x8e\xda\x89\xf0\x91\x8c\x80", "\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80"); }1937test { try toUnicodePass("\xf0\x90\xab\x80\xef\xbc\x8e\xda\x89\xf0\x91\x8c\x80", "\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80"); }
1938test { try toAsciiPass("\xf0\x90\xab\x80\xef\xbc\x8e\xda\x89\xf0\x91\x8c\x80", "xn--pw9c.xn--fjb8658k", false); }
1939test { try toAsciiPass("\xf0\x90\xab\x80\xef\xbc\x8e\xda\x89\xf0\x91\x8c\x80", "xn--pw9c.xn--fjb8658k", true); }
716test { try toUnicodePass("\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80", "\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80"); }1940test { try toUnicodePass("\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80", "\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80"); }
1941test { try toAsciiPass("\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80", "xn--pw9c.xn--fjb8658k", false); }
1942test { try toAsciiPass("\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80", "xn--pw9c.xn--fjb8658k", true); }
717test { try toUnicodePass("xn--pw9c.xn--fjb8658k", "\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80"); }1943test { try toUnicodePass("xn--pw9c.xn--fjb8658k", "\xf0\x90\xab\x80.\xda\x89\xf0\x91\x8c\x80"); }
1944test { try toAsciiPass("xn--pw9c.xn--fjb8658k", "xn--pw9c.xn--fjb8658k", false); }
1945test { try toAsciiPass("xn--pw9c.xn--fjb8658k", "xn--pw9c.xn--fjb8658k", true); }
718test { try toUnicodePass("xn--r97c.", "\xf0\x90\x8b\xb7."); }1946test { try toUnicodePass("xn--r97c.", "\xf0\x90\x8b\xb7."); }
719test { try toUnicodePass("\xf0\x90\x8b\xb7.", "\xf0\x90\x8b\xb7."); }1947test { try toUnicodePass("\xf0\x90\x8b\xb7.", "\xf0\x90\x8b\xb7."); }