line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package __MAF::Test; |
2
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
200691
|
use Exporter; |
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
462
|
|
4
|
|
|
|
|
|
|
our @ISA = qw; |
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
our @EXPORT = qw<_class_generator _role_generator _randomName>; |
7
|
|
|
|
|
|
|
|
8
|
|
|
|
|
|
|
sub _randomName { |
9
|
121
|
|
|
121
|
|
1636
|
my $chars = [ 'A' .. 'Z', 'a' .. 'z', '0' .. '9' ]; |
10
|
121
|
|
|
|
|
222
|
my $name = ''; |
11
|
121
|
|
|
|
|
639
|
$name .= $chars->[ rand( scalar @$chars ) ] for 1 .. 6; |
12
|
121
|
|
|
|
|
715
|
return "Tst_" . $name; |
13
|
|
|
|
|
|
|
} |
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
sub _class_generator { |
16
|
45
|
|
|
45
|
|
369178
|
my (%testParams) = @_; |
17
|
45
|
|
|
|
|
143
|
my $prefix = "__MAFT::Class::"; |
18
|
45
|
|
66
|
|
|
232
|
my $className = $prefix . ( $testParams{name} || _randomName ); |
19
|
|
|
|
|
|
|
|
20
|
|
|
|
|
|
|
#diag "CLASS NAME:" . $className; |
21
|
|
|
|
|
|
|
|
22
|
45
|
|
100
|
|
|
154
|
my $body = $testParams{body} // ''; |
23
|
45
|
|
|
|
|
62
|
my $extends = ''; |
24
|
|
|
|
|
|
|
|
25
|
45
|
100
|
|
|
|
122
|
if ( $testParams{extends} ) { |
26
|
|
|
|
|
|
|
my @extList = |
27
|
|
|
|
|
|
|
ref( $testParams{extends} ) |
28
|
0
|
|
|
|
|
0
|
? @{ $testParams{extends} } |
29
|
2
|
50
|
|
|
|
8
|
: ( $testParams{extends} ); |
30
|
|
|
|
|
|
|
$extends = |
31
|
2
|
|
|
|
|
4
|
"extends qw<" . join( " ", map { $prefix . $_ } @extList ) . ">;"; |
|
2
|
|
|
|
|
7
|
|
32
|
|
|
|
|
|
|
} |
33
|
|
|
|
|
|
|
|
34
|
1
|
|
|
1
|
0
|
8
|
my $rc = eval <
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
7
|
|
|
1
|
|
|
1
|
0
|
311
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
7
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
391
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
7
|
|
|
1
|
|
|
1
|
0
|
7
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
245
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
3
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
284
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
285
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
10
|
|
|
1
|
|
|
1
|
0
|
3
|
|
|
1
|
|
|
1
|
0
|
8
|
|
|
1
|
|
|
1
|
0
|
372
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
7
|
|
|
1
|
|
|
1
|
0
|
9
|
|
|
1
|
|
|
1
|
0
|
3
|
|
|
1
|
|
|
1
|
0
|
7
|
|
|
1
|
|
|
1
|
0
|
352
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
12
|
|
|
1
|
|
|
1
|
0
|
123
|
|
|
1
|
|
|
1
|
|
10
|
|
|
1
|
|
|
1
|
|
338
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
4
|
|
|
1
|
|
|
1
|
|
287
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
12
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
1
|
|
433
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
1
|
|
11
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
11
|
|
|
1
|
|
|
1
|
|
457
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
1
|
|
10
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
1
|
|
10
|
|
|
1
|
|
|
1
|
|
460
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
10
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
1
|
|
4
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
434
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
1850
|
|
|
1
|
|
|
1
|
|
10
|
|
|
1
|
|
|
1
|
|
11
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
1
|
|
421
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
1
|
|
10
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
447
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
2
|
|
18
|
|
|
1
|
|
|
2
|
|
10
|
|
|
1
|
|
|
2
|
|
3
|
|
|
1
|
|
|
2
|
|
8
|
|
|
1
|
|
|
2
|
|
404
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
2
|
|
385
|
|
|
1
|
|
|
2
|
|
3
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
2
|
|
10
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
2
|
|
361
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
2
|
|
3
|
|
|
1
|
|
|
0
|
|
6
|
|
|
1
|
|
|
2
|
|
416
|
|
|
1
|
|
|
0
|
|
3
|
|
|
1
|
|
|
0
|
|
6
|
|
|
1
|
|
|
0
|
|
7
|
|
|
1
|
|
|
2
|
|
3
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
2
|
|
371
|
|
|
1
|
|
|
2
|
|
4
|
|
|
1
|
|
|
0
|
|
6
|
|
|
1
|
|
|
2
|
|
10
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
3
|
|
385
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
309
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
0
|
|
2
|
|
|
1
|
|
|
2
|
|
3
|
|
|
1
|
|
|
2
|
|
5
|
|
|
1
|
|
|
0
|
|
3
|
|
|
1
|
|
|
0
|
|
4
|
|
|
1
|
|
|
2
|
|
278
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
0
|
|
4
|
|
|
1
|
|
|
2
|
|
272
|
|
|
1
|
|
|
0
|
|
1
|
|
|
1
|
|
|
2
|
|
152
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
251
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
260
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
263
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
263
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
305
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
310
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
279
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
255
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
296
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
257
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
259
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
258
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
258
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
310
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
273
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
301
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
273
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
277
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
323
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
45
|
|
|
|
|
3045
|
|
|
1
|
|
|
|
|
801
|
|
|
1
|
|
|
|
|
23
|
|
|
2
|
|
|
|
|
683
|
|
|
2
|
|
|
|
|
36
|
|
|
2
|
|
|
|
|
662
|
|
|
2
|
|
|
|
|
22
|
|
|
2
|
|
|
|
|
707
|
|
|
2
|
|
|
|
|
21
|
|
|
2
|
|
|
|
|
679
|
|
|
2
|
|
|
|
|
21
|
|
|
2
|
|
|
|
|
666
|
|
|
2
|
|
|
|
|
22
|
|
|
1
|
|
|
|
|
790
|
|
|
1
|
|
|
|
|
17
|
|
|
1
|
|
|
|
|
846
|
|
|
1
|
|
|
|
|
17
|
|
|
1
|
|
|
|
|
785
|
|
|
1
|
|
|
|
|
17
|
|
|
1
|
|
|
|
|
748
|
|
|
1
|
|
|
|
|
16
|
|
|
1
|
|
|
|
|
661
|
|
|
1
|
|
|
|
|
16
|
|
|
2
|
|
|
|
|
1308
|
|
|
2
|
|
|
|
|
31
|
|
|
2
|
|
|
|
|
27
|
|
|
2
|
|
|
|
|
19
|
|
|
1
|
|
|
|
|
717
|
|
|
1
|
|
|
|
|
18
|
|
|
2
|
|
|
|
|
639
|
|
|
2
|
|
|
|
|
22
|
|
|
2
|
|
|
|
|
660
|
|
|
2
|
|
|
|
|
20
|
|
|
2
|
|
|
|
|
652
|
|
|
2
|
|
|
|
|
22
|
|
|
2
|
|
|
|
|
640
|
|
|
2
|
|
|
|
|
69
|
|
|
2
|
|
|
|
|
656
|
|
|
2
|
|
|
|
|
23
|
|
|
2
|
|
|
|
|
1365
|
|
|
2
|
|
|
|
|
1328
|
|
|
2
|
|
|
|
|
1308
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
1233
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
1224
|
|
|
2
|
|
|
|
|
1252
|
|
|
2
|
|
|
|
|
1236
|
|
|
2
|
|
|
|
|
1398
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
1251
|
|
|
2
|
|
|
|
|
1336
|
|
|
1
|
|
|
|
|
792
|
|
|
3
|
|
|
|
|
769
|
|
|
3
|
|
|
|
|
8
|
|
|
3
|
|
|
|
|
24
|
|
|
1
|
|
|
|
|
1002
|
|
|
1
|
|
|
|
|
28
|
|
|
1
|
|
|
|
|
1122
|
|
|
1
|
|
|
|
|
27
|
|
|
1
|
|
|
|
|
1037
|
|
|
1
|
|
|
|
|
24
|
|
|
1
|
|
|
|
|
865
|
|
|
1
|
|
|
|
|
23
|
|
|
1
|
|
|
|
|
895
|
|
|
1
|
|
|
|
|
23
|
|
|
1
|
|
|
|
|
932
|
|
|
1
|
|
|
|
|
21
|
|
|
2
|
|
|
|
|
562
|
|
|
2
|
|
|
|
|
526
|
|
|
2
|
|
|
|
|
548
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
549
|
|
|
2
|
|
|
|
|
569
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
578
|
|
|
2
|
|
|
|
|
538
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
641
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
547
|
|
|
2
|
|
|
|
|
610
|
|
35
|
|
|
|
|
|
|
package $className; |
36
|
|
|
|
|
|
|
|
37
|
|
|
|
|
|
|
use Moo; |
38
|
|
|
|
|
|
|
$extends |
39
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
$body |
41
|
|
|
|
|
|
|
|
42
|
|
|
|
|
|
|
1; |
43
|
|
|
|
|
|
|
CLASS |
44
|
45
|
50
|
|
|
|
160
|
die $@ if $@; |
45
|
45
|
|
|
|
|
174
|
return $className; |
46
|
|
|
|
|
|
|
} |
47
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
sub _role_generator { |
49
|
43
|
|
|
43
|
|
394602
|
my (%testParams) = @_; |
50
|
43
|
|
|
|
|
85
|
my $prefix = "__MAFT::Role::"; |
51
|
43
|
|
66
|
|
|
214
|
my $testName = $testParams{name} || _randomName; |
52
|
43
|
|
|
|
|
126
|
my $roleName = $prefix . $testName; |
53
|
43
|
|
|
|
|
85
|
my $className = "__MAFT::RoleClass::" . $testName; |
54
|
|
|
|
|
|
|
|
55
|
43
|
|
100
|
|
|
108
|
my $body = $testParams{body} // ''; |
56
|
43
|
|
|
|
|
61
|
my $with = ''; |
57
|
|
|
|
|
|
|
|
58
|
43
|
100
|
|
|
|
126
|
if ( $testParams{extends} ) { |
59
|
|
|
|
|
|
|
my @extList = |
60
|
|
|
|
|
|
|
ref( $testParams{extends} ) |
61
|
0
|
|
|
|
|
0
|
? @{ $testParams{extends} } |
62
|
1
|
50
|
|
|
|
5
|
: ( $testParams{extends} ); |
63
|
1
|
|
|
|
|
3
|
$with = "with qw<" . join( " ", map { $prefix . $_ } @extList ) . ">;"; |
|
1
|
|
|
|
|
6
|
|
64
|
|
|
|
|
|
|
} |
65
|
|
|
|
|
|
|
|
66
|
43
|
|
|
|
|
146
|
my $code = <
|
67
|
|
|
|
|
|
|
package ${roleName}; |
68
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
use Moo::Role; |
70
|
|
|
|
|
|
|
$with |
71
|
|
|
|
|
|
|
|
72
|
|
|
|
|
|
|
$body |
73
|
|
|
|
|
|
|
|
74
|
|
|
|
|
|
|
1; |
75
|
|
|
|
|
|
|
ROLE |
76
|
1
|
|
|
1
|
0
|
434
|
my $rc = eval $code; |
|
1
|
|
|
1
|
0
|
11696
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
627
|
|
|
1
|
|
|
1
|
0
|
3
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
9
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
303
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
7
|
|
|
1
|
|
|
1
|
0
|
289
|
|
|
1
|
|
|
1
|
0
|
1
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
265
|
|
|
1
|
|
|
1
|
0
|
1
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
52
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
265
|
|
|
1
|
|
|
1
|
0
|
1
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
5
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
4
|
|
|
1
|
|
|
1
|
0
|
281
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
4
|
|
|
1
|
|
|
1
|
0
|
7
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
8
|
|
|
1
|
|
|
1
|
0
|
350
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
0
|
6
|
|
|
1
|
|
|
1
|
0
|
8
|
|
|
1
|
|
|
1
|
0
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
341
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
335
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
308
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
310
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
309
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
4
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
296
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
303
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
1
|
|
302
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
2
|
|
1
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
2
|
|
349
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
2
|
|
325
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
2
|
|
8
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
2
|
|
324
|
|
|
1
|
|
|
0
|
|
1
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
2
|
|
8
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
2
|
|
8
|
|
|
1
|
|
|
2
|
|
374
|
|
|
1
|
|
|
0
|
|
2
|
|
|
1
|
|
|
0
|
|
8
|
|
|
1
|
|
|
0
|
|
62
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
2
|
|
297
|
|
|
1
|
|
|
0
|
|
9
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
3
|
|
7
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
319
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
2
|
|
8
|
|
|
1
|
|
|
0
|
|
339
|
|
|
1
|
|
|
2
|
|
1
|
|
|
1
|
|
|
2
|
|
7
|
|
|
1
|
|
|
0
|
|
7
|
|
|
1
|
|
|
2
|
|
1
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
2
|
|
306
|
|
|
1
|
|
|
2
|
|
2
|
|
|
1
|
|
|
2
|
|
6
|
|
|
1
|
|
|
0
|
|
6
|
|
|
1
|
|
|
0
|
|
2
|
|
|
1
|
|
|
0
|
|
6
|
|
|
1
|
|
|
2
|
|
290
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
433
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
14
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
423
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
22
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
319
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
11
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
9
|
|
|
1
|
|
|
|
|
513
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
9
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
411
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
322
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
9
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
10
|
|
|
1
|
|
|
|
|
328
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
332
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
308
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
273
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
341
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
14
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
12
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
275
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
275
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
295
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
268
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
144
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
278
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
308
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
427
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
6
|
|
|
43
|
|
|
|
|
2800
|
|
|
1
|
|
|
|
|
684
|
|
|
1
|
|
|
|
|
16
|
|
|
2
|
|
|
|
|
771
|
|
|
2
|
|
|
|
|
23
|
|
|
1
|
|
|
|
|
681
|
|
|
1
|
|
|
|
|
15
|
|
|
1
|
|
|
|
|
663
|
|
|
1
|
|
|
|
|
15
|
|
|
1
|
|
|
|
|
664
|
|
|
1
|
|
|
|
|
15
|
|
|
2
|
|
|
|
|
651
|
|
|
2
|
|
|
|
|
22
|
|
|
2
|
|
|
|
|
727
|
|
|
2
|
|
|
|
|
24
|
|
|
2
|
|
|
|
|
706
|
|
|
2
|
|
|
|
|
21
|
|
|
2
|
|
|
|
|
684
|
|
|
2
|
|
|
|
|
21
|
|
|
1
|
|
|
|
|
696
|
|
|
1
|
|
|
|
|
15
|
|
|
1
|
|
|
|
|
701
|
|
|
1
|
|
|
|
|
15
|
|
|
2
|
|
|
|
|
1288
|
|
|
2
|
|
|
|
|
31
|
|
|
2
|
|
|
|
|
27
|
|
|
2
|
|
|
|
|
17
|
|
|
1
|
|
|
|
|
748
|
|
|
1
|
|
|
|
|
17
|
|
|
2
|
|
|
|
|
712
|
|
|
2
|
|
|
|
|
22
|
|
|
2
|
|
|
|
|
873
|
|
|
2
|
|
|
|
|
30
|
|
|
2
|
|
|
|
|
672
|
|
|
2
|
|
|
|
|
22
|
|
|
2
|
|
|
|
|
684
|
|
|
2
|
|
|
|
|
23
|
|
|
2
|
|
|
|
|
663
|
|
|
2
|
|
|
|
|
36
|
|
|
2
|
|
|
|
|
1313
|
|
|
2
|
|
|
|
|
1295
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
1298
|
|
|
2
|
|
|
|
|
1259
|
|
|
2
|
|
|
|
|
1420
|
|
|
2
|
|
|
|
|
1553
|
|
|
2
|
|
|
|
|
1281
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
1361
|
|
|
2
|
|
|
|
|
1327
|
|
|
2
|
|
|
|
|
1257
|
|
|
0
|
|
|
|
|
0
|
|
|
1
|
|
|
|
|
845
|
|
|
3
|
|
|
|
|
784
|
|
|
3
|
|
|
|
|
8
|
|
|
3
|
|
|
|
|
25
|
|
|
1
|
|
|
|
|
697
|
|
|
1
|
|
|
|
|
16
|
|
|
1
|
|
|
|
|
951
|
|
|
1
|
|
|
|
|
17
|
|
|
1
|
|
|
|
|
720
|
|
|
1
|
|
|
|
|
16
|
|
|
1
|
|
|
|
|
709
|
|
|
1
|
|
|
|
|
15
|
|
|
1
|
|
|
|
|
696
|
|
|
1
|
|
|
|
|
16
|
|
|
1
|
|
|
|
|
674
|
|
|
1
|
|
|
|
|
16
|
|
|
2
|
|
|
|
|
595
|
|
|
2
|
|
|
|
|
729
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
562
|
|
|
2
|
|
|
|
|
588
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
534
|
|
|
2
|
|
|
|
|
636
|
|
|
2
|
|
|
|
|
590
|
|
|
2
|
|
|
|
|
538
|
|
|
2
|
|
|
|
|
685
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
0
|
|
|
|
|
0
|
|
|
2
|
|
|
|
|
556
|
|
77
|
43
|
50
|
|
|
|
142
|
die $@ if $@; |
78
|
|
|
|
|
|
|
|
79
|
1
|
|
|
1
|
|
509
|
$rc = eval <
|
|
1
|
|
|
1
|
|
1975
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
25
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
9
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
1
|
|
3
|
|
|
1
|
|
|
1
|
|
8
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
2
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
4
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
7
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
1
|
|
|
1
|
|
|
1
|
|
6
|
|
|
1
|
|
|
1
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
9
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
6
|
|
|
1
|
|
|
|
|
10
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
8
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
7
|
|
|
1
|
|
|
|
|
4
|
|
|
1
|
|
|
|
|
7
|
|
|
43
|
|
|
|
|
2174
|
|
80
|
|
|
|
|
|
|
package ${className}; |
81
|
|
|
|
|
|
|
|
82
|
|
|
|
|
|
|
use Moo; |
83
|
|
|
|
|
|
|
with qw<${roleName}>; |
84
|
|
|
|
|
|
|
|
85
|
|
|
|
|
|
|
1; |
86
|
|
|
|
|
|
|
CLASS |
87
|
43
|
50
|
|
|
|
140
|
die $@ if $@; |
88
|
43
|
|
|
|
|
196
|
return $className; |
89
|
|
|
|
|
|
|
} |
90
|
|
|
|
|
|
|
|
91
|
|
|
|
|
|
|
1; |