You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2903 lines
117 KiB

  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. <link rel="stylesheet" href="../prettify.css">
  7. <style>
  8. body, html {
  9. margin:0; padding: 0;
  10. }
  11. body {
  12. font-family: Helvetica Neue, Helvetica,Arial;
  13. font-size: 10pt;
  14. }
  15. div.header, div.footer {
  16. background: #eee;
  17. padding: 1em;
  18. }
  19. div.header {
  20. z-index: 100;
  21. position: fixed;
  22. top: 0;
  23. border-bottom: 1px solid #666;
  24. width: 100%;
  25. }
  26. div.footer {
  27. border-top: 1px solid #666;
  28. }
  29. div.body {
  30. margin-top: 10em;
  31. }
  32. div.meta {
  33. font-size: 90%;
  34. text-align: center;
  35. }
  36. h1, h2, h3 {
  37. font-weight: normal;
  38. }
  39. h1 {
  40. font-size: 12pt;
  41. }
  42. h2 {
  43. font-size: 10pt;
  44. }
  45. pre {
  46. font-family: Consolas, Menlo, Monaco, monospace;
  47. margin: 0;
  48. padding: 0;
  49. line-height: 14px;
  50. font-size: 14px;
  51. -moz-tab-size: 2;
  52. -o-tab-size: 2;
  53. tab-size: 2;
  54. }
  55. div.path { font-size: 110%; }
  56. div.path a:link, div.path a:visited { color: #000; }
  57. table.coverage { border-collapse: collapse; margin:0; padding: 0 }
  58. table.coverage td {
  59. margin: 0;
  60. padding: 0;
  61. color: #111;
  62. vertical-align: top;
  63. }
  64. table.coverage td.line-count {
  65. width: 50px;
  66. text-align: right;
  67. padding-right: 5px;
  68. }
  69. table.coverage td.line-coverage {
  70. color: #777 !important;
  71. text-align: right;
  72. border-left: 1px solid #666;
  73. border-right: 1px solid #666;
  74. }
  75. table.coverage td.text {
  76. }
  77. table.coverage td span.cline-any {
  78. display: inline-block;
  79. padding: 0 5px;
  80. width: 40px;
  81. }
  82. table.coverage td span.cline-neutral {
  83. background: #eee;
  84. }
  85. table.coverage td span.cline-yes {
  86. background: #b5d592;
  87. color: #999;
  88. }
  89. table.coverage td span.cline-no {
  90. background: #fc8c84;
  91. }
  92. .cstat-yes { color: #111; }
  93. .cstat-no { background: #fc8c84; color: #111; }
  94. .fstat-no { background: #ffc520; color: #111 !important; }
  95. .cbranch-no { background: yellow !important; color: #111; }
  96. .missing-if-branch {
  97. display: inline-block;
  98. margin-right: 10px;
  99. position: relative;
  100. padding: 0 4px;
  101. background: black;
  102. color: yellow;
  103. xtext-decoration: line-through;
  104. }
  105. .missing-if-branch .typ {
  106. color: inherit !important;
  107. }
  108. .entity, .metric { font-weight: bold; }
  109. .metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
  110. .metric small { font-size: 80%; font-weight: normal; color: #666; }
  111. div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
  112. 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; }
  113. div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
  114. div.coverage-summary th.file { border-right: none !important; }
  115. div.coverage-summary th.pic { border-left: none !important; text-align: right; }
  116. div.coverage-summary th.pct { border-right: none !important; }
  117. div.coverage-summary th.abs { border-left: none !important; text-align: right; }
  118. div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
  119. div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
  120. div.coverage-summary td.file { text-align: right; border-left: 1px solid #666; white-space: nowrap; }
  121. div.coverage-summary td.pic { min-width: 120px !important; }
  122. div.coverage-summary a:link { text-decoration: none; color: #000; }
  123. div.coverage-summary a:visited { text-decoration: none; color: #333; }
  124. div.coverage-summary a:hover { text-decoration: underline; }
  125. div.coverage-summary tfoot td { border-top: 1px solid #666; }
  126. div.coverage-summary .yui3-datatable-sort-indicator, div.coverage-summary .dummy-sort-indicator {
  127. height: 10px;
  128. width: 7px;
  129. display: inline-block;
  130. margin-left: 0.5em;
  131. }
  132. div.coverage-summary .yui3-datatable-sort-indicator {
  133. 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;
  134. }
  135. div.coverage-summary .yui3-datatable-sorted .yui3-datatable-sort-indicator {
  136. background-position: 0 -20px;
  137. }
  138. div.coverage-summary .yui3-datatable-sorted-desc .yui3-datatable-sort-indicator {
  139. background-position: 0 -10px;
  140. }
  141. .high { background: #b5d592 !important; }
  142. .medium { background: #ffe87c !important; }
  143. .low { background: #fc8c84 !important; }
  144. span.cover-fill, span.cover-empty {
  145. display:inline-block;
  146. border:1px solid #444;
  147. background: white;
  148. height: 12px;
  149. }
  150. span.cover-fill {
  151. background: #ccc;
  152. border-right: 1px solid #444;
  153. }
  154. span.cover-empty {
  155. background: white;
  156. border-left: none;
  157. }
  158. span.cover-full {
  159. border-right: none !important;
  160. }
  161. pre.prettyprint {
  162. border: none !important;
  163. padding: 0 !important;
  164. margin: 0 !important;
  165. }
  166. .com { color: #999 !important; }
  167. </style>
  168. </head>
  169. <body>
  170. <div class="header low">
  171. <h1>Code coverage report for <span class="entity">lib/json3.js</span></h1>
  172. <h2>
  173. Statements: <span class="metric">13.77% <small>(50 / 363)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  174. Branches: <span class="metric">15.32% <small>(59 / 385)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  175. Functions: <span class="metric">11.54% <small>(3 / 26)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  176. Lines: <span class="metric">13.77% <small>(50 / 363)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  177. </h2>
  178. <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">lib/</a> &#187; json3.js</div>
  179. </div>
  180. <div class="body">
  181. <pre><table class="coverage">
  182. <tr><td class="line-count">1
  183. 2
  184. 3
  185. 4
  186. 5
  187. 6
  188. 7
  189. 8
  190. 9
  191. 10
  192. 11
  193. 12
  194. 13
  195. 14
  196. 15
  197. 16
  198. 17
  199. 18
  200. 19
  201. 20
  202. 21
  203. 22
  204. 23
  205. 24
  206. 25
  207. 26
  208. 27
  209. 28
  210. 29
  211. 30
  212. 31
  213. 32
  214. 33
  215. 34
  216. 35
  217. 36
  218. 37
  219. 38
  220. 39
  221. 40
  222. 41
  223. 42
  224. 43
  225. 44
  226. 45
  227. 46
  228. 47
  229. 48
  230. 49
  231. 50
  232. 51
  233. 52
  234. 53
  235. 54
  236. 55
  237. 56
  238. 57
  239. 58
  240. 59
  241. 60
  242. 61
  243. 62
  244. 63
  245. 64
  246. 65
  247. 66
  248. 67
  249. 68
  250. 69
  251. 70
  252. 71
  253. 72
  254. 73
  255. 74
  256. 75
  257. 76
  258. 77
  259. 78
  260. 79
  261. 80
  262. 81
  263. 82
  264. 83
  265. 84
  266. 85
  267. 86
  268. 87
  269. 88
  270. 89
  271. 90
  272. 91
  273. 92
  274. 93
  275. 94
  276. 95
  277. 96
  278. 97
  279. 98
  280. 99
  281. 100
  282. 101
  283. 102
  284. 103
  285. 104
  286. 105
  287. 106
  288. 107
  289. 108
  290. 109
  291. 110
  292. 111
  293. 112
  294. 113
  295. 114
  296. 115
  297. 116
  298. 117
  299. 118
  300. 119
  301. 120
  302. 121
  303. 122
  304. 123
  305. 124
  306. 125
  307. 126
  308. 127
  309. 128
  310. 129
  311. 130
  312. 131
  313. 132
  314. 133
  315. 134
  316. 135
  317. 136
  318. 137
  319. 138
  320. 139
  321. 140
  322. 141
  323. 142
  324. 143
  325. 144
  326. 145
  327. 146
  328. 147
  329. 148
  330. 149
  331. 150
  332. 151
  333. 152
  334. 153
  335. 154
  336. 155
  337. 156
  338. 157
  339. 158
  340. 159
  341. 160
  342. 161
  343. 162
  344. 163
  345. 164
  346. 165
  347. 166
  348. 167
  349. 168
  350. 169
  351. 170
  352. 171
  353. 172
  354. 173
  355. 174
  356. 175
  357. 176
  358. 177
  359. 178
  360. 179
  361. 180
  362. 181
  363. 182
  364. 183
  365. 184
  366. 185
  367. 186
  368. 187
  369. 188
  370. 189
  371. 190
  372. 191
  373. 192
  374. 193
  375. 194
  376. 195
  377. 196
  378. 197
  379. 198
  380. 199
  381. 200
  382. 201
  383. 202
  384. 203
  385. 204
  386. 205
  387. 206
  388. 207
  389. 208
  390. 209
  391. 210
  392. 211
  393. 212
  394. 213
  395. 214
  396. 215
  397. 216
  398. 217
  399. 218
  400. 219
  401. 220
  402. 221
  403. 222
  404. 223
  405. 224
  406. 225
  407. 226
  408. 227
  409. 228
  410. 229
  411. 230
  412. 231
  413. 232
  414. 233
  415. 234
  416. 235
  417. 236
  418. 237
  419. 238
  420. 239
  421. 240
  422. 241
  423. 242
  424. 243
  425. 244
  426. 245
  427. 246
  428. 247
  429. 248
  430. 249
  431. 250
  432. 251
  433. 252
  434. 253
  435. 254
  436. 255
  437. 256
  438. 257
  439. 258
  440. 259
  441. 260
  442. 261
  443. 262
  444. 263
  445. 264
  446. 265
  447. 266
  448. 267
  449. 268
  450. 269
  451. 270
  452. 271
  453. 272
  454. 273
  455. 274
  456. 275
  457. 276
  458. 277
  459. 278
  460. 279
  461. 280
  462. 281
  463. 282
  464. 283
  465. 284
  466. 285
  467. 286
  468. 287
  469. 288
  470. 289
  471. 290
  472. 291
  473. 292
  474. 293
  475. 294
  476. 295
  477. 296
  478. 297
  479. 298
  480. 299
  481. 300
  482. 301
  483. 302
  484. 303
  485. 304
  486. 305
  487. 306
  488. 307
  489. 308
  490. 309
  491. 310
  492. 311
  493. 312
  494. 313
  495. 314
  496. 315
  497. 316
  498. 317
  499. 318
  500. 319
  501. 320
  502. 321
  503. 322
  504. 323
  505. 324
  506. 325
  507. 326
  508. 327
  509. 328
  510. 329
  511. 330
  512. 331
  513. 332
  514. 333
  515. 334
  516. 335
  517. 336
  518. 337
  519. 338
  520. 339
  521. 340
  522. 341
  523. 342
  524. 343
  525. 344
  526. 345
  527. 346
  528. 347
  529. 348
  530. 349
  531. 350
  532. 351
  533. 352
  534. 353
  535. 354
  536. 355
  537. 356
  538. 357
  539. 358
  540. 359
  541. 360
  542. 361
  543. 362
  544. 363
  545. 364
  546. 365
  547. 366
  548. 367
  549. 368
  550. 369
  551. 370
  552. 371
  553. 372
  554. 373
  555. 374
  556. 375
  557. 376
  558. 377
  559. 378
  560. 379
  561. 380
  562. 381
  563. 382
  564. 383
  565. 384
  566. 385
  567. 386
  568. 387
  569. 388
  570. 389
  571. 390
  572. 391
  573. 392
  574. 393
  575. 394
  576. 395
  577. 396
  578. 397
  579. 398
  580. 399
  581. 400
  582. 401
  583. 402
  584. 403
  585. 404
  586. 405
  587. 406
  588. 407
  589. 408
  590. 409
  591. 410
  592. 411
  593. 412
  594. 413
  595. 414
  596. 415
  597. 416
  598. 417
  599. 418
  600. 419
  601. 420
  602. 421
  603. 422
  604. 423
  605. 424
  606. 425
  607. 426
  608. 427
  609. 428
  610. 429
  611. 430
  612. 431
  613. 432
  614. 433
  615. 434
  616. 435
  617. 436
  618. 437
  619. 438
  620. 439
  621. 440
  622. 441
  623. 442
  624. 443
  625. 444
  626. 445
  627. 446
  628. 447
  629. 448
  630. 449
  631. 450
  632. 451
  633. 452
  634. 453
  635. 454
  636. 455
  637. 456
  638. 457
  639. 458
  640. 459
  641. 460
  642. 461
  643. 462
  644. 463
  645. 464
  646. 465
  647. 466
  648. 467
  649. 468
  650. 469
  651. 470
  652. 471
  653. 472
  654. 473
  655. 474
  656. 475
  657. 476
  658. 477
  659. 478
  660. 479
  661. 480
  662. 481
  663. 482
  664. 483
  665. 484
  666. 485
  667. 486
  668. 487
  669. 488
  670. 489
  671. 490
  672. 491
  673. 492
  674. 493
  675. 494
  676. 495
  677. 496
  678. 497
  679. 498
  680. 499
  681. 500
  682. 501
  683. 502
  684. 503
  685. 504
  686. 505
  687. 506
  688. 507
  689. 508
  690. 509
  691. 510
  692. 511
  693. 512
  694. 513
  695. 514
  696. 515
  697. 516
  698. 517
  699. 518
  700. 519
  701. 520
  702. 521
  703. 522
  704. 523
  705. 524
  706. 525
  707. 526
  708. 527
  709. 528
  710. 529
  711. 530
  712. 531
  713. 532
  714. 533
  715. 534
  716. 535
  717. 536
  718. 537
  719. 538
  720. 539
  721. 540
  722. 541
  723. 542
  724. 543
  725. 544
  726. 545
  727. 546
  728. 547
  729. 548
  730. 549
  731. 550
  732. 551
  733. 552
  734. 553
  735. 554
  736. 555
  737. 556
  738. 557
  739. 558
  740. 559
  741. 560
  742. 561
  743. 562
  744. 563
  745. 564
  746. 565
  747. 566
  748. 567
  749. 568
  750. 569
  751. 570
  752. 571
  753. 572
  754. 573
  755. 574
  756. 575
  757. 576
  758. 577
  759. 578
  760. 579
  761. 580
  762. 581
  763. 582
  764. 583
  765. 584
  766. 585
  767. 586
  768. 587
  769. 588
  770. 589
  771. 590
  772. 591
  773. 592
  774. 593
  775. 594
  776. 595
  777. 596
  778. 597
  779. 598
  780. 599
  781. 600
  782. 601
  783. 602
  784. 603
  785. 604
  786. 605
  787. 606
  788. 607
  789. 608
  790. 609
  791. 610
  792. 611
  793. 612
  794. 613
  795. 614
  796. 615
  797. 616
  798. 617
  799. 618
  800. 619
  801. 620
  802. 621
  803. 622
  804. 623
  805. 624
  806. 625
  807. 626
  808. 627
  809. 628
  810. 629
  811. 630
  812. 631
  813. 632
  814. 633
  815. 634
  816. 635
  817. 636
  818. 637
  819. 638
  820. 639
  821. 640
  822. 641
  823. 642
  824. 643
  825. 644
  826. 645
  827. 646
  828. 647
  829. 648
  830. 649
  831. 650
  832. 651
  833. 652
  834. 653
  835. 654
  836. 655
  837. 656
  838. 657
  839. 658
  840. 659
  841. 660
  842. 661
  843. 662
  844. 663
  845. 664
  846. 665
  847. 666
  848. 667
  849. 668
  850. 669
  851. 670
  852. 671
  853. 672
  854. 673
  855. 674
  856. 675
  857. 676
  858. 677
  859. 678
  860. 679
  861. 680
  862. 681
  863. 682
  864. 683
  865. 684
  866. 685
  867. 686
  868. 687
  869. 688
  870. 689
  871. 690
  872. 691
  873. 692
  874. 693
  875. 694
  876. 695
  877. 696
  878. 697
  879. 698
  880. 699
  881. 700
  882. 701
  883. 702
  884. 703
  885. 704
  886. 705
  887. 706
  888. 707
  889. 708
  890. 709
  891. 710
  892. 711
  893. 712
  894. 713
  895. 714
  896. 715
  897. 716
  898. 717
  899. 718
  900. 719
  901. 720
  902. 721
  903. 722
  904. 723
  905. 724
  906. 725
  907. 726
  908. 727
  909. 728
  910. 729
  911. 730
  912. 731
  913. 732
  914. 733
  915. 734
  916. 735
  917. 736
  918. 737
  919. 738
  920. 739
  921. 740
  922. 741
  923. 742
  924. 743
  925. 744
  926. 745
  927. 746
  928. 747
  929. 748
  930. 749
  931. 750
  932. 751
  933. 752
  934. 753
  935. 754
  936. 755
  937. 756
  938. 757
  939. 758
  940. 759
  941. 760
  942. 761
  943. 762
  944. 763
  945. 764
  946. 765
  947. 766
  948. 767
  949. 768
  950. 769
  951. 770
  952. 771
  953. 772
  954. 773
  955. 774
  956. 775
  957. 776
  958. 777
  959. 778
  960. 779
  961. 780
  962. 781
  963. 782
  964. 783
  965. 784
  966. 785
  967. 786
  968. 787
  969. 788
  970. 789
  971. 790
  972. 791
  973. 792
  974. 793
  975. 794
  976. 795
  977. 796
  978. 797
  979. 798
  980. 799
  981. 800
  982. 801
  983. 802
  984. 803
  985. 804
  986. 805
  987. 806
  988. 807
  989. 808
  990. 809
  991. 810
  992. 811
  993. 812
  994. 813
  995. 814
  996. 815
  997. 816
  998. 817
  999. 818
  1000. 819
  1001. 820
  1002. 821
  1003. 822
  1004. 823
  1005. 824
  1006. 825
  1007. 826
  1008. 827
  1009. 828
  1010. 829
  1011. 830
  1012. 831
  1013. 832
  1014. 833
  1015. 834
  1016. 835
  1017. 836
  1018. 837
  1019. 838
  1020. 839
  1021. 840
  1022. 841
  1023. 842
  1024. 843
  1025. 844
  1026. 845
  1027. 846
  1028. 847
  1029. 848
  1030. 849
  1031. 850
  1032. 851
  1033. 852
  1034. 853
  1035. 854
  1036. 855
  1037. 856
  1038. 857
  1039. 858
  1040. 859
  1041. 860
  1042. 861
  1043. 862
  1044. 863
  1045. 864
  1046. 865
  1047. 866
  1048. 867</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span>
  1049. <span class="cline-any cline-yes">1</span>
  1050. <span class="cline-any cline-neutral">&nbsp;</span>
  1051. <span class="cline-any cline-yes">1</span>
  1052. <span class="cline-any cline-neutral">&nbsp;</span>
  1053. <span class="cline-any cline-neutral">&nbsp;</span>
  1054. <span class="cline-any cline-neutral">&nbsp;</span>
  1055. <span class="cline-any cline-yes">1</span>
  1056. <span class="cline-any cline-neutral">&nbsp;</span>
  1057. <span class="cline-any cline-neutral">&nbsp;</span>
  1058. <span class="cline-any cline-yes">1</span>
  1059. <span class="cline-any cline-neutral">&nbsp;</span>
  1060. <span class="cline-any cline-neutral">&nbsp;</span>
  1061. <span class="cline-any cline-neutral">&nbsp;</span>
  1062. <span class="cline-any cline-yes">1</span>
  1063. <span class="cline-any cline-neutral">&nbsp;</span>
  1064. <span class="cline-any cline-yes">1</span>
  1065. <span class="cline-any cline-neutral">&nbsp;</span>
  1066. <span class="cline-any cline-neutral">&nbsp;</span>
  1067. <span class="cline-any cline-yes">1</span>
  1068. <span class="cline-any cline-yes">1</span>
  1069. <span class="cline-any cline-neutral">&nbsp;</span>
  1070. <span class="cline-any cline-neutral">&nbsp;</span>
  1071. <span class="cline-any cline-neutral">&nbsp;</span>
  1072. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1076. <span class="cline-any cline-yes">1</span>
  1077. <span class="cline-any cline-yes">1</span>
  1078. <span class="cline-any cline-neutral">&nbsp;</span>
  1079. <span class="cline-any cline-neutral">&nbsp;</span>
  1080. <span class="cline-any cline-yes">1</span>
  1081. <span class="cline-any cline-neutral">&nbsp;</span>
  1082. <span class="cline-any cline-neutral">&nbsp;</span>
  1083. <span class="cline-any cline-neutral">&nbsp;</span>
  1084. <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
  1088. <span class="cline-any cline-neutral">&nbsp;</span>
  1089. <span class="cline-any cline-yes">1</span>
  1090. <span class="cline-any cline-yes">3</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-yes">3</span>
  1096. <span class="cline-any cline-yes">3</span>
  1097. <span class="cline-any cline-neutral">&nbsp;</span>
  1098. <span class="cline-any cline-neutral">&nbsp;</span>
  1099. <span class="cline-any cline-no">&nbsp;</span>
  1100. <span class="cline-any cline-yes">3</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-yes">1</span>
  1104. <span class="cline-any cline-neutral">&nbsp;</span>
  1105. <span class="cline-any cline-yes">2</span>
  1106. <span class="cline-any cline-neutral">&nbsp;</span>
  1107. <span class="cline-any cline-yes">2</span>
  1108. <span class="cline-any cline-yes">1</span>
  1109. <span class="cline-any cline-yes">1</span>
  1110. <span class="cline-any cline-neutral">&nbsp;</span>
  1111. <span class="cline-any cline-yes">1</span>
  1112. <span class="cline-any cline-yes">4</span>
  1113. <span class="cline-any cline-neutral">&nbsp;</span>
  1114. <span class="cline-any cline-yes">1</span>
  1115. <span class="cline-any cline-yes">1</span>
  1116. <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
  1120. <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
  1124. <span class="cline-any cline-neutral">&nbsp;</span>
  1125. <span class="cline-any cline-neutral">&nbsp;</span>
  1126. <span class="cline-any cline-neutral">&nbsp;</span>
  1127. <span class="cline-any cline-neutral">&nbsp;</span>
  1128. <span class="cline-any cline-neutral">&nbsp;</span>
  1129. <span class="cline-any cline-neutral">&nbsp;</span>
  1130. <span class="cline-any cline-neutral">&nbsp;</span>
  1131. <span class="cline-any cline-neutral">&nbsp;</span>
  1132. <span class="cline-any cline-neutral">&nbsp;</span>
  1133. <span class="cline-any cline-neutral">&nbsp;</span>
  1134. <span class="cline-any cline-neutral">&nbsp;</span>
  1135. <span class="cline-any cline-neutral">&nbsp;</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-no">&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-yes">1</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-yes">2</span>
  1176. <span class="cline-any cline-yes">1</span>
  1177. <span class="cline-any cline-yes">1</span>
  1178. <span class="cline-any cline-yes">1</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-yes">1</span>
  1183. <span class="cline-any cline-neutral">&nbsp;</span>
  1184. <span class="cline-any cline-yes">1</span>
  1185. <span class="cline-any cline-yes">1</span>
  1186. <span class="cline-any cline-yes">1</span>
  1187. <span class="cline-any cline-yes">1</span>
  1188. <span class="cline-any cline-neutral">&nbsp;</span>
  1189. <span class="cline-any cline-yes">1</span>
  1190. <span class="cline-any cline-neutral">&nbsp;</span>
  1191. <span class="cline-any cline-yes">1</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-neutral">&nbsp;</span>
  1196. <span class="cline-any cline-yes">1</span>
  1197. <span class="cline-any cline-neutral">&nbsp;</span>
  1198. <span class="cline-any cline-neutral">&nbsp;</span>
  1199. <span class="cline-any cline-yes">1</span>
  1200. <span class="cline-any cline-yes">1</span>
  1201. <span class="cline-any cline-neutral">&nbsp;</span>
  1202. <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
  1206. <span class="cline-any cline-neutral">&nbsp;</span>
  1207. <span class="cline-any cline-neutral">&nbsp;</span>
  1208. <span class="cline-any cline-neutral">&nbsp;</span>
  1209. <span class="cline-any cline-neutral">&nbsp;</span>
  1210. <span class="cline-any cline-no">&nbsp;</span>
  1211. <span class="cline-any cline-neutral">&nbsp;</span>
  1212. <span class="cline-any cline-neutral">&nbsp;</span>
  1213. <span class="cline-any cline-yes">1</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">3</span>
  1217. <span class="cline-any cline-neutral">&nbsp;</span>
  1218. <span class="cline-any cline-yes">1</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-yes">1</span>
  1222. <span class="cline-any cline-neutral">&nbsp;</span>
  1223. <span class="cline-any cline-yes">1</span>
  1224. <span class="cline-any cline-neutral">&nbsp;</span>
  1225. <span class="cline-any cline-no">&nbsp;</span>
  1226. <span class="cline-any cline-no">&nbsp;</span>
  1227. <span class="cline-any cline-no">&nbsp;</span>
  1228. <span class="cline-any cline-no">&nbsp;</span>
  1229. <span class="cline-any cline-no">&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-no">&nbsp;</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-no">&nbsp;</span>
  1237. <span class="cline-any cline-no">&nbsp;</span>
  1238. <span class="cline-any cline-neutral">&nbsp;</span>
  1239. <span class="cline-any cline-neutral">&nbsp;</span>
  1240. <span class="cline-any cline-no">&nbsp;</span>
  1241. <span class="cline-any cline-neutral">&nbsp;</span>
  1242. <span class="cline-any cline-neutral">&nbsp;</span>
  1243. <span class="cline-any cline-no">&nbsp;</span>
  1244. <span class="cline-any cline-no">&nbsp;</span>
  1245. <span class="cline-any cline-neutral">&nbsp;</span>
  1246. <span class="cline-any cline-neutral">&nbsp;</span>
  1247. <span class="cline-any cline-neutral">&nbsp;</span>
  1248. <span class="cline-any cline-neutral">&nbsp;</span>
  1249. <span class="cline-any cline-neutral">&nbsp;</span>
  1250. <span class="cline-any cline-no">&nbsp;</span>
  1251. <span class="cline-any cline-no">&nbsp;</span>
  1252. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1257. <span class="cline-any cline-neutral">&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-neutral">&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-no">&nbsp;</span>
  1267. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1271. <span class="cline-any cline-no">&nbsp;</span>
  1272. <span class="cline-any cline-neutral">&nbsp;</span>
  1273. <span class="cline-any cline-neutral">&nbsp;</span>
  1274. <span class="cline-any cline-no">&nbsp;</span>
  1275. <span class="cline-any cline-no">&nbsp;</span>
  1276. <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</span>
  1285. <span class="cline-any cline-no">&nbsp;</span>
  1286. <span class="cline-any cline-neutral">&nbsp;</span>
  1287. <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
  1300. <span class="cline-any cline-neutral">&nbsp;</span>
  1301. <span class="cline-any cline-no">&nbsp;</span>
  1302. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1306. <span class="cline-any cline-neutral">&nbsp;</span>
  1307. <span class="cline-any cline-no">&nbsp;</span>
  1308. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1313. <span class="cline-any cline-no">&nbsp;</span>
  1314. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1320. <span class="cline-any cline-neutral">&nbsp;</span>
  1321. <span class="cline-any cline-neutral">&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-no">&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-no">&nbsp;</span>
  1330. <span class="cline-any cline-no">&nbsp;</span>
  1331. <span class="cline-any cline-neutral">&nbsp;</span>
  1332. <span class="cline-any cline-neutral">&nbsp;</span>
  1333. <span class="cline-any cline-no">&nbsp;</span>
  1334. <span class="cline-any cline-no">&nbsp;</span>
  1335. <span class="cline-any cline-neutral">&nbsp;</span>
  1336. <span class="cline-any cline-neutral">&nbsp;</span>
  1337. <span class="cline-any cline-neutral">&nbsp;</span>
  1338. <span class="cline-any cline-no">&nbsp;</span>
  1339. <span class="cline-any cline-neutral">&nbsp;</span>
  1340. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1346. <span class="cline-any cline-neutral">&nbsp;</span>
  1347. <span class="cline-any cline-neutral">&nbsp;</span>
  1348. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  1354. <span class="cline-any cline-neutral">&nbsp;</span>
  1355. <span class="cline-any cline-neutral">&nbsp;</span>
  1356. <span class="cline-any cline-no">&nbsp;</span>
  1357. <span class="cline-any cline-no">&nbsp;</span>
  1358. <span class="cline-any cline-no">&nbsp;</span>
  1359. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1363. <span class="cline-any cline-neutral">&nbsp;</span>
  1364. <span class="cline-any cline-neutral">&nbsp;</span>
  1365. <span class="cline-any cline-no">&nbsp;</span>
  1366. <span class="cline-any cline-no">&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-neutral">&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-neutral">&nbsp;</span>
  1377. <span class="cline-any cline-neutral">&nbsp;</span>
  1378. <span class="cline-any cline-neutral">&nbsp;</span>
  1379. <span class="cline-any cline-no">&nbsp;</span>
  1380. <span class="cline-any cline-neutral">&nbsp;</span>
  1381. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1386. <span class="cline-any cline-neutral">&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-neutral">&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-no">&nbsp;</span>
  1394. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1398. <span class="cline-any cline-neutral">&nbsp;</span>
  1399. <span class="cline-any cline-neutral">&nbsp;</span>
  1400. <span class="cline-any cline-neutral">&nbsp;</span>
  1401. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1405. <span class="cline-any cline-no">&nbsp;</span>
  1406. <span class="cline-any cline-no">&nbsp;</span>
  1407. <span class="cline-any cline-no">&nbsp;</span>
  1408. <span class="cline-any cline-no">&nbsp;</span>
  1409. <span class="cline-any cline-neutral">&nbsp;</span>
  1410. <span class="cline-any cline-no">&nbsp;</span>
  1411. <span class="cline-any cline-no">&nbsp;</span>
  1412. <span class="cline-any cline-neutral">&nbsp;</span>
  1413. <span class="cline-any cline-neutral">&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-no">&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-no">&nbsp;</span>
  1420. <span class="cline-any cline-no">&nbsp;</span>
  1421. <span class="cline-any cline-no">&nbsp;</span>
  1422. <span class="cline-any cline-neutral">&nbsp;</span>
  1423. <span class="cline-any cline-no">&nbsp;</span>
  1424. <span class="cline-any cline-neutral">&nbsp;</span>
  1425. <span class="cline-any cline-neutral">&nbsp;</span>
  1426. <span class="cline-any cline-no">&nbsp;</span>
  1427. <span class="cline-any cline-neutral">&nbsp;</span>
  1428. <span class="cline-any cline-neutral">&nbsp;</span>
  1429. <span class="cline-any cline-neutral">&nbsp;</span>
  1430. <span class="cline-any cline-neutral">&nbsp;</span>
  1431. <span class="cline-any cline-no">&nbsp;</span>
  1432. <span class="cline-any cline-no">&nbsp;</span>
  1433. <span class="cline-any cline-no">&nbsp;</span>
  1434. <span class="cline-any cline-neutral">&nbsp;</span>
  1435. <span class="cline-any cline-no">&nbsp;</span>
  1436. <span class="cline-any cline-neutral">&nbsp;</span>
  1437. <span class="cline-any cline-no">&nbsp;</span>
  1438. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1442. <span class="cline-any cline-neutral">&nbsp;</span>
  1443. <span class="cline-any cline-neutral">&nbsp;</span>
  1444. <span class="cline-any cline-no">&nbsp;</span>
  1445. <span class="cline-any cline-neutral">&nbsp;</span>
  1446. <span class="cline-any cline-neutral">&nbsp;</span>
  1447. <span class="cline-any cline-neutral">&nbsp;</span>
  1448. <span class="cline-any cline-no">&nbsp;</span>
  1449. <span class="cline-any cline-no">&nbsp;</span>
  1450. <span class="cline-any cline-no">&nbsp;</span>
  1451. <span class="cline-any cline-no">&nbsp;</span>
  1452. <span class="cline-any cline-neutral">&nbsp;</span>
  1453. <span class="cline-any cline-neutral">&nbsp;</span>
  1454. <span class="cline-any cline-neutral">&nbsp;</span>
  1455. <span class="cline-any cline-neutral">&nbsp;</span>
  1456. <span class="cline-any cline-no">&nbsp;</span>
  1457. <span class="cline-any cline-neutral">&nbsp;</span>
  1458. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1462. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1466. <span class="cline-any cline-no">&nbsp;</span>
  1467. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1472. <span class="cline-any cline-neutral">&nbsp;</span>
  1473. <span class="cline-any cline-no">&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-neutral">&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-neutral">&nbsp;</span>
  1480. <span class="cline-any cline-neutral">&nbsp;</span>
  1481. <span class="cline-any cline-no">&nbsp;</span>
  1482. <span class="cline-any cline-neutral">&nbsp;</span>
  1483. <span class="cline-any cline-no">&nbsp;</span>
  1484. <span class="cline-any cline-neutral">&nbsp;</span>
  1485. <span class="cline-any cline-neutral">&nbsp;</span>
  1486. <span class="cline-any cline-neutral">&nbsp;</span>
  1487. <span class="cline-any cline-neutral">&nbsp;</span>
  1488. <span class="cline-any cline-no">&nbsp;</span>
  1489. <span class="cline-any cline-neutral">&nbsp;</span>
  1490. <span class="cline-any cline-neutral">&nbsp;</span>
  1491. <span class="cline-any cline-no">&nbsp;</span>
  1492. <span class="cline-any cline-neutral">&nbsp;</span>
  1493. <span class="cline-any cline-neutral">&nbsp;</span>
  1494. <span class="cline-any cline-no">&nbsp;</span>
  1495. <span class="cline-any cline-neutral">&nbsp;</span>
  1496. <span class="cline-any cline-no">&nbsp;</span>
  1497. <span class="cline-any cline-no">&nbsp;</span>
  1498. <span class="cline-any cline-neutral">&nbsp;</span>
  1499. <span class="cline-any cline-no">&nbsp;</span>
  1500. <span class="cline-any cline-no">&nbsp;</span>
  1501. <span class="cline-any cline-neutral">&nbsp;</span>
  1502. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1507. <span class="cline-any cline-no">&nbsp;</span>
  1508. <span class="cline-any cline-neutral">&nbsp;</span>
  1509. <span class="cline-any cline-no">&nbsp;</span>
  1510. <span class="cline-any cline-neutral">&nbsp;</span>
  1511. <span class="cline-any cline-neutral">&nbsp;</span>
  1512. <span class="cline-any cline-no">&nbsp;</span>
  1513. <span class="cline-any cline-neutral">&nbsp;</span>
  1514. <span class="cline-any cline-neutral">&nbsp;</span>
  1515. <span class="cline-any cline-no">&nbsp;</span>
  1516. <span class="cline-any cline-no">&nbsp;</span>
  1517. <span class="cline-any cline-neutral">&nbsp;</span>
  1518. <span class="cline-any cline-no">&nbsp;</span>
  1519. <span class="cline-any cline-neutral">&nbsp;</span>
  1520. <span class="cline-any cline-neutral">&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-no">&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-no">&nbsp;</span>
  1531. <span class="cline-any cline-no">&nbsp;</span>
  1532. <span class="cline-any cline-neutral">&nbsp;</span>
  1533. <span class="cline-any cline-no">&nbsp;</span>
  1534. <span class="cline-any cline-neutral">&nbsp;</span>
  1535. <span class="cline-any cline-neutral">&nbsp;</span>
  1536. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1540. <span class="cline-any cline-no">&nbsp;</span>
  1541. <span class="cline-any cline-neutral">&nbsp;</span>
  1542. <span class="cline-any cline-neutral">&nbsp;</span>
  1543. <span class="cline-any cline-neutral">&nbsp;</span>
  1544. <span class="cline-any cline-neutral">&nbsp;</span>
  1545. <span class="cline-any cline-neutral">&nbsp;</span>
  1546. <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
  1554. <span class="cline-any cline-no">&nbsp;</span>
  1555. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1559. <span class="cline-any cline-neutral">&nbsp;</span>
  1560. <span class="cline-any cline-no">&nbsp;</span>
  1561. <span class="cline-any cline-no">&nbsp;</span>
  1562. <span class="cline-any cline-no">&nbsp;</span>
  1563. <span class="cline-any cline-no">&nbsp;</span>
  1564. <span class="cline-any cline-no">&nbsp;</span>
  1565. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1569. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1573. <span class="cline-any cline-neutral">&nbsp;</span>
  1574. <span class="cline-any cline-neutral">&nbsp;</span>
  1575. <span class="cline-any cline-no">&nbsp;</span>
  1576. <span class="cline-any cline-no">&nbsp;</span>
  1577. <span class="cline-any cline-neutral">&nbsp;</span>
  1578. <span class="cline-any cline-no">&nbsp;</span>
  1579. <span class="cline-any cline-no">&nbsp;</span>
  1580. <span class="cline-any cline-neutral">&nbsp;</span>
  1581. <span class="cline-any cline-neutral">&nbsp;</span>
  1582. <span class="cline-any cline-neutral">&nbsp;</span>
  1583. <span class="cline-any cline-neutral">&nbsp;</span>
  1584. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  1588. <span class="cline-any cline-neutral">&nbsp;</span>
  1589. <span class="cline-any cline-neutral">&nbsp;</span>
  1590. <span class="cline-any cline-no">&nbsp;</span>
  1591. <span class="cline-any cline-no">&nbsp;</span>
  1592. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  1597. <span class="cline-any cline-neutral">&nbsp;</span>
  1598. <span class="cline-any cline-neutral">&nbsp;</span>
  1599. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  1606. <span class="cline-any cline-neutral">&nbsp;</span>
  1607. <span class="cline-any cline-no">&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-no">&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-neutral">&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-no">&nbsp;</span>
  1619. <span class="cline-any cline-no">&nbsp;</span>
  1620. <span class="cline-any cline-no">&nbsp;</span>
  1621. <span class="cline-any cline-no">&nbsp;</span>
  1622. <span class="cline-any cline-no">&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-no">&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-neutral">&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-no">&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-neutral">&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-neutral">&nbsp;</span>
  1643. <span class="cline-any cline-neutral">&nbsp;</span>
  1644. <span class="cline-any cline-no">&nbsp;</span>
  1645. <span class="cline-any cline-no">&nbsp;</span>
  1646. <span class="cline-any cline-neutral">&nbsp;</span>
  1647. <span class="cline-any cline-neutral">&nbsp;</span>
  1648. <span class="cline-any cline-neutral">&nbsp;</span>
  1649. <span class="cline-any cline-no">&nbsp;</span>
  1650. <span class="cline-any cline-no">&nbsp;</span>
  1651. <span class="cline-any cline-neutral">&nbsp;</span>
  1652. <span class="cline-any cline-neutral">&nbsp;</span>
  1653. <span class="cline-any cline-no">&nbsp;</span>
  1654. <span class="cline-any cline-no">&nbsp;</span>
  1655. <span class="cline-any cline-no">&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-neutral">&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-no">&nbsp;</span>
  1663. <span class="cline-any cline-neutral">&nbsp;</span>
  1664. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1668. <span class="cline-any cline-neutral">&nbsp;</span>
  1669. <span class="cline-any cline-neutral">&nbsp;</span>
  1670. <span class="cline-any cline-neutral">&nbsp;</span>
  1671. <span class="cline-any cline-no">&nbsp;</span>
  1672. <span class="cline-any cline-no">&nbsp;</span>
  1673. <span class="cline-any cline-neutral">&nbsp;</span>
  1674. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1679. <span class="cline-any cline-neutral">&nbsp;</span>
  1680. <span class="cline-any cline-neutral">&nbsp;</span>
  1681. <span class="cline-any cline-no">&nbsp;</span>
  1682. <span class="cline-any cline-neutral">&nbsp;</span>
  1683. <span class="cline-any cline-no">&nbsp;</span>
  1684. <span class="cline-any cline-no">&nbsp;</span>
  1685. <span class="cline-any cline-neutral">&nbsp;</span>
  1686. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1691. <span class="cline-any cline-neutral">&nbsp;</span>
  1692. <span class="cline-any cline-neutral">&nbsp;</span>
  1693. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1697. <span class="cline-any cline-neutral">&nbsp;</span>
  1698. <span class="cline-any cline-neutral">&nbsp;</span>
  1699. <span class="cline-any cline-no">&nbsp;</span>
  1700. <span class="cline-any cline-neutral">&nbsp;</span>
  1701. <span class="cline-any cline-neutral">&nbsp;</span>
  1702. <span class="cline-any cline-no">&nbsp;</span>
  1703. <span class="cline-any cline-neutral">&nbsp;</span>
  1704. <span class="cline-any cline-no">&nbsp;</span>
  1705. <span class="cline-any cline-no">&nbsp;</span>
  1706. <span class="cline-any cline-no">&nbsp;</span>
  1707. <span class="cline-any cline-neutral">&nbsp;</span>
  1708. <span class="cline-any cline-neutral">&nbsp;</span>
  1709. <span class="cline-any cline-no">&nbsp;</span>
  1710. <span class="cline-any cline-neutral">&nbsp;</span>
  1711. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1717. <span class="cline-any cline-no">&nbsp;</span>
  1718. <span class="cline-any cline-neutral">&nbsp;</span>
  1719. <span class="cline-any cline-neutral">&nbsp;</span>
  1720. <span class="cline-any cline-no">&nbsp;</span>
  1721. <span class="cline-any cline-no">&nbsp;</span>
  1722. <span class="cline-any cline-neutral">&nbsp;</span>
  1723. <span class="cline-any cline-no">&nbsp;</span>
  1724. <span class="cline-any cline-no">&nbsp;</span>
  1725. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1729. <span class="cline-any cline-neutral">&nbsp;</span>
  1730. <span class="cline-any cline-neutral">&nbsp;</span>
  1731. <span class="cline-any cline-neutral">&nbsp;</span>
  1732. <span class="cline-any cline-no">&nbsp;</span>
  1733. <span class="cline-any cline-no">&nbsp;</span>
  1734. <span class="cline-any cline-no">&nbsp;</span>
  1735. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1739. <span class="cline-any cline-neutral">&nbsp;</span>
  1740. <span class="cline-any cline-neutral">&nbsp;</span>
  1741. <span class="cline-any cline-no">&nbsp;</span>
  1742. <span class="cline-any cline-no">&nbsp;</span>
  1743. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  1749. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1755. <span class="cline-any cline-neutral">&nbsp;</span>
  1756. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1760. <span class="cline-any cline-no">&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-no">&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-neutral">&nbsp;</span>
  1767. <span class="cline-any cline-no">&nbsp;</span>
  1768. <span class="cline-any cline-neutral">&nbsp;</span>
  1769. <span class="cline-any cline-neutral">&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-neutral">&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-neutral">&nbsp;</span>
  1780. <span class="cline-any cline-no">&nbsp;</span>
  1781. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  1785. <span class="cline-any cline-no">&nbsp;</span>
  1786. <span class="cline-any cline-neutral">&nbsp;</span>
  1787. <span class="cline-any cline-neutral">&nbsp;</span>
  1788. <span class="cline-any cline-no">&nbsp;</span>
  1789. <span class="cline-any cline-neutral">&nbsp;</span>
  1790. <span class="cline-any cline-no">&nbsp;</span>
  1791. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  1795. <span class="cline-any cline-no">&nbsp;</span>
  1796. <span class="cline-any cline-neutral">&nbsp;</span>
  1797. <span class="cline-any cline-neutral">&nbsp;</span>
  1798. <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
  1809. <span class="cline-any cline-no">&nbsp;</span>
  1810. <span class="cline-any cline-neutral">&nbsp;</span>
  1811. <span class="cline-any cline-neutral">&nbsp;</span>
  1812. <span class="cline-any cline-neutral">&nbsp;</span>
  1813. <span class="cline-any cline-no">&nbsp;</span>
  1814. <span class="cline-any cline-no">&nbsp;</span>
  1815. <span class="cline-any cline-neutral">&nbsp;</span>
  1816. <span class="cline-any cline-no">&nbsp;</span>
  1817. <span class="cline-any cline-neutral">&nbsp;</span>
  1818. <span class="cline-any cline-no">&nbsp;</span>
  1819. <span class="cline-any cline-no">&nbsp;</span>
  1820. <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
  1830. <span class="cline-any cline-no">&nbsp;</span>
  1831. <span class="cline-any cline-no">&nbsp;</span>
  1832. <span class="cline-any cline-no">&nbsp;</span>
  1833. <span class="cline-any cline-no">&nbsp;</span>
  1834. <span class="cline-any cline-neutral">&nbsp;</span>
  1835. <span class="cline-any cline-no">&nbsp;</span>
  1836. <span class="cline-any cline-neutral">&nbsp;</span>
  1837. <span class="cline-any cline-neutral">&nbsp;</span>
  1838. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  1842. <span class="cline-any cline-neutral">&nbsp;</span>
  1843. <span class="cline-any cline-neutral">&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-no">&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-neutral">&nbsp;</span>
  1852. <span class="cline-any cline-neutral">&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-no">&nbsp;</span>
  1861. <span class="cline-any cline-no">&nbsp;</span>
  1862. <span class="cline-any cline-no">&nbsp;</span>
  1863. <span class="cline-any cline-neutral">&nbsp;</span>
  1864. <span class="cline-any cline-no">&nbsp;</span>
  1865. <span class="cline-any cline-neutral">&nbsp;</span>
  1866. <span class="cline-any cline-neutral">&nbsp;</span>
  1867. <span class="cline-any cline-neutral">&nbsp;</span>
  1868. <span class="cline-any cline-neutral">&nbsp;</span>
  1869. <span class="cline-any cline-neutral">&nbsp;</span>
  1870. <span class="cline-any cline-neutral">&nbsp;</span>
  1871. <span class="cline-any cline-no">&nbsp;</span>
  1872. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1876. <span class="cline-any cline-neutral">&nbsp;</span>
  1877. <span class="cline-any cline-no">&nbsp;</span>
  1878. <span class="cline-any cline-no">&nbsp;</span>
  1879. <span class="cline-any cline-no">&nbsp;</span>
  1880. <span class="cline-any cline-neutral">&nbsp;</span>
  1881. <span class="cline-any cline-neutral">&nbsp;</span>
  1882. <span class="cline-any cline-no">&nbsp;</span>
  1883. <span class="cline-any cline-no">&nbsp;</span>
  1884. <span class="cline-any cline-neutral">&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-no">&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-no">&nbsp;</span>
  1895. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  1900. <span class="cline-any cline-neutral">&nbsp;</span>
  1901. <span class="cline-any cline-no">&nbsp;</span>
  1902. <span class="cline-any cline-no">&nbsp;</span>
  1903. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  1908. <span class="cline-any cline-yes">1</span>
  1909. <span class="cline-any cline-no">&nbsp;</span>
  1910. <span class="cline-any cline-no">&nbsp;</span>
  1911. <span class="cline-any cline-neutral">&nbsp;</span>
  1912. <span class="cline-any cline-neutral">&nbsp;</span>
  1913. <span class="cline-any cline-neutral">&nbsp;</span>
  1914. <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 */
  1915. ;(function (window) {
  1916. // Convenience aliases.
  1917. var getClass = {}.toString, isProperty, forEach, undef;
  1918. &nbsp;
  1919. // Detect the `define` function exposed by asynchronous module loaders. The
  1920. // strict `define` check is necessary for compatibility with `r.js`.
  1921. var isLoader = typeof define === "function" &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >define.amd;</span>
  1922. &nbsp;
  1923. // Detect native implementations.
  1924. var nativeJSON = typeof JSON == "object" &amp;&amp; JSON;
  1925. &nbsp;
  1926. // Set up the JSON 3 namespace, preferring the CommonJS `exports` object if
  1927. // available.
  1928. var JSON3 = typeof exports == "object" &amp;&amp; exports &amp;&amp; !exports.nodeType &amp;&amp; exports;
  1929. &nbsp;
  1930. <span class="missing-if-branch" title="else path not taken"" >E</span>if (JSON3 &amp;&amp; nativeJSON) {
  1931. // Explicitly delegate to the native `stringify` and `parse`
  1932. // implementations in CommonJS environments.
  1933. JSON3.stringify = nativeJSON.stringify;
  1934. JSON3.parse = nativeJSON.parse;
  1935. } else {
  1936. // Export for web browsers, JavaScript engines, and asynchronous module
  1937. // loaders, using the global `JSON` object if available.
  1938. <span class="cstat-no" title="statement not covered" > JSON3 = window.JSON = nativeJSON || {};</span>
  1939. }
  1940. &nbsp;
  1941. // Test the `Date#getUTC*` methods. Based on work by @Yaffle.
  1942. var isExtended = new Date(-3509827334573292);
  1943. try {
  1944. // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical
  1945. // results for certain dates in Opera &gt;= 10.53.
  1946. isExtended = isExtended.getUTCFullYear() == -109252 &amp;&amp; isExtended.getUTCMonth() === 0 &amp;&amp; isExtended.getUTCDate() === 1 &amp;&amp;
  1947. // Safari &lt; 2.0.2 stores the internal millisecond time value correctly,
  1948. // but clips the values returned by the date methods to the range of
  1949. // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).
  1950. isExtended.getUTCHours() == 10 &amp;&amp; isExtended.getUTCMinutes() == 37 &amp;&amp; isExtended.getUTCSeconds() == 6 &amp;&amp; isExtended.getUTCMilliseconds() == 708;
  1951. } catch (exception) {}
  1952. &nbsp;
  1953. // Internal: Determines whether the native `JSON.stringify` and `parse`
  1954. // implementations are spec-compliant. Based on work by Ken Snyder.
  1955. function has(name) {
  1956. <span class="missing-if-branch" title="if path not taken"" >I</span>if (has[name] != null) {
  1957. // Return cached feature test result.
  1958. <span class="cstat-no" title="statement not covered" > return has[name];</span>
  1959. }
  1960. &nbsp;
  1961. var isSupported;
  1962. <span class="missing-if-branch" title="if path not taken"" >I</span>if (name == "bug-string-char-index") {
  1963. // IE &lt;= 7 doesn't support accessing string characters using square
  1964. // bracket notation. IE 8 only supports this for primitives.
  1965. <span class="cstat-no" title="statement not covered" > isSupported = "a"[0] != "a";</span>
  1966. } else if (name == "json") {
  1967. // Indicates whether both `JSON.stringify` and `JSON.parse` are
  1968. // supported.
  1969. isSupported = has("json-stringify") &amp;&amp; has("json-parse");
  1970. } else {
  1971. var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
  1972. // Test `JSON.stringify`.
  1973. if (name == "json-stringify") {
  1974. var stringify = JSON3.stringify, stringifySupported = typeof stringify == "function" &amp;&amp; isExtended;
  1975. <span class="missing-if-branch" title="else path not taken"" >E</span>if (stringifySupported) {
  1976. // A test function object with a custom `toJSON` method.
  1977. (value = function () {
  1978. return 1;
  1979. }).toJSON = value;
  1980. try {
  1981. stringifySupported =
  1982. // Firefox 3.1b1 and b2 serialize string, number, and boolean
  1983. // primitives as object literals.
  1984. stringify(0) === "0" &amp;&amp;
  1985. // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object
  1986. // literals.
  1987. stringify(new Number()) === "0" &amp;&amp;
  1988. stringify(new String()) == '""' &amp;&amp;
  1989. // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or
  1990. // does not define a canonical JSON representation (this applies to
  1991. // objects with `toJSON` properties as well, *unless* they are nested
  1992. // within an object or array).
  1993. stringify(getClass) === undef &amp;&amp;
  1994. // IE 8 serializes `undefined` as `"undefined"`. Safari &lt;= 5.1.7 and
  1995. // FF 3.1b3 pass this test.
  1996. stringify(undef) === undef &amp;&amp;
  1997. // Safari &lt;= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,
  1998. // respectively, if the value is omitted entirely.
  1999. stringify() === undef &amp;&amp;
  2000. // FF 3.1b1, 2 throw an error if the given value is not a number,
  2001. // string, array, object, Boolean, or `null` literal. This applies to
  2002. // objects with custom `toJSON` methods as well, unless they are nested
  2003. // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`
  2004. // methods entirely.
  2005. stringify(value) === "1" &amp;&amp;
  2006. stringify([value]) == "[1]" &amp;&amp;
  2007. // Prototype &lt;= 1.6.1 serializes `[undefined]` as `"[]"` instead of
  2008. // `"[null]"`.
  2009. stringify([undef]) == "[null]" &amp;&amp;
  2010. // YUI 3.0.0b1 fails to serialize `null` literals.
  2011. stringify(null) == "null" &amp;&amp;
  2012. // FF 3.1b1, 2 halts serialization if an array contains a function:
  2013. // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3
  2014. // elides non-JSON values from objects and arrays, unless they
  2015. // define custom `toJSON` methods.
  2016. stringify([undef, getClass, null]) == "[null,null,null]" &amp;&amp;
  2017. // Simple serialization test. FF 3.1b1 uses Unicode escape sequences
  2018. // where character escape codes are expected (e.g., `\b` =&gt; `\u0008`).
  2019. stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized &amp;&amp;
  2020. // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.
  2021. stringify(null, value) === "1" &amp;&amp;
  2022. stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" &amp;&amp;
  2023. // JSON 2, Prototype &lt;= 1.7, and older WebKit builds incorrectly
  2024. // serialize extended years.
  2025. stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' &amp;&amp;
  2026. // The milliseconds are optional in ES 5, but required in 5.1.
  2027. stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' &amp;&amp;
  2028. // Firefox &lt;= 11.0 incorrectly serializes years prior to 0 as negative
  2029. // four-digit years instead of six-digit years. Credits: @Yaffle.
  2030. stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' &amp;&amp;
  2031. // Safari &lt;= 5.1.5 and Opera &gt;= 10.53 incorrectly serialize millisecond
  2032. // values less than 1000. Credits: @Yaffle.
  2033. stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"';
  2034. } catch (exception) {
  2035. <span class="cstat-no" title="statement not covered" > stringifySupported = false;</span>
  2036. }
  2037. }
  2038. isSupported = stringifySupported;
  2039. }
  2040. // Test `JSON.parse`.
  2041. if (name == "json-parse") {
  2042. var parse = JSON3.parse;
  2043. <span class="missing-if-branch" title="else path not taken"" >E</span>if (typeof parse == "function") {
  2044. try {
  2045. // FF 3.1b1, b2 will throw an exception if a bare literal is provided.
  2046. // Conforming implementations should also coerce the initial argument to
  2047. // a string prior to parsing.
  2048. <span class="missing-if-branch" title="else path not taken"" >E</span>if (parse("0") === 0 &amp;&amp; !parse(false)) {
  2049. // Simple parsing test.
  2050. value = parse(serialized);
  2051. var parseSupported = value["a"].length == 5 &amp;&amp; value["a"][0] === 1;
  2052. <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
  2053. try {
  2054. // Safari &lt;= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.
  2055. parseSupported = !parse('"\t"');
  2056. } catch (exception) {}
  2057. <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
  2058. try {
  2059. // FF 4.0 and 4.0.1 allow leading `+` signs and leading
  2060. // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow
  2061. // certain octal literals.
  2062. parseSupported = parse("01") !== 1;
  2063. } catch (exception) {}
  2064. }
  2065. <span class="missing-if-branch" title="else path not taken"" >E</span>if (parseSupported) {
  2066. try {
  2067. // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal
  2068. // points. These environments, along with FF 3.1b1 and 2,
  2069. // also allow trailing commas in JSON objects and arrays.
  2070. parseSupported = parse("1.") !== 1;
  2071. } catch (exception) {}
  2072. }
  2073. }
  2074. }
  2075. } catch (exception) {
  2076. <span class="cstat-no" title="statement not covered" > parseSupported = false;</span>
  2077. }
  2078. }
  2079. isSupported = parseSupported;
  2080. }
  2081. }
  2082. return has[name] = !!isSupported;
  2083. }
  2084. has["bug-string-char-index"] = null;
  2085. has["json"] = null;
  2086. has["json-stringify"] = null;
  2087. has["json-parse"] = null;
  2088. &nbsp;
  2089. <span class="missing-if-branch" title="if path not taken"" >I</span>if (!has("json")) {
  2090. // Common `[[Class]]` name aliases.
  2091. <span class="cstat-no" title="statement not covered" > var functionClass = "[object Function]";</span>
  2092. <span class="cstat-no" title="statement not covered" > var dateClass = "[object Date]";</span>
  2093. <span class="cstat-no" title="statement not covered" > var numberClass = "[object Number]";</span>
  2094. <span class="cstat-no" title="statement not covered" > var stringClass = "[object String]";</span>
  2095. <span class="cstat-no" title="statement not covered" > var arrayClass = "[object Array]";</span>
  2096. <span class="cstat-no" title="statement not covered" > var booleanClass = "[object Boolean]";</span>
  2097. &nbsp;
  2098. // Detect incomplete support for accessing string characters by index.
  2099. <span class="cstat-no" title="statement not covered" > var charIndexBuggy = has("bug-string-char-index");</span>
  2100. &nbsp;
  2101. // Define additional utility methods if the `Date` methods are buggy.
  2102. <span class="cstat-no" title="statement not covered" > if (!isExtended) {</span>
  2103. <span class="cstat-no" title="statement not covered" > var floor = Math.floor;</span>
  2104. // A mapping between the months of the year and the number of days between
  2105. // January 1st and the first of the respective month.
  2106. <span class="cstat-no" title="statement not covered" > var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];</span>
  2107. // Internal: Calculates the number of days between the Unix epoch and the
  2108. // first day of the given month.
  2109. <span class="cstat-no" title="statement not covered" > var getDay = <span class="fstat-no" title="function not covered" >function (year, month) {</span></span>
  2110. <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>
  2111. };
  2112. }
  2113. &nbsp;
  2114. // Internal: Determines if a property is a direct property of the given
  2115. // object. Delegates to the native `Object#hasOwnProperty` method.
  2116. <span class="cstat-no" title="statement not covered" > if (!(isProperty = {}.hasOwnProperty)) {</span>
  2117. <span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
  2118. <span class="cstat-no" title="statement not covered" > var members = {}, constructor;</span>
  2119. <span class="cstat-no" title="statement not covered" > if ((members.__proto__ = null, members.__proto__ = {</span>
  2120. // The *proto* property cannot be set multiple times in recent
  2121. // versions of Firefox and SeaMonkey.
  2122. "toString": 1
  2123. }, members).toString != getClass) {
  2124. // Safari &lt;= 2.0.3 doesn't implement `Object#hasOwnProperty`, but
  2125. // supports the mutable *proto* property.
  2126. <span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
  2127. // Capture and break the object's prototype chain (see section 8.6.2
  2128. // of the ES 5.1 spec). The parenthesized expression prevents an
  2129. // unsafe transformation by the Closure Compiler.
  2130. <span class="cstat-no" title="statement not covered" > var original = this.__proto__, result = property in (this.__proto__ = null, this);</span>
  2131. // Restore the original prototype chain.
  2132. <span class="cstat-no" title="statement not covered" > this.__proto__ = original;</span>
  2133. <span class="cstat-no" title="statement not covered" > return result;</span>
  2134. };
  2135. } else {
  2136. // Capture a reference to the top-level `Object` constructor.
  2137. <span class="cstat-no" title="statement not covered" > constructor = members.constructor;</span>
  2138. // Use the `constructor` property to simulate `Object#hasOwnProperty` in
  2139. // other environments.
  2140. <span class="cstat-no" title="statement not covered" > isProperty = <span class="fstat-no" title="function not covered" >function (property) {</span></span>
  2141. <span class="cstat-no" title="statement not covered" > var parent = (this.constructor || constructor).prototype;</span>
  2142. <span class="cstat-no" title="statement not covered" > return property in this &amp;&amp; !(property in parent &amp;&amp; this[property] === parent[property]);</span>
  2143. };
  2144. }
  2145. <span class="cstat-no" title="statement not covered" > members = null;</span>
  2146. <span class="cstat-no" title="statement not covered" > return isProperty.call(this, property);</span>
  2147. };
  2148. }
  2149. &nbsp;
  2150. // Internal: A set of primitive types used by `isHostType`.
  2151. <span class="cstat-no" title="statement not covered" > var PrimitiveTypes = {</span>
  2152. 'boolean': 1,
  2153. 'number': 1,
  2154. 'string': 1,
  2155. 'undefined': 1
  2156. };
  2157. &nbsp;
  2158. // Internal: Determines if the given object `property` value is a
  2159. // non-primitive.
  2160. <span class="cstat-no" title="statement not covered" > var isHostType = <span class="fstat-no" title="function not covered" >function (object, property) {</span></span>
  2161. <span class="cstat-no" title="statement not covered" > var type = typeof object[property];</span>
  2162. <span class="cstat-no" title="statement not covered" > return type == 'object' ? !!object[property] : !PrimitiveTypes[type];</span>
  2163. };
  2164. &nbsp;
  2165. // Internal: Normalizes the `for...in` iteration algorithm across
  2166. // environments. Each enumerated key is yielded to a `callback` function.
  2167. <span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
  2168. <span class="cstat-no" title="statement not covered" > var size = 0, Properties, members, property;</span>
  2169. &nbsp;
  2170. // Tests for bugs in the current environment's `for...in` algorithm. The
  2171. // `valueOf` property inherits the non-enumerable flag from
  2172. // `Object.prototype` in older versions of IE, Netscape, and Mozilla.
  2173. <span class="cstat-no" title="statement not covered" > (Properties = <span class="fstat-no" title="function not covered" >function () {</span></span>
  2174. <span class="cstat-no" title="statement not covered" > this.valueOf = 0;</span>
  2175. }).prototype.valueOf = 0;
  2176. &nbsp;
  2177. // Iterate over a new instance of the `Properties` class.
  2178. <span class="cstat-no" title="statement not covered" > members = new Properties();</span>
  2179. <span class="cstat-no" title="statement not covered" > for (property in members) {</span>
  2180. // Ignore all properties inherited from `Object.prototype`.
  2181. <span class="cstat-no" title="statement not covered" > if (isProperty.call(members, property)) {</span>
  2182. <span class="cstat-no" title="statement not covered" > size++;</span>
  2183. }
  2184. }
  2185. <span class="cstat-no" title="statement not covered" > Properties = members = null;</span>
  2186. &nbsp;
  2187. // Normalize the iteration algorithm.
  2188. <span class="cstat-no" title="statement not covered" > if (!size) {</span>
  2189. // A list of non-enumerable properties inherited from `Object.prototype`.
  2190. <span class="cstat-no" title="statement not covered" > members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"];</span>
  2191. // IE &lt;= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable
  2192. // properties.
  2193. <span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
  2194. <span class="cstat-no" title="statement not covered" > var isFunction = getClass.call(object) == functionClass, property, length;</span>
  2195. <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>
  2196. <span class="cstat-no" title="statement not covered" > for (property in object) {</span>
  2197. // Gecko &lt;= 1.0 enumerates the `prototype` property of functions under
  2198. // certain conditions; IE does not.
  2199. <span class="cstat-no" title="statement not covered" > if (!(isFunction &amp;&amp; property == "prototype") &amp;&amp; hasProperty.call(object, property)) {</span>
  2200. <span class="cstat-no" title="statement not covered" > callback(property);</span>
  2201. }
  2202. }
  2203. // Manually invoke the callback for each non-enumerable property.
  2204. <span class="cstat-no" title="statement not covered" > for (length = members.length; property = members[--length]; hasProperty.call(object, property) &amp;&amp; callback(property));</span>
  2205. };
  2206. } else <span class="cstat-no" title="statement not covered" >if (size == 2) {</span>
  2207. // Safari &lt;= 2.0.4 enumerates shadowed properties twice.
  2208. <span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
  2209. // Create a set of iterated properties.
  2210. <span class="cstat-no" title="statement not covered" > var members = {}, isFunction = getClass.call(object) == functionClass, property;</span>
  2211. <span class="cstat-no" title="statement not covered" > for (property in object) {</span>
  2212. // Store each property name to prevent double enumeration. The
  2213. // `prototype` property of functions is not enumerated due to cross-
  2214. // environment inconsistencies.
  2215. <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>
  2216. <span class="cstat-no" title="statement not covered" > callback(property);</span>
  2217. }
  2218. }
  2219. };
  2220. } else {
  2221. // No bugs detected; use the standard `for...in` algorithm.
  2222. <span class="cstat-no" title="statement not covered" > forEach = <span class="fstat-no" title="function not covered" >function (object, callback) {</span></span>
  2223. <span class="cstat-no" title="statement not covered" > var isFunction = getClass.call(object) == functionClass, property, isConstructor;</span>
  2224. <span class="cstat-no" title="statement not covered" > for (property in object) {</span>
  2225. <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>
  2226. <span class="cstat-no" title="statement not covered" > callback(property);</span>
  2227. }
  2228. }
  2229. // Manually invoke the callback for the `constructor` property due to
  2230. // cross-environment inconsistencies.
  2231. <span class="cstat-no" title="statement not covered" > if (isConstructor || isProperty.call(object, (property = "constructor"))) {</span>
  2232. <span class="cstat-no" title="statement not covered" > callback(property);</span>
  2233. }
  2234. };
  2235. }
  2236. <span class="cstat-no" title="statement not covered" > return forEach(object, callback);</span>
  2237. };
  2238. &nbsp;
  2239. // Public: Serializes a JavaScript `value` as a JSON string. The optional
  2240. // `filter` argument may specify either a function that alters how object and
  2241. // array members are serialized, or an array of strings and numbers that
  2242. // indicates which properties should be serialized. The optional `width`
  2243. // argument may be either a string or number that specifies the indentation
  2244. // level of the output.
  2245. <span class="cstat-no" title="statement not covered" > if (!has("json-stringify")) {</span>
  2246. // Internal: A map of control characters and their escaped equivalents.
  2247. <span class="cstat-no" title="statement not covered" > var Escapes = {</span>
  2248. 92: "\\\\",
  2249. 34: '\\"',
  2250. 8: "\\b",
  2251. 12: "\\f",
  2252. 10: "\\n",
  2253. 13: "\\r",
  2254. 9: "\\t"
  2255. };
  2256. &nbsp;
  2257. // Internal: Converts `value` into a zero-padded string such that its
  2258. // length is at least equal to `width`. The `width` must be &lt;= 6.
  2259. <span class="cstat-no" title="statement not covered" > var leadingZeroes = "000000";</span>
  2260. <span class="cstat-no" title="statement not covered" > var toPaddedString = <span class="fstat-no" title="function not covered" >function (width, value) {</span></span>
  2261. // The `|| 0` expression is necessary to work around a bug in
  2262. // Opera &lt;= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`.
  2263. <span class="cstat-no" title="statement not covered" > return (leadingZeroes + (value || 0)).slice(-width);</span>
  2264. };
  2265. &nbsp;
  2266. // Internal: Double-quotes a string `value`, replacing all ASCII control
  2267. // characters (characters with code unit values between 0 and 31) with
  2268. // their escaped equivalents. This is an implementation of the
  2269. // `Quote(value)` operation defined in ES 5.1 section 15.12.3.
  2270. <span class="cstat-no" title="statement not covered" > var unicodePrefix = "\\u00";</span>
  2271. <span class="cstat-no" title="statement not covered" > var quote = <span class="fstat-no" title="function not covered" >function (value) {</span></span>
  2272. <span class="cstat-no" title="statement not covered" > var result = '"', index = 0, length = value.length, isLarge = length &gt; 10 &amp;&amp; charIndexBuggy, symbols;</span>
  2273. <span class="cstat-no" title="statement not covered" > if (isLarge) {</span>
  2274. <span class="cstat-no" title="statement not covered" > symbols = value.split("");</span>
  2275. }
  2276. <span class="cstat-no" title="statement not covered" > for (; index &lt; length; index++) {</span>
  2277. <span class="cstat-no" title="statement not covered" > var charCode = value.charCodeAt(index);</span>
  2278. // If the character is a control character, append its Unicode or
  2279. // shorthand escape sequence; otherwise, append the character as-is.
  2280. <span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
  2281. case 8: case 9: case 10: case 12: case 13: case 34: case 92:
  2282. <span class="cstat-no" title="statement not covered" > result += Escapes[charCode];</span>
  2283. <span class="cstat-no" title="statement not covered" > break;</span>
  2284. default:
  2285. <span class="cstat-no" title="statement not covered" > if (charCode &lt; 32) {</span>
  2286. <span class="cstat-no" title="statement not covered" > result += unicodePrefix + toPaddedString(2, charCode.toString(16));</span>
  2287. <span class="cstat-no" title="statement not covered" > break;</span>
  2288. }
  2289. <span class="cstat-no" title="statement not covered" > result += isLarge ? symbols[index] : charIndexBuggy ? value.charAt(index) : value[index];</span>
  2290. }
  2291. }
  2292. <span class="cstat-no" title="statement not covered" > return result + '"';</span>
  2293. };
  2294. &nbsp;
  2295. // Internal: Recursively serializes an object. Implements the
  2296. // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.
  2297. <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>
  2298. <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>
  2299. <span class="cstat-no" title="statement not covered" > try {</span>
  2300. // Necessary for host object support.
  2301. <span class="cstat-no" title="statement not covered" > value = object[property];</span>
  2302. } catch (exception) {}
  2303. <span class="cstat-no" title="statement not covered" > if (typeof value == "object" &amp;&amp; value) {</span>
  2304. <span class="cstat-no" title="statement not covered" > className = getClass.call(value);</span>
  2305. <span class="cstat-no" title="statement not covered" > if (className == dateClass &amp;&amp; !isProperty.call(value, "toJSON")) {</span>
  2306. <span class="cstat-no" title="statement not covered" > if (value &gt; -1 / 0 &amp;&amp; value &lt; 1 / 0) {</span>
  2307. // Dates are serialized according to the `Date#toJSON` method
  2308. // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15
  2309. // for the ISO 8601 date time string format.
  2310. <span class="cstat-no" title="statement not covered" > if (getDay) {</span>
  2311. // Manually compute the year, month, date, hours, minutes,
  2312. // seconds, and milliseconds if the `getUTC*` methods are
  2313. // buggy. Adapted from @Yaffle's `date-shim` project.
  2314. <span class="cstat-no" title="statement not covered" > date = floor(value / 864e5);</span>
  2315. <span class="cstat-no" title="statement not covered" > for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) &lt;= date; year++);</span>
  2316. <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>
  2317. <span class="cstat-no" title="statement not covered" > date = 1 + date - getDay(year, month);</span>
  2318. // The `time` value specifies the time within the day (see ES
  2319. // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used
  2320. // to compute `A modulo B`, as the `%` operator does not
  2321. // correspond to the `modulo` operation for negative numbers.
  2322. <span class="cstat-no" title="statement not covered" > time = (value % 864e5 + 864e5) % 864e5;</span>
  2323. // The hours, minutes, seconds, and milliseconds are obtained by
  2324. // decomposing the time within the day. See section 15.9.1.10.
  2325. <span class="cstat-no" title="statement not covered" > hours = floor(time / 36e5) % 24;</span>
  2326. <span class="cstat-no" title="statement not covered" > minutes = floor(time / 6e4) % 60;</span>
  2327. <span class="cstat-no" title="statement not covered" > seconds = floor(time / 1e3) % 60;</span>
  2328. <span class="cstat-no" title="statement not covered" > milliseconds = time % 1e3;</span>
  2329. } else {
  2330. <span class="cstat-no" title="statement not covered" > year = value.getUTCFullYear();</span>
  2331. <span class="cstat-no" title="statement not covered" > month = value.getUTCMonth();</span>
  2332. <span class="cstat-no" title="statement not covered" > date = value.getUTCDate();</span>
  2333. <span class="cstat-no" title="statement not covered" > hours = value.getUTCHours();</span>
  2334. <span class="cstat-no" title="statement not covered" > minutes = value.getUTCMinutes();</span>
  2335. <span class="cstat-no" title="statement not covered" > seconds = value.getUTCSeconds();</span>
  2336. <span class="cstat-no" title="statement not covered" > milliseconds = value.getUTCMilliseconds();</span>
  2337. }
  2338. // Serialize extended years correctly.
  2339. <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>
  2340. "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) +
  2341. // Months, dates, hours, minutes, and seconds should have two
  2342. // digits; milliseconds should have three.
  2343. "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) +
  2344. // Milliseconds are optional in ES 5.0, but required in 5.1.
  2345. "." + toPaddedString(3, milliseconds) + "Z";
  2346. } else {
  2347. <span class="cstat-no" title="statement not covered" > value = null;</span>
  2348. }
  2349. } 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>
  2350. // Prototype &lt;= 1.6.1 adds non-standard `toJSON` methods to the
  2351. // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3
  2352. // ignores all `toJSON` methods on these objects unless they are
  2353. // defined directly on an instance.
  2354. <span class="cstat-no" title="statement not covered" > value = value.toJSON(property);</span>
  2355. }
  2356. }
  2357. <span class="cstat-no" title="statement not covered" > if (callback) {</span>
  2358. // If a replacement function was provided, call it to obtain the value
  2359. // for serialization.
  2360. <span class="cstat-no" title="statement not covered" > value = callback.call(object, property, value);</span>
  2361. }
  2362. <span class="cstat-no" title="statement not covered" > if (value === null) {</span>
  2363. <span class="cstat-no" title="statement not covered" > return "null";</span>
  2364. }
  2365. <span class="cstat-no" title="statement not covered" > className = getClass.call(value);</span>
  2366. <span class="cstat-no" title="statement not covered" > if (className == booleanClass) {</span>
  2367. // Booleans are represented literally.
  2368. <span class="cstat-no" title="statement not covered" > return "" + value;</span>
  2369. } else <span class="cstat-no" title="statement not covered" >if (className == numberClass) {</span>
  2370. // JSON numbers must be finite. `Infinity` and `NaN` are serialized as
  2371. // `"null"`.
  2372. <span class="cstat-no" title="statement not covered" > return value &gt; -1 / 0 &amp;&amp; value &lt; 1 / 0 ? "" + value : "null";</span>
  2373. } else <span class="cstat-no" title="statement not covered" >if (className == stringClass) {</span>
  2374. // Strings are double-quoted and escaped.
  2375. <span class="cstat-no" title="statement not covered" > return quote("" + value);</span>
  2376. }
  2377. // Recursively serialize objects and arrays.
  2378. <span class="cstat-no" title="statement not covered" > if (typeof value == "object") {</span>
  2379. // Check for cyclic structures. This is a linear search; performance
  2380. // is inversely proportional to the number of unique nested objects.
  2381. <span class="cstat-no" title="statement not covered" > for (length = stack.length; length--;) {</span>
  2382. <span class="cstat-no" title="statement not covered" > if (stack[length] === value) {</span>
  2383. // Cyclic structures cannot be serialized by `JSON.stringify`.
  2384. <span class="cstat-no" title="statement not covered" > throw TypeError();</span>
  2385. }
  2386. }
  2387. // Add the object to the stack of traversed objects.
  2388. <span class="cstat-no" title="statement not covered" > stack.push(value);</span>
  2389. <span class="cstat-no" title="statement not covered" > results = [];</span>
  2390. // Save the current indentation level and indent one additional level.
  2391. <span class="cstat-no" title="statement not covered" > prefix = indentation;</span>
  2392. <span class="cstat-no" title="statement not covered" > indentation += whitespace;</span>
  2393. <span class="cstat-no" title="statement not covered" > if (className == arrayClass) {</span>
  2394. // Recursively serialize array elements.
  2395. <span class="cstat-no" title="statement not covered" > for (index = 0, length = value.length; index &lt; length; hasMembers || (hasMembers = true), index++) {</span>
  2396. <span class="cstat-no" title="statement not covered" > element = serialize(index, value, callback, properties, whitespace, indentation, stack);</span>
  2397. <span class="cstat-no" title="statement not covered" > results.push(element === undef ? "null" : element);</span>
  2398. }
  2399. <span class="cstat-no" title="statement not covered" > result = hasMembers ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]";</span>
  2400. } else {
  2401. // Recursively serialize object members. Members are selected from
  2402. // either a user-specified list of property names, or the object
  2403. // itself.
  2404. <span class="cstat-no" title="statement not covered" > forEach(properties || value, <span class="fstat-no" title="function not covered" >function (property) {</span></span>
  2405. <span class="cstat-no" title="statement not covered" > var element = serialize(property, value, callback, properties, whitespace, indentation, stack);</span>
  2406. <span class="cstat-no" title="statement not covered" > if (element !== undef) {</span>
  2407. // According to ES 5.1 section 15.12.3: "If `gap` {whitespace}
  2408. // is not the empty string, let `member` {quote(property) + ":"}
  2409. // be the concatenation of `member` and the `space` character."
  2410. // The "`space` character" refers to the literal space
  2411. // character, not the `space` {width} argument provided to
  2412. // `JSON.stringify`.
  2413. <span class="cstat-no" title="statement not covered" > results.push(quote(property) + ":" + (whitespace ? " " : "") + element);</span>
  2414. }
  2415. <span class="cstat-no" title="statement not covered" > hasMembers || (hasMembers = true);</span>
  2416. });
  2417. <span class="cstat-no" title="statement not covered" > result = hasMembers ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}";</span>
  2418. }
  2419. // Remove the object from the traversed object stack.
  2420. <span class="cstat-no" title="statement not covered" > stack.pop();</span>
  2421. <span class="cstat-no" title="statement not covered" > return result;</span>
  2422. }
  2423. };
  2424. &nbsp;
  2425. // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.
  2426. <span class="cstat-no" title="statement not covered" > JSON3.stringify = <span class="fstat-no" title="function not covered" >function (source, filter, width) {</span></span>
  2427. <span class="cstat-no" title="statement not covered" > var whitespace, callback, properties, className;</span>
  2428. <span class="cstat-no" title="statement not covered" > if (typeof filter == "function" || typeof filter == "object" &amp;&amp; filter) {</span>
  2429. <span class="cstat-no" title="statement not covered" > if ((className = getClass.call(filter)) == functionClass) {</span>
  2430. <span class="cstat-no" title="statement not covered" > callback = filter;</span>
  2431. } else <span class="cstat-no" title="statement not covered" >if (className == arrayClass) {</span>
  2432. // Convert the property names array into a makeshift set.
  2433. <span class="cstat-no" title="statement not covered" > properties = {};</span>
  2434. <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>
  2435. }
  2436. }
  2437. <span class="cstat-no" title="statement not covered" > if (width) {</span>
  2438. <span class="cstat-no" title="statement not covered" > if ((className = getClass.call(width)) == numberClass) {</span>
  2439. // Convert the `width` to an integer and create a string containing
  2440. // `width` number of space characters.
  2441. <span class="cstat-no" title="statement not covered" > if ((width -= width % 1) &gt; 0) {</span>
  2442. <span class="cstat-no" title="statement not covered" > for (whitespace = "", width &gt; 10 &amp;&amp; (width = 10); whitespace.length &lt; width; whitespace += " ");</span>
  2443. }
  2444. } else <span class="cstat-no" title="statement not covered" >if (className == stringClass) {</span>
  2445. <span class="cstat-no" title="statement not covered" > whitespace = width.length &lt;= 10 ? width : width.slice(0, 10);</span>
  2446. }
  2447. }
  2448. // Opera &lt;= 7.54u2 discards the values associated with empty string keys
  2449. // (`""`) only if they are used directly within an object member list
  2450. // (e.g., `!("" in { "": 1})`).
  2451. <span class="cstat-no" title="statement not covered" > return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []);</span>
  2452. };
  2453. }
  2454. &nbsp;
  2455. // Public: Parses a JSON source string.
  2456. <span class="cstat-no" title="statement not covered" > if (!has("json-parse")) {</span>
  2457. <span class="cstat-no" title="statement not covered" > var fromCharCode = String.fromCharCode;</span>
  2458. &nbsp;
  2459. // Internal: A map of escaped control characters and their unescaped
  2460. // equivalents.
  2461. <span class="cstat-no" title="statement not covered" > var Unescapes = {</span>
  2462. 92: "\\",
  2463. 34: '"',
  2464. 47: "/",
  2465. 98: "\b",
  2466. 116: "\t",
  2467. 110: "\n",
  2468. 102: "\f",
  2469. 114: "\r"
  2470. };
  2471. &nbsp;
  2472. // Internal: Stores the parser state.
  2473. <span class="cstat-no" title="statement not covered" > var Index, Source;</span>
  2474. &nbsp;
  2475. // Internal: Resets the parser state and throws a `SyntaxError`.
  2476. <span class="cstat-no" title="statement not covered" > var abort = <span class="fstat-no" title="function not covered" >function() {</span></span>
  2477. <span class="cstat-no" title="statement not covered" > Index = Source = null;</span>
  2478. <span class="cstat-no" title="statement not covered" > throw SyntaxError();</span>
  2479. };
  2480. &nbsp;
  2481. // Internal: Returns the next token, or `"$"` if the parser has reached
  2482. // the end of the source string. A token may be a string, number, `null`
  2483. // literal, or Boolean literal.
  2484. <span class="cstat-no" title="statement not covered" > var lex = <span class="fstat-no" title="function not covered" >function () {</span></span>
  2485. <span class="cstat-no" title="statement not covered" > var source = Source, length = source.length, value, begin, position, isSigned, charCode;</span>
  2486. <span class="cstat-no" title="statement not covered" > while (Index &lt; length) {</span>
  2487. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
  2488. <span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
  2489. case 9: case 10: case 13: case 32:
  2490. // Skip whitespace tokens, including tabs, carriage returns, line
  2491. // feeds, and space characters.
  2492. <span class="cstat-no" title="statement not covered" > Index++;</span>
  2493. <span class="cstat-no" title="statement not covered" > break;</span>
  2494. case 123: case 125: case 91: case 93: case 58: case 44:
  2495. // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at
  2496. // the current position.
  2497. <span class="cstat-no" title="statement not covered" > value = charIndexBuggy ? source.charAt(Index) : source[Index];</span>
  2498. <span class="cstat-no" title="statement not covered" > Index++;</span>
  2499. <span class="cstat-no" title="statement not covered" > return value;</span>
  2500. case 34:
  2501. // `"` delimits a JSON string; advance to the next character and
  2502. // begin parsing the string. String tokens are prefixed with the
  2503. // sentinel `@` character to distinguish them from punctuators and
  2504. // end-of-string tokens.
  2505. <span class="cstat-no" title="statement not covered" > for (value = "@", Index++; Index &lt; length;) {</span>
  2506. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
  2507. <span class="cstat-no" title="statement not covered" > if (charCode &lt; 32) {</span>
  2508. // Unescaped ASCII control characters (those with a code unit
  2509. // less than the space character) are not permitted.
  2510. <span class="cstat-no" title="statement not covered" > abort();</span>
  2511. } else <span class="cstat-no" title="statement not covered" >if (charCode == 92) {</span>
  2512. // A reverse solidus (`\`) marks the beginning of an escaped
  2513. // control character (including `"`, `\`, and `/`) or Unicode
  2514. // escape sequence.
  2515. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
  2516. <span class="cstat-no" title="statement not covered" > switch (charCode) {</span>
  2517. case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:
  2518. // Revive escaped control characters.
  2519. <span class="cstat-no" title="statement not covered" > value += Unescapes[charCode];</span>
  2520. <span class="cstat-no" title="statement not covered" > Index++;</span>
  2521. <span class="cstat-no" title="statement not covered" > break;</span>
  2522. case 117:
  2523. // `\u` marks the beginning of a Unicode escape sequence.
  2524. // Advance to the first character and validate the
  2525. // four-digit code point.
  2526. <span class="cstat-no" title="statement not covered" > begin = ++Index;</span>
  2527. <span class="cstat-no" title="statement not covered" > for (position = Index + 4; Index &lt; position; Index++) {</span>
  2528. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
  2529. // A valid sequence comprises four hexdigits (case-
  2530. // insensitive) that form a single hexadecimal value.
  2531. <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>
  2532. // Invalid Unicode escape sequence.
  2533. <span class="cstat-no" title="statement not covered" > abort();</span>
  2534. }
  2535. }
  2536. // Revive the escaped character.
  2537. <span class="cstat-no" title="statement not covered" > value += fromCharCode("0x" + source.slice(begin, Index));</span>
  2538. <span class="cstat-no" title="statement not covered" > break;</span>
  2539. default:
  2540. // Invalid escape sequence.
  2541. <span class="cstat-no" title="statement not covered" > abort();</span>
  2542. }
  2543. } else {
  2544. <span class="cstat-no" title="statement not covered" > if (charCode == 34) {</span>
  2545. // An unescaped double-quote character marks the end of the
  2546. // string.
  2547. <span class="cstat-no" title="statement not covered" > break;</span>
  2548. }
  2549. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
  2550. <span class="cstat-no" title="statement not covered" > begin = Index;</span>
  2551. // Optimize for the common case where a string is valid.
  2552. <span class="cstat-no" title="statement not covered" > while (charCode &gt;= 32 &amp;&amp; charCode != 92 &amp;&amp; charCode != 34) {</span>
  2553. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
  2554. }
  2555. // Append the string as-is.
  2556. <span class="cstat-no" title="statement not covered" > value += source.slice(begin, Index);</span>
  2557. }
  2558. }
  2559. <span class="cstat-no" title="statement not covered" > if (source.charCodeAt(Index) == 34) {</span>
  2560. // Advance to the next character and return the revived string.
  2561. <span class="cstat-no" title="statement not covered" > Index++;</span>
  2562. <span class="cstat-no" title="statement not covered" > return value;</span>
  2563. }
  2564. // Unterminated string.
  2565. <span class="cstat-no" title="statement not covered" > abort();</span>
  2566. default:
  2567. // Parse numbers and literals.
  2568. <span class="cstat-no" title="statement not covered" > begin = Index;</span>
  2569. // Advance past the negative sign, if one is specified.
  2570. <span class="cstat-no" title="statement not covered" > if (charCode == 45) {</span>
  2571. <span class="cstat-no" title="statement not covered" > isSigned = true;</span>
  2572. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
  2573. }
  2574. // Parse an integer or floating-point value.
  2575. <span class="cstat-no" title="statement not covered" > if (charCode &gt;= 48 &amp;&amp; charCode &lt;= 57) {</span>
  2576. // Leading zeroes are interpreted as octal literals.
  2577. <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>
  2578. // Illegal octal literal.
  2579. <span class="cstat-no" title="statement not covered" > abort();</span>
  2580. }
  2581. <span class="cstat-no" title="statement not covered" > isSigned = false;</span>
  2582. // Parse the integer component.
  2583. <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>
  2584. // Floats cannot contain a leading decimal point; however, this
  2585. // case is already accounted for by the parser.
  2586. <span class="cstat-no" title="statement not covered" > if (source.charCodeAt(Index) == 46) {</span>
  2587. <span class="cstat-no" title="statement not covered" > position = ++Index;</span>
  2588. // Parse the decimal component.
  2589. <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>
  2590. <span class="cstat-no" title="statement not covered" > if (position == Index) {</span>
  2591. // Illegal trailing decimal.
  2592. <span class="cstat-no" title="statement not covered" > abort();</span>
  2593. }
  2594. <span class="cstat-no" title="statement not covered" > Index = position;</span>
  2595. }
  2596. // Parse exponents. The `e` denoting the exponent is
  2597. // case-insensitive.
  2598. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(Index);</span>
  2599. <span class="cstat-no" title="statement not covered" > if (charCode == 101 || charCode == 69) {</span>
  2600. <span class="cstat-no" title="statement not covered" > charCode = source.charCodeAt(++Index);</span>
  2601. // Skip past the sign following the exponent, if one is
  2602. // specified.
  2603. <span class="cstat-no" title="statement not covered" > if (charCode == 43 || charCode == 45) {</span>
  2604. <span class="cstat-no" title="statement not covered" > Index++;</span>
  2605. }
  2606. // Parse the exponential component.
  2607. <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>
  2608. <span class="cstat-no" title="statement not covered" > if (position == Index) {</span>
  2609. // Illegal empty exponent.
  2610. <span class="cstat-no" title="statement not covered" > abort();</span>
  2611. }
  2612. <span class="cstat-no" title="statement not covered" > Index = position;</span>
  2613. }
  2614. // Coerce the parsed value to a JavaScript number.
  2615. <span class="cstat-no" title="statement not covered" > return +source.slice(begin, Index);</span>
  2616. }
  2617. // A negative sign may only precede numbers.
  2618. <span class="cstat-no" title="statement not covered" > if (isSigned) {</span>
  2619. <span class="cstat-no" title="statement not covered" > abort();</span>
  2620. }
  2621. // `true`, `false`, and `null` literals.
  2622. <span class="cstat-no" title="statement not covered" > if (source.slice(Index, Index + 4) == "true") {</span>
  2623. <span class="cstat-no" title="statement not covered" > Index += 4;</span>
  2624. <span class="cstat-no" title="statement not covered" > return true;</span>
  2625. } else <span class="cstat-no" title="statement not covered" >if (source.slice(Index, Index + 5) == "false") {</span>
  2626. <span class="cstat-no" title="statement not covered" > Index += 5;</span>
  2627. <span class="cstat-no" title="statement not covered" > return false;</span>
  2628. } else <span class="cstat-no" title="statement not covered" >if (source.slice(Index, Index + 4) == "null") {</span>
  2629. <span class="cstat-no" title="statement not covered" > Index += 4;</span>
  2630. <span class="cstat-no" title="statement not covered" > return null;</span>
  2631. }
  2632. // Unrecognized token.
  2633. <span class="cstat-no" title="statement not covered" > abort();</span>
  2634. }
  2635. }
  2636. // Return the sentinel `$` character if the parser has reached the end
  2637. // of the source string.
  2638. <span class="cstat-no" title="statement not covered" > return "$";</span>
  2639. };
  2640. &nbsp;
  2641. // Internal: Parses a JSON `value` token.
  2642. <span class="cstat-no" title="statement not covered" > var get = <span class="fstat-no" title="function not covered" >function (value) {</span></span>
  2643. <span class="cstat-no" title="statement not covered" > var results, hasMembers;</span>
  2644. <span class="cstat-no" title="statement not covered" > if (value == "$") {</span>
  2645. // Unexpected end of input.
  2646. <span class="cstat-no" title="statement not covered" > abort();</span>
  2647. }
  2648. <span class="cstat-no" title="statement not covered" > if (typeof value == "string") {</span>
  2649. <span class="cstat-no" title="statement not covered" > if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") {</span>
  2650. // Remove the sentinel `@` character.
  2651. <span class="cstat-no" title="statement not covered" > return value.slice(1);</span>
  2652. }
  2653. // Parse object and array literals.
  2654. <span class="cstat-no" title="statement not covered" > if (value == "[") {</span>
  2655. // Parses a JSON array, returning a new JavaScript array.
  2656. <span class="cstat-no" title="statement not covered" > results = [];</span>
  2657. <span class="cstat-no" title="statement not covered" > for (;; hasMembers || (hasMembers = true)) {</span>
  2658. <span class="cstat-no" title="statement not covered" > value = lex();</span>
  2659. // A closing square bracket marks the end of the array literal.
  2660. <span class="cstat-no" title="statement not covered" > if (value == "]") {</span>
  2661. <span class="cstat-no" title="statement not covered" > break;</span>
  2662. }
  2663. // If the array literal contains elements, the current token
  2664. // should be a comma separating the previous element from the
  2665. // next.
  2666. <span class="cstat-no" title="statement not covered" > if (hasMembers) {</span>
  2667. <span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
  2668. <span class="cstat-no" title="statement not covered" > value = lex();</span>
  2669. <span class="cstat-no" title="statement not covered" > if (value == "]") {</span>
  2670. // Unexpected trailing `,` in array literal.
  2671. <span class="cstat-no" title="statement not covered" > abort();</span>
  2672. }
  2673. } else {
  2674. // A `,` must separate each array element.
  2675. <span class="cstat-no" title="statement not covered" > abort();</span>
  2676. }
  2677. }
  2678. // Elisions and leading commas are not permitted.
  2679. <span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
  2680. <span class="cstat-no" title="statement not covered" > abort();</span>
  2681. }
  2682. <span class="cstat-no" title="statement not covered" > results.push(get(value));</span>
  2683. }
  2684. <span class="cstat-no" title="statement not covered" > return results;</span>
  2685. } else <span class="cstat-no" title="statement not covered" >if (value == "{") {</span>
  2686. // Parses a JSON object, returning a new JavaScript object.
  2687. <span class="cstat-no" title="statement not covered" > results = {};</span>
  2688. <span class="cstat-no" title="statement not covered" > for (;; hasMembers || (hasMembers = true)) {</span>
  2689. <span class="cstat-no" title="statement not covered" > value = lex();</span>
  2690. // A closing curly brace marks the end of the object literal.
  2691. <span class="cstat-no" title="statement not covered" > if (value == "}") {</span>
  2692. <span class="cstat-no" title="statement not covered" > break;</span>
  2693. }
  2694. // If the object literal contains members, the current token
  2695. // should be a comma separator.
  2696. <span class="cstat-no" title="statement not covered" > if (hasMembers) {</span>
  2697. <span class="cstat-no" title="statement not covered" > if (value == ",") {</span>
  2698. <span class="cstat-no" title="statement not covered" > value = lex();</span>
  2699. <span class="cstat-no" title="statement not covered" > if (value == "}") {</span>
  2700. // Unexpected trailing `,` in object literal.
  2701. <span class="cstat-no" title="statement not covered" > abort();</span>
  2702. }
  2703. } else {
  2704. // A `,` must separate each object member.
  2705. <span class="cstat-no" title="statement not covered" > abort();</span>
  2706. }
  2707. }
  2708. // Leading commas are not permitted, object property names must be
  2709. // double-quoted strings, and a `:` must separate each property
  2710. // name and value.
  2711. <span class="cstat-no" title="statement not covered" > if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") {</span>
  2712. <span class="cstat-no" title="statement not covered" > abort();</span>
  2713. }
  2714. <span class="cstat-no" title="statement not covered" > results[value.slice(1)] = get(lex());</span>
  2715. }
  2716. <span class="cstat-no" title="statement not covered" > return results;</span>
  2717. }
  2718. // Unexpected token encountered.
  2719. <span class="cstat-no" title="statement not covered" > abort();</span>
  2720. }
  2721. <span class="cstat-no" title="statement not covered" > return value;</span>
  2722. };
  2723. &nbsp;
  2724. // Internal: Updates a traversed object member.
  2725. <span class="cstat-no" title="statement not covered" > var update = <span class="fstat-no" title="function not covered" >function(source, property, callback) {</span></span>
  2726. <span class="cstat-no" title="statement not covered" > var element = walk(source, property, callback);</span>
  2727. <span class="cstat-no" title="statement not covered" > if (element === undef) {</span>
  2728. <span class="cstat-no" title="statement not covered" > delete source[property];</span>
  2729. } else {
  2730. <span class="cstat-no" title="statement not covered" > source[property] = element;</span>
  2731. }
  2732. };
  2733. &nbsp;
  2734. // Internal: Recursively traverses a parsed JSON object, invoking the
  2735. // `callback` function for each value. This is an implementation of the
  2736. // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.
  2737. <span class="cstat-no" title="statement not covered" > var walk = <span class="fstat-no" title="function not covered" >function (source, property, callback) {</span></span>
  2738. <span class="cstat-no" title="statement not covered" > var value = source[property], length;</span>
  2739. <span class="cstat-no" title="statement not covered" > if (typeof value == "object" &amp;&amp; value) {</span>
  2740. // `forEach` can't be used to traverse an array in Opera &lt;= 8.54
  2741. // because its `Object#hasOwnProperty` implementation returns `false`
  2742. // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`).
  2743. <span class="cstat-no" title="statement not covered" > if (getClass.call(value) == arrayClass) {</span>
  2744. <span class="cstat-no" title="statement not covered" > for (length = value.length; length--;) {</span>
  2745. <span class="cstat-no" title="statement not covered" > update(value, length, callback);</span>
  2746. }
  2747. } else {
  2748. <span class="cstat-no" title="statement not covered" > forEach(value, <span class="fstat-no" title="function not covered" >function (property) {</span></span>
  2749. <span class="cstat-no" title="statement not covered" > update(value, property, callback);</span>
  2750. });
  2751. }
  2752. }
  2753. <span class="cstat-no" title="statement not covered" > return callback.call(source, property, value);</span>
  2754. };
  2755. &nbsp;
  2756. // Public: `JSON.parse`. See ES 5.1 section 15.12.2.
  2757. <span class="cstat-no" title="statement not covered" > JSON3.parse = <span class="fstat-no" title="function not covered" >function (source, callback) {</span></span>
  2758. <span class="cstat-no" title="statement not covered" > var result, value;</span>
  2759. <span class="cstat-no" title="statement not covered" > Index = 0;</span>
  2760. <span class="cstat-no" title="statement not covered" > Source = "" + source;</span>
  2761. <span class="cstat-no" title="statement not covered" > result = get(lex());</span>
  2762. // If a JSON string contains multiple tokens, it is invalid.
  2763. <span class="cstat-no" title="statement not covered" > if (lex() != "$") {</span>
  2764. <span class="cstat-no" title="statement not covered" > abort();</span>
  2765. }
  2766. // Reset the parser state.
  2767. <span class="cstat-no" title="statement not covered" > Index = Source = null;</span>
  2768. <span class="cstat-no" title="statement not covered" > return callback &amp;&amp; getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result;</span>
  2769. };
  2770. }
  2771. }
  2772. &nbsp;
  2773. // Export for asynchronous module loaders.
  2774. <span class="missing-if-branch" title="if path not taken"" >I</span>if (isLoader) {
  2775. <span class="cstat-no" title="statement not covered" > define(<span class="fstat-no" title="function not covered" >function () {</span></span>
  2776. <span class="cstat-no" title="statement not covered" > return JSON3;</span>
  2777. });
  2778. }
  2779. }(this));
  2780. &nbsp;</pre></td></tr>
  2781. </table></pre>
  2782. </div>
  2783. <div class="footer">
  2784. <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>
  2785. </div>
  2786. <script src="../prettify.js"></script>
  2787. <script src="http://yui.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
  2788. <script>
  2789. YUI().use('datatable', function (Y) {
  2790. var formatters = {
  2791. pct: function (o) {
  2792. o.className += o.record.get('classes')[o.column.key];
  2793. try {
  2794. return o.value.toFixed(2) + '%';
  2795. } catch (ex) { return o.value + '%'; }
  2796. },
  2797. html: function (o) {
  2798. o.className += o.record.get('classes')[o.column.key];
  2799. return o.record.get(o.column.key + '_html');
  2800. }
  2801. },
  2802. defaultFormatter = function (o) {
  2803. o.className += o.record.get('classes')[o.column.key];
  2804. return o.value;
  2805. };
  2806. function getColumns(theadNode) {
  2807. var colNodes = theadNode.all('tr th'),
  2808. cols = [],
  2809. col;
  2810. colNodes.each(function (colNode) {
  2811. col = {
  2812. key: colNode.getAttribute('data-col'),
  2813. label: colNode.get('innerHTML') || ' ',
  2814. sortable: !colNode.getAttribute('data-nosort'),
  2815. className: colNode.getAttribute('class'),
  2816. type: colNode.getAttribute('data-type'),
  2817. allowHTML: colNode.getAttribute('data-html') === 'true' || colNode.getAttribute('data-fmt') === 'html'
  2818. };
  2819. col.formatter = formatters[colNode.getAttribute('data-fmt')] || defaultFormatter;
  2820. cols.push(col);
  2821. });
  2822. return cols;
  2823. }
  2824. function getRowData(trNode, cols) {
  2825. var tdNodes = trNode.all('td'),
  2826. i,
  2827. row = { classes: {} },
  2828. node,
  2829. name;
  2830. for (i = 0; i < cols.length; i += 1) {
  2831. name = cols[i].key;
  2832. node = tdNodes.item(i);
  2833. row[name] = node.getAttribute('data-value') || node.get('innerHTML');
  2834. row[name + '_html'] = node.get('innerHTML');
  2835. row.classes[name] = node.getAttribute('class');
  2836. //Y.log('Name: ' + name + '; Value: ' + row[name]);
  2837. if (cols[i].type === 'number') { row[name] = row[name] * 1; }
  2838. }
  2839. //Y.log(row);
  2840. return row;
  2841. }
  2842. function getData(tbodyNode, cols) {
  2843. var data = [];
  2844. tbodyNode.all('tr').each(function (trNode) {
  2845. data.push(getRowData(trNode, cols));
  2846. });
  2847. return data;
  2848. }
  2849. function replaceTable(node) {
  2850. if (!node) { return; }
  2851. var cols = getColumns(node.one('thead')),
  2852. data = getData(node.one('tbody'), cols),
  2853. table,
  2854. parent = node.get('parentNode');
  2855. table = new Y.DataTable({
  2856. columns: cols,
  2857. data: data,
  2858. sortBy: 'file'
  2859. });
  2860. parent.set('innerHTML', '');
  2861. table.render(parent);
  2862. }
  2863. Y.on('domready', function () {
  2864. replaceTable(Y.one('div.coverage-summary table'));
  2865. if (typeof prettyPrint === 'function') {
  2866. prettyPrint();
  2867. }
  2868. });
  2869. });
  2870. </script>
  2871. </body>
  2872. </html>