-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.support.js
More file actions
483 lines (399 loc) · 47.6 KB
/
test.support.js
File metadata and controls
483 lines (399 loc) · 47.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
"use strict";
/*;
@test-license:
The MIT License (MIT)
@mit-license
Copyright (@c) 2017 Richeve Siodina Bebedor
@email: richeve.bebedor@gmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@end-test-license
@test-configuration:
{
"package": "doubt",
"path": "doubt/test.module.js",
"file": "test.module.js",
"module": "test",
"author": "Richeve S. Bebedor",
"eMail": "richeve.bebedor@gmail.com",
"contributors": [
"John Lenon Maghanoy <johnlenonmaghanoy@gmail.com>",
"Vinse Vinalon <vinsevinalon@gmail.com>"
],
"repository": "https://github.com/volkovasystems/doubt.git"
}
@end-test-configuration
@test-documentation:
Test module for doubt.
@end-test-documentation
@include:
{
"assert": "should",
"doubt": "doubt",
"path": "path"
}
@end-include
*/
var assert = require("should");
//: @client:
var doubt = require("./doubt.support.js");
//: @end-client
describe("doubt", function () {
//: @!bridge:
describe("`doubt( [ ], ARRAY )`", function () {
it("should return true", function () {
assert.equal(doubt([], ARRAY), true);
});
});
describe("`doubt( [ ], ARRAY_LIKE )`", function () {
it("should return true", function () {
assert.equal(doubt([], ARRAY_LIKE), true);
});
});
describe("`doubt( [ ], ITERABLE )`", function () {
it("should return true", function () {
assert.equal(doubt([], ITERABLE), true);
});
});
describe("`doubt( [ ], AS_ARRAY )`", function () {
it("should return true", function () {
assert.equal(doubt([], AS_ARRAY), true);
});
});
describe("`doubt( [ 1, 2, 3 ], ARRAY )`", function () {
it("should return true", function () {
assert.equal(doubt([1, 2, 3], ARRAY), true);
});
});
describe("`doubt( [ 1, 2, 3 ], ARRAY_LIKE )`", function () {
it("should return true", function () {
assert.equal(doubt([1, 2, 3], ARRAY_LIKE), true);
});
});
describe("`doubt( [ 1, 2, 3 ], ITERABLE )`", function () {
it("should return true", function () {
assert.equal(doubt([1, 2, 3], ITERABLE), true);
});
});
describe("`doubt( [ 1, 2, 3 ], AS_ARRAY )`", function () {
it("should return true", function () {
assert.equal(doubt([1, 2, 3], AS_ARRAY), true);
});
});
describe("`doubt( ( function( ){ return arguments; } )( ), ARGUMENTS )`", function () {
it("should return true", function () {
assert.equal(doubt(function () {return arguments;}(), ARGUMENTS), true);
});
});
describe("`doubt( ( function( ){ return arguments; } )( ), ARRAY_LIKE )`", function () {
it("should return true", function () {
assert.equal(doubt(function () {return arguments;}(), ARRAY_LIKE), true);
});
});
describe("`doubt( ( function( ){ return arguments; } )( ), ITERABLE )`", function () {
it("should return true", function () {
assert.equal(doubt(function () {return arguments;}(), ITERABLE), true);
});
});
describe("`doubt( ( function( ){ return arguments; } )( ), AS_ARRAY )`", function () {
it("should return true", function () {
assert.equal(doubt(function () {return arguments;}(), AS_ARRAY), true);
});
});
describe("`doubt( ( function( ){ return arguments; } )( 'hello', 'world' ), ARGUMENTS )`", function () {
it("should return true", function () {
assert.equal(doubt(function () {return arguments;}("hello", "world"), ARGUMENTS), true);
});
});
describe("`doubt( ( function( ){ return arguments; } )( 'hello', 'world' ), ARRAY_LIKE )`", function () {
it("should return true", function () {
assert.equal(doubt(function () {return arguments;}("hello", "world"), ARRAY_LIKE), true);
});
});
describe("`doubt( ( function( ){ return arguments; } )( 'hello', 'world' ), ITERABLE )`", function () {
it("should return true", function () {
assert.equal(doubt(function () {return arguments;}("hello", "world"), ITERABLE), true);
});
});
describe("`doubt( ( function( ){ return arguments; } )( 'hello', 'world' ), AS_ARRAY )`", function () {
it("should return true", function () {
assert.equal(doubt(function () {return arguments;}("hello", "world"), AS_ARRAY), true);
});
});
describe("`doubt( { 'length': 0 }, ARRAY_LIKE )`", function () {
it("should return true", function () {
assert.equal(doubt({ "length": 0 }, ARRAY_LIKE), true);
});
});
describe("`doubt( { 'length': 0 }, AS_ARRAY )`", function () {
it("should return true", function () {
assert.equal(doubt({ "length": 0 }, AS_ARRAY), true);
});
});
describe("`doubt( [ ], ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt([], ARGUMENTS), false);
});
});
describe("`doubt( ( function( ){ return arguments; } )( ), ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(function () {return arguments;}(), ARRAY), false);
});
});
describe("`doubt( { 'length': 0 }, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt({ "length": 0 }, ARRAY), false);
});
});
describe("`doubt( { 'length': 0 }, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt({ "length": 0 }, ARGUMENTS), false);
});
});
describe("`doubt( { 'length': 0 }, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt({ "length": 0 }, ITERABLE), false);
});
});
describe("`doubt( 'hello world', ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt("hello world", ARRAY), false);
});
});
describe("`doubt( 'hello world', ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt("hello world", ARGUMENTS), false);
});
});
describe("`doubt( 'hello world', ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt("hello world", ARRAY_LIKE), false);
});
});
describe("`doubt( 'hello world', ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt("hello world", ITERABLE), false);
});
});
describe("`doubt( 'hello world', AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt("hello world", AS_ARRAY), false);
});
});
describe("`doubt( 123, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(123, ARRAY), false);
});
});
describe("`doubt( 123, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt(123, ARGUMENTS), false);
});
});
describe("`doubt( 123, ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt(123, ARRAY_LIKE), false);
});
});
describe("`doubt( 123, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt(123, ITERABLE), false);
});
});
describe("`doubt( 123, AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(123, AS_ARRAY), false);
});
});
describe("`doubt( 0, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(0, ARRAY), false);
});
});
describe("`doubt( 0, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt(0, ARGUMENTS), false);
});
});
describe("`doubt( 0, ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt(0, ARRAY_LIKE), false);
});
});
describe("`doubt( 0, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt(0, ITERABLE), false);
});
});
describe("`doubt( 0, AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(0, AS_ARRAY), false);
});
});
describe("`doubt( Infinity, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(Infinity, ARRAY), false);
});
});
describe("`doubt( Infinity, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt(Infinity, ARGUMENTS), false);
});
});
describe("`doubt( Infinity, ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt(Infinity, ARRAY_LIKE), false);
});
});
describe("`doubt( Infinity, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt(Infinity, ITERABLE), false);
});
});
describe("`doubt( Infinity, AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(Infinity, AS_ARRAY), false);
});
});
describe("`doubt( NaN, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(NaN, ARRAY), false);
});
});
describe("`doubt( NaN, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt(NaN, ARGUMENTS), false);
});
});
describe("`doubt( NaN, ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt(NaN, ARRAY_LIKE), false);
});
});
describe("`doubt( NaN, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt(NaN, ITERABLE), false);
});
});
describe("`doubt( NaN, AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(NaN, AS_ARRAY), false);
});
});
describe("`doubt( true, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(true, ARRAY), false);
});
});
describe("`doubt( true, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt(true, ARGUMENTS), false);
});
});
describe("`doubt( true, ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt(true, ARRAY_LIKE), false);
});
});
describe("`doubt( true, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt(true, ITERABLE), false);
});
});
describe("`doubt( true, AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(true, AS_ARRAY), false);
});
});
describe("`doubt( false, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(false, ARRAY), false);
});
});
describe("`doubt( false, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt(false, ARGUMENTS), false);
});
});
describe("`doubt( false, ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt(false, ARRAY_LIKE), false);
});
});
describe("`doubt( false, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt(false, ITERABLE), false);
});
});
describe("`doubt( false, AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt(false, AS_ARRAY), false);
});
});
describe("`doubt( { }, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt({}, ARRAY), false);
});
});
describe("`doubt( { }, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt({}, ARGUMENTS), false);
});
});
describe("`doubt( { }, ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt({}, ARRAY_LIKE), false);
});
});
describe("`doubt( { }, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt({}, ITERABLE), false);
});
});
describe("`doubt( { }, AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt({}, AS_ARRAY), false);
});
});
describe("`doubt( { 'hello': 'world' }, ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt({ 'hello': 'world' }, ARRAY), false);
});
});
describe("`doubt( { 'hello': 'world' }, ARGUMENTS )`", function () {
it("should return false", function () {
assert.equal(doubt({ 'hello': 'world' }, ARGUMENTS), false);
});
});
describe("`doubt( { 'hello': 'world' }, ARRAY_LIKE )`", function () {
it("should return false", function () {
assert.equal(doubt({ 'hello': 'world' }, ARRAY_LIKE), false);
});
});
describe("`doubt( { 'hello': 'world' }, ITERABLE )`", function () {
it("should return false", function () {
assert.equal(doubt({ 'hello': 'world' }, ITERABLE), false);
});
});
describe("`doubt( { 'hello': 'world' }, AS_ARRAY )`", function () {
it("should return false", function () {
assert.equal(doubt({ 'hello': 'world' }, AS_ARRAY), false);
});
});
//: @end-bridge
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3Quc3VwcG9ydC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiZG91YnQiLCJkZXNjcmliZSIsIml0IiwiZXF1YWwiLCJBUlJBWSIsIkFSUkFZX0xJS0UiLCJJVEVSQUJMRSIsIkFTX0FSUkFZIiwiYXJndW1lbnRzIiwiQVJHVU1FTlRTIiwiSW5maW5pdHkiLCJOYU4iXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdEQSxJQUFNQSxTQUFTQyxRQUFTLFFBQVQsQ0FBZjs7OztBQUlBO0FBQ0EsSUFBTUMsUUFBUUQsUUFBUyxvQkFBVCxDQUFkO0FBQ0E7Ozs7QUFJQUUsU0FBVSxPQUFWLEVBQW1CLFlBQU87QUFDekI7QUFDQUEsVUFBVSx1QkFBVixFQUFtQyxZQUFPO0FBQ3pDQyxLQUFJLG9CQUFKLEVBQTBCLFlBQU87QUFDaENKLFVBQU9LLEtBQVAsQ0FBY0gsTUFBTyxFQUFQLEVBQVlJLEtBQVosQ0FBZCxFQUFtQyxJQUFuQztBQUNBLEdBRkQ7QUFHQSxFQUpEOztBQU1BSCxVQUFVLDRCQUFWLEVBQXdDLFlBQU87QUFDOUNDLEtBQUksb0JBQUosRUFBMEIsWUFBTztBQUNoQ0osVUFBT0ssS0FBUCxDQUFjSCxNQUFPLEVBQVAsRUFBWUssVUFBWixDQUFkLEVBQXdDLElBQXhDO0FBQ0EsR0FGRDtBQUdBLEVBSkQ7O0FBTUFKLFVBQVUsMEJBQVYsRUFBc0MsWUFBTztBQUM1Q0MsS0FBSSxvQkFBSixFQUEwQixZQUFPO0FBQ2hDSixVQUFPSyxLQUFQLENBQWNILE1BQU8sRUFBUCxFQUFZTSxRQUFaLENBQWQsRUFBc0MsSUFBdEM7QUFDQSxHQUZEO0FBR0EsRUFKRDs7QUFNQUwsVUFBVSwwQkFBVixFQUFzQyxZQUFPO0FBQzVDQyxLQUFJLG9CQUFKLEVBQTBCLFlBQU87QUFDaENKLFVBQU9LLEtBQVAsQ0FBY0gsTUFBTyxFQUFQLEVBQVlPLFFB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LEVBQTJCLFlBQU87QUFDakNKLFVBQU9LLEtBQVAsQ0FBY0gsTUFBTyxFQUFFLFNBQVMsT0FBWCxFQUFQLEVBQTZCSSxLQUE3QixDQUFkLEVBQW9ELEtBQXBEO0FBQ0EsR0FGRDtBQUdBLEVBSkQ7O0FBTUFILFVBQVUsNENBQVYsRUFBd0QsWUFBTztBQUM5REMsS0FBSSxxQkFBSixFQUEyQixZQUFPO0FBQ2pDSixVQUFPSyxLQUFQLENBQWNILE1BQU8sRUFBRSxTQUFTLE9BQVgsRUFBUCxFQUE2QlMsU0FBN0IsQ0FBZCxFQUF3RCxLQUF4RDtBQUNBLEdBRkQ7QUFHQSxFQUpEOztBQU1BUixVQUFVLDZDQUFWLEVBQXlELFlBQU87QUFDL0RDLEtBQUkscUJBQUosRUFBMkIsWUFBTztBQUNqQ0osVUFBT0ssS0FBUCxDQUFjSCxNQUFPLEVBQUUsU0FBUyxPQUFYLEVBQVAsRUFBNkJLLFVBQTdCLENBQWQsRUFBeUQsS0FBekQ7QUFDQSxHQUZEO0FBR0EsRUFKRDs7QUFNQUosVUFBVSwyQ0FBVixFQUF1RCxZQUFPO0FBQzdEQyxLQUFJLHFCQUFKLEVBQTJCLFlBQU87QUFDakNKLFVBQU9LLEtBQVAsQ0FBY0gsTUFBTyxFQUFFLFNBQVMsT0FBWCxFQUFQLEVBQTZCTSxRQUE3QixDQUFkLEVBQXVELEtBQXZEO0FBQ0EsR0FGRDtBQUdBLEVBSkQ7O0FBTUFMLFVBQVUsMkNBQVYsRUFBdUQsWUFBTztBQUM3REMsS0FBSSxxQkFBSixFQUEyQixZQUFPO0FBQ2pDSixVQUFPSyxLQUFQLENBQWNILE1BQU8sRUFBRSxTQUFTLE9BQVgsRUFBUCxFQUE2Qk8sUUFBN0IsQ0FBZCxFQUF1RCxLQUF2RDtBQUNBLEdBRkQ7QUFHQSxFQUpEO0FBS0E7OztBQUdBLENBNVpEIiwiZmlsZSI6InRlc3Quc3VwcG9ydC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4vKjtcblx0QHRlc3QtbGljZW5zZTpcblx0XHRUaGUgTUlUIExpY2Vuc2UgKE1JVClcblx0XHRAbWl0LWxpY2Vuc2VcblxuXHRcdENvcHlyaWdodCAoQGMpIDIwMTcgUmljaGV2ZSBTaW9kaW5hIEJlYmVkb3Jcblx0XHRAZW1haWw6IHJpY2hldmUuYmViZWRvckBnbWFpbC5jb21cblxuXHRcdFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcblx0XHRvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5cdFx0aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuXHRcdHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcblx0XHRjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcblx0XHRmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG5cdFx0VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5cdFx0Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuXHRcdFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcblx0XHRJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcblx0XHRGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcblx0XHRBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG5cdFx0TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcblx0XHRPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuXHRcdFNPRlRXQVJFLlxuXHRAZW5kLXRlc3QtbGljZW5zZVxuXG5cdEB0ZXN0LWNvbmZpZ3VyYXRpb246XG5cdFx0e1xuXHRcdFx0XCJwYWNrYWdlXCI6IFwiZG91YnRcIixcblx0XHRcdFwicGF0aFwiOiBcImRvdWJ0L3Rlc3QubW9kdWxlLmpzXCIsXG5cdFx0XHRcImZpbGVcIjogXCJ0ZXN0Lm1vZHVsZS5qc1wiLFxuXHRcdFx0XCJtb2R1bGVcIjogXCJ0ZXN0XCIsXG5cdFx0XHRcImF1dGhvclwiOiBcIlJpY2hldmUgUy4gQmViZWRvclwiLFxuXHRcdFx0XCJlTWFpbFwiOiBcInJpY2hldmUuYmViZWRvckBnbWFpbC5jb21cIixcblx0XHRcdFwiY29udHJpYnV0b3JzXCI6IFtcblx0XHRcdFx0XCJKb2huIExlbm9uIE1hZ2hhbm95IDxqb2hubGVub25tYWdoYW5veUBnbWFpbC5jb20+XCIsXG5cdFx0XHRcdFwiVmluc2UgVmluYWxvbiA8dmluc2V2aW5hbG9uQGdtYWlsLmNvbT5cIlxuXHRcdFx0XSxcblx0XHRcdFwicmVwb3NpdG9yeVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS92b2xrb3Zhc3lzdGVtcy9kb3VidC5naXRcIlxuXHRcdH1cblx0QGVuZC10ZXN0LWNvbmZpZ3VyYXRpb25cblxuXHRAdGVzdC1kb2N1bWVudGF0aW9uOlxuXHRcdFRlc3QgbW9kdWxlIGZvciBkb3VidC5cblx0QGVuZC10ZXN0LWRvY3VtZW50YXRpb25cblxuXHRAaW5jbHVkZTpcblx0XHR7XG5cdFx0XHRcImFzc2VydFwiOiBcInNob3VsZFwiLFxuXHRcdFx0XCJkb3VidFwiOiBcImRvdWJ0XCIsXG5cdFx0XHRcInBhdGhcIjogXCJwYXRoXCJcblx0XHR9XG5cdEBlbmQtaW5jbHVkZVxuKi9cblxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSggXCJzaG91bGRcIiApO1xuXG5cblxuLy86IEBjbGllbnQ6XG5jb25zdCBkb3VidCA9IHJlcXVpcmUoIFwiLi9kb3VidC5zdXBwb3J0LmpzXCIgKTtcbi8vOiBAZW5kLWNsaWVudFxuXG5cblxuZGVzY3JpYmUoIFwiZG91YnRcIiwgKCApID0+IHtcblx0Ly86IEAhYnJpZGdlOlxuXHRkZXNjcmliZSggXCJgZG91YnQoIFsgXSwgQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIHRydWVcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIFsgXSwgQVJSQVkgKSwgdHJ1ZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggWyBdLCBBUlJBWV9MSUtFIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiB0cnVlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBbIF0sIEFSUkFZX0xJS0UgKSwgdHJ1ZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggWyBdLCBJVEVSQUJMRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gdHJ1ZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggWyBdLCBJVEVSQUJMRSApLCB0cnVlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBbIF0sIEFTX0FSUkFZIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiB0cnVlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBbIF0sIEFTX0FSUkFZICksIHRydWUgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIFsgMSwgMiwgMyBdLCBBUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gdHJ1ZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggWyAxLCAyLCAzIF0sIEFSUkFZICksIHRydWUgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIFsgMSwgMiwgMyBdLCBBUlJBWV9MSUtFIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiB0cnVlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBbIDEsIDIsIDMgXSwgQVJSQVlfTElLRSApLCB0cnVlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBbIDEsIDIsIDMgXSwgSVRFUkFCTEUgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIHRydWVcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIFsgMSwgMiwgMyBdLCBJVEVSQUJMRSApLCB0cnVlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBbIDEsIDIsIDMgXSwgQVNfQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIHRydWVcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIFsgMSwgMiwgMyBdLCBBU19BUlJBWSApLCB0cnVlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAoIGZ1bmN0aW9uKCApeyByZXR1cm4gYXJndW1lbnRzOyB9ICkoICksIEFSR1VNRU5UUyApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gdHJ1ZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggKCBmdW5jdGlvbiggKXsgcmV0dXJuIGFyZ3VtZW50czsgfSApKCApLCBBUkdVTUVOVFMgKSwgdHJ1ZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggKCBmdW5jdGlvbiggKXsgcmV0dXJuIGFyZ3VtZW50czsgfSApKCApLCBBUlJBWV9MSUtFIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiB0cnVlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCAoIGZ1bmN0aW9uKCApeyByZXR1cm4gYXJndW1lbnRzOyB9ICkoICksIEFSUkFZX0xJS0UgKSwgdHJ1ZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggKCBmdW5jdGlvbiggKXsgcmV0dXJuIGFyZ3VtZW50czsgfSApKCApLCBJVEVSQUJMRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gdHJ1ZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggKCBmdW5jdGlvbiggKXsgcmV0dXJuIGFyZ3VtZW50czsgfSApKCApLCBJVEVSQUJMRSApLCB0cnVlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAoIGZ1bmN0aW9uKCApeyByZXR1cm4gYXJndW1lbnRzOyB9ICkoICksIEFTX0FSUkFZIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiB0cnVlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCAoIGZ1bmN0aW9uKCApeyByZXR1cm4gYXJndW1lbnRzOyB9ICkoICksIEFTX0FSUkFZICksIHRydWUgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoICggZnVuY3Rpb24oICl7IHJldHVybiBhcmd1bWVudHM7IH0gKSggJ2hlbGxvJywgJ3dvcmxkJyApLCBBUkdVTUVOVFMgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIHRydWVcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoICggZnVuY3Rpb24oICl7IHJldHVybiBhcmd1bWVudHM7IH0gKSggXCJoZWxsb1wiLCBcIndvcmxkXCIgKSwgQVJHVU1FTlRTICksIHRydWUgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoICggZnVuY3Rpb24oICl7IHJldHVybiBhcmd1bWVudHM7IH0gKSggJ2hlbGxvJywgJ3dvcmxkJyApLCBBUlJBWV9MSUtFIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiB0cnVlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCAoIGZ1bmN0aW9uKCApeyByZXR1cm4gYXJndW1lbnRzOyB9ICkoIFwiaGVsbG9cIiwgXCJ3b3JsZFwiICksIEFSUkFZX0xJS0UgKSwgdHJ1ZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggKCBmdW5jdGlvbiggKXsgcmV0dXJuIGFyZ3VtZW50czsgfSApKCAnaGVsbG8nLCAnd29ybGQnICksIElURVJBQkxFIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiB0cnVlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCAoIGZ1bmN0aW9uKCApeyByZXR1cm4gYXJndW1lbnRzOyB9ICkoIFwiaGVsbG9cIiwgXCJ3b3JsZFwiICksIElURVJBQkxFICksIHRydWUgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoICggZnVuY3Rpb24oICl7IHJldHVybiBhcmd1bWVudHM7IH0gKSggJ2hlbGxvJywgJ3dvcmxkJyApLCBBU19BUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gdHJ1ZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggKCBmdW5jdGlvbiggKXsgcmV0dXJuIGFyZ3VtZW50czsgfSApKCBcImhlbGxvXCIsIFwid29ybGRcIiApLCBBU19BUlJBWSApLCB0cnVlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB7ICdsZW5ndGgnOiAwIH0sIEFSUkFZX0xJS0UgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIHRydWVcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHsgXCJsZW5ndGhcIjogMCB9LCBBUlJBWV9MSUtFICksIHRydWUgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIHsgJ2xlbmd0aCc6IDAgfSwgQVNfQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIHRydWVcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHsgXCJsZW5ndGhcIjogMCB9LCBBU19BUlJBWSApLCB0cnVlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBbIF0sIEFSR1VNRU5UUyApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIFsgXSwgQVJHVU1FTlRTICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAoIGZ1bmN0aW9uKCApeyByZXR1cm4gYXJndW1lbnRzOyB9ICkoICksIEFSUkFZIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiBmYWxzZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggKCBmdW5jdGlvbiggKXsgcmV0dXJuIGFyZ3VtZW50czsgfSApKCApLCBBUlJBWSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggeyAnbGVuZ3RoJzogMCB9LCBBUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHsgXCJsZW5ndGhcIjogMCB9LCBBUlJBWSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggeyAnbGVuZ3RoJzogMCB9LCBBUkdVTUVOVFMgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCB7IFwibGVuZ3RoXCI6IDAgfSwgQVJHVU1FTlRTICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB7ICdsZW5ndGgnOiAwIH0sIElURVJBQkxFIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiBmYWxzZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggeyBcImxlbmd0aFwiOiAwIH0sIElURVJBQkxFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAnaGVsbG8gd29ybGQnLCBBUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIFwiaGVsbG8gd29ybGRcIiwgQVJSQVkgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoICdoZWxsbyB3b3JsZCcsIEFSR1VNRU5UUyApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIFwiaGVsbG8gd29ybGRcIiwgQVJHVU1FTlRTICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAnaGVsbG8gd29ybGQnLCBBUlJBWV9MSUtFIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiBmYWxzZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggXCJoZWxsbyB3b3JsZFwiLCBBUlJBWV9MSUtFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAnaGVsbG8gd29ybGQnLCBJVEVSQUJMRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIFwiaGVsbG8gd29ybGRcIiwgSVRFUkFCTEUgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoICdoZWxsbyB3b3JsZCcsIEFTX0FSUkFZIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiBmYWxzZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggXCJoZWxsbyB3b3JsZFwiLCBBU19BUlJBWSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggMTIzLCBBUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIDEyMywgQVJSQVkgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIDEyMywgQVJHVU1FTlRTIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiBmYWxzZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggMTIzLCBBUkdVTUVOVFMgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIDEyMywgQVJSQVlfTElLRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIDEyMywgQVJSQVlfTElLRSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggMTIzLCBJVEVSQUJMRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIDEyMywgSVRFUkFCTEUgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIDEyMywgQVNfQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCAxMjMsIEFTX0FSUkFZICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAwLCBBUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIDAsIEFSUkFZICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAwLCBBUkdVTUVOVFMgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCAwLCBBUkdVTUVOVFMgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIDAsIEFSUkFZX0xJS0UgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCAwLCBBUlJBWV9MSUtFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAwLCBJVEVSQUJMRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIDAsIElURVJBQkxFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCAwLCBBU19BUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIDAsIEFTX0FSUkFZICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBJbmZpbml0eSwgQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBJbmZpbml0eSwgQVJSQVkgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIEluZmluaXR5LCBBUkdVTUVOVFMgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBJbmZpbml0eSwgQVJHVU1FTlRTICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBJbmZpbml0eSwgQVJSQVlfTElLRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIEluZmluaXR5LCBBUlJBWV9MSUtFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBJbmZpbml0eSwgSVRFUkFCTEUgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBJbmZpbml0eSwgSVRFUkFCTEUgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIEluZmluaXR5LCBBU19BUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIEluZmluaXR5LCBBU19BUlJBWSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggTmFOLCBBUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIE5hTiwgQVJSQVkgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIE5hTiwgQVJHVU1FTlRTIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiBmYWxzZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggTmFOLCBBUkdVTUVOVFMgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIE5hTiwgQVJSQVlfTElLRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIE5hTiwgQVJSQVlfTElLRSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggTmFOLCBJVEVSQUJMRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIE5hTiwgSVRFUkFCTEUgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIE5hTiwgQVNfQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBOYU4sIEFTX0FSUkFZICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB0cnVlLCBBUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHRydWUsIEFSUkFZICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB0cnVlLCBBUkdVTUVOVFMgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCB0cnVlLCBBUkdVTUVOVFMgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIHRydWUsIEFSUkFZX0xJS0UgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCB0cnVlLCBBUlJBWV9MSUtFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB0cnVlLCBJVEVSQUJMRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHRydWUsIElURVJBQkxFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB0cnVlLCBBU19BUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHRydWUsIEFTX0FSUkFZICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBmYWxzZSwgQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBmYWxzZSwgQVJSQVkgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIGZhbHNlLCBBUkdVTUVOVFMgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBmYWxzZSwgQVJHVU1FTlRTICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBmYWxzZSwgQVJSQVlfTElLRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIGZhbHNlLCBBUlJBWV9MSUtFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCBmYWxzZSwgSVRFUkFCTEUgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCBmYWxzZSwgSVRFUkFCTEUgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIGZhbHNlLCBBU19BUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIGZhbHNlLCBBU19BUlJBWSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggeyB9LCBBUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHsgfSwgQVJSQVkgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIHsgfSwgQVJHVU1FTlRTIClgXCIsICggKSA9PiB7XG5cdFx0aXQoIFwic2hvdWxkIHJldHVybiBmYWxzZVwiLCAoICkgPT4ge1xuXHRcdFx0YXNzZXJ0LmVxdWFsKCBkb3VidCggeyB9LCBBUkdVTUVOVFMgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIHsgfSwgQVJSQVlfTElLRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHsgfSwgQVJSQVlfTElLRSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXG5cdGRlc2NyaWJlKCBcImBkb3VidCggeyB9LCBJVEVSQUJMRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHsgfSwgSVRFUkFCTEUgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIHsgfSwgQVNfQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCB7IH0sIEFTX0FSUkFZICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB7ICdoZWxsbyc6ICd3b3JsZCcgfSwgQVJSQVkgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCB7ICdoZWxsbyc6ICd3b3JsZCcgfSwgQVJSQVkgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIHsgJ2hlbGxvJzogJ3dvcmxkJyB9LCBBUkdVTUVOVFMgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCB7ICdoZWxsbyc6ICd3b3JsZCcgfSwgQVJHVU1FTlRTICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB7ICdoZWxsbyc6ICd3b3JsZCcgfSwgQVJSQVlfTElLRSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHsgJ2hlbGxvJzogJ3dvcmxkJyB9LCBBUlJBWV9MSUtFICksIGZhbHNlICk7XG5cdFx0fSApO1xuXHR9ICk7XG5cblx0ZGVzY3JpYmUoIFwiYGRvdWJ0KCB7ICdoZWxsbyc6ICd3b3JsZCcgfSwgSVRFUkFCTEUgKWBcIiwgKCApID0+IHtcblx0XHRpdCggXCJzaG91bGQgcmV0dXJuIGZhbHNlXCIsICggKSA9PiB7XG5cdFx0XHRhc3NlcnQuZXF1YWwoIGRvdWJ0KCB7ICdoZWxsbyc6ICd3b3JsZCcgfSwgSVRFUkFCTEUgKSwgZmFsc2UgKTtcblx0XHR9ICk7XG5cdH0gKTtcblxuXHRkZXNjcmliZSggXCJgZG91YnQoIHsgJ2hlbGxvJzogJ3dvcmxkJyB9LCBBU19BUlJBWSApYFwiLCAoICkgPT4ge1xuXHRcdGl0KCBcInNob3VsZCByZXR1cm4gZmFsc2VcIiwgKCApID0+IHtcblx0XHRcdGFzc2VydC5lcXVhbCggZG91YnQoIHsgJ2hlbGxvJzogJ3dvcmxkJyB9LCBBU19BUlJBWSApLCBmYWxzZSApO1xuXHRcdH0gKTtcblx0fSApO1xuXHQvLzogQGVuZC1icmlkZ2VcblxuXHRcbn0gKTtcbiJdfQ==
//# sourceMappingURL=test.support.js.map