annotate vendor/nikic/php-parser/test/code/parser/expr/constant_expr.test @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 5fb285c0d0e3
children
rev   line source
Chris@0 1 Expressions in static scalar context
Chris@0 2 -----
Chris@0 3 <?php
Chris@0 4
Chris@0 5 const T_1 = 1 << 1;
Chris@0 6 const T_2 = 1 / 2;
Chris@0 7 const T_3 = 1.5 + 1.5;
Chris@0 8 const T_4 = "foo" . "bar";
Chris@0 9 const T_5 = (1.5 + 1.5) * 2;
Chris@0 10 const T_6 = "foo" . 2 . 3 . 4.0;
Chris@0 11 const T_7 = __LINE__;
Chris@0 12 const T_8 = <<<ENDOFSTRING
Chris@0 13 This is a test string
Chris@0 14 ENDOFSTRING;
Chris@0 15 const T_9 = ~-1;
Chris@0 16 const T_10 = (-1?:1) + (0?2:3);
Chris@0 17 const T_11 = 1 && 0;
Chris@0 18 const T_12 = 1 and 1;
Chris@0 19 const T_13 = 0 || 0;
Chris@0 20 const T_14 = 1 or 0;
Chris@0 21 const T_15 = 1 xor 1;
Chris@0 22 const T_16 = 1 xor 0;
Chris@0 23 const T_17 = 1 < 0;
Chris@0 24 const T_18 = 0 <= 0;
Chris@0 25 const T_19 = 1 > 0;
Chris@0 26 const T_20 = 1 >= 0;
Chris@0 27 const T_21 = 1 === 1;
Chris@0 28 const T_22 = 1 !== 1;
Chris@0 29 const T_23 = 0 != "0";
Chris@0 30 const T_24 = 1 == "1";
Chris@0 31 const T_25 = 1 + 2 * 3;
Chris@0 32 const T_26 = "1" + 2 + "3";
Chris@0 33 const T_27 = 2 ** 3;
Chris@0 34 const T_28 = [1, 2, 3][1];
Chris@0 35 const T_29 = 12 - 13;
Chris@0 36 const T_30 = 12 ^ 13;
Chris@0 37 const T_31 = 12 & 13;
Chris@0 38 const T_32 = 12 | 13;
Chris@0 39 const T_33 = 12 % 3;
Chris@0 40 const T_34 = 100 >> 4;
Chris@0 41 const T_35 = !false;
Chris@0 42 -----
Chris@0 43 array(
Chris@0 44 0: Stmt_Const(
Chris@0 45 consts: array(
Chris@0 46 0: Const(
Chris@13 47 name: Identifier(
Chris@13 48 name: T_1
Chris@13 49 )
Chris@0 50 value: Expr_BinaryOp_ShiftLeft(
Chris@0 51 left: Scalar_LNumber(
Chris@0 52 value: 1
Chris@0 53 )
Chris@0 54 right: Scalar_LNumber(
Chris@0 55 value: 1
Chris@0 56 )
Chris@0 57 )
Chris@0 58 )
Chris@0 59 )
Chris@0 60 )
Chris@0 61 1: Stmt_Const(
Chris@0 62 consts: array(
Chris@0 63 0: Const(
Chris@13 64 name: Identifier(
Chris@13 65 name: T_2
Chris@13 66 )
Chris@0 67 value: Expr_BinaryOp_Div(
Chris@0 68 left: Scalar_LNumber(
Chris@0 69 value: 1
Chris@0 70 )
Chris@0 71 right: Scalar_LNumber(
Chris@0 72 value: 2
Chris@0 73 )
Chris@0 74 )
Chris@0 75 )
Chris@0 76 )
Chris@0 77 )
Chris@0 78 2: Stmt_Const(
Chris@0 79 consts: array(
Chris@0 80 0: Const(
Chris@13 81 name: Identifier(
Chris@13 82 name: T_3
Chris@13 83 )
Chris@0 84 value: Expr_BinaryOp_Plus(
Chris@0 85 left: Scalar_DNumber(
Chris@0 86 value: 1.5
Chris@0 87 )
Chris@0 88 right: Scalar_DNumber(
Chris@0 89 value: 1.5
Chris@0 90 )
Chris@0 91 )
Chris@0 92 )
Chris@0 93 )
Chris@0 94 )
Chris@0 95 3: Stmt_Const(
Chris@0 96 consts: array(
Chris@0 97 0: Const(
Chris@13 98 name: Identifier(
Chris@13 99 name: T_4
Chris@13 100 )
Chris@0 101 value: Expr_BinaryOp_Concat(
Chris@0 102 left: Scalar_String(
Chris@0 103 value: foo
Chris@0 104 )
Chris@0 105 right: Scalar_String(
Chris@0 106 value: bar
Chris@0 107 )
Chris@0 108 )
Chris@0 109 )
Chris@0 110 )
Chris@0 111 )
Chris@0 112 4: Stmt_Const(
Chris@0 113 consts: array(
Chris@0 114 0: Const(
Chris@13 115 name: Identifier(
Chris@13 116 name: T_5
Chris@13 117 )
Chris@0 118 value: Expr_BinaryOp_Mul(
Chris@0 119 left: Expr_BinaryOp_Plus(
Chris@0 120 left: Scalar_DNumber(
Chris@0 121 value: 1.5
Chris@0 122 )
Chris@0 123 right: Scalar_DNumber(
Chris@0 124 value: 1.5
Chris@0 125 )
Chris@0 126 )
Chris@0 127 right: Scalar_LNumber(
Chris@0 128 value: 2
Chris@0 129 )
Chris@0 130 )
Chris@0 131 )
Chris@0 132 )
Chris@0 133 )
Chris@0 134 5: Stmt_Const(
Chris@0 135 consts: array(
Chris@0 136 0: Const(
Chris@13 137 name: Identifier(
Chris@13 138 name: T_6
Chris@13 139 )
Chris@0 140 value: Expr_BinaryOp_Concat(
Chris@0 141 left: Expr_BinaryOp_Concat(
Chris@0 142 left: Expr_BinaryOp_Concat(
Chris@0 143 left: Scalar_String(
Chris@0 144 value: foo
Chris@0 145 )
Chris@0 146 right: Scalar_LNumber(
Chris@0 147 value: 2
Chris@0 148 )
Chris@0 149 )
Chris@0 150 right: Scalar_LNumber(
Chris@0 151 value: 3
Chris@0 152 )
Chris@0 153 )
Chris@0 154 right: Scalar_DNumber(
Chris@0 155 value: 4
Chris@0 156 )
Chris@0 157 )
Chris@0 158 )
Chris@0 159 )
Chris@0 160 )
Chris@0 161 6: Stmt_Const(
Chris@0 162 consts: array(
Chris@0 163 0: Const(
Chris@13 164 name: Identifier(
Chris@13 165 name: T_7
Chris@13 166 )
Chris@0 167 value: Scalar_MagicConst_Line(
Chris@0 168 )
Chris@0 169 )
Chris@0 170 )
Chris@0 171 )
Chris@0 172 7: Stmt_Const(
Chris@0 173 consts: array(
Chris@0 174 0: Const(
Chris@13 175 name: Identifier(
Chris@13 176 name: T_8
Chris@13 177 )
Chris@0 178 value: Scalar_String(
Chris@0 179 value: This is a test string
Chris@0 180 )
Chris@0 181 )
Chris@0 182 )
Chris@0 183 )
Chris@0 184 8: Stmt_Const(
Chris@0 185 consts: array(
Chris@0 186 0: Const(
Chris@13 187 name: Identifier(
Chris@13 188 name: T_9
Chris@13 189 )
Chris@0 190 value: Expr_BitwiseNot(
Chris@0 191 expr: Expr_UnaryMinus(
Chris@0 192 expr: Scalar_LNumber(
Chris@0 193 value: 1
Chris@0 194 )
Chris@0 195 )
Chris@0 196 )
Chris@0 197 )
Chris@0 198 )
Chris@0 199 )
Chris@0 200 9: Stmt_Const(
Chris@0 201 consts: array(
Chris@0 202 0: Const(
Chris@13 203 name: Identifier(
Chris@13 204 name: T_10
Chris@13 205 )
Chris@0 206 value: Expr_BinaryOp_Plus(
Chris@0 207 left: Expr_Ternary(
Chris@0 208 cond: Expr_UnaryMinus(
Chris@0 209 expr: Scalar_LNumber(
Chris@0 210 value: 1
Chris@0 211 )
Chris@0 212 )
Chris@0 213 if: null
Chris@0 214 else: Scalar_LNumber(
Chris@0 215 value: 1
Chris@0 216 )
Chris@0 217 )
Chris@0 218 right: Expr_Ternary(
Chris@0 219 cond: Scalar_LNumber(
Chris@0 220 value: 0
Chris@0 221 )
Chris@0 222 if: Scalar_LNumber(
Chris@0 223 value: 2
Chris@0 224 )
Chris@0 225 else: Scalar_LNumber(
Chris@0 226 value: 3
Chris@0 227 )
Chris@0 228 )
Chris@0 229 )
Chris@0 230 )
Chris@0 231 )
Chris@0 232 )
Chris@0 233 10: Stmt_Const(
Chris@0 234 consts: array(
Chris@0 235 0: Const(
Chris@13 236 name: Identifier(
Chris@13 237 name: T_11
Chris@13 238 )
Chris@0 239 value: Expr_BinaryOp_BooleanAnd(
Chris@0 240 left: Scalar_LNumber(
Chris@0 241 value: 1
Chris@0 242 )
Chris@0 243 right: Scalar_LNumber(
Chris@0 244 value: 0
Chris@0 245 )
Chris@0 246 )
Chris@0 247 )
Chris@0 248 )
Chris@0 249 )
Chris@0 250 11: Stmt_Const(
Chris@0 251 consts: array(
Chris@0 252 0: Const(
Chris@13 253 name: Identifier(
Chris@13 254 name: T_12
Chris@13 255 )
Chris@0 256 value: Expr_BinaryOp_LogicalAnd(
Chris@0 257 left: Scalar_LNumber(
Chris@0 258 value: 1
Chris@0 259 )
Chris@0 260 right: Scalar_LNumber(
Chris@0 261 value: 1
Chris@0 262 )
Chris@0 263 )
Chris@0 264 )
Chris@0 265 )
Chris@0 266 )
Chris@0 267 12: Stmt_Const(
Chris@0 268 consts: array(
Chris@0 269 0: Const(
Chris@13 270 name: Identifier(
Chris@13 271 name: T_13
Chris@13 272 )
Chris@0 273 value: Expr_BinaryOp_BooleanOr(
Chris@0 274 left: Scalar_LNumber(
Chris@0 275 value: 0
Chris@0 276 )
Chris@0 277 right: Scalar_LNumber(
Chris@0 278 value: 0
Chris@0 279 )
Chris@0 280 )
Chris@0 281 )
Chris@0 282 )
Chris@0 283 )
Chris@0 284 13: Stmt_Const(
Chris@0 285 consts: array(
Chris@0 286 0: Const(
Chris@13 287 name: Identifier(
Chris@13 288 name: T_14
Chris@13 289 )
Chris@0 290 value: Expr_BinaryOp_LogicalOr(
Chris@0 291 left: Scalar_LNumber(
Chris@0 292 value: 1
Chris@0 293 )
Chris@0 294 right: Scalar_LNumber(
Chris@0 295 value: 0
Chris@0 296 )
Chris@0 297 )
Chris@0 298 )
Chris@0 299 )
Chris@0 300 )
Chris@0 301 14: Stmt_Const(
Chris@0 302 consts: array(
Chris@0 303 0: Const(
Chris@13 304 name: Identifier(
Chris@13 305 name: T_15
Chris@13 306 )
Chris@0 307 value: Expr_BinaryOp_LogicalXor(
Chris@0 308 left: Scalar_LNumber(
Chris@0 309 value: 1
Chris@0 310 )
Chris@0 311 right: Scalar_LNumber(
Chris@0 312 value: 1
Chris@0 313 )
Chris@0 314 )
Chris@0 315 )
Chris@0 316 )
Chris@0 317 )
Chris@0 318 15: Stmt_Const(
Chris@0 319 consts: array(
Chris@0 320 0: Const(
Chris@13 321 name: Identifier(
Chris@13 322 name: T_16
Chris@13 323 )
Chris@0 324 value: Expr_BinaryOp_LogicalXor(
Chris@0 325 left: Scalar_LNumber(
Chris@0 326 value: 1
Chris@0 327 )
Chris@0 328 right: Scalar_LNumber(
Chris@0 329 value: 0
Chris@0 330 )
Chris@0 331 )
Chris@0 332 )
Chris@0 333 )
Chris@0 334 )
Chris@0 335 16: Stmt_Const(
Chris@0 336 consts: array(
Chris@0 337 0: Const(
Chris@13 338 name: Identifier(
Chris@13 339 name: T_17
Chris@13 340 )
Chris@0 341 value: Expr_BinaryOp_Smaller(
Chris@0 342 left: Scalar_LNumber(
Chris@0 343 value: 1
Chris@0 344 )
Chris@0 345 right: Scalar_LNumber(
Chris@0 346 value: 0
Chris@0 347 )
Chris@0 348 )
Chris@0 349 )
Chris@0 350 )
Chris@0 351 )
Chris@0 352 17: Stmt_Const(
Chris@0 353 consts: array(
Chris@0 354 0: Const(
Chris@13 355 name: Identifier(
Chris@13 356 name: T_18
Chris@13 357 )
Chris@0 358 value: Expr_BinaryOp_SmallerOrEqual(
Chris@0 359 left: Scalar_LNumber(
Chris@0 360 value: 0
Chris@0 361 )
Chris@0 362 right: Scalar_LNumber(
Chris@0 363 value: 0
Chris@0 364 )
Chris@0 365 )
Chris@0 366 )
Chris@0 367 )
Chris@0 368 )
Chris@0 369 18: Stmt_Const(
Chris@0 370 consts: array(
Chris@0 371 0: Const(
Chris@13 372 name: Identifier(
Chris@13 373 name: T_19
Chris@13 374 )
Chris@0 375 value: Expr_BinaryOp_Greater(
Chris@0 376 left: Scalar_LNumber(
Chris@0 377 value: 1
Chris@0 378 )
Chris@0 379 right: Scalar_LNumber(
Chris@0 380 value: 0
Chris@0 381 )
Chris@0 382 )
Chris@0 383 )
Chris@0 384 )
Chris@0 385 )
Chris@0 386 19: Stmt_Const(
Chris@0 387 consts: array(
Chris@0 388 0: Const(
Chris@13 389 name: Identifier(
Chris@13 390 name: T_20
Chris@13 391 )
Chris@0 392 value: Expr_BinaryOp_GreaterOrEqual(
Chris@0 393 left: Scalar_LNumber(
Chris@0 394 value: 1
Chris@0 395 )
Chris@0 396 right: Scalar_LNumber(
Chris@0 397 value: 0
Chris@0 398 )
Chris@0 399 )
Chris@0 400 )
Chris@0 401 )
Chris@0 402 )
Chris@0 403 20: Stmt_Const(
Chris@0 404 consts: array(
Chris@0 405 0: Const(
Chris@13 406 name: Identifier(
Chris@13 407 name: T_21
Chris@13 408 )
Chris@0 409 value: Expr_BinaryOp_Identical(
Chris@0 410 left: Scalar_LNumber(
Chris@0 411 value: 1
Chris@0 412 )
Chris@0 413 right: Scalar_LNumber(
Chris@0 414 value: 1
Chris@0 415 )
Chris@0 416 )
Chris@0 417 )
Chris@0 418 )
Chris@0 419 )
Chris@0 420 21: Stmt_Const(
Chris@0 421 consts: array(
Chris@0 422 0: Const(
Chris@13 423 name: Identifier(
Chris@13 424 name: T_22
Chris@13 425 )
Chris@0 426 value: Expr_BinaryOp_NotIdentical(
Chris@0 427 left: Scalar_LNumber(
Chris@0 428 value: 1
Chris@0 429 )
Chris@0 430 right: Scalar_LNumber(
Chris@0 431 value: 1
Chris@0 432 )
Chris@0 433 )
Chris@0 434 )
Chris@0 435 )
Chris@0 436 )
Chris@0 437 22: Stmt_Const(
Chris@0 438 consts: array(
Chris@0 439 0: Const(
Chris@13 440 name: Identifier(
Chris@13 441 name: T_23
Chris@13 442 )
Chris@0 443 value: Expr_BinaryOp_NotEqual(
Chris@0 444 left: Scalar_LNumber(
Chris@0 445 value: 0
Chris@0 446 )
Chris@0 447 right: Scalar_String(
Chris@0 448 value: 0
Chris@0 449 )
Chris@0 450 )
Chris@0 451 )
Chris@0 452 )
Chris@0 453 )
Chris@0 454 23: Stmt_Const(
Chris@0 455 consts: array(
Chris@0 456 0: Const(
Chris@13 457 name: Identifier(
Chris@13 458 name: T_24
Chris@13 459 )
Chris@0 460 value: Expr_BinaryOp_Equal(
Chris@0 461 left: Scalar_LNumber(
Chris@0 462 value: 1
Chris@0 463 )
Chris@0 464 right: Scalar_String(
Chris@0 465 value: 1
Chris@0 466 )
Chris@0 467 )
Chris@0 468 )
Chris@0 469 )
Chris@0 470 )
Chris@0 471 24: Stmt_Const(
Chris@0 472 consts: array(
Chris@0 473 0: Const(
Chris@13 474 name: Identifier(
Chris@13 475 name: T_25
Chris@13 476 )
Chris@0 477 value: Expr_BinaryOp_Plus(
Chris@0 478 left: Scalar_LNumber(
Chris@0 479 value: 1
Chris@0 480 )
Chris@0 481 right: Expr_BinaryOp_Mul(
Chris@0 482 left: Scalar_LNumber(
Chris@0 483 value: 2
Chris@0 484 )
Chris@0 485 right: Scalar_LNumber(
Chris@0 486 value: 3
Chris@0 487 )
Chris@0 488 )
Chris@0 489 )
Chris@0 490 )
Chris@0 491 )
Chris@0 492 )
Chris@0 493 25: Stmt_Const(
Chris@0 494 consts: array(
Chris@0 495 0: Const(
Chris@13 496 name: Identifier(
Chris@13 497 name: T_26
Chris@13 498 )
Chris@0 499 value: Expr_BinaryOp_Plus(
Chris@0 500 left: Expr_BinaryOp_Plus(
Chris@0 501 left: Scalar_String(
Chris@0 502 value: 1
Chris@0 503 )
Chris@0 504 right: Scalar_LNumber(
Chris@0 505 value: 2
Chris@0 506 )
Chris@0 507 )
Chris@0 508 right: Scalar_String(
Chris@0 509 value: 3
Chris@0 510 )
Chris@0 511 )
Chris@0 512 )
Chris@0 513 )
Chris@0 514 )
Chris@0 515 26: Stmt_Const(
Chris@0 516 consts: array(
Chris@0 517 0: Const(
Chris@13 518 name: Identifier(
Chris@13 519 name: T_27
Chris@13 520 )
Chris@0 521 value: Expr_BinaryOp_Pow(
Chris@0 522 left: Scalar_LNumber(
Chris@0 523 value: 2
Chris@0 524 )
Chris@0 525 right: Scalar_LNumber(
Chris@0 526 value: 3
Chris@0 527 )
Chris@0 528 )
Chris@0 529 )
Chris@0 530 )
Chris@0 531 )
Chris@0 532 27: Stmt_Const(
Chris@0 533 consts: array(
Chris@0 534 0: Const(
Chris@13 535 name: Identifier(
Chris@13 536 name: T_28
Chris@13 537 )
Chris@0 538 value: Expr_ArrayDimFetch(
Chris@0 539 var: Expr_Array(
Chris@0 540 items: array(
Chris@0 541 0: Expr_ArrayItem(
Chris@0 542 key: null
Chris@0 543 value: Scalar_LNumber(
Chris@0 544 value: 1
Chris@0 545 )
Chris@0 546 byRef: false
Chris@0 547 )
Chris@0 548 1: Expr_ArrayItem(
Chris@0 549 key: null
Chris@0 550 value: Scalar_LNumber(
Chris@0 551 value: 2
Chris@0 552 )
Chris@0 553 byRef: false
Chris@0 554 )
Chris@0 555 2: Expr_ArrayItem(
Chris@0 556 key: null
Chris@0 557 value: Scalar_LNumber(
Chris@0 558 value: 3
Chris@0 559 )
Chris@0 560 byRef: false
Chris@0 561 )
Chris@0 562 )
Chris@0 563 )
Chris@0 564 dim: Scalar_LNumber(
Chris@0 565 value: 1
Chris@0 566 )
Chris@0 567 )
Chris@0 568 )
Chris@0 569 )
Chris@0 570 )
Chris@0 571 28: Stmt_Const(
Chris@0 572 consts: array(
Chris@0 573 0: Const(
Chris@13 574 name: Identifier(
Chris@13 575 name: T_29
Chris@13 576 )
Chris@0 577 value: Expr_BinaryOp_Minus(
Chris@0 578 left: Scalar_LNumber(
Chris@0 579 value: 12
Chris@0 580 )
Chris@0 581 right: Scalar_LNumber(
Chris@0 582 value: 13
Chris@0 583 )
Chris@0 584 )
Chris@0 585 )
Chris@0 586 )
Chris@0 587 )
Chris@0 588 29: Stmt_Const(
Chris@0 589 consts: array(
Chris@0 590 0: Const(
Chris@13 591 name: Identifier(
Chris@13 592 name: T_30
Chris@13 593 )
Chris@0 594 value: Expr_BinaryOp_BitwiseXor(
Chris@0 595 left: Scalar_LNumber(
Chris@0 596 value: 12
Chris@0 597 )
Chris@0 598 right: Scalar_LNumber(
Chris@0 599 value: 13
Chris@0 600 )
Chris@0 601 )
Chris@0 602 )
Chris@0 603 )
Chris@0 604 )
Chris@0 605 30: Stmt_Const(
Chris@0 606 consts: array(
Chris@0 607 0: Const(
Chris@13 608 name: Identifier(
Chris@13 609 name: T_31
Chris@13 610 )
Chris@0 611 value: Expr_BinaryOp_BitwiseAnd(
Chris@0 612 left: Scalar_LNumber(
Chris@0 613 value: 12
Chris@0 614 )
Chris@0 615 right: Scalar_LNumber(
Chris@0 616 value: 13
Chris@0 617 )
Chris@0 618 )
Chris@0 619 )
Chris@0 620 )
Chris@0 621 )
Chris@0 622 31: Stmt_Const(
Chris@0 623 consts: array(
Chris@0 624 0: Const(
Chris@13 625 name: Identifier(
Chris@13 626 name: T_32
Chris@13 627 )
Chris@0 628 value: Expr_BinaryOp_BitwiseOr(
Chris@0 629 left: Scalar_LNumber(
Chris@0 630 value: 12
Chris@0 631 )
Chris@0 632 right: Scalar_LNumber(
Chris@0 633 value: 13
Chris@0 634 )
Chris@0 635 )
Chris@0 636 )
Chris@0 637 )
Chris@0 638 )
Chris@0 639 32: Stmt_Const(
Chris@0 640 consts: array(
Chris@0 641 0: Const(
Chris@13 642 name: Identifier(
Chris@13 643 name: T_33
Chris@13 644 )
Chris@0 645 value: Expr_BinaryOp_Mod(
Chris@0 646 left: Scalar_LNumber(
Chris@0 647 value: 12
Chris@0 648 )
Chris@0 649 right: Scalar_LNumber(
Chris@0 650 value: 3
Chris@0 651 )
Chris@0 652 )
Chris@0 653 )
Chris@0 654 )
Chris@0 655 )
Chris@0 656 33: Stmt_Const(
Chris@0 657 consts: array(
Chris@0 658 0: Const(
Chris@13 659 name: Identifier(
Chris@13 660 name: T_34
Chris@13 661 )
Chris@0 662 value: Expr_BinaryOp_ShiftRight(
Chris@0 663 left: Scalar_LNumber(
Chris@0 664 value: 100
Chris@0 665 )
Chris@0 666 right: Scalar_LNumber(
Chris@0 667 value: 4
Chris@0 668 )
Chris@0 669 )
Chris@0 670 )
Chris@0 671 )
Chris@0 672 )
Chris@0 673 34: Stmt_Const(
Chris@0 674 consts: array(
Chris@0 675 0: Const(
Chris@13 676 name: Identifier(
Chris@13 677 name: T_35
Chris@13 678 )
Chris@0 679 value: Expr_BooleanNot(
Chris@0 680 expr: Expr_ConstFetch(
Chris@0 681 name: Name(
Chris@0 682 parts: array(
Chris@0 683 0: false
Chris@0 684 )
Chris@0 685 )
Chris@0 686 )
Chris@0 687 )
Chris@0 688 )
Chris@0 689 )
Chris@0 690 )
Chris@0 691 )