arnaucube
arnaucube/comunicationLeapPublic Self-hosted repository
comunicationLeap/node_modules/json3/coverage/lcov-report/lib/json3.js.html
node_modules/json3/coverage/lcov-report/lib/json3.js.htmlRaw
   1<!doctype html>
   2<html lang="en">
   3<head>
   4    <title>Code coverage report for lib/json3.js</title>
   5    <meta charset="utf-8">
   6
   7    <link rel="stylesheet" href="../prettify.css">
   8
   9    <style>
  10        body, html {
  11            margin:0; padding: 0;
  12        }
  13        body {
  14            font-family: Helvetica Neue, Helvetica,Arial;
  15            font-size: 10pt;
  16        }
  17        div.header, div.footer {
  18            background: #eee;
  19            padding: 1em;
  20        }
  21        div.header {
  22            z-index: 100;
  23            position: fixed;
  24            top: 0;
  25            border-bottom: 1px solid #666;
  26            width: 100%;
  27        }
  28        div.footer {
  29            border-top: 1px solid #666;
  30        }
  31        div.body {
  32            margin-top: 10em;
  33        }
  34        div.meta {
  35            font-size: 90%;
  36            text-align: center;
  37        }
  38        h1, h2, h3 {
  39            font-weight: normal;
  40        }
  41        h1 {
  42            font-size: 12pt;
  43        }
  44        h2 {
  45            font-size: 10pt;
  46        }
  47        pre {
  48            font-family: Consolas, Menlo, Monaco, monospace;
  49            margin: 0;
  50            padding: 0;
  51            line-height: 14px;
  52            font-size: 14px;
  53            -moz-tab-size: 2;
  54            -o-tab-size:  2;
  55            tab-size: 2;
  56        }
  57
  58        div.path { font-size: 110%; }
  59        div.path a:link, div.path a:visited { color: #000; }
  60        table.coverage { border-collapse: collapse; margin:0; padding: 0 }
  61
  62        table.coverage td {
  63            margin: 0;
  64            padding: 0;
  65            color: #111;
  66            vertical-align: top;
  67        }
  68        table.coverage td.line-count {
  69            width: 50px;
  70            text-align: right;
  71            padding-right: 5px;
  72        }
  73        table.coverage td.line-coverage {
  74            color: #777 !important;
  75            text-align: right;
  76            border-left: 1px solid #666;
  77            border-right: 1px solid #666;
  78        }
  79
  80        table.coverage td.text {
  81        }
  82
  83        table.coverage td span.cline-any {
  84            display: inline-block;
  85            padding: 0 5px;
  86            width: 40px;
  87        }
  88        table.coverage td span.cline-neutral {
  89            background: #eee;
  90        }
  91        table.coverage td span.cline-yes {
  92            background: #b5d592;
  93            color: #999;
  94        }
  95        table.coverage td span.cline-no {
  96            background: #fc8c84;
  97        }
  98
  99        .cstat-yes { color: #111; }
 100        .cstat-no { background: #fc8c84; color: #111; }
 101        .fstat-no { background: #ffc520; color: #111 !important; }
 102        .cbranch-no { background:  yellow !important; color: #111; }
 103        .missing-if-branch {
 104            display: inline-block;
 105            margin-right: 10px;
 106            position: relative;
 107            padding: 0 4px;
 108            background: black;
 109            color: yellow;
 110            xtext-decoration: line-through;
 111        }
 112        .missing-if-branch .typ {
 113            color: inherit !important;
 114        }
 115
 116        .entity, .metric { font-weight: bold; }
 117        .metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
 118        .metric small { font-size: 80%; font-weight: normal; color: #666; }
 119
 120        div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
 121        div.coverage-summary td, div.coverage-summary table  th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; }
 122        div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
 123        div.coverage-summary th.file { border-right: none !important; }
 124        div.coverage-summary th.pic { border-left: none !important; text-align: right; }
 125        div.coverage-summary th.pct { border-right: none !important; }
 126        div.coverage-summary th.abs { border-left: none !important; text-align: right; }
 127        div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
 128        div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
 129        div.coverage-summary td.file { text-align: right; border-left: 1px solid #666; white-space: nowrap;  }
 130        div.coverage-summary td.pic { min-width: 120px !important;  }
 131        div.coverage-summary a:link { text-decoration: none; color: #000; }
 132        div.coverage-summary a:visited { text-decoration: none; color: #333; }
 133        div.coverage-summary a:hover { text-decoration: underline; }
 134        div.coverage-summary tfoot td { border-top: 1px solid #666; }
 135
 136        div.coverage-summary .yui3-datatable-sort-indicator, div.coverage-summary .dummy-sort-indicator {
 137            height: 10px;
 138            width: 7px;
 139            display: inline-block;
 140            margin-left: 0.5em;
 141        }
 142        div.coverage-summary .yui3-datatable-sort-indicator {
 143            background: url("http://yui.yahooapis.com/3.6.0/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png") no-repeat scroll 0 0 transparent;
 144        }
 145        div.coverage-summary .yui3-datatable-sorted .yui3-datatable-sort-indicator {
 146            background-position: 0 -20px;
 147        }
 148        div.coverage-summary .yui3-datatable-sorted-desc .yui3-datatable-sort-indicator {
 149            background-position: 0 -10px;
 150        }
 151
 152        .high { background: #b5d592 !important; }
 153        .medium { background: #ffe87c !important; }
 154        .low { background: #fc8c84 !important; }
 155
 156        span.cover-fill, span.cover-empty {
 157            display:inline-block;
 158            border:1px solid #444;
 159            background: white;
 160            height: 12px;
 161        }
 162        span.cover-fill {
 163            background: #ccc;
 164            border-right: 1px solid #444;
 165        }
 166        span.cover-empty {
 167            background: white;
 168            border-left: none;
 169        }
 170        span.cover-full {
 171            border-right: none !important;
 172        }
 173        pre.prettyprint {
 174            border: none !important;
 175            padding: 0 !important;
 176            margin: 0 !important;
 177        }
 178        .com { color: #999 !important; }
 179    </style>
 180</head>
 181<body>
 182<div class="header low">
 183    <h1>Code coverage report for <span class="entity">lib/json3.js</span></h1>
 184    <h2>
 185        
 186        Statements: <span class="metric">13.77% <small>(50 / 363)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
 187        
 188        
 189        Branches: <span class="metric">15.32% <small>(59 / 385)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
 190        
 191        
 192        Functions: <span class="metric">11.54% <small>(3 / 26)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
 193        
 194        
 195        Lines: <span class="metric">13.77% <small>(50 / 363)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
 196        
 197    </h2>
 198    <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">lib/</a> &#187; json3.js</div>
 199</div>
 200<div class="body">
 201<pre><table class="coverage">
 202<tr><td class="line-count">1
 2032
 2043
 2054
 2065
 2076
 2087
 2098
 2109
 21110
 21211
 21312
 21413
 21514
 21615
 21716
 21817
 21918
 22019
 22120
 22221
 22322
 22423
 22524
 22625
 22726
 22827
 22928
 23029
 23130
 23231
 23332
 23433
 23534
 23635
 23736
 23837
 23938
 24039
 24140
 24241
 24342
 24443
 24544
 24645
 24746
 24847
 24948
 25049
 25150
 25251
 25352
 25453
 25554
 25655
 25756
 25857
 25958
 26059
 26160
 26261
 26362
 26463
 26564
 26665
 26766
 26867
 26968
 27069
 27170
 27271
 27372
 27473
 27574
 27675
 27776
 27877
 27978
 28079
 28180
 28281
 28382
 28483
 28584
 28685
 28786
 28887
 28988
 29089
 29190
 29291
 29392
 29493
 29594
 29695
 29796
 29897
 29998
 30099
 301100
 302101
 303102
 304103
 305104
 306105
 307106
 308107
 309108
 310109
 311110
 312111
 313112
 314113
 315114
 316115
 317116
 318117
 319118
 320119
 321120
 322121
 323122
 324123
 325124
 326125
 327126
 328127
 329128
 330129
 331130
 332131
 333132
 334133
 335134
 336135
 337136
 338137
 339138
 340139
 341140
 342141
 343142
 344143
 345144
 346145
 347146
 348147
 349148
 350149
 351150
 352151
 353152
 354153
 355154
 356155
 357156
 358157
 359158
 360159
 361160
 362161
 363162
 364163
 365164
 366165
 367166
 368167
 369168
 370169
 371170
 372171
 373172
 374173
 375174
 376175
 377176
 378177
 379178
 380179
 381180
 382181
 383182
 384183
 385184
 386185
 387186
 388187
 389188
 390189
 391190
 392191
 393192
 394193
 395194
 396195
 397196
 398197
 399198
 400199
 401200
 402201
 403202
 404203
 405204
 406205
 407206
 408207
 409208
 410209
 411210
 412211
 413212
 414213
 415214
 416215
 417216
 418217
 419218
 420219
 421220
 422221
 423222
 424223
 425224
 426225
 427226
 428227
 429228
 430229
 431230
 432231
 433232
 434233
 435234
 436235
 437236
 438237
 439238
 440239
 441240
 442241
 443242
 444243
 445244
 446245
 447246
 448247
 449248
 450249
 451250
 452251
 453252
 454253
 455254
 456255
 457256
 458257
 459258
 460259
 461260
 462261
 463262
 464263
 465264
 466265
 467266
 468267
 469268
 470269
 471270
 472271
 473272
 474273
 475274
 476275
 477276
 478277
 479278
 480279
 481280
 482281
 483282
 484283
 485284
 486285
 487286
 488287
 489288
 490289
 491290
 492291
 493292
 494293
 495294
 496295
 497296
 498297
 499298
 500299
 501300
 502301
 503302
 504303
 505304
 506305
 507306
 508307
 509308
 510309
 511310
 512311
 513312
 514313
 515314
 516315
 517316
 518317
 519318
 520319
 521320
 522321
 523322
 524323
 525324
 526325
 527326
 528327
 529328
 530329
 531330
 532331
 533332
 534333
 535334
 536335
 537336
 538337
 539338
 540339
 541340
 542341
 543342
 544343
 545344
 546345
 547346
 548347
 549348
 550349
 551350
 552351
 553352
 554353
 555354
 556355
 557356
 558357
 559358
 560359
 561360
 562361
 563362
 564363
 565364
 566365
 567366
 568367
 569368
 570369
 571370
 572371
 573372
 574373
 575374
 576375
 577376
 578377
 579378
 580379
 581380
 582381
 583382
 584383
 585384
 586385
 587386
 588387
 589388
 590389
 591390
 592391
 593392
 594393
 595394
 596395
 597396
 598397
 599398
 600399
 601400
 602401
 603402
 604403
 605404
 606405
 607406
 608407
 609408
 610409
 611410
 612411
 613412
 614413
 615414
 616415
 617416
 618417
 619418
 620419
 621420
 622421
 623422
 624423
 625424
 626425
 627426
 628427
 629428
 630429
 631430
 632431
 633432
 634433
 635434
 636435
 637436
 638437
 639438
 640439
 641440
 642441
 643442
 644443
 645444
 646445
 647446
 648447
 649448
 650449
 651450
 652451
 653452
 654453
 655454
 656455
 657456
 658457
 659458
 660459
 661460
 662461
 663462
 664463
 665464
 666465
 667466
 668467
 669468
 670469
 671470
 672471
 673472
 674473
 675474
 676475
 677476
 678477
 679478
 680479
 681480
 682481
 683482
 684483
 685484
 686485
 687486
 688487
 689488
 690489
 691490
 692491
 693492
 694493
 695494
 696495
 697496
 698497
 699498
 700499
 701500
 702501
 703502
 704503
 705504
 706505
 707506
 708507
 709508
 710509
 711510
 712511
 713512
 714513
 715514
 716515
 717516
 718517
 719518
 720519
 721520
 722521
 723522
 724523
 725524
 726525
 727526
 728527
 729528
 730529
 731530
 732531
 733532
 734533
 735534
 736535
 737536
 738537
 739538
 740539
 741540
 742541
 743542
 744543
 745544
 746545
 747546
 748547
 749548
 750549
 751550
 752551
 753552
 754553
 755554
 756555
 757556
 758557
 759558
 760559
 761560
 762561
 763562
 764563
 765564
 766565
 767566
 768567
 769568
 770569
 771570
 772571
 773572
 774573
 775574
 776575
 777576
 778577
 779578
 780579
 781580
 782581
 783582
 784583
 785584
 786585
 787586
 788587
 789588
 790589
 791590
 792591
 793592
 794593
 795594
 796595
 797596
 798597
 799598
 800599
 801600
 802601
 803602
 804603
 805604
 806605
 807606
 808607
 809608
 810609
 811610
 812611
 813612
 814613
 815614
 816615
 817616
 818617
 819618
 820619
 821620
 822621
 823622
 824623
 825624
 826625
 827626
 828627
 829628
 830629
 831630
 832631
 833632
 834633
 835634
 836635
 837636
 838637
 839638
 840639
 841640
 842641
 843642
 844643
 845644
 846645
 847646
 848647
 849648
 850649
 851650
 852651
 853652
 854653
 855654
 856655
 857656
 858657
 859658
 860659
 861660
 862661
 863662
 864663
 865664
 866665
 867666
 868667
 869668
 870669
 871670
 872671
 873672
 874673
 875674
 876675
 877676
 878677
 879678
 880679
 881680
 882681
 883682
 884683
 885684
 886685
 887686
 888687
 889688
 890689
 891690
 892691
 893692
 894693
 895694
 896695
 897696
 898697
 899698
 900699
 901700
 902701
 903702
 904703
 905704
 906705
 907706
 908707
 909708
 910709
 911710
 912711
 913712
 914713
 915714
 916715
 917716
 918717
 919718
 920719
 921720
 922721
 923722
 924723
 925724
 926725
 927726
 928727
 929728
 930729
 931730
 932731
 933732
 934733
 935734
 936735
 937736
 938737
 939738
 940739
 941740
 942741
 943742
 944743
 945744
 946745
 947746
 948747
 949748
 950749
 951750
 952751
 953752
 954753
 955754
 956755
 957756
 958757
 959758
 960759
 961760
 962761
 963762
 964763
 965764
 966765
 967766
 968767
 969768
 970769
 971770
 972771
 973772
 974773
 975774
 976775
 977776
 978777
 979778
 980779
 981780
 982781
 983782
 984783
 985784
 986785
 987786
 988787
 989788
 990789
 991790
 992791
 993792
 994793
 995794
 996795
 997796
 998797
 999798
1000799
1001800
1002801
1003802
1004803
1005804
1006805
1007806
1008807
1009808
1010809
1011810
1012811
1013812
1014813
1015814
1016815
1017816
1018817
1019818
1020819
1021820
1022821
1023822
1024823
1025824
1026825
1027826
1028827
1029828
1030829
1031830
1032831
1033832
1034833
1035834
1036835
1037836
1038837
1039838
1040839
1041840
1042841
1043842
1044843
1045844
1046845
1047846
1048847
1049848
1050849
1051850
1052851
1053852
1054853
1055854
1056855
1057856
1058857
1059858
1060859
1061860
1062861
1063862
1064863
1065864
1066865
1067866
1068867</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span>
1069<span class="cline-any cline-yes">1</span>
1070<span class="cline-any cline-neutral">&nbsp;</span>
1071<span class="cline-any cline-yes">1</span>
1072<span class="cline-any cline-neutral">&nbsp;</span>
1073<span class="cline-any cline-neutral">&nbsp;</span>
1074<span class="cline-any cline-neutral">&nbsp;</span>
1075<span class="cline-any cline-yes">1</span>
1076<span class="cline-any cline-neutral">&nbsp;</span>
1077<span class="cline-any cline-neutral">&nbsp;</span>
1078<span class="cline-any cline-yes">1</span>
1079<span class="cline-any cline-neutral">&nbsp;</span>
1080<span class="cline-any cline-neutral">&nbsp;</span>
1081<span class="cline-any cline-neutral">&nbsp;</span>
1082<span class="cline-any cline-yes">1</span>
1083<span class="cline-any cline-neutral">&nbsp;</span>
1084<span class="cline-any cline-yes">1</span>
1085<span class="cline-any cline-neutral">&nbsp;</span>
1086<span class="cline-any cline-neutral">&nbsp;</span>
1087<span class="cline-any cline-yes">1</span>
1088<span class="cline-any cline-yes">1</span>
1089<span class="cline-any cline-neutral">&nbsp;</span>
1090<span class="cline-any cline-neutral">&nbsp;</span>
1091<span class="cline-any cline-neutral">&nbsp;</span>
1092<span class="cline-any cline-no">&nbsp;</span>
1093<span class="cline-any cline-neutral">&nbsp;</span>
1094<span class="cline-any cline-neutral">&nbsp;</span>
1095<span class="cline-any cline-neutral">&nbsp;</span>
1096<span class="cline-any cline-yes">1</span>
1097<span class="cline-any cline-yes">1</span>
1098<span class="cline-any cline-neutral">&nbsp;</span>
1099<span class="cline-any cline-neutral">&nbsp;</span>
1100<span class="cline-any cline-yes">1</span>
1101<span class="cline-any cline-neutral">&nbsp;</span>
1102<span class="cline-any cline-neutral">&nbsp;</span>
1103<span class="cline-any cline-neutral">&nbsp;</span>
1104<span class="cline-any cline-neutral">&nbsp;</span>
1105<span class="cline-any cline-neutral">&nbsp;</span>
1106<span class="cline-any cline-neutral">&nbsp;</span>
1107<span class="cline-any cline-neutral">&nbsp;</span>
1108<span class="cline-any cline-neutral">&nbsp;</span>
1109<span class="cline-any cline-yes">1</span>
1110<span class="cline-any cline-yes">3</span>
1111<span class="cline-any cline-neutral">&nbsp;</span>
1112<span class="cline-any cline-no">&nbsp;</span>
1113<span class="cline-any cline-neutral">&nbsp;</span>
1114<span class="cline-any cline-neutral">&nbsp;</span>
1115<span class="cline-any cline-yes">3</span>
1116<span class="cline-any cline-yes">3</span>
1117<span class="cline-any cline-neutral">&nbsp;</span>
1118<span class="cline-any cline-neutral">&nbsp;</span>
1119<span class="cline-any cline-no">&nbsp;</span>
1120<span class="cline-any cline-yes">3</span>
1121<span class="cline-any cline-neutral">&nbsp;</span>
1122<span class="cline-any cline-neutral">&nbsp;</span>
1123<span class="cline-any cline-yes">1</span>
1124<span class="cline-any cline-neutral">&nbsp;</span>
1125<span class="cline-any cline-yes">2</span>
1126<span class="cline-any cline-neutral">&nbsp;</span>
1127<span class="cline-any cline-yes">2</span>
1128<span class="cline-any cline-yes">1</span>
1129<span class="cline-any cline-yes">1</span>
1130<span class="cline-any cline-neutral">&nbsp;</span>
1131<span class="cline-any cline-yes">1</span>
1132<span class="cline-any cline-yes">4</span>
1133<span class="cline-any cline-neutral">&nbsp;</span>
1134<span class="cline-any cline-yes">1</span>
1135<span class="cline-any cline-yes">1</span>
1136<span class="cline-any cline-neutral">&nbsp;</span>
1137<span class="cline-any cline-neutral">&nbsp;</span>
1138<span class="cline-any cline-neutral">&nbsp;</span>
1139<span class="cline-any cline-neutral">&nbsp;</span>
1140<span class="cline-any cline-neutral">&nbsp;</span>
1141<span class="cline-any cline-neutral">&nbsp;</span>
1142<span class="cline-any cline-neutral">&nbsp;</span>
1143<span class="cline-any cline-neutral">&nbsp;</span>
1144<span class="cline-any cline-neutral">&nbsp;</span>
1145<span class="cline-any cline-neutral">&nbsp;</span>
1146<span class="cline-any cline-neutral">&nbsp;</span>
1147<span class="cline-any cline-neutral">&nbsp;</span>
1148<span class="cline-any cline-neutral">&nbsp;</span>
1149<span class="cline-any cline-neutral">&nbsp;</span>
1150<span class="cline-any cline-neutral">&nbsp;</span>
1151<span class="cline-any cline-neutral">&nbsp;</span>
1152<span class="cline-any cline-neutral">&nbsp;</span>
1153<span class="cline-any cline-neutral">&nbsp;</span>
1154<span class="cline-any cline-neutral">&nbsp;</span>
1155<span class="cline-any cline-neutral">&nbsp;</span>
1156<span class="cline-any cline-neutral">&nbsp;</span>
1157<span class="cline-any cline-neutral">&nbsp;</span>
1158<span class="cline-any cline-neutral">&nbsp;</span>
1159<span class="cline-any cline-neutral">&nbsp;</span>
1160<span class="cline-any cline-neutral">&nbsp;</span>
1161<span class="cline-any cline-neutral">&nbsp;</span>
1162<span class="cline-any cline-neutral">&nbsp;</span>
1163<span class="cline-any cline-neutral">&nbsp;</span>
1164<span class="cline-any cline-neutral">&nbsp;</span>
1165<span class="cline-any cline-neutral">&nbsp;</span>
1166<span class="cline-any cline-neutral">&nbsp;</span>
1167<span class="cline-any cline-neutral">&nbsp;</span>
1168<span class="cline-any cline-neutral">&nbsp;</span>
1169<span class="cline-any cline-neutral">&nbsp;</span>
1170<span class="cline-any cline-neutral">&nbsp;</span>
1171<span class="cline-any cline-neutral">&nbsp;</span>
1172<span class="cline-any cline-neutral">&nbsp;</span>
1173<span class="cline-any cline-neutral">&nbsp;</span>
1174<span class="cline-any cline-neutral">&nbsp;</span>
1175<span class="cline-any cline-neutral">&nbsp;</span>
1176<span class="cline-any cline-neutral">&nbsp;</span>
1177<span class="cline-any cline-neutral">&nbsp;</span>
1178<span class="cline-any cline-neutral">&nbsp;</span>
1179<span class="cline-any cline-neutral">&nbsp;</span>
1180<span class="cline-any cline-neutral">&nbsp;</span>
1181<span class="cline-any cline-neutral">&nbsp;</span>
1182<span class="cline-any cline-neutral">&nbsp;</span>
1183<span class="cline-any cline-neutral">&nbsp;</span>
1184<span class="cline-any cline-neutral">&nbsp;</span>
1185<span class="cline-any cline-neutral">&nbsp;</span>
1186<span class="cline-any cline-neutral">&nbsp;</span>
1187<span class="cline-any cline-neutral">&nbsp;</span>
1188<span class="cline-any cline-neutral">&nbsp;</span>
1189<span class="cline-any cline-no">&nbsp;</span>
1190<span class="cline-any cline-neutral">&nbsp;</span>
1191<span class="cline-any cline-neutral">&nbsp;</span>
1192<span class="cline-any cline-yes">1</span>
1193<span class="cline-any cline-neutral">&nbsp;</span>
1194<span class="cline-any cline-neutral">&nbsp;</span>
1195<span class="cline-any cline-yes">2</span>
1196<span class="cline-any cline-yes">1</span>
1197<span class="cline-any cline-yes">1</span>
1198<span class="cline-any cline-yes">1</span>
1199<span class="cline-any cline-neutral">&nbsp;</span>
1200<span class="cline-any cline-neutral">&nbsp;</span>
1201<span class="cline-any cline-neutral">&nbsp;</span>
1202<span class="cline-any cline-yes">1</span>
1203<span class="cline-any cline-neutral">&nbsp;</span>
1204<span class="cline-any cline-yes">1</span>
1205<span class="cline-any cline-yes">1</span>
1206<span class="cline-any cline-yes">1</span>
1207<span class="cline-any cline-yes">1</span>
1208<span class="cline-any cline-neutral">&nbsp;</span>
1209<span class="cline-any cline-yes">1</span>
1210<span class="cline-any cline-neutral">&nbsp;</span>
1211<span class="cline-any cline-yes">1</span>
1212<span class="cline-any cline-yes">1</span>
1213<span class="cline-any cline-neutral">&nbsp;</span>
1214<span class="cline-any cline-neutral">&nbsp;</span>
1215<span class="cline-any cline-neutral">&nbsp;</span>
1216<span class="cline-any cline-yes">1</span>
1217<span class="cline-any cline-neutral">&nbsp;</span>
1218<span class="cline-any cline-neutral">&nbsp;</span>
1219<span class="cline-any cline-yes">1</span>
1220<span class="cline-any cline-yes">1</span>
1221<span class="cline-any cline-neutral">&nbsp;</span>
1222<span class="cline-any cline-neutral">&nbsp;</span>
1223<span class="cline-any cline-neutral">&nbsp;</span>
1224<span class="cline-any cline-yes">1</span>
1225<span class="cline-any cline-neutral">&nbsp;</span>
1226<span class="cline-any cline-neutral">&nbsp;</span>
1227<span class="cline-any cline-neutral">&nbsp;</span>
1228<span class="cline-any cline-neutral">&nbsp;</span>
1229<span class="cline-any cline-neutral">&nbsp;</span>
1230<span class="cline-any cline-no">&nbsp;</span>
1231<span class="cline-any cline-neutral">&nbsp;</span>
1232<span class="cline-any cline-neutral">&nbsp;</span>
1233<span class="cline-any cline-yes">1</span>
1234<span class="cline-any cline-neutral">&nbsp;</span>
1235<span class="cline-any cline-neutral">&nbsp;</span>
1236<span class="cline-any cline-yes">3</span>
1237<span class="cline-any cline-neutral">&nbsp;</span>
1238<span class="cline-any cline-yes">1</span>
1239<span class="cline-any cline-yes">1</span>
1240<span class="cline-any cline-yes">1</span>
1241<span class="cline-any cline-yes">1</span>
1242<span class="cline-any cline-neutral">&nbsp;</span>
1243<span class="cline-any cline-yes">1</span>
1244<span class="cline-any cline-neutral">&nbsp;</span>
1245<span class="cline-any cline-no">&nbsp;</span>
1246<span class="cline-any cline-no">&nbsp;</span>
1247<span class="cline-any cline-no">&nbsp;</span>
1248<span class="cline-any cline-no">&nbsp;</span>
1249<span class="cline-any cline-no">&nbsp;</span>
1250<span class="cline-any cline-no">&nbsp;</span>
1251<span class="cline-any cline-neutral">&nbsp;</span>
1252<span class="cline-any cline-neutral">&nbsp;</span>
1253<span class="cline-any cline-no">&nbsp;</span>
1254<span class="cline-any cline-neutral">&nbsp;</span>
1255<span class="cline-any cline-neutral">&nbsp;</span>
1256<span class="cline-any cline-no">&nbsp;</span>
1257<span class="cline-any cline-no">&nbsp;</span>
1258<span class="cline-any cline-neutral">&nbsp;</span>
1259<span class="cline-any cline-neutral">&nbsp;</span>
1260<span class="cline-any cline-no">&nbsp;</span>
1261<span class="cline-any cline-neutral">&nbsp;</span>
1262<span class="cline-any cline-neutral">&nbsp;</span>
1263<span class="cline-any cline-no">&nbsp;</span>
1264<span class="cline-any cline-no">&nbsp;</span>
1265<span class="cline-any cline-neutral">&nbsp;</span>
1266<span class="cline-any cline-neutral">&nbsp;</span>
1267<span class="cline-any cline-neutral">&nbsp;</span>
1268<span class="cline-any cline-neutral">&nbsp;</span>
1269<span class="cline-any cline-neutral">&nbsp;</span>
1270<span class="cline-any cline-no">&nbsp;</span>
1271<span class="cline-any cline-no">&nbsp;</span>
1272<span class="cline-any cline-no">&nbsp;</span>
1273<span class="cline-any cline-no">&nbsp;</span>
1274<span class="cline-any cline-neutral">&nbsp;</span>
1275<span class="cline-any cline-neutral">&nbsp;</span>
1276<span class="cline-any cline-neutral">&nbsp;</span>
1277<span class="cline-any cline-neutral">&nbsp;</span>
1278<span class="cline-any cline-neutral">&nbsp;</span>
1279<span class="cline-any cline-neutral">&nbsp;</span>
1280<span class="cline-any cline-no">&nbsp;</span>
1281<span class="cline-any cline-neutral">&nbsp;</span>
1282<span class="cline-any cline-neutral">&nbsp;</span>
1283<span class="cline-any cline-neutral">&nbsp;</span>
1284<span class="cline-any cline-no">&nbsp;</span>
1285<span class="cline-any cline-neutral">&nbsp;</span>
1286<span class="cline-any cline-no">&nbsp;</span>
1287<span class="cline-any cline-no">&nbsp;</span>
1288<span class="cline-any cline-neutral">&nbsp;</span>
1289<span class="cline-any cline-neutral">&nbsp;</span>
1290<span class="cline-any cline-neutral">&nbsp;</span>
1291<span class="cline-any cline-no">&nbsp;</span>
1292<span class="cline-any cline-neutral">&nbsp;</span>
1293<span class="cline-any cline-neutral">&nbsp;</span>
1294<span class="cline-any cline-no">&nbsp;</span>
1295<span class="cline-any cline-no">&nbsp;</span>
1296<span class="cline-any cline-no">&nbsp;</span>
1297<span class="cline-any cline-neutral">&nbsp;</span>
1298<span class="cline-any cline-neutral">&nbsp;</span>
1299<span class="cline-any cline-no">&nbsp;</span>
1300<span class="cline-any cline-no">&nbsp;</span>
1301<span class="cline-any cline-neutral">&nbsp;</span>
1302<span class="cline-any cline-neutral">&nbsp;</span>
1303<span class="cline-any cline-neutral">&nbsp;</span>
1304<span class="cline-any cline-neutral">&nbsp;</span>
1305<span class="cline-any cline-no">&nbsp;</span>
1306<span class="cline-any cline-neutral">&nbsp;</span>
1307<span class="cline-any cline-neutral">&nbsp;</span>
1308<span class="cline-any cline-neutral">&nbsp;</span>
1309<span class="cline-any cline-neutral">&nbsp;</span>
1310<span class="cline-any cline-neutral">&nbsp;</span>
1311<span class="cline-any cline-neutral">&nbsp;</span>
1312<span class="cline-any cline-neutral">&nbsp;</span>
1313<span class="cline-any cline-neutral">&nbsp;</span>
1314<span class="cline-any cline-no">&nbsp;</span>
1315<span class="cline-any cline-no">&nbsp;</span>
1316<span class="cline-any cline-no">&nbsp;</span>
1317<span class="cline-any cline-neutral">&nbsp;</span>
1318<span class="cline-any cline-neutral">&nbsp;</span>
1319<span class="cline-any cline-neutral">&nbsp;</span>
1320<span class="cline-any cline-neutral">&nbsp;</span>
1321<span class="cline-any cline-no">&nbsp;</span>
1322<span class="cline-any cline-no">&nbsp;</span>
1323<span class="cline-any cline-neutral">&nbsp;</span>
1324<span class="cline-any cline-neutral">&nbsp;</span>
1325<span class="cline-any cline-neutral">&nbsp;</span>
1326<span class="cline-any cline-neutral">&nbsp;</span>
1327<span class="cline-any cline-no">&nbsp;</span>
1328<span class="cline-any cline-no">&nbsp;</span>
1329<span class="cline-any cline-neutral">&nbsp;</span>
1330<span class="cline-any cline-neutral">&nbsp;</span>
1331<span class="cline-any cline-neutral">&nbsp;</span>
1332<span class="cline-any cline-no">&nbsp;</span>
1333<span class="cline-any cline-no">&nbsp;</span>
1334<span class="cline-any cline-neutral">&nbsp;</span>
1335<span class="cline-any cline-no">&nbsp;</span>
1336<span class="cline-any cline-no">&nbsp;</span>
1337<span class="cline-any cline-neutral">&nbsp;</span>
1338<span class="cline-any cline-neutral">&nbsp;</span>
1339<span class="cline-any cline-no">&nbsp;</span>
1340<span class="cline-any cline-neutral">&nbsp;</span>
1341<span class="cline-any cline-neutral">&nbsp;</span>
1342<span class="cline-any cline-no">&nbsp;</span>
1343<span class="cline-any cline-neutral">&nbsp;</span>
1344<span class="cline-any cline-no">&nbsp;</span>
1345<span class="cline-any cline-neutral">&nbsp;</span>
1346<span class="cline-any cline-neutral">&nbsp;</span>
1347<span class="cline-any cline-no">&nbsp;</span>
1348<span class="cline-any cline-no">&nbsp;</span>
1349<span class="cline-any cline-no">&nbsp;</span>
1350<span class="cline-any cline-no">&nbsp;</span>
1351<span class="cline-any cline-neutral">&nbsp;</span>
1352<span class="cline-any cline-neutral">&nbsp;</span>
1353<span class="cline-any cline-no">&nbsp;</span>
1354<span class="cline-any cline-no">&nbsp;</span>
1355<span class="cline-any cline-neutral">&nbsp;</span>
1356<span class="cline-any cline-neutral">&nbsp;</span>
1357<span class="cline-any cline-neutral">&nbsp;</span>
1358<span class="cline-any cline-no">&nbsp;</span>
1359<span class="cline-any cline-neutral">&nbsp;</span>
1360<span class="cline-any cline-no">&nbsp;</span>
1361<span class="cline-any cline-neutral">&nbsp;</span>
1362<span class="cline-any cline-no">&nbsp;</span>
1363<span class="cline-any cline-neutral">&nbsp;</span>
1364<span class="cline-any cline-no">&nbsp;</span>
1365<span class="cline-any cline-no">&nbsp;</span>
1366<span class="cline-any cline-neutral">&nbsp;</span>
1367<span class="cline-any cline-neutral">&nbsp;</span>
1368<span class="cline-any cline-neutral">&nbsp;</span>
1369<span class="cline-any cline-no">&nbsp;</span>
1370<span class="cline-any cline-no">&nbsp;</span>
1371<span class="cline-any cline-neutral">&nbsp;</span>
1372<span class="cline-any cline-neutral">&nbsp;</span>
1373<span class="cline-any cline-neutral">&nbsp;</span>
1374<span class="cline-any cline-neutral">&nbsp;</span>
1375<span class="cline-any cline-neutral">&nbsp;</span>
1376<span class="cline-any cline-no">&nbsp;</span>
1377<span class="cline-any cline-no">&nbsp;</span>
1378<span class="cline-any cline-no">&nbsp;</span>
1379<span class="cline-any cline-no">&nbsp;</span>
1380<span class="cline-any cline-no">&nbsp;</span>
1381<span class="cline-any cline-neutral">&nbsp;</span>
1382<span class="cline-any cline-neutral">&nbsp;</span>
1383<span class="cline-any cline-neutral">&nbsp;</span>
1384<span class="cline-any cline-neutral">&nbsp;</span>
1385<span class="cline-any cline-no">&nbsp;</span>
1386<span class="cline-any cline-no">&nbsp;</span>
1387<span class="cline-any cline-neutral">&nbsp;</span>
1388<span class="cline-any cline-neutral">&nbsp;</span>
1389<span class="cline-any cline-neutral">&nbsp;</span>
1390<span class="cline-any cline-no">&nbsp;</span>
1391<span class="cline-any cline-neutral">&nbsp;</span>
1392<span class="cline-any cline-neutral">&nbsp;</span>
1393<span class="cline-any cline-neutral">&nbsp;</span>
1394<span class="cline-any cline-neutral">&nbsp;</span>
1395<span class="cline-any cline-neutral">&nbsp;</span>
1396<span class="cline-any cline-neutral">&nbsp;</span>
1397<span class="cline-any cline-neutral">&nbsp;</span>
1398<span class="cline-any cline-neutral">&nbsp;</span>
1399<span class="cline-any cline-no">&nbsp;</span>
1400<span class="cline-any cline-neutral">&nbsp;</span>
1401<span class="cline-any cline-no">&nbsp;</span>
1402<span class="cline-any cline-neutral">&nbsp;</span>
1403<span class="cline-any cline-neutral">&nbsp;</span>
1404<span class="cline-any cline-neutral">&nbsp;</span>
1405<span class="cline-any cline-neutral">&nbsp;</span>
1406<span class="cline-any cline-neutral">&nbsp;</span>
1407<span class="cline-any cline-neutral">&nbsp;</span>
1408<span class="cline-any cline-neutral">&nbsp;</span>
1409<span class="cline-any cline-neutral">&nbsp;</span>
1410<span class="cline-any cline-neutral">&nbsp;</span>
1411<span class="cline-any cline-neutral">&nbsp;</span>
1412<span class="cline-any cline-neutral">&nbsp;</span>
1413<span class="cline-any cline-no">&nbsp;</span>
1414<span class="cline-any cline-no">&nbsp;</span>
1415<span class="cline-any cline-neutral">&nbsp;</span>
1416<span class="cline-any cline-neutral">&nbsp;</span>
1417<span class="cline-any cline-no">&nbsp;</span>
1418<span class="cline-any cline-neutral">&nbsp;</span>
1419<span class="cline-any cline-neutral">&nbsp;</span>
1420<span class="cline-any cline-neutral">&nbsp;</span>
1421<span class="cline-any cline-neutral">&nbsp;</span>
1422<span class="cline-any cline-neutral">&nbsp;</span>
1423<span class="cline-any cline-neutral">&nbsp;</span>
1424<span class="cline-any cline-no">&nbsp;</span>
1425<span class="cline-any cline-no">&nbsp;</span>
1426<span class="cline-any cline-no">&nbsp;</span>
1427<span class="cline-any cline-no">&nbsp;</span>
1428<span class="cline-any cline-no">&nbsp;</span>
1429<span class="cline-any cline-neutral">&nbsp;</span>
1430<span class="cline-any cline-no">&nbsp;</span>
1431<span class="cline-any cline-no">&nbsp;</span>
1432<span class="cline-any cline-neutral">&nbsp;</span>
1433<span class="cline-any cline-neutral">&nbsp;</span>
1434<span class="cline-any cline-no">&nbsp;</span>
1435<span class="cline-any cline-neutral">&nbsp;</span>
1436<span class="cline-any cline-no">&nbsp;</span>
1437<span class="cline-any cline-no">&nbsp;</span>
1438<span class="cline-any cline-neutral">&nbsp;</span>
1439<span class="cline-any cline-no">&nbsp;</span>
1440<span class="cline-any cline-no">&nbsp;</span>
1441<span class="cline-any cline-no">&nbsp;</span>
1442<span class="cline-any cline-neutral">&nbsp;</span>
1443<span class="cline-any cline-no">&nbsp;</span>
1444<span class="cline-any cline-neutral">&nbsp;</span>
1445<span class="cline-any cline-neutral">&nbsp;</span>
1446<span class="cline-any cline-no">&nbsp;</span>
1447<span class="cline-any cline-neutral">&nbsp;</span>
1448<span class="cline-any cline-neutral">&nbsp;</span>
1449<span class="cline-any cline-neutral">&nbsp;</span>
1450<span class="cline-any cline-neutral">&nbsp;</span>
1451<span class="cline-any cline-no">&nbsp;</span>
1452<span class="cline-any cline-no">&nbsp;</span>
1453<span class="cline-any cline-no">&nbsp;</span>
1454<span class="cline-any cline-neutral">&nbsp;</span>
1455<span class="cline-any cline-no">&nbsp;</span>
1456<span class="cline-any cline-neutral">&nbsp;</span>
1457<span class="cline-any cline-no">&nbsp;</span>
1458<span class="cline-any cline-no">&nbsp;</span>
1459<span class="cline-any cline-no">&nbsp;</span>
1460<span class="cline-any cline-no">&nbsp;</span>
1461<span class="cline-any cline-neutral">&nbsp;</span>
1462<span class="cline-any cline-neutral">&nbsp;</span>
1463<span class="cline-any cline-neutral">&nbsp;</span>
1464<span class="cline-any cline-no">&nbsp;</span>
1465<span class="cline-any cline-neutral">&nbsp;</span>
1466<span class="cline-any cline-neutral">&nbsp;</span>
1467<span class="cline-any cline-neutral">&nbsp;</span>
1468<span class="cline-any cline-no">&nbsp;</span>
1469<span class="cline-any cline-no">&nbsp;</span>
1470<span class="cline-any cline-no">&nbsp;</span>
1471<span class="cline-any cline-no">&nbsp;</span>
1472<span class="cline-any cline-neutral">&nbsp;</span>
1473<span class="cline-any cline-neutral">&nbsp;</span>
1474<span class="cline-any cline-neutral">&nbsp;</span>
1475<span class="cline-any cline-neutral">&nbsp;</span>
1476<span class="cline-any cline-no">&nbsp;</span>
1477<span class="cline-any cline-neutral">&nbsp;</span>
1478<span class="cline-any cline-neutral">&nbsp;</span>
1479<span class="cline-any cline-no">&nbsp;</span>
1480<span class="cline-any cline-no">&nbsp;</span>
1481<span class="cline-any cline-no">&nbsp;</span>
1482<span class="cline-any cline-no">&nbsp;</span>
1483<span class="cline-any cline-neutral">&nbsp;</span>
1484<span class="cline-any cline-no">&nbsp;</span>
1485<span class="cline-any cline-no">&nbsp;</span>
1486<span class="cline-any cline-no">&nbsp;</span>
1487<span class="cline-any cline-no">&nbsp;</span>
1488<span class="cline-any cline-no">&nbsp;</span>
1489<span class="cline-any cline-no">&nbsp;</span>
1490<span class="cline-any cline-no">&nbsp;</span>
1491<span class="cline-any cline-neutral">&nbsp;</span>
1492<span class="cline-any cline-neutral">&nbsp;</span>
1493<span class="cline-any cline-no">&nbsp;</span>
1494<span class="cline-any cline-neutral">&nbsp;</span>
1495<span class="cline-any cline-neutral">&nbsp;</span>
1496<span class="cline-any cline-neutral">&nbsp;</span>
1497<span class="cline-any cline-neutral">&nbsp;</span>
1498<span class="cline-any cline-neutral">&nbsp;</span>
1499<span class="cline-any cline-neutral">&nbsp;</span>
1500<span class="cline-any cline-neutral">&nbsp;</span>
1501<span class="cline-any cline-no">&nbsp;</span>
1502<span class="cline-any cline-neutral">&nbsp;</span>
1503<span class="cline-any cline-no">&nbsp;</span>
1504<span class="cline-any cline-neutral">&nbsp;</span>
1505<span class="cline-any cline-neutral">&nbsp;</span>
1506<span class="cline-any cline-neutral">&nbsp;</span>
1507<span class="cline-any cline-neutral">&nbsp;</span>
1508<span class="cline-any cline-no">&nbsp;</span>
1509<span class="cline-any cline-neutral">&nbsp;</span>
1510<span class="cline-any cline-neutral">&nbsp;</span>
1511<span class="cline-any cline-no">&nbsp;</span>
1512<span class="cline-any cline-neutral">&nbsp;</span>
1513<span class="cline-any cline-neutral">&nbsp;</span>
1514<span class="cline-any cline-no">&nbsp;</span>
1515<span class="cline-any cline-neutral">&nbsp;</span>
1516<span class="cline-any cline-no">&nbsp;</span>
1517<span class="cline-any cline-no">&nbsp;</span>
1518<span class="cline-any cline-neutral">&nbsp;</span>
1519<span class="cline-any cline-no">&nbsp;</span>
1520<span class="cline-any cline-no">&nbsp;</span>
1521<span class="cline-any cline-neutral">&nbsp;</span>
1522<span class="cline-any cline-no">&nbsp;</span>
1523<span class="cline-any cline-no">&nbsp;</span>
1524<span class="cline-any cline-neutral">&nbsp;</span>
1525<span class="cline-any cline-neutral">&nbsp;</span>
1526<span class="cline-any cline-no">&nbsp;</span>
1527<span class="cline-any cline-no">&nbsp;</span>
1528<span class="cline-any cline-neutral">&nbsp;</span>
1529<span class="cline-any cline-no">&nbsp;</span>
1530<span class="cline-any cline-neutral">&nbsp;</span>
1531<span class="cline-any cline-neutral">&nbsp;</span>
1532<span class="cline-any cline-no">&nbsp;</span>
1533<span class="cline-any cline-neutral">&nbsp;</span>
1534<span class="cline-any cline-neutral">&nbsp;</span>
1535<span class="cline-any cline-no">&nbsp;</span>
1536<span class="cline-any cline-no">&nbsp;</span>
1537<span class="cline-any cline-neutral">&nbsp;</span>
1538<span class="cline-any cline-no">&nbsp;</span>
1539<span class="cline-any cline-neutral">&nbsp;</span>
1540<span class="cline-any cline-neutral">&nbsp;</span>
1541<span class="cline-any cline-neutral">&nbsp;</span>
1542<span class="cline-any cline-no">&nbsp;</span>
1543<span class="cline-any cline-no">&nbsp;</span>
1544<span class="cline-any cline-neutral">&nbsp;</span>
1545<span class="cline-any cline-no">&nbsp;</span>
1546<span class="cline-any cline-no">&nbsp;</span>
1547<span class="cline-any cline-no">&nbsp;</span>
1548<span class="cline-any cline-neutral">&nbsp;</span>
1549<span class="cline-any cline-no">&nbsp;</span>
1550<span class="cline-any cline-no">&nbsp;</span>
1551<span class="cline-any cline-no">&nbsp;</span>
1552<span class="cline-any cline-neutral">&nbsp;</span>
1553<span class="cline-any cline-no">&nbsp;</span>
1554<span class="cline-any cline-neutral">&nbsp;</span>
1555<span class="cline-any cline-neutral">&nbsp;</span>
1556<span class="cline-any cline-neutral">&nbsp;</span>
1557<span class="cline-any cline-neutral">&nbsp;</span>
1558<span class="cline-any cline-no">&nbsp;</span>
1559<span class="cline-any cline-no">&nbsp;</span>
1560<span class="cline-any cline-no">&nbsp;</span>
1561<span class="cline-any cline-neutral">&nbsp;</span>
1562<span class="cline-any cline-neutral">&nbsp;</span>
1563<span class="cline-any cline-neutral">&nbsp;</span>
1564<span class="cline-any cline-neutral">&nbsp;</span>
1565<span class="cline-any cline-neutral">&nbsp;</span>
1566<span class="cline-any cline-neutral">&nbsp;</span>
1567<span class="cline-any cline-no">&nbsp;</span>
1568<span class="cline-any cline-neutral">&nbsp;</span>
1569<span class="cline-any cline-no">&nbsp;</span>
1570<span class="cline-any cline-neutral">&nbsp;</span>
1571<span class="cline-any cline-no">&nbsp;</span>
1572<span class="cline-any cline-neutral">&nbsp;</span>
1573<span class="cline-any cline-neutral">&nbsp;</span>
1574<span class="cline-any cline-no">&nbsp;</span>
1575<span class="cline-any cline-no">&nbsp;</span>
1576<span class="cline-any cline-neutral">&nbsp;</span>
1577<span class="cline-any cline-neutral">&nbsp;</span>
1578<span class="cline-any cline-neutral">&nbsp;</span>
1579<span class="cline-any cline-neutral">&nbsp;</span>
1580<span class="cline-any cline-no">&nbsp;</span>
1581<span class="cline-any cline-no">&nbsp;</span>
1582<span class="cline-any cline-no">&nbsp;</span>
1583<span class="cline-any cline-no">&nbsp;</span>
1584<span class="cline-any cline-no">&nbsp;</span>
1585<span class="cline-any cline-no">&nbsp;</span>
1586<span class="cline-any cline-neutral">&nbsp;</span>
1587<span class="cline-any cline-no">&nbsp;</span>
1588<span class="cline-any cline-no">&nbsp;</span>
1589<span class="cline-any cline-neutral">&nbsp;</span>
1590<span class="cline-any cline-neutral">&nbsp;</span>
1591<span class="cline-any cline-no">&nbsp;</span>
1592<span class="cline-any cline-no">&nbsp;</span>
1593<span class="cline-any cline-neutral">&nbsp;</span>
1594<span class="cline-any cline-neutral">&nbsp;</span>
1595<span class="cline-any cline-no">&nbsp;</span>
1596<span class="cline-any cline-no">&nbsp;</span>
1597<span class="cline-any cline-neutral">&nbsp;</span>
1598<span class="cline-any cline-no">&nbsp;</span>
1599<span class="cline-any cline-no">&nbsp;</span>
1600<span class="cline-any cline-neutral">&nbsp;</span>
1601<span class="cline-any cline-neutral">&nbsp;</span>
1602<span class="cline-any cline-neutral">&nbsp;</span>
1603<span class="cline-any cline-neutral">&nbsp;</span>
1604<span class="cline-any cline-neutral">&nbsp;</span>
1605<span class="cline-any cline-no">&nbsp;</span>
1606<span class="cline-any cline-neutral">&nbsp;</span>
1607<span class="cline-any cline-neutral">&nbsp;</span>
1608<span class="cline-any cline-neutral">&nbsp;</span>
1609<span class="cline-any cline-neutral">&nbsp;</span>
1610<span class="cline-any cline-no">&nbsp;</span>
1611<span class="cline-any cline-no">&nbsp;</span>
1612<span class="cline-any cline-neutral">&nbsp;</span>
1613<span class="cline-any cline-neutral">&nbsp;</span>
1614<span class="cline-any cline-neutral">&nbsp;</span>
1615<span class="cline-any cline-no">&nbsp;</span>
1616<span class="cline-any cline-neutral">&nbsp;</span>
1617<span class="cline-any cline-neutral">&nbsp;</span>
1618<span class="cline-any cline-neutral">&nbsp;</span>
1619<span class="cline-any cline-neutral">&nbsp;</span>
1620<span class="cline-any cline-neutral">&nbsp;</span>
1621<span class="cline-any cline-neutral">&nbsp;</span>
1622<span class="cline-any cline-neutral">&nbsp;</span>
1623<span class="cline-any cline-neutral">&nbsp;</span>
1624<span class="cline-any cline-neutral">&nbsp;</span>
1625<span class="cline-any cline-neutral">&nbsp;</span>
1626<span class="cline-any cline-neutral">&nbsp;</span>
1627<span class="cline-any cline-no">&nbsp;</span>
1628<span class="cline-any cline-neutral">&nbsp;</span>
1629<span class="cline-any cline-neutral">&nbsp;</span>
1630<span class="cline-any cline-no">&nbsp;</span>
1631<span class="cline-any cline-no">&nbsp;</span>
1632<span class="cline-any cline-no">&nbsp;</span>
1633<span class="cline-any cline-neutral">&nbsp;</span>
1634<span class="cline-any cline-neutral">&nbsp;</span>
1635<span class="cline-any cline-neutral">&nbsp;</span>
1636<span class="cline-any cline-neutral">&nbsp;</span>
1637<span class="cline-any cline-neutral">&nbsp;</span>
1638<span class="cline-any cline-no">&nbsp;</span>
1639<span class="cline-any cline-no">&nbsp;</span>
1640<span class="cline-any cline-no">&nbsp;</span>
1641<span class="cline-any cline-no">&nbsp;</span>
1642<span class="cline-any cline-no">&nbsp;</span>
1643<span class="cline-any cline-neutral">&nbsp;</span>
1644<span class="cline-any cline-neutral">&nbsp;</span>
1645<span class="cline-any cline-neutral">&nbsp;</span>
1646<span class="cline-any cline-no">&nbsp;</span>
1647<span class="cline-any cline-no">&nbsp;</span>
1648<span class="cline-any cline-neutral">&nbsp;</span>
1649<span class="cline-any cline-neutral">&nbsp;</span>
1650<span class="cline-any cline-neutral">&nbsp;</span>
1651<span class="cline-any cline-no">&nbsp;</span>
1652<span class="cline-any cline-no">&nbsp;</span>
1653<span class="cline-any cline-no">&nbsp;</span>
1654<span class="cline-any cline-neutral">&nbsp;</span>
1655<span class="cline-any cline-neutral">&nbsp;</span>
1656<span class="cline-any cline-neutral">&nbsp;</span>
1657<span class="cline-any cline-neutral">&nbsp;</span>
1658<span class="cline-any cline-neutral">&nbsp;</span>
1659<span class="cline-any cline-no">&nbsp;</span>
1660<span class="cline-any cline-no">&nbsp;</span>
1661<span class="cline-any cline-no">&nbsp;</span>
1662<span class="cline-any cline-neutral">&nbsp;</span>
1663<span class="cline-any cline-neutral">&nbsp;</span>
1664<span class="cline-any cline-no">&nbsp;</span>
1665<span class="cline-any cline-no">&nbsp;</span>
1666<span class="cline-any cline-neutral">&nbsp;</span>
1667<span class="cline-any cline-neutral">&nbsp;</span>
1668<span class="cline-any cline-neutral">&nbsp;</span>
1669<span class="cline-any cline-no">&nbsp;</span>
1670<span class="cline-any cline-no">&nbsp;</span>
1671<span class="cline-any cline-neutral">&nbsp;</span>
1672<span class="cline-any cline-neutral">&nbsp;</span>
1673<span class="cline-any cline-no">&nbsp;</span>
1674<span class="cline-any cline-no">&nbsp;</span>
1675<span class="cline-any cline-no">&nbsp;</span>
1676<span class="cline-any cline-neutral">&nbsp;</span>
1677<span class="cline-any cline-neutral">&nbsp;</span>
1678<span class="cline-any cline-neutral">&nbsp;</span>
1679<span class="cline-any cline-neutral">&nbsp;</span>
1680<span class="cline-any cline-no">&nbsp;</span>
1681<span class="cline-any cline-no">&nbsp;</span>
1682<span class="cline-any cline-no">&nbsp;</span>
1683<span class="cline-any cline-neutral">&nbsp;</span>
1684<span class="cline-any cline-neutral">&nbsp;</span>
1685<span class="cline-any cline-no">&nbsp;</span>
1686<span class="cline-any cline-neutral">&nbsp;</span>
1687<span class="cline-any cline-no">&nbsp;</span>
1688<span class="cline-any cline-neutral">&nbsp;</span>
1689<span class="cline-any cline-neutral">&nbsp;</span>
1690<span class="cline-any cline-neutral">&nbsp;</span>
1691<span class="cline-any cline-no">&nbsp;</span>
1692<span class="cline-any cline-no">&nbsp;</span>
1693<span class="cline-any cline-neutral">&nbsp;</span>
1694<span class="cline-any cline-neutral">&nbsp;</span>
1695<span class="cline-any cline-no">&nbsp;</span>
1696<span class="cline-any cline-neutral">&nbsp;</span>
1697<span class="cline-any cline-neutral">&nbsp;</span>
1698<span class="cline-any cline-no">&nbsp;</span>
1699<span class="cline-any cline-neutral">&nbsp;</span>
1700<span class="cline-any cline-neutral">&nbsp;</span>
1701<span class="cline-any cline-no">&nbsp;</span>
1702<span class="cline-any cline-neutral">&nbsp;</span>
1703<span class="cline-any cline-no">&nbsp;</span>
1704<span class="cline-any cline-no">&nbsp;</span>
1705<span class="cline-any cline-neutral">&nbsp;</span>
1706<span class="cline-any cline-no">&nbsp;</span>
1707<span class="cline-any cline-no">&nbsp;</span>
1708<span class="cline-any cline-neutral">&nbsp;</span>
1709<span class="cline-any cline-neutral">&nbsp;</span>
1710<span class="cline-any cline-no">&nbsp;</span>
1711<span class="cline-any cline-neutral">&nbsp;</span>
1712<span class="cline-any cline-neutral">&nbsp;</span>
1713<span class="cline-any cline-no">&nbsp;</span>
1714<span class="cline-any cline-neutral">&nbsp;</span>
1715<span class="cline-any cline-no">&nbsp;</span>
1716<span class="cline-any cline-no">&nbsp;</span>
1717<span class="cline-any cline-neutral">&nbsp;</span>
1718<span class="cline-any cline-neutral">&nbsp;</span>
1719<span class="cline-any cline-no">&nbsp;</span>
1720<span class="cline-any cline-neutral">&nbsp;</span>
1721<span class="cline-any cline-neutral">&nbsp;</span>
1722<span class="cline-any cline-no">&nbsp;</span>
1723<span class="cline-any cline-neutral">&nbsp;</span>
1724<span class="cline-any cline-no">&nbsp;</span>
1725<span class="cline-any cline-no">&nbsp;</span>
1726<span class="cline-any cline-no">&nbsp;</span>
1727<span class="cline-any cline-neutral">&nbsp;</span>
1728<span class="cline-any cline-neutral">&nbsp;</span>
1729<span class="cline-any cline-no">&nbsp;</span>
1730<span class="cline-any cline-neutral">&nbsp;</span>
1731<span class="cline-any cline-no">&nbsp;</span>
1732<span class="cline-any cline-neutral">&nbsp;</span>
1733<span class="cline-any cline-no">&nbsp;</span>
1734<span class="cline-any cline-neutral">&nbsp;</span>
1735<span class="cline-any cline-no">&nbsp;</span>
1736<span class="cline-any cline-neutral">&nbsp;</span>
1737<span class="cline-any cline-no">&nbsp;</span>
1738<span class="cline-any cline-neutral">&nbsp;</span>
1739<span class="cline-any cline-neutral">&nbsp;</span>
1740<span class="cline-any cline-no">&nbsp;</span>
1741<span class="cline-any cline-no">&nbsp;</span>
1742<span class="cline-any cline-neutral">&nbsp;</span>
1743<span class="cline-any cline-no">&nbsp;</span>
1744<span class="cline-any cline-no">&nbsp;</span>
1745<span class="cline-any cline-neutral">&nbsp;</span>
1746<span class="cline-any cline-no">&nbsp;</span>
1747<span class="cline-any cline-neutral">&nbsp;</span>
1748<span class="cline-any cline-no">&nbsp;</span>
1749<span class="cline-any cline-neutral">&nbsp;</span>
1750<span class="cline-any cline-neutral">&nbsp;</span>
1751<span class="cline-any cline-neutral">&nbsp;</span>
1752<span class="cline-any cline-no">&nbsp;</span>
1753<span class="cline-any cline-no">&nbsp;</span>
1754<span class="cline-any cline-no">&nbsp;</span>
1755<span class="cline-any cline-neutral">&nbsp;</span>
1756<span class="cline-any cline-neutral">&nbsp;</span>
1757<span class="cline-any cline-no">&nbsp;</span>
1758<span class="cline-any cline-no">&nbsp;</span>
1759<span class="cline-any cline-neutral">&nbsp;</span>
1760<span class="cline-any cline-neutral">&nbsp;</span>
1761<span class="cline-any cline-no">&nbsp;</span>
1762<span class="cline-any cline-no">&nbsp;</span>
1763<span class="cline-any cline-neutral">&nbsp;</span>
1764<span class="cline-any cline-no">&nbsp;</span>
1765<span class="cline-any cline-neutral">&nbsp;</span>
1766<span class="cline-any cline-no">&nbsp;</span>
1767<span class="cline-any cline-neutral">&nbsp;</span>
1768<span class="cline-any cline-neutral">&nbsp;</span>
1769<span class="cline-any cline-no">&nbsp;</span>
1770<span class="cline-any cline-neutral">&nbsp;</span>
1771<span class="cline-any cline-neutral">&nbsp;</span>
1772<span class="cline-any cline-no">&nbsp;</span>
1773<span class="cline-any cline-no">&nbsp;</span>
1774<span class="cline-any cline-neutral">&nbsp;</span>
1775<span class="cline-any cline-neutral">&nbsp;</span>
1776<span class="cline-any cline-no">&nbsp;</span>
1777<span class="cline-any cline-no">&nbsp;</span>
1778<span class="cline-any cline-no">&nbsp;</span>
1779<span class="cline-any cline-no">&nbsp;</span>
1780<span class="cline-any cline-no">&nbsp;</span>
1781<span class="cline-any cline-no">&nbsp;</span>
1782<span class="cline-any cline-no">&nbsp;</span>
1783<span class="cline-any cline-no">&nbsp;</span>
1784<span class="cline-any cline-no">&nbsp;</span>
1785<span class="cline-any cline-neutral">&nbsp;</span>
1786<span class="cline-any cline-neutral">&nbsp;</span>
1787<span class="cline-any cline-no">&nbsp;</span>
1788<span class="cline-any cline-neutral">&nbsp;</span>
1789<span class="cline-any cline-neutral">&nbsp;</span>
1790<span class="cline-any cline-neutral">&nbsp;</span>
1791<span class="cline-any cline-neutral">&nbsp;</span>
1792<span class="cline-any cline-no">&nbsp;</span>
1793<span class="cline-any cline-neutral">&nbsp;</span>
1794<span class="cline-any cline-neutral">&nbsp;</span>
1795<span class="cline-any cline-neutral">&nbsp;</span>
1796<span class="cline-any cline-no">&nbsp;</span>
1797<span class="cline-any cline-no">&nbsp;</span>
1798<span class="cline-any cline-no">&nbsp;</span>
1799<span class="cline-any cline-neutral">&nbsp;</span>
1800<span class="cline-any cline-no">&nbsp;</span>
1801<span class="cline-any cline-neutral">&nbsp;</span>
1802<span class="cline-any cline-no">&nbsp;</span>
1803<span class="cline-any cline-no">&nbsp;</span>
1804<span class="cline-any cline-neutral">&nbsp;</span>
1805<span class="cline-any cline-no">&nbsp;</span>
1806<span class="cline-any cline-neutral">&nbsp;</span>
1807<span class="cline-any cline-neutral">&nbsp;</span>
1808<span class="cline-any cline-no">&nbsp;</span>
1809<span class="cline-any cline-neutral">&nbsp;</span>
1810<span class="cline-any cline-no">&nbsp;</span>
1811<span class="cline-any cline-no">&nbsp;</span>
1812<span class="cline-any cline-no">&nbsp;</span>
1813<span class="cline-any cline-neutral">&nbsp;</span>
1814<span class="cline-any cline-no">&nbsp;</span>
1815<span class="cline-any cline-no">&nbsp;</span>
1816<span class="cline-any cline-neutral">&nbsp;</span>
1817<span class="cline-any cline-neutral">&nbsp;</span>
1818<span class="cline-any cline-neutral">&nbsp;</span>
1819<span class="cline-any cline-neutral">&nbsp;</span>
1820<span class="cline-any cline-no">&nbsp;</span>
1821<span class="cline-any cline-no">&nbsp;</span>
1822<span class="cline-any cline-no">&nbsp;</span>
1823<span class="cline-any cline-no">&nbsp;</span>
1824<span class="cline-any cline-neutral">&nbsp;</span>
1825<span class="cline-any cline-no">&nbsp;</span>
1826<span class="cline-any cline-neutral">&nbsp;</span>
1827<span class="cline-any cline-neutral">&nbsp;</span>
1828<span class="cline-any cline-neutral">&nbsp;</span>
1829<span class="cline-any cline-no">&nbsp;</span>
1830<span class="cline-any cline-neutral">&nbsp;</span>
1831<span class="cline-any cline-neutral">&nbsp;</span>
1832<span class="cline-any cline-neutral">&nbsp;</span>
1833<span class="cline-any cline-no">&nbsp;</span>
1834<span class="cline-any cline-no">&nbsp;</span>
1835<span class="cline-any cline-neutral">&nbsp;</span>
1836<span class="cline-any cline-no">&nbsp;</span>
1837<span class="cline-any cline-neutral">&nbsp;</span>
1838<span class="cline-any cline-no">&nbsp;</span>
1839<span class="cline-any cline-no">&nbsp;</span>
1840<span class="cline-any cline-neutral">&nbsp;</span>
1841<span class="cline-any cline-no">&nbsp;</span>
1842<span class="cline-any cline-no">&nbsp;</span>
1843<span class="cline-any cline-no">&nbsp;</span>
1844<span class="cline-any cline-neutral">&nbsp;</span>
1845<span class="cline-any cline-no">&nbsp;</span>
1846<span class="cline-any cline-no">&nbsp;</span>
1847<span class="cline-any cline-neutral">&nbsp;</span>
1848<span class="cline-any cline-neutral">&nbsp;</span>
1849<span class="cline-any cline-neutral">&nbsp;</span>
1850<span class="cline-any cline-no">&nbsp;</span>
1851<span class="cline-any cline-no">&nbsp;</span>
1852<span class="cline-any cline-no">&nbsp;</span>
1853<span class="cline-any cline-no">&nbsp;</span>
1854<span class="cline-any cline-neutral">&nbsp;</span>
1855<span class="cline-any cline-no">&nbsp;</span>
1856<span class="cline-any cline-neutral">&nbsp;</span>
1857<span class="cline-any cline-neutral">&nbsp;</span>
1858<span class="cline-any cline-neutral">&nbsp;</span>
1859<span class="cline-any cline-no">&nbsp;</span>
1860<span class="cline-any cline-neutral">&nbsp;</span>
1861<span class="cline-any cline-neutral">&nbsp;</span>
1862<span class="cline-any cline-neutral">&nbsp;</span>
1863<span class="cline-any cline-neutral">&nbsp;</span>
1864<span class="cline-any cline-neutral">&nbsp;</span>
1865<span class="cline-any cline-no">&nbsp;</span>
1866<span class="cline-any cline-no">&nbsp;</span>
1867<span class="cline-any cline-neutral">&nbsp;</span>
1868<span class="cline-any cline-no">&nbsp;</span>
1869<span class="cline-any cline-neutral">&nbsp;</span>
1870<span class="cline-any cline-no">&nbsp;</span>
1871<span class="cline-any cline-neutral">&nbsp;</span>
1872<span class="cline-any cline-neutral">&nbsp;</span>
1873<span class="cline-any cline-no">&nbsp;</span>
1874<span class="cline-any cline-neutral">&nbsp;</span>
1875<span class="cline-any cline-no">&nbsp;</span>
1876<span class="cline-any cline-neutral">&nbsp;</span>
1877<span class="cline-any cline-neutral">&nbsp;</span>
1878<span class="cline-any cline-neutral">&nbsp;</span>
1879<span class="cline-any cline-no">&nbsp;</span>
1880<span class="cline-any cline-no">&nbsp;</span>
1881<span class="cline-any cline-no">&nbsp;</span>
1882<span class="cline-any cline-no">&nbsp;</span>
1883<span class="cline-any cline-neutral">&nbsp;</span>
1884<span class="cline-any cline-no">&nbsp;</span>
1885<span class="cline-any cline-neutral">&nbsp;</span>
1886<span class="cline-any cline-neutral">&nbsp;</span>
1887<span class="cline-any cline-neutral">&nbsp;</span>
1888<span class="cline-any cline-neutral">&nbsp;</span>
1889<span class="cline-any cline-neutral">&nbsp;</span>
1890<span class="cline-any cline-neutral">&nbsp;</span>
1891<span class="cline-any cline-no">&nbsp;</span>
1892<span class="cline-any cline-no">&nbsp;</span>
1893<span class="cline-any cline-no">&nbsp;</span>
1894<span class="cline-any cline-neutral">&nbsp;</span>
1895<span class="cline-any cline-neutral">&nbsp;</span>
1896<span class="cline-any cline-neutral">&nbsp;</span>
1897<span class="cline-any cline-no">&nbsp;</span>
1898<span class="cline-any cline-no">&nbsp;</span>
1899<span class="cline-any cline-no">&nbsp;</span>
1900<span class="cline-any cline-neutral">&nbsp;</span>
1901<span class="cline-any cline-neutral">&nbsp;</span>
1902<span class="cline-any cline-no">&nbsp;</span>
1903<span class="cline-any cline-no">&nbsp;</span>
1904<span class="cline-any cline-neutral">&nbsp;</span>
1905<span class="cline-any cline-neutral">&nbsp;</span>
1906<span class="cline-any cline-neutral">&nbsp;</span>
1907<span class="cline-any cline-no">&nbsp;</span>
1908<span class="cline-any cline-neutral">&nbsp;</span>
1909<span class="cline-any cline-neutral">&nbsp;</span>
1910<span class="cline-any cline-neutral">&nbsp;</span>
1911<span class="cline-any cline-no">&nbsp;</span>
1912<span class="cline-any cline-no">&nbsp;</span>
1913<span class="cline-any cline-no">&nbsp;</span>
1914<span class="cline-any cline-no">&nbsp;</span>
1915<span class="cline-any cline-no">&nbsp;</span>
1916<span class="cline-any cline-neutral">&nbsp;</span>
1917<span class="cline-any cline-no">&nbsp;</span>
1918<span class="cline-any cline-no">&nbsp;</span>
1919<span class="cline-any cline-neutral">&nbsp;</span>
1920<span class="cline-any cline-neutral">&nbsp;</span>
1921<span class="cline-any cline-no">&nbsp;</span>
1922<span class="cline-any cline-no">&nbsp;</span>
1923<span class="cline-any cline-neutral">&nbsp;</span>
1924<span class="cline-any cline-neutral">&nbsp;</span>
1925<span class="cline-any cline-neutral">&nbsp;</span>
1926<span class="cline-any cline-neutral">&nbsp;</span>
1927<span class="cline-any cline-neutral">&nbsp;</span>
1928<span class="cline-any cline-yes">1</span>
1929<span class="cline-any cline-no">&nbsp;</span>
1930<span class="cline-any cline-no">&nbsp;</span>
1931<span class="cline-any cline-neutral">&nbsp;</span>
1932<span class="cline-any cline-neutral">&nbsp;</span>
1933<span class="cline-any cline-neutral">&nbsp;</span>
1934<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*! JSON v3.2.5 | http://bestiejs.github.io/json3 | Copyright 2012-2013, Kit Cambridge | http://kit.mit-license.org */
1935;(function (window) {
1936  // Convenience aliases.
1937  var getClass = {}.toString, isProperty, forEach, undef;
1938&nbsp;
1939  // Detect the `define` function exposed by asynchronous module loaders. The
1940  // strict `define` check is necessary for compatibility with `r.js`.
1941  var isLoader = typeof define === "function" &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >define.amd;</span>
1942&nbsp;
1943  // Detect native implementations.
1944  var nativeJSON = typeof JSON == "object" &amp;&amp; JSON;
1945&nbsp;
1946  // Set up the JSON 3 namespace, preferring the CommonJS `exports` object if
1947  // available.
1948  var JSON3 = typeof exports == "object" &amp;&amp; exports &amp;&amp; !exports.nodeType &amp;&amp; exports;
1949&nbsp;
1950  <span class="missing-if-branch" title="else path not taken"" >E</span>if (JSON3 &amp;&amp; nativeJSON) {
1951    // Explicitly delegate to the native `stringify` and `parse`
1952    // implementations in CommonJS environments.
1953    JSON3.stringify = nativeJSON.stringify;
1954    JSON3.parse = nativeJSON.parse;
1955  } else {
1956    // Export for web browsers, JavaScript engines, and asynchronous module
1957    // loaders, using the global `JSON` object if available.
1958<span class="cstat-no" title="statement not covered" >    JSON3 = window.JSON = nativeJSON || {};</span>
1959  }
1960&nbsp;
1961  // Test the `Date#getUTC*` methods. Based on work by @Yaffle.
1962  var isExtended = new Date(-3509827334573292);
1963  try {
1964    // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical
1965    // results for certain dates in Opera &gt;= 10.53.
1966    isExtended = isExtended.getUTCFullYear() == -109252 &amp;&amp; isExtended.getUTCMonth() === 0 &amp;&amp; isExtended.getUTCDate() === 1 &amp;&amp;
1967      // Safari &lt; 2.0.2 stores the internal millisecond time value correctly,
1968      // but clips the values returned by the date methods to the range of
1969      // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).
1970      isExtended.getUTCHours() == 10 &amp;&amp; isExtended.getUTCMinutes() == 37 &amp;&amp; isExtended.getUTCSeconds() == 6 &amp;&amp; isExtended.getUTCMilliseconds() == 708;
1971  } catch (exception) {}
1972&nbsp;
1973  // Internal: Determines whether the native `JSON.stringify` and `parse`
1974  // implementations are spec-compliant. Based on work by Ken Snyder.
1975  function has(name) {
1976    <span class="missing-if-branch" title="if path not taken"" >I</span>if (has[name] != null) {
1977      // Return cached feature test result.
1978<span class="cstat-no" title="statement not covered" >      return has[name];</span>
1979    }
1980&nbsp;
1981    var isSupported;
1982    <span class="missing-if-branch" title="if path not taken"" >I</span>if (name == "bug-string-char-index") {
1983      // IE &lt;= 7 doesn't support accessing string characters using square
1984      // bracket notation. IE 8 only supports this for primitives.
1985<span class="cstat-no" title="statement not covered" >      isSupported = "a"[0] != "a";</span>
1986    } else if (name == "json") {
1987      // Indicates whether both `JSON.stringify` and `JSON.parse` are
1988      // supported.
1989      isSupported = has("json-stringify") &amp;&amp; has("json-parse");
1990    } else {
1991      var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
1992      // Test `JSON.stringify`.
1993      if (name == "json-stringify") {
1994        var stringify = JSON3.stringify, stringifySupported = typeof stringify == "function" &amp;&amp; isExtended;
1995        <span class="missing-if-branch" title="else path not taken"" >E</span>if (stringifySupported) {
1996          // A test function object with a custom `toJSON` method.
1997          (value = function () {
1998            return 1;
1999          }).toJSON = value;
2000          try {
2001            stringifySupported =
2002              // Firefox 3.1b1 and b2 serialize string, number, and boolean
2003              // primitives as object literals.
2004              stringify(0) === "0" &amp;&amp;
2005              // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object
2006              // literals.
2007              stringify(new Number()) === "0" &amp;&amp;
2008              stringify(new String()) == '""' &amp;&amp;
2009              // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or
2010              // does not define a canonical JSON representation (this applies to
2011              // objects with `toJSON` properties as well, *unless* they are nested
2012              // within an object or array).
2013              stringify(getClass) === undef &amp;&amp;
2014              // IE 8 serializes `undefined` as `"undefined"`. Safari &lt;= 5.1.7 and
2015              // FF 3.1b3 pass this test.
2016              stringify(undef) === undef &amp;&amp;
2017              // Safari &lt;= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,
2018              // respectively, if the value is omitted entirely.
2019              stringify() === undef &amp;&amp;
2020              // FF 3.1b1, 2 throw an error if the given value is not a number,
2021              // string, array, object, Boolean, or `null` literal. This applies to
2022              // objects with custom `toJSON` methods as well, unless they are nested
2023              // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`
2024              // methods entirely.
2025              stringify(value) === "1" &amp;&amp;
2026              stringify([value]) == "[1]" &amp;&amp;
2027              // Prototype &lt;= 1.6.1 serializes `[undefined]` as `"[]"` instead of
2028              // `"[null]"`.
2029              stringify([undef]) == "[null]" &amp;&amp;
2030              // YUI 3.0.0b1 fails to serialize `null` literals.
2031              stringify(null) == "null" &amp;&amp;
2032              // FF 3.1b1, 2 halts serialization if an array contains a function:
2033              // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3
2034              // elides non-JSON values from objects and arrays, unless they
2035              // define custom `toJSON` methods.
2036              stringify([undef, getClass, null]) == "[null,null,null]" &amp;&amp;
2037              // Simple serialization test. FF 3.1b1 uses Unicode escape sequences
2038              // where character escape codes are expected (e.g., `\b` =&gt; `\u0008`).
2039              stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized &amp;&amp;
2040              // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.
2041              stringify(null, value) === "1" &amp;&amp;
2042              stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" &amp;&amp;
2043              // JSON 2, Prototype &lt;= 1.7, and older WebKit builds incorrectly
2044              // serialize extended years.
2045              stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' &amp;&amp;
2046              // The milliseconds are optional in ES 5, but required in 5.1.
2047              stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' &amp;&amp;
2048              // Firefox &lt;= 11.0 incorrectly serializes years prior to 0 as negative
2049              // four-digit years instead of six-digit years. Credits: @Yaffle.
2050              stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' &amp;&amp;
2051              // Safari &lt;= 5.1.5 and Opera &gt;= 10.53 incorrectly serialize millisecond
2052              // values less than 1000. Credits: @Yaffle.
2053              stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"';
2054          } catch (exception) {
2055<span class="cstat-no" title="statement not covered" >            stringifySupported = false;</span>
2056          }
2057        }
2058        isSupported = stringifySupported;
2059      }
2060      // Test `JSON.parse`.
2061      if (name == "json-parse") {
2062        var parse = JSON3.parse;
2063        <span class="missing-if-branch" title="else path not taken"" >E</span>if (typeof parse == "function") {
2064          try {
2065            // FF 3.1b1, b2 will throw an exception if a bare literal is provided.
2066            // Conforming implementations should also coerce the initial argument to
2067            // a string prior to parsing.
2068            <span class="missing-if-branch" title="else path not taken"" >E</span>if (parse("0") === 0 &amp;&amp; !parse(false)) {
2069              // Simple parsing test.
2070              value = parse(serialized);
2071              var parseSupported = value["a"].length == 5 &amp;&amp; value["a"][0] === 1;
2072              <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
2073                try {
2074                  // Safari &lt;= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.
2075                  parseSupported = !parse('"\t"');
2076                } catch (exception) {}
2077                <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
2078                  try {
2079                    // FF 4.0 and 4.0.1 allow leading `+` signs and leading
2080                    // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow
2081                    // certain octal literals.
2082                    parseSupported = parse("01") !== 1;
2083                  } catch (exception) {}
2084                }
2085                <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
2086                  try {
2087                    // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal
2088                    // points. These environments, along with FF 3.1b1 and 2,
2089                    // also allow trailing commas in JSON objects and arrays.
2090                    parseSupported = parse("1.") !== 1;
2091                  } catch (exception) {}
2092                }
2093              }
2094            }
2095          } catch (exception) {
2096<span class="cstat-no" title="statement not covered" >            parseSupported = false;</span>
2097          }
2098        }
2099        isSupported = parseSupported;
2100      }
2101    }
2102    return has[name] = !!isSupported;
2103  }
2104  has["bug-string-char-index"] = null;
2105  has["json"] = null;
2106  has["json-stringify"] = null;
2107  has["json-parse"] = null;
2108&nbsp;
2109  <span class="missing-if-branch" title="if path not taken"" >I</span>if (!has("json")) {
2110    // Common `[[Class]]` name aliases.
2111<span class="cstat-no" title="statement not covered" >    var functionClass = "[object Function]";</span>
2112<span class="cstat-no" title="statement not covered" >    var dateClass = "[object Date]";</span>
2113<span class="cstat-no" title="statement not covered" >    var numberClass = "[object Number]";</span>
2114<span class="cstat-no" title="statement not covered" >    var stringClass = "[object String]";</span>
2115<span class="cstat-no" title="statement not covered" >    var arrayClass = "[object Array]";</span>
2116<span class="cstat-no" title="statement not covered" >    var booleanClass = "[object Boolean]";</span>
2117&nbsp;
2118    // Detect incomplete support for accessing string characters by index.
2119<span class="cstat-no" title="statement not covered" >    var charIndexBuggy = has("bug-string-char-index");</span>
2120&nbsp;
2121    // Define additional utility methods if the `Date` methods are buggy.
2122<span class="cstat-no" title="statement not covered" >    if (!isExtended) {</span>
2123<span class="cstat-no" title="statement not covered" >      var floor = Math.floor;</span>
2124      // A mapping between the months of the year and the number of days between
2125      // January 1st and the first of the respective month.
2126<span class="cstat-no" title="statement not covered" >      var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];</span>
2127      // Internal: Calculates the number of days between the Unix epoch and the
2128      // first day of the given month.
2129<span class="cstat-no" title="statement not covered" >      var getDay = <span class="fstat-no" title="function not covered" >function (year, month) {</span></span>
2130<span class="cstat-no" title="statement not covered" >        return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month &gt; 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400);</span>
2131      };
2132    }
2133&nbsp;
2134    // Internal: Determines if a property is a direct property of the given
2135    // object. Delegates to the native `Object#hasOwnProperty` method.
2136<span class="cstat-no" title="statement not covered" >    if (!(isProperty = {}.hasOwnProperty)) {</span>
2137<span class="cstat-no" title="statement not covered" >      isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2138<span class="cstat-no" title="statement not covered" >        var members = {}, constructor;</span>
2139<span class="cstat-no" title="statement not covered" >        if ((members.__proto__ = null, members.__proto__ = {</span>
2140          // The *proto* property cannot be set multiple times in recent
2141          // versions of Firefox and SeaMonkey.
2142          "toString": 1
2143        }, members).toString != getClass) {
2144          // Safari &lt;= 2.0.3 doesn't implement `Object#hasOwnProperty`, but
2145          // supports the mutable *proto* property.
2146<span class="cstat-no" title="statement not covered" >          isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2147            // Capture and break the object's prototype chain (see section 8.6.2
2148            // of the ES 5.1 spec). The parenthesized expression prevents an
2149            // unsafe transformation by the Closure Compiler.
2150<span class="cstat-no" title="statement not covered" >            var original = this.__proto__, result = property in (this.__proto__ = null, this);</span>
2151            // Restore the original prototype chain.
2152<span class="cstat-no" title="statement not covered" >            this.__proto__ = original;</span>
2153<span class="cstat-no" title="statement not covered" >            return result;</span>
2154          };
2155        } else {
2156          // Capture a reference to the top-level `Object` constructor.
2157<span class="cstat-no" title="statement not covered" >          constructor = members.constructor;</span>
2158          // Use the `constructor` property to simulate `Object#hasOwnProperty` in
2159          // other environments.
2160<span class="cstat-no" title="statement not covered" >          isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2161<span class="cstat-no" title="statement not covered" >            var parent = (this.constructor || constructor).prototype;</span>
2162<span class="cstat-no" title="statement not covered" >            return property in this &amp;&amp; !(property in parent &amp;&amp; this[property] === parent[property]);</span>
2163          };
2164        }
2165<span class="cstat-no" title="statement not covered" >        members = null;</span>
2166<span class="cstat-no" title="statement not covered" >        return isProperty.call(this, property);</span>
2167      };
2168    }
2169&nbsp;
2170    // Internal: A set of primitive types used by `isHostType`.
2171<span class="cstat-no" title="statement not covered" >    var PrimitiveTypes = {</span>
2172      'boolean': 1,
2173      'number': 1,
2174      'string': 1,
2175      'undefined': 1
2176    };
2177&nbsp;
2178    // Internal: Determines if the given object `property` value is a
2179    // non-primitive.
2180<span class="cstat-no" title="statement not covered" >    var isHostType = <span class="fstat-no" title="function not covered" >function (object, property) {</span></span>
2181<span class="cstat-no" title="statement not covered" >      var type = typeof object[property];</span>
2182<span class="cstat-no" title="statement not covered" >      return type == 'object' ? !!object[property] : !PrimitiveTypes[type];</span>
2183    };
2184&nbsp;
2185    // Internal: Normalizes the `for...in` iteration algorithm across
2186    // environments. Each enumerated key is yielded to a `callback` function.
2187<span class="cstat-no" title="statement not covered" >    forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
2188<span class="cstat-no" title="statement not covered" >      var size = 0, Properties, members, property;</span>
2189&nbsp;
2190      // Tests for bugs in the current environment's `for...in` algorithm. The
2191      // `valueOf` property inherits the non-enumerable flag from
2192      // `Object.prototype` in older versions of IE, Netscape, and Mozilla.
2193<span class="cstat-no" title="statement not covered" >      (Properties = <span class="fstat-no" title="function not covered" >function () {</span></span>
2194<span class="cstat-no" title="statement not covered" >        this.valueOf = 0;</span>
2195      }).prototype.valueOf = 0;
2196&nbsp;
2197      // Iterate over a new instance of the `Properties` class.
2198<span class="cstat-no" title="statement not covered" >      members = new Properties();</span>
2199<span class="cstat-no" title="statement not covered" >      for (property in members) {</span>
2200        // Ignore all properties inherited from `Object.prototype`.
2201<span class="cstat-no" title="statement not covered" >        if (isProperty.call(members, property)) {</span>
2202<span class="cstat-no" title="statement not covered" >          size++;</span>
2203        }
2204      }
2205<span class="cstat-no" title="statement not covered" >      Properties = members = null;</span>
2206&nbsp;
2207      // Normalize the iteration algorithm.
2208<span class="cstat-no" title="statement not covered" >      if (!size) {</span>
2209        // A list of non-enumerable properties inherited from `Object.prototype`.
2210<span class="cstat-no" title="statement not covered" >        members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"];</span>
2211        // IE &lt;= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable
2212        // properties.
2213<span class="cstat-no" title="statement not covered" >        forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
2214<span class="cstat-no" title="statement not covered" >          var isFunction = getClass.call(object) == functionClass, property, length;</span>
2215<span class="cstat-no" title="statement not covered" >          var hasProperty = !isFunction &amp;&amp; typeof object.constructor != 'function' &amp;&amp; isHostType(object, 'hasOwnProperty') ? object.hasOwnProperty : isProperty;</span>
2216<span class="cstat-no" title="statement not covered" >          for (property in object) {</span>
2217            // Gecko &lt;= 1.0 enumerates the `prototype` property of functions under
2218            // certain conditions; IE does not.
2219<span class="cstat-no" title="statement not covered" >            if (!(isFunction &amp;&amp; property == "prototype") &amp;&amp; hasProperty.call(object, property)) {</span>
2220<span class="cstat-no" title="statement not covered" >              callback(property);</span>
2221            }
2222          }
2223          // Manually invoke the callback for each non-enumerable property.
2224<span class="cstat-no" title="statement not covered" >          for (length = members.length; property = members[--length]; hasProperty.call(object, property) &amp;&amp; callback(property));</span>
2225        };
2226      } else <span class="cstat-no" title="statement not covered" >if (size == 2) {</span>
2227        // Safari &lt;= 2.0.4 enumerates shadowed properties twice.
2228<span class="cstat-no" title="statement not covered" >        forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
2229          // Create a set of iterated properties.
2230<span class="cstat-no" title="statement not covered" >          var members = {}, isFunction = getClass.call(object) == functionClass, property;</span>
2231<span class="cstat-no" title="statement not covered" >          for (property in object) {</span>
2232            // Store each property name to prevent double enumeration. The
2233            // `prototype` property of functions is not enumerated due to cross-
2234            // environment inconsistencies.
2235<span class="cstat-no" title="statement not covered" >            if (!(isFunction &amp;&amp; property == "prototype") &amp;&amp; !isProperty.call(members, property) &amp;&amp; (members[property] = 1) &amp;&amp; isProperty.call(object, property)) {</span>
2236<span class="cstat-no" title="statement not covered" >              callback(property);</span>
2237            }
2238          }
2239        };
2240      } else {
2241        // No bugs detected; use the standard `for...in` algorithm.
2242<span class="cstat-no" title="statement not covered" >        forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
2243<span class="cstat-no" title="statement not covered" >          var isFunction = getClass.call(object) == functionClass, property, isConstructor;</span>
2244<span class="cstat-no" title="statement not covered" >          for (property in object) {</span>
2245<span class="cstat-no" title="statement not covered" >            if (!(isFunction &amp;&amp; property == "prototype") &amp;&amp; isProperty.call(object, property) &amp;&amp; !(isConstructor = property === "constructor")) {</span>
2246<span class="cstat-no" title="statement not covered" >              callback(property);</span>
2247            }
2248          }
2249          // Manually invoke the callback for the `constructor` property due to
2250          // cross-environment inconsistencies.
2251<span class="cstat-no" title="statement not covered" >          if (isConstructor || isProperty.call(object, (property = "constructor"))) {</span>
2252<span class="cstat-no" title="statement not covered" >            callback(property);</span>
2253          }
2254        };
2255      }
2256<span class="cstat-no" title="statement not covered" >      return forEach(object, callback);</span>
2257    };
2258&nbsp;
2259    // Public: Serializes a JavaScript `value` as a JSON string. The optional
2260    // `filter` argument may specify either a function that alters how object and
2261    // array members are serialized, or an array of strings and numbers that
2262    // indicates which properties should be serialized. The optional `width`
2263    // argument may be either a string or number that specifies the indentation
2264    // level of the output.
2265<span class="cstat-no" title="statement not covered" >    if (!has("json-stringify")) {</span>
2266      // Internal: A map of control characters and their escaped equivalents.
2267<span class="cstat-no" title="statement not covered" >      var Escapes = {</span>
2268        92: "\\\\",
2269        34: '\\"',
2270        8: "\\b",
2271        12: "\\f",
2272        10: "\\n",
2273        13: "\\r",
2274        9: "\\t"
2275      };
2276&nbsp;
2277      // Internal: Converts `value` into a zero-padded string such that its
2278      // length is at least equal to `width`. The `width` must be &lt;= 6.
2279<span class="cstat-no" title="statement not covered" >      var leadingZeroes = "000000";</span>
2280<span class="cstat-no" title="statement not covered" >      var toPaddedString = <span class="fstat-no" title="function not covered" >function (width, value) {</span></span>
2281        // The `|| 0` expression is necessary to work around a bug in
2282        // Opera &lt;= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`.
2283<span class="cstat-no" title="statement not covered" >        return (leadingZeroes + (value || 0)).slice(-width);</span>
2284      };
2285&nbsp;
2286      // Internal: Double-quotes a string `value`, replacing all ASCII control
2287      // characters (characters with code unit values between 0 and 31) with
2288      // their escaped equivalents. This is an implementation of the
2289      // `Quote(value)` operation defined in ES 5.1 section 15.12.3.
2290<span class="cstat-no" title="statement not covered" >      var unicodePrefix = "\\u00";</span>
2291<span class="cstat-no" title="statement not covered" >      var quote = <span class="fstat-no" title="function not covered" >function (value) {</span></span>
2292<span class="cstat-no" title="statement not covered" >        var result = '"', index = 0, length = value.length, isLarge = length &gt; 10 &amp;&amp; charIndexBuggy, symbols;</span>
2293<span class="cstat-no" title="statement not covered" >        if (isLarge) {</span>
2294<span class="cstat-no" title="statement not covered" >          symbols = value.split("");</span>
2295        }
2296<span class="cstat-no" title="statement not covered" >        for (; index &lt; length; index++) {</span>
2297<span class="cstat-no" title="statement not covered" >          var charCode = value.charCodeAt(index);</span>
2298          // If the character is a control character, append its Unicode or
2299          // shorthand escape sequence; otherwise, append the character as-is.
2300<span class="cstat-no" title="statement not covered" >          switch (charCode) {</span>
2301            case 8: case 9: case 10: case 12: case 13: case 34: case 92:
2302<span class="cstat-no" title="statement not covered" >              result += Escapes[charCode];</span>
2303<span class="cstat-no" title="statement not covered" >              break;</span>
2304            default:
2305<span class="cstat-no" title="statement not covered" >              if (charCode &lt; 32) {</span>
2306<span class="cstat-no" title="statement not covered" >                result += unicodePrefix + toPaddedString(2, charCode.toString(16));</span>
2307<span class="cstat-no" title="statement not covered" >                break;</span>
2308              }
2309<span class="cstat-no" title="statement not covered" >              result += isLarge ? symbols[index] : charIndexBuggy ? value.charAt(index) : value[index];</span>
2310          }
2311        }
2312<span class="cstat-no" title="statement not covered" >        return result + '"';</span>
2313      };
2314&nbsp;
2315      // Internal: Recursively serializes an object. Implements the
2316      // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.
2317<span class="cstat-no" title="statement not covered" >      var serialize = <span class="fstat-no" title="function not covered" >function (property, object, callback, properties, whitespace, indentation, stack) {</span></span>
2318<span class="cstat-no" title="statement not covered" >        var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, hasMembers, result;</span>
2319<span class="cstat-no" title="statement not covered" >        try {</span>
2320          // Necessary for host object support.
2321<span class="cstat-no" title="statement not covered" >          value = object[property];</span>
2322        } catch (exception) {}
2323<span class="cstat-no" title="statement not covered" >        if (typeof value == "object" &amp;&amp; value) {</span>
2324<span class="cstat-no" title="statement not covered" >          className = getClass.call(value);</span>
2325<span class="cstat-no" title="statement not covered" >          if (className == dateClass &amp;&amp; !isProperty.call(value, "toJSON")) {</span>
2326<span class="cstat-no" title="statement not covered" >            if (value &gt; -1 / 0 &amp;&amp; value &lt; 1 / 0) {</span>
2327              // Dates are serialized according to the `Date#toJSON` method
2328              // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15
2329              // for the ISO 8601 date time string format.
2330<span class="cstat-no" title="statement not covered" >              if (getDay) {</span>
2331                // Manually compute the year, month, date, hours, minutes,
2332                // seconds, and milliseconds if the `getUTC*` methods are
2333                // buggy. Adapted from @Yaffle's `date-shim` project.
2334<span class="cstat-no" title="statement not covered" >                date = floor(value / 864e5);</span>
2335<span class="cstat-no" title="statement not covered" >                for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) &lt;= date; year++);</span>
2336<span class="cstat-no" title="statement not covered" >                for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) &lt;= date; month++);</span>
2337<span class="cstat-no" title="statement not covered" >                date = 1 + date - getDay(year, month);</span>
2338                // The `time` value specifies the time within the day (see ES
2339                // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used
2340                // to compute `A modulo B`, as the `%` operator does not
2341                // correspond to the `modulo` operation for negative numbers.
2342<span class="cstat-no" title="statement not covered" >                time = (value % 864e5 + 864e5) % 864e5;</span>
2343                // The hours, minutes, seconds, and milliseconds are obtained by
2344                // decomposing the time within the day. See section 15.9.1.10.
2345<span class="cstat-no" title="statement not covered" >                hours = floor(time / 36e5) % 24;</span>
2346<span class="cstat-no" title="statement not covered" >                minutes = floor(time / 6e4) % 60;</span>
2347<span class="cstat-no" title="statement not covered" >                seconds = floor(time / 1e3) % 60;</span>
2348<span class="cstat-no" title="statement not covered" >                milliseconds = time % 1e3;</span>
2349              } else {
2350<span class="cstat-no" title="statement not covered" >                year = value.getUTCFullYear();</span>
2351<span class="cstat-no" title="statement not covered" >                month = value.getUTCMonth();</span>
2352<span class="cstat-no" title="statement not covered" >                date = value.getUTCDate();</span>
2353<span class="cstat-no" title="statement not covered" >                hours = value.getUTCHours();</span>
2354<span class="cstat-no" title="statement not covered" >                minutes = value.getUTCMinutes();</span>
2355<span class="cstat-no" title="statement not covered" >                seconds = value.getUTCSeconds();</span>
2356<span class="cstat-no" title="statement not covered" >                milliseconds = value.getUTCMilliseconds();</span>
2357              }
2358              // Serialize extended years correctly.
2359<span class="cstat-no" title="statement not covered" >              value = (year &lt;= 0 || year &gt;= 1e4 ? (year &lt; 0 ? "-" : "+") + toPaddedString(6, year &lt; 0 ? -year : year) : toPaddedString(4, year)) +</span>
2360                "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) +
2361                // Months, dates, hours, minutes, and seconds should have two
2362                // digits; milliseconds should have three.
2363                "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) +
2364                // Milliseconds are optional in ES 5.0, but required in 5.1.
2365                "." + toPaddedString(3, milliseconds) + "Z";
2366            } else {
2367<span class="cstat-no" title="statement not covered" >              value = null;</span>
2368            }
2369          } else <span class="cstat-no" title="statement not covered" >if (typeof value.toJSON == "function" &amp;&amp; ((className != numberClass &amp;&amp; className != stringClass &amp;&amp; className != arrayClass) || isProperty.call(value, "toJSON"))) {</span>
2370            // Prototype &lt;= 1.6.1 adds non-standard `toJSON` methods to the
2371            // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3
2372            // ignores all `toJSON` methods on these objects unless they are
2373            // defined directly on an instance.
2374<span class="cstat-no" title="statement not covered" >            value = value.toJSON(property);</span>
2375          }
2376        }
2377<span class="cstat-no" title="statement not covered" >        if (callback) {</span>
2378          // If a replacement function was provided, call it to obtain the value
2379          // for serialization.
2380<span class="cstat-no" title="statement not covered" >          value = callback.call(object, property, value);</span>
2381        }
2382<span class="cstat-no" title="statement not covered" >        if (value === null) {</span>
2383<span class="cstat-no" title="statement not covered" >          return "null";</span>
2384        }
2385<span class="cstat-no" title="statement not covered" >        className = getClass.call(value);</span>
2386<span class="cstat-no" title="statement not covered" >        if (className == booleanClass) {</span>
2387          // Booleans are represented literally.
2388<span class="cstat-no" title="statement not covered" >          return "" + value;</span>
2389        } else <span class="cstat-no" title="statement not covered" >if (className == numberClass) {</span>
2390          // JSON numbers must be finite. `Infinity` and `NaN` are serialized as
2391          // `"null"`.
2392<span class="cstat-no" title="statement not covered" >          return value &gt; -1 / 0 &amp;&amp; value &lt; 1 / 0 ? "" + value : "null";</span>
2393        } else <span class="cstat-no" title="statement not covered" >if (className == stringClass) {</span>
2394          // Strings are double-quoted and escaped.
2395<span class="cstat-no" title="statement not covered" >          return quote("" + value);</span>
2396        }
2397        // Recursively serialize objects and arrays.
2398<span class="cstat-no" title="statement not covered" >        if (typeof value == "object") {</span>
2399          // Check for cyclic structures. This is a linear search; performance
2400          // is inversely proportional to the number of unique nested objects.
2401<span class="cstat-no" title="statement not covered" >          for (length = stack.length; length--;) {</span>
2402<span class="cstat-no" title="statement not covered" >            if (stack[length] === value) {</span>
2403              // Cyclic structures cannot be serialized by `JSON.stringify`.
2404<span class="cstat-no" title="statement not covered" >              throw TypeError();</span>
2405            }
2406          }
2407          // Add the object to the stack of traversed objects.
2408<span class="cstat-no" title="statement not covered" >          stack.push(value);</span>
2409<span class="cstat-no" title="statement not covered" >          results = [];</span>
2410          // Save the current indentation level and indent one additional level.
2411<span class="cstat-no" title="statement not covered" >          prefix = indentation;</span>
2412<span class="cstat-no" title="statement not covered" >          indentation += whitespace;</span>
2413<span class="cstat-no" title="statement not covered" >          if (className == arrayClass) {</span>
2414            // Recursively serialize array elements.
2415<span class="cstat-no" title="statement not covered" >            for (index = 0, length = value.length; index &lt; length; hasMembers || (hasMembers = true), index++) {</span>
2416<span class="cstat-no" title="statement not covered" >              element = serialize(index, value, callback, properties, whitespace, indentation, stack);</span>
2417<span class="cstat-no" title="statement not covered" >              results.push(element === undef ? "null" : element);</span>
2418            }
2419<span class="cstat-no" title="statement not covered" >            result = hasMembers ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]";</span>
2420          } else {
2421            // Recursively serialize object members. Members are selected from
2422            // either a user-specified list of property names, or the object
2423            // itself.
2424<span class="cstat-no" title="statement not covered" >            forEach(properties || value, <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2425<span class="cstat-no" title="statement not covered" >              var element = serialize(property, value, callback, properties, whitespace, indentation, stack);</span>
2426<span class="cstat-no" title="statement not covered" >              if (element !== undef) {</span>
2427                // According to ES 5.1 section 15.12.3: "If `gap` {whitespace}
2428                // is not the empty string, let `member` {quote(property) + ":"}
2429                // be the concatenation of `member` and the `space` character."
2430                // The "`space` character" refers to the literal space
2431                // character, not the `space` {width} argument provided to
2432                // `JSON.stringify`.
2433<span class="cstat-no" title="statement not covered" >                results.push(quote(property) + ":" + (whitespace ? " " : "") + element);</span>
2434              }
2435<span class="cstat-no" title="statement not covered" >              hasMembers || (hasMembers = true);</span>
2436            });
2437<span class="cstat-no" title="statement not covered" >            result = hasMembers ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}";</span>
2438          }
2439          // Remove the object from the traversed object stack.
2440<span class="cstat-no" title="statement not covered" >          stack.pop();</span>
2441<span class="cstat-no" title="statement not covered" >          return result;</span>
2442        }
2443      };
2444&nbsp;
2445      // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.
2446<span class="cstat-no" title="statement not covered" >      JSON3.stringify = <span class="fstat-no" title="function not covered" >function (source, filter, width) {</span></span>
2447<span class="cstat-no" title="statement not covered" >        var whitespace, callback, properties, className;</span>
2448<span class="cstat-no" title="statement not covered" >        if (typeof filter == "function" || typeof filter == "object" &amp;&amp; filter) {</span>
2449<span class="cstat-no" title="statement not covered" >          if ((className = getClass.call(filter)) == functionClass) {</span>
2450<span class="cstat-no" title="statement not covered" >            callback = filter;</span>
2451          } else <span class="cstat-no" title="statement not covered" >if (className == arrayClass) {</span>
2452            // Convert the property names array into a makeshift set.
2453<span class="cstat-no" title="statement not covered" >            properties = {};</span>
2454<span class="cstat-no" title="statement not covered" >            for (var index = 0, length = filter.length, value; index &lt; length; value = filter[index++], ((getClass.call(value) == stringClass || getClass.call(value) == numberClass) &amp;&amp; (properties[value] = 1)));</span>
2455          }
2456        }
2457<span class="cstat-no" title="statement not covered" >        if (width) {</span>
2458<span class="cstat-no" title="statement not covered" >          if ((className = getClass.call(width)) == numberClass) {</span>
2459            // Convert the `width` to an integer and create a string containing
2460            // `width` number of space characters.
2461<span class="cstat-no" title="statement not covered" >            if ((width -= width % 1) &gt; 0) {</span>
2462<span class="cstat-no" title="statement not covered" >              for (whitespace = "", width &gt; 10 &amp;&amp; (width = 10); whitespace.length &lt; width; whitespace += " ");</span>
2463            }
2464          } else <span class="cstat-no" title="statement not covered" >if (className == stringClass) {</span>
2465<span class="cstat-no" title="statement not covered" >            whitespace = width.length &lt;= 10 ? width : width.slice(0, 10);</span>
2466          }
2467        }
2468        // Opera &lt;= 7.54u2 discards the values associated with empty string keys
2469        // (`""`) only if they are used directly within an object member list
2470        // (e.g., `!("" in { "": 1})`).
2471<span class="cstat-no" title="statement not covered" >        return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []);</span>
2472      };
2473    }
2474&nbsp;
2475    // Public: Parses a JSON source string.
2476<span class="cstat-no" title="statement not covered" >    if (!has("json-parse")) {</span>
2477<span class="cstat-no" title="statement not covered" >      var fromCharCode = String.fromCharCode;</span>
2478&nbsp;
2479      // Internal: A map of escaped control characters and their unescaped
2480      // equivalents.
2481<span class="cstat-no" title="statement not covered" >      var Unescapes = {</span>
2482        92: "\\",
2483        34: '"',
2484        47: "/",
2485        98: "\b",
2486        116: "\t",
2487        110: "\n",
2488        102: "\f",
2489        114: "\r"
2490      };
2491&nbsp;
2492      // Internal: Stores the parser state.
2493<span class="cstat-no" title="statement not covered" >      var Index, Source;</span>
2494&nbsp;
2495      // Internal: Resets the parser state and throws a `SyntaxError`.
2496<span class="cstat-no" title="statement not covered" >      var abort = <span class="fstat-no" title="function not covered" >function() {</span></span>
2497<span class="cstat-no" title="statement not covered" >        Index = Source = null;</span>
2498<span class="cstat-no" title="statement not covered" >        throw SyntaxError();</span>
2499      };
2500&nbsp;
2501      // Internal: Returns the next token, or `"$"` if the parser has reached
2502      // the end of the source string. A token may be a string, number, `null`
2503      // literal, or Boolean literal.
2504<span class="cstat-no" title="statement not covered" >      var lex = <span class="fstat-no" title="function not covered" >function () {</span></span>
2505<span class="cstat-no" title="statement not covered" >        var source = Source, length = source.length, value, begin, position, isSigned, charCode;</span>
2506<span class="cstat-no" title="statement not covered" >        while (Index &lt; length) {</span>
2507<span class="cstat-no" title="statement not covered" >          charCode = source.charCodeAt(Index);</span>
2508<span class="cstat-no" title="statement not covered" >          switch (charCode) {</span>
2509            case 9: case 10: case 13: case 32:
2510              // Skip whitespace tokens, including tabs, carriage returns, line
2511              // feeds, and space characters.
2512<span class="cstat-no" title="statement not covered" >              Index++;</span>
2513<span class="cstat-no" title="statement not covered" >              break;</span>
2514            case 123: case 125: case 91: case 93: case 58: case 44:
2515              // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at
2516              // the current position.
2517<span class="cstat-no" title="statement not covered" >              value = charIndexBuggy ? source.charAt(Index) : source[Index];</span>
2518<span class="cstat-no" title="statement not covered" >              Index++;</span>
2519<span class="cstat-no" title="statement not covered" >              return value;</span>
2520            case 34:
2521              // `"` delimits a JSON string; advance to the next character and
2522              // begin parsing the string. String tokens are prefixed with the
2523              // sentinel `@` character to distinguish them from punctuators and
2524              // end-of-string tokens.
2525<span class="cstat-no" title="statement not covered" >              for (value = "@", Index++; Index &lt; length;) {</span>
2526<span class="cstat-no" title="statement not covered" >                charCode = source.charCodeAt(Index);</span>
2527<span class="cstat-no" title="statement not covered" >                if (charCode &lt; 32) {</span>
2528                  // Unescaped ASCII control characters (those with a code unit
2529                  // less than the space character) are not permitted.
2530<span class="cstat-no" title="statement not covered" >                  abort();</span>
2531                } else <span class="cstat-no" title="statement not covered" >if (charCode == 92) {</span>
2532                  // A reverse solidus (`\`) marks the beginning of an escaped
2533                  // control character (including `"`, `\`, and `/`) or Unicode
2534                  // escape sequence.
2535<span class="cstat-no" title="statement not covered" >                  charCode = source.charCodeAt(++Index);</span>
2536<span class="cstat-no" title="statement not covered" >                  switch (charCode) {</span>
2537                    case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:
2538                      // Revive escaped control characters.
2539<span class="cstat-no" title="statement not covered" >                      value += Unescapes[charCode];</span>
2540<span class="cstat-no" title="statement not covered" >                      Index++;</span>
2541<span class="cstat-no" title="statement not covered" >                      break;</span>
2542                    case 117:
2543                      // `\u` marks the beginning of a Unicode escape sequence.
2544                      // Advance to the first character and validate the
2545                      // four-digit code point.
2546<span class="cstat-no" title="statement not covered" >                      begin = ++Index;</span>
2547<span class="cstat-no" title="statement not covered" >                      for (position = Index + 4; Index &lt; position; Index++) {</span>
2548<span class="cstat-no" title="statement not covered" >                        charCode = source.charCodeAt(Index);</span>
2549                        // A valid sequence comprises four hexdigits (case-
2550                        // insensitive) that form a single hexadecimal value.
2551<span class="cstat-no" title="statement not covered" >                        if (!(charCode &gt;= 48 &amp;&amp; charCode &lt;= 57 || charCode &gt;= 97 &amp;&amp; charCode &lt;= 102 || charCode &gt;= 65 &amp;&amp; charCode &lt;= 70)) {</span>
2552                          // Invalid Unicode escape sequence.
2553<span class="cstat-no" title="statement not covered" >                          abort();</span>
2554                        }
2555                      }
2556                      // Revive the escaped character.
2557<span class="cstat-no" title="statement not covered" >                      value += fromCharCode("0x" + source.slice(begin, Index));</span>
2558<span class="cstat-no" title="statement not covered" >                      break;</span>
2559                    default:
2560                      // Invalid escape sequence.
2561<span class="cstat-no" title="statement not covered" >                      abort();</span>
2562                  }
2563                } else {
2564<span class="cstat-no" title="statement not covered" >                  if (charCode == 34) {</span>
2565                    // An unescaped double-quote character marks the end of the
2566                    // string.
2567<span class="cstat-no" title="statement not covered" >                    break;</span>
2568                  }
2569<span class="cstat-no" title="statement not covered" >                  charCode = source.charCodeAt(Index);</span>
2570<span class="cstat-no" title="statement not covered" >                  begin = Index;</span>
2571                  // Optimize for the common case where a string is valid.
2572<span class="cstat-no" title="statement not covered" >                  while (charCode &gt;= 32 &amp;&amp; charCode != 92 &amp;&amp; charCode != 34) {</span>
2573<span class="cstat-no" title="statement not covered" >                    charCode = source.charCodeAt(++Index);</span>
2574                  }
2575                  // Append the string as-is.
2576<span class="cstat-no" title="statement not covered" >                  value += source.slice(begin, Index);</span>
2577                }
2578              }
2579<span class="cstat-no" title="statement not covered" >              if (source.charCodeAt(Index) == 34) {</span>
2580                // Advance to the next character and return the revived string.
2581<span class="cstat-no" title="statement not covered" >                Index++;</span>
2582<span class="cstat-no" title="statement not covered" >                return value;</span>
2583              }
2584              // Unterminated string.
2585<span class="cstat-no" title="statement not covered" >              abort();</span>
2586            default:
2587              // Parse numbers and literals.
2588<span class="cstat-no" title="statement not covered" >              begin = Index;</span>
2589              // Advance past the negative sign, if one is specified.
2590<span class="cstat-no" title="statement not covered" >              if (charCode == 45) {</span>
2591<span class="cstat-no" title="statement not covered" >                isSigned = true;</span>
2592<span class="cstat-no" title="statement not covered" >                charCode = source.charCodeAt(++Index);</span>
2593              }
2594              // Parse an integer or floating-point value.
2595<span class="cstat-no" title="statement not covered" >              if (charCode &gt;= 48 &amp;&amp; charCode &lt;= 57) {</span>
2596                // Leading zeroes are interpreted as octal literals.
2597<span class="cstat-no" title="statement not covered" >                if (charCode == 48 &amp;&amp; ((charCode = source.charCodeAt(Index + 1)), charCode &gt;= 48 &amp;&amp; charCode &lt;= 57)) {</span>
2598                  // Illegal octal literal.
2599<span class="cstat-no" title="statement not covered" >                  abort();</span>
2600                }
2601<span class="cstat-no" title="statement not covered" >                isSigned = false;</span>
2602                // Parse the integer component.
2603<span class="cstat-no" title="statement not covered" >                for (; Index &lt; length &amp;&amp; ((charCode = source.charCodeAt(Index)), charCode &gt;= 48 &amp;&amp; charCode &lt;= 57); Index++);</span>
2604                // Floats cannot contain a leading decimal point; however, this
2605                // case is already accounted for by the parser.
2606<span class="cstat-no" title="statement not covered" >                if (source.charCodeAt(Index) == 46) {</span>
2607<span class="cstat-no" title="statement not covered" >                  position = ++Index;</span>
2608                  // Parse the decimal component.
2609<span class="cstat-no" title="statement not covered" >                  for (; position &lt; length &amp;&amp; ((charCode = source.charCodeAt(position)), charCode &gt;= 48 &amp;&amp; charCode &lt;= 57); position++);</span>
2610<span class="cstat-no" title="statement not covered" >                  if (position == Index) {</span>
2611                    // Illegal trailing decimal.
2612<span class="cstat-no" title="statement not covered" >                    abort();</span>
2613                  }
2614<span class="cstat-no" title="statement not covered" >                  Index = position;</span>
2615                }
2616                // Parse exponents. The `e` denoting the exponent is
2617                // case-insensitive.
2618<span class="cstat-no" title="statement not covered" >                charCode = source.charCodeAt(Index);</span>
2619<span class="cstat-no" title="statement not covered" >                if (charCode == 101 || charCode == 69) {</span>
2620<span class="cstat-no" title="statement not covered" >                  charCode = source.charCodeAt(++Index);</span>
2621                  // Skip past the sign following the exponent, if one is
2622                  // specified.
2623<span class="cstat-no" title="statement not covered" >                  if (charCode == 43 || charCode == 45) {</span>
2624<span class="cstat-no" title="statement not covered" >                    Index++;</span>
2625                  }
2626                  // Parse the exponential component.
2627<span class="cstat-no" title="statement not covered" >                  for (position = Index; position &lt; length &amp;&amp; ((charCode = source.charCodeAt(position)), charCode &gt;= 48 &amp;&amp; charCode &lt;= 57); position++);</span>
2628<span class="cstat-no" title="statement not covered" >                  if (position == Index) {</span>
2629                    // Illegal empty exponent.
2630<span class="cstat-no" title="statement not covered" >                    abort();</span>
2631                  }
2632<span class="cstat-no" title="statement not covered" >                  Index = position;</span>
2633                }
2634                // Coerce the parsed value to a JavaScript number.
2635<span class="cstat-no" title="statement not covered" >                return +source.slice(begin, Index);</span>
2636              }
2637              // A negative sign may only precede numbers.
2638<span class="cstat-no" title="statement not covered" >              if (isSigned) {</span>
2639<span class="cstat-no" title="statement not covered" >                abort();</span>
2640              }
2641              // `true`, `false`, and `null` literals.
2642<span class="cstat-no" title="statement not covered" >              if (source.slice(Index, Index + 4) == "true") {</span>
2643<span class="cstat-no" title="statement not covered" >                Index += 4;</span>
2644<span class="cstat-no" title="statement not covered" >                return true;</span>
2645              } else <span class="cstat-no" title="statement not covered" >if (source.slice(Index, Index + 5) == "false") {</span>
2646<span class="cstat-no" title="statement not covered" >                Index += 5;</span>
2647<span class="cstat-no" title="statement not covered" >                return false;</span>
2648              } else <span class="cstat-no" title="statement not covered" >if (source.slice(Index, Index + 4) == "null") {</span>
2649<span class="cstat-no" title="statement not covered" >                Index += 4;</span>
2650<span class="cstat-no" title="statement not covered" >                return null;</span>
2651              }
2652              // Unrecognized token.
2653<span class="cstat-no" title="statement not covered" >              abort();</span>
2654          }
2655        }
2656        // Return the sentinel `$` character if the parser has reached the end
2657        // of the source string.
2658<span class="cstat-no" title="statement not covered" >        return "$";</span>
2659      };
2660&nbsp;
2661      // Internal: Parses a JSON `value` token.
2662<span class="cstat-no" title="statement not covered" >      var get = <span class="fstat-no" title="function not covered" >function (value) {</span></span>
2663<span class="cstat-no" title="statement not covered" >        var results, hasMembers;</span>
2664<span class="cstat-no" title="statement not covered" >        if (value == "$") {</span>
2665          // Unexpected end of input.
2666<span class="cstat-no" title="statement not covered" >          abort();</span>
2667        }
2668<span class="cstat-no" title="statement not covered" >        if (typeof value == "string") {</span>
2669<span class="cstat-no" title="statement not covered" >          if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") {</span>
2670            // Remove the sentinel `@` character.
2671<span class="cstat-no" title="statement not covered" >            return value.slice(1);</span>
2672          }
2673          // Parse object and array literals.
2674<span class="cstat-no" title="statement not covered" >          if (value == "[") {</span>
2675            // Parses a JSON array, returning a new JavaScript array.
2676<span class="cstat-no" title="statement not covered" >            results = [];</span>
2677<span class="cstat-no" title="statement not covered" >            for (;; hasMembers || (hasMembers = true)) {</span>
2678<span class="cstat-no" title="statement not covered" >              value = lex();</span>
2679              // A closing square bracket marks the end of the array literal.
2680<span class="cstat-no" title="statement not covered" >              if (value == "]") {</span>
2681<span class="cstat-no" title="statement not covered" >                break;</span>
2682              }
2683              // If the array literal contains elements, the current token
2684              // should be a comma separating the previous element from the
2685              // next.
2686<span class="cstat-no" title="statement not covered" >              if (hasMembers) {</span>
2687<span class="cstat-no" title="statement not covered" >                if (value == ",") {</span>
2688<span class="cstat-no" title="statement not covered" >                  value = lex();</span>
2689<span class="cstat-no" title="statement not covered" >                  if (value == "]") {</span>
2690                    // Unexpected trailing `,` in array literal.
2691<span class="cstat-no" title="statement not covered" >                    abort();</span>
2692                  }
2693                } else {
2694                  // A `,` must separate each array element.
2695<span class="cstat-no" title="statement not covered" >                  abort();</span>
2696                }
2697              }
2698              // Elisions and leading commas are not permitted.
2699<span class="cstat-no" title="statement not covered" >              if (value == ",") {</span>
2700<span class="cstat-no" title="statement not covered" >                abort();</span>
2701              }
2702<span class="cstat-no" title="statement not covered" >              results.push(get(value));</span>
2703            }
2704<span class="cstat-no" title="statement not covered" >            return results;</span>
2705          } else <span class="cstat-no" title="statement not covered" >if (value == "{") {</span>
2706            // Parses a JSON object, returning a new JavaScript object.
2707<span class="cstat-no" title="statement not covered" >            results = {};</span>
2708<span class="cstat-no" title="statement not covered" >            for (;; hasMembers || (hasMembers = true)) {</span>
2709<span class="cstat-no" title="statement not covered" >              value = lex();</span>
2710              // A closing curly brace marks the end of the object literal.
2711<span class="cstat-no" title="statement not covered" >              if (value == "}") {</span>
2712<span class="cstat-no" title="statement not covered" >                break;</span>
2713              }
2714              // If the object literal contains members, the current token
2715              // should be a comma separator.
2716<span class="cstat-no" title="statement not covered" >              if (hasMembers) {</span>
2717<span class="cstat-no" title="statement not covered" >                if (value == ",") {</span>
2718<span class="cstat-no" title="statement not covered" >                  value = lex();</span>
2719<span class="cstat-no" title="statement not covered" >                  if (value == "}") {</span>
2720                    // Unexpected trailing `,` in object literal.
2721<span class="cstat-no" title="statement not covered" >                    abort();</span>
2722                  }
2723                } else {
2724                  // A `,` must separate each object member.
2725<span class="cstat-no" title="statement not covered" >                  abort();</span>
2726                }
2727              }
2728              // Leading commas are not permitted, object property names must be
2729              // double-quoted strings, and a `:` must separate each property
2730              // name and value.
2731<span class="cstat-no" title="statement not covered" >              if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") {</span>
2732<span class="cstat-no" title="statement not covered" >                abort();</span>
2733              }
2734<span class="cstat-no" title="statement not covered" >              results[value.slice(1)] = get(lex());</span>
2735            }
2736<span class="cstat-no" title="statement not covered" >            return results;</span>
2737          }
2738          // Unexpected token encountered.
2739<span class="cstat-no" title="statement not covered" >          abort();</span>
2740        }
2741<span class="cstat-no" title="statement not covered" >        return value;</span>
2742      };
2743&nbsp;
2744      // Internal: Updates a traversed object member.
2745<span class="cstat-no" title="statement not covered" >      var update = <span class="fstat-no" title="function not covered" >function(source, property, callback) {</span></span>
2746<span class="cstat-no" title="statement not covered" >        var element = walk(source, property, callback);</span>
2747<span class="cstat-no" title="statement not covered" >        if (element === undef) {</span>
2748<span class="cstat-no" title="statement not covered" >          delete source[property];</span>
2749        } else {
2750<span class="cstat-no" title="statement not covered" >          source[property] = element;</span>
2751        }
2752      };
2753&nbsp;
2754      // Internal: Recursively traverses a parsed JSON object, invoking the
2755      // `callback` function for each value. This is an implementation of the
2756      // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.
2757<span class="cstat-no" title="statement not covered" >      var walk = <span class="fstat-no" title="function not covered" >function (source, property, callback) {</span></span>
2758<span class="cstat-no" title="statement not covered" >        var value = source[property], length;</span>
2759<span class="cstat-no" title="statement not covered" >        if (typeof value == "object" &amp;&amp; value) {</span>
2760          // `forEach` can't be used to traverse an array in Opera &lt;= 8.54
2761          // because its `Object#hasOwnProperty` implementation returns `false`
2762          // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`).
2763<span class="cstat-no" title="statement not covered" >          if (getClass.call(value) == arrayClass) {</span>
2764<span class="cstat-no" title="statement not covered" >            for (length = value.length; length--;) {</span>
2765<span class="cstat-no" title="statement not covered" >              update(value, length, callback);</span>
2766            }
2767          } else {
2768<span class="cstat-no" title="statement not covered" >            forEach(value, <span class="fstat-no" title="function not covered" >function (property) {</span></span>
2769<span class="cstat-no" title="statement not covered" >              update(value, property, callback);</span>
2770            });
2771          }
2772        }
2773<span class="cstat-no" title="statement not covered" >        return callback.call(source, property, value);</span>
2774      };
2775&nbsp;
2776      // Public: `JSON.parse`. See ES 5.1 section 15.12.2.
2777<span class="cstat-no" title="statement not covered" >      JSON3.parse = <span class="fstat-no" title="function not covered" >function (source, callback) {</span></span>
2778<span class="cstat-no" title="statement not covered" >        var result, value;</span>
2779<span class="cstat-no" title="statement not covered" >        Index = 0;</span>
2780<span class="cstat-no" title="statement not covered" >        Source = "" + source;</span>
2781<span class="cstat-no" title="statement not covered" >        result = get(lex());</span>
2782        // If a JSON string contains multiple tokens, it is invalid.
2783<span class="cstat-no" title="statement not covered" >        if (lex() != "$") {</span>
2784<span class="cstat-no" title="statement not covered" >          abort();</span>
2785        }
2786        // Reset the parser state.
2787<span class="cstat-no" title="statement not covered" >        Index = Source = null;</span>
2788<span class="cstat-no" title="statement not covered" >        return callback &amp;&amp; getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result;</span>
2789      };
2790    }
2791  }
2792&nbsp;
2793  // Export for asynchronous module loaders.
2794  <span class="missing-if-branch" title="if path not taken"" >I</span>if (isLoader) {
2795<span class="cstat-no" title="statement not covered" >    define(<span class="fstat-no" title="function not covered" >function () {</span></span>
2796<span class="cstat-no" title="statement not covered" >      return JSON3;</span>
2797    });
2798  }
2799}(this));
2800&nbsp;</pre></td></tr>
2801</table></pre>
2802
2803</div>
2804<div class="footer">
2805    <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sun Nov 17 2013 14:21:36 GMT-0800 (PST)</div>
2806</div>
2807
2808<script src="../prettify.js"></script>
2809
2810<script src="http://yui.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
2811<script>
2812
2813    YUI().use('datatable', function (Y) {
2814
2815        var formatters = {
2816          pct: function (o) {
2817              o.className += o.record.get('classes')[o.column.key];
2818              try {
2819                  return o.value.toFixed(2) + '%';
2820              } catch (ex) { return o.value + '%'; }
2821          },
2822          html: function (o) {
2823              o.className += o.record.get('classes')[o.column.key];
2824              return o.record.get(o.column.key + '_html');
2825          }
2826        },
2827          defaultFormatter = function (o) {
2828              o.className += o.record.get('classes')[o.column.key];
2829              return o.value;
2830          };
2831
2832        function getColumns(theadNode) {
2833            var colNodes = theadNode.all('tr th'),
2834                cols = [],
2835                col;
2836            colNodes.each(function (colNode) {
2837                col = {
2838                    key: colNode.getAttribute('data-col'),
2839                    label: colNode.get('innerHTML') || ' ',
2840                    sortable: !colNode.getAttribute('data-nosort'),
2841                    className: colNode.getAttribute('class'),
2842                    type: colNode.getAttribute('data-type'),
2843                    allowHTML: colNode.getAttribute('data-html') === 'true' || colNode.getAttribute('data-fmt') === 'html'
2844                };
2845                col.formatter = formatters[colNode.getAttribute('data-fmt')] || defaultFormatter;
2846                cols.push(col);
2847            });
2848            return cols;
2849        }
2850
2851        function getRowData(trNode, cols) {
2852            var tdNodes = trNode.all('td'),
2853                    i,
2854                    row = { classes: {} },
2855                    node,
2856                    name;
2857            for (i = 0; i < cols.length; i += 1) {
2858                name = cols[i].key;
2859                node = tdNodes.item(i);
2860                row[name] = node.getAttribute('data-value') || node.get('innerHTML');
2861                row[name + '_html'] = node.get('innerHTML');
2862                row.classes[name] = node.getAttribute('class');
2863                //Y.log('Name: ' + name + '; Value: ' + row[name]);
2864                if (cols[i].type === 'number') { row[name] = row[name] * 1; }
2865            }
2866            //Y.log(row);
2867            return row;
2868        }
2869
2870        function getData(tbodyNode, cols) {
2871            var data = [];
2872            tbodyNode.all('tr').each(function (trNode) {
2873                data.push(getRowData(trNode, cols));
2874            });
2875            return data;
2876        }
2877
2878        function replaceTable(node) {
2879            if (!node) { return; }
2880            var cols = getColumns(node.one('thead')),
2881                data = getData(node.one('tbody'), cols),
2882                table,
2883                parent = node.get('parentNode');
2884
2885            table = new Y.DataTable({
2886                columns: cols,
2887                data: data,
2888                sortBy: 'file'
2889            });
2890            parent.set('innerHTML', '');
2891            table.render(parent);
2892        }
2893
2894        Y.on('domready', function () {
2895            replaceTable(Y.one('div.coverage-summary table'));
2896            if (typeof prettyPrint === 'function') {
2897                prettyPrint();
2898            }
2899        });
2900    });
2901</script>
2902</body>
2903</html>