From: Neil Smith Date: Thu, 22 Dec 2016 22:41:47 +0000 (+0000) Subject: Day 22, with stack build system X-Git-Url: https://git.njae.me.uk/?p=advent-of-code-16.git;a=commitdiff_plain;h=7267c0fa74db510564dc59587dd076372640114f Day 22, with stack build system --- diff --git a/advent01.hs b/advent01.hs deleted file mode 100644 index a896944..0000000 --- a/advent01.hs +++ /dev/null @@ -1,99 +0,0 @@ -module Main(main) where - -import Data.List (sort) -import Data.List.Split (splitOn) - --- turn direction, number of steps -data Step = Step Char Int deriving (Show) - -data Direction = North | East | South | West - deriving (Enum, Show, Bounded, Eq) - --- direction, easting, northing -data Position = Position Direction Int Int deriving (Show) --- Two positions are the same if they're in the same place, --- regardless of facing -instance Eq Position where - Position _ e n == Position _ e' n' = e == e' && n == n' - -main :: IO () -main = do - instructions <- readFile "advent01.txt" - part1 instructions - part2 instructions - -part1 :: String -> IO () -part1 instructions = do - let answer = finalDistance $ last $ stepsFromStart $ steps instructions - print answer - -part2 :: String -> IO () -part2 instructions = do - let visited = finalDistance $ firstRepeat $ stepsFromStart $ expandSteps $ steps instructions - print visited - - --- Extract the steps from the input string. -steps :: String -> [Step] -steps s = map readStep $ splitOn ", " s - where readStep (d:l) = Step d (read l) - --- Take steps from the starting position -stepsFromStart :: [Step] -> [Position] -stepsFromStart = takeSteps (Position North 0 0) - --- Calculate manhattan distance from start to this state -finalDistance :: Position -> Int -finalDistance (Position _ e n) = (abs e) + (abs n) - --- For part 2: convert one step of many spaces to many steps of one space each -expandSteps :: [Step] -> [Step] -expandSteps = - concatMap expandStep - where expandStep (Step dir d) = (Step dir 1) : replicate (d - 1) (Step 'S' 1) - --- Execute a series of steps, keeping track of the positions after each step -takeSteps :: Position -> [Step] -> [Position] --- takeSteps pos steps = scanl move pos steps -takeSteps = scanl move - --- Make one move, by updating direction then position -move :: Position -> Step -> Position -move (Position facing easting northing) - (Step turnInstr distance) = - Position facing' easting' northing' - where facing' = turn turnInstr facing - (easting', northing') = takeStep facing' distance easting northing - --- Turn right, left, or straight -turn :: Char -> Direction -> Direction -turn 'R' direction = turnCW direction -turn 'L' direction = turnACW direction -turn 'S' direction = direction - --- Move in the current direction -takeStep :: Direction -> Int -> Int -> Int -> (Int, Int) -takeStep North d e n = (e, n+d) -takeStep South d e n = (e, n-d) -takeStep West d e n = (e-d, n) -takeStep East d e n = (e+d, n) - - --- | a `succ` that wraps -turnCW :: (Bounded a, Enum a, Eq a) => a -> a -turnCW dir | dir == maxBound = minBound - | otherwise = succ dir - --- | a `pred` that wraps -turnACW :: (Bounded a, Enum a, Eq a) => a -> a -turnACW dir | dir == minBound = maxBound - | otherwise = pred dir - --- All the prefixes of a list of items -prefixes = scanl addTerm [] - where addTerm ps t = ps ++ [t] - --- The first item that exists in a prefix of the list to that point -firstRepeat positions = - last $ head $ dropWhile (\p -> (last p) `notElem` (tail $ reverse p)) - (tail $ prefixes positions) diff --git a/advent01.txt b/advent01.txt deleted file mode 100644 index 62fb6e8..0000000 --- a/advent01.txt +++ /dev/null @@ -1 +0,0 @@ -R2, L3, R2, R4, L2, L1, R2, R4, R1, L4, L5, R5, R5, R2, R2, R1, L2, L3, L2, L1, R3, L5, R187, R1, R4, L1, R5, L3, L4, R50, L4, R2, R70, L3, L2, R4, R3, R194, L3, L4, L4, L3, L4, R4, R5, L1, L5, L4, R1, L2, R4, L5, L3, R4, L5, L5, R5, R3, R5, L2, L4, R4, L1, R3, R1, L1, L2, R2, R2, L3, R3, R2, R5, R2, R5, L3, R2, L5, R1, R2, R2, L4, L5, L1, L4, R4, R3, R1, R2, L1, L2, R4, R5, L2, R3, L4, L5, L5, L4, R4, L2, R1, R1, L2, L3, L2, R2, L4, R3, R2, L1, L3, L2, L4, L4, R2, L3, L3, R2, L4, L3, R4, R3, L2, L1, L4, R4, R2, L4, L4, L5, L1, R2, L5, L2, L3, R2, L2 \ No newline at end of file diff --git a/advent02.hs b/advent02.hs deleted file mode 100644 index d4abc55..0000000 --- a/advent02.hs +++ /dev/null @@ -1,90 +0,0 @@ -module Main(main) where - -import Data.Array.IArray - --- Row 1 is top, column 1 is left -type Position = (Int, Int) -type Keyboard = Array Position Char - -kb1 = ["xxxxx", - "x123x", - "x456x", - "x789x", - "xxxxx"] - -kb2 = ["xxxxxxx", - "xxx1xxx", - "xx234xx", - "x56789x", - "xxABCxx", - "xxxDxxx", - "xxxxxxx"] - -enumerate = zip [0..] - -mkKeyboard :: [String] -> Keyboard -mkKeyboard kb = array ((0, 0), (length kb - 1, length (kb!!0) - 1)) - [((i, j), c) | (i, r) <- enumerate kb, (j, c) <- enumerate r] - -keyboard1 = mkKeyboard kb1 -keyboard2 = mkKeyboard kb2 - -findKey :: Keyboard -> Char-> Position -findKey kb c = fst $ head $ filter (\a -> (snd a) == c) $ assocs kb - --- data Coord = One | Two | Three --- deriving (Read, Show, Eq, Ord, Enum, Bounded) --- -- instance Bounded Coord where --- -- minBound = Coord 1 --- -- maxBound = Coord 3 - --- data Position = Position Coord Coord --- deriving (Show, Eq) - -main :: IO () -main = do - instrText <- readFile "advent02.txt" - let instructions = lines instrText - part1 instructions - part2 instructions - -part1 :: [String] -> IO () -part1 instructions = do - print $ followInstructions keyboard1 instructions - - -part2 :: [String] -> IO () -part2 instructions = do - print $ followInstructions keyboard2 instructions - - -followInstructions :: Keyboard -> [String] -> String -followInstructions kb instr = moveSeries kb (startPosition kb) instr - - -startPosition :: Keyboard -> Position -startPosition kb = findKey kb '5' - -moveSeries :: Keyboard -> Position -> [String] -> String -moveSeries _ _ [] = [] -moveSeries kb p (i:is) = (n:ns) - where p' = makeMoves kb p i - n = kb ! p' - ns = moveSeries kb p' is - -makeMoves :: Keyboard -> Position -> [Char] -> Position -makeMoves kb p ms = foldl (safeMove kb) p ms - -safeMove :: Keyboard -> Position -> Char -> Position -safeMove kb pos dir = maybeRevert kb pos (move pos dir) - -move :: Position -> Char -> Position -move (r, c) 'U' = (r-1, c) -move (r, c) 'D' = (r+1, c) -move (r, c) 'L' = (r, c-1) -move (r, c) 'R' = (r, c+1) - -maybeRevert :: Keyboard -> Position -> Position -> Position -maybeRevert kb oldPos newPos - | kb ! newPos == 'x' = oldPos - | otherwise = newPos diff --git a/advent02.txt b/advent02.txt deleted file mode 100644 index 799cb46..0000000 --- a/advent02.txt +++ /dev/null @@ -1,5 +0,0 @@ -RDRRDLRRUDRUUUULDDRDUULLDUULDURDDUDRULDLUDDRLRDUDDURRRRURDURLLRDRUUULDLLLURDRLLULLUULULLLDLLLRRURRLRDUULRURRUDRRDRLURLRURLLULRUURRUURDDLDRDLDLLUDUULLLUUUUDULLDRRUURLDURDDDDDRLLRRURDLUDRRUUDLRRLLRDURDUDDDLRDDRDLRULLUULRULRLLULDDRURUUDLDDULDRLLURDDUDDUDRDUDLDRRRDURRLDRDRLDLLDUDDDULULRRULRLLURDRRDDUUUUUULRUDLRRDURDLRDLUDLDURUDDUUURUDLUUULDLRDURDLDUUDLDDDURUUDUUDRLRDULLDUULUDRUDRLRRRDLLDRUDULRRUDDURLDRURRLLRRRDRLLDLULULRRUURRURLLUDRRLRULURLDDDDDURUDRRRRULLUUDLDDLUUL -ULURUDLULDULDLLDDLLLDRRLLUDRRDRDUDURUDLRRRRUDRDDURLRRULLDLURLDULLUDDLUDURDUURRRRLDLRLDDULLRURLULLDDRUDLRRRLDRRRDLDRLLDDRRDDLUUDRUDDLULRURLDURRLLDLRUDLLRRUULUDRLLLRLDULURRRRRDDUURDRRUUDULRUULDDULRLUDLUDDULLRLRDDLRLLURRRULDLRRRUURRLDDRDLRDLRRDRDLDRDUDRDURUUDRLRRULRDLLDLLRRRDRLDRLRLRLLLURURDULUUDDRLLDDDRURRURLRDDULLRURUDRRDRLRRRLDLRLRULDRLUURRUUULRLDLLURLLLDLLLDRRDULRURRRRLUDLLRRUDLRUDRURDRRDLUUURRDLRLRUUUDURDLUDURRUUDURLUDDDULLDRDLLDDDRLDDDRLDLDDDDUDUUDURUUDULRDDLULDRDRLURLUDRDLUULLULRLULRDDRULDUDDURUURULUDLUURLURU -URLURDDRLLURRRLDLDLUDUURDRUDLLLRRDLUUULRRLURRRLUDUDLRLDDRUDLRRRULUDUDLLLULULLLRUDULDDDLLLRRRLRURDULUDDDULDLULURRRDLURDLRLLDUDRUDURDRRURULDRDUDLLRDDDUDDURLUULLULRDRRLDDLDURLRRRLDRDLDULRULRRRLRLLDULRDLURLRUUDURRUUDLLUDRUDLRLDUUDLURRRDDUUDUDRLDLDDRURDDLLDDRDLRLRDLLLUDLUUDRLRLRDDRDLRDLLUULLLLUULLDLLDLRDLRLRRLUUDLLRLRUDRURULRLRLULUDRLLUDDUDDULRLDDRUUUURULDRRULLLDUURULUDRLLURLRRLDLRRLDDRRRDUDDUDLDDLULUDDUURDLLLRLDLRDRUUUUUDDDLDRDDRRRLRURRRRDURDRURUDLURRURDRLRUUDDLDRRULLDURDRLRRDURURUULRDUDLDRDDLULULRDRRUDDRLLRLULRLLUUDRDUUDDUDLRUUDLLUULLRUULUDDLURRRLLDRLRRLLRULLDUULURLLLLUUULDR -LDUURULLRLDRRUUDUUUURUUUDDDURRDDLRDLLRDDRULDDUURUDDURLLUDRDUDRDULDRRRLULUDRULLLLDRLLDRDLDLLRURULUDDDDURDDDRLLUDLDRULRDLDUDDDUUDLLRLLLDLRLRLRRUDDULDDDUDLDDLUDDULDLLLLULLLLDDURDDURRRDDRLRLLUDLLUDDDUDURUDRLRDRULULDDRULDLULULLRUULRLDULUURRDRDRRDLDDDRRLUULDLUDRDDUDLRURULLDDURLDDRULUDLDDDRDRLLRDLLUURRRURDRLRURLDDLURDRURDDURLLRLRUDUUDLDUDURRDDURDRDDUDDDUDUURURDDLLRUUDDRRDULDDLLDLRULUULRUUDLLDRLULDULDDUDLULRULDRLLDUULDDDLRLLRLULDDULDDRRRLDRRLURULRDDRDLRRDUDDRDRRRRUDUDLLRRDRRURRUURDRULDDUDURLUDDURDUDRDUULLDRURUURURDRRLDDLDLUURLULRUDURDRUUURRURRDRUDRUURDURLRULULLLULDLLDLRRLDRDLUULUDDDLRDRLRLDRUDUDRLLRL -LURLUURLURDUUDRUDLDLLURRRDLDRRRULDDRRDRDUUDRUDURDDDURLUDDLULUULRRLLRULUDRDDRRRLDURDUDDURDDDLRLDDLULLDRDDLUUDUURRRLULRUURRRRLLULDUDRDUURRRURRDRDUDUDLUDULLDLDDRLUDRURDULURLURRLLURLLLRLUURLRUDLUDDRLURRUULULRLURRURUDURDLDLDDUDDRDLLRLLRRULDDRUDURUDDDUDLLRDLRUDULLLRRRUURUDUUULLRDUDRURUDULLDLLUUUDRULRLLRRDDDDUDULDRDRLLDDLLDDDURRUDURLDLRDRUURDDURLRDRURLRRLLRLULDRRLRUDURDUURRLUUULUDDDLRLULRDRLLURRRDLURDUUDRRRLUURRLLUDLUDLUULLRRDLLRDDRURRUURLDDLRLRLRUDLDLRLRDRRDLLLRDLRDUDLLDDDRD \ No newline at end of file diff --git a/advent03.hs b/advent03.hs deleted file mode 100644 index e97dd66..0000000 --- a/advent03.hs +++ /dev/null @@ -1,33 +0,0 @@ -module Main(main) where - -import Data.List (transpose, sort) -import Data.List.Split (splitOn, chunksOf) - -type Triple = [Integer] - -main :: IO () -main = do - instrText <- readFile "advent03.txt" - let triangles = map (parseLine) $ lines instrText - part1 triangles - part2 triangles - - -part1 :: [Triple] -> IO () -part1 triangles = do - print $ length $ filter (validTriangle) triangles - -part2 :: [Triple] -> IO () -part2 triangles = do - print $ length $ filter (validTriangle) $ byColumns triangles - - -parseLine :: String -> Triple -parseLine = map (read) . filter (not . null) . splitOn " " - -validTriangle :: Triple -> Bool -validTriangle triple = sortedTriple!!0 + sortedTriple!!1 > sortedTriple!!2 - where sortedTriple = sort triple - -byColumns :: [[Integer]] -> [Triple] -byColumns = chunksOf 3 . concat . transpose diff --git a/advent03.txt b/advent03.txt deleted file mode 100644 index 40c03ca..0000000 --- a/advent03.txt +++ /dev/null @@ -1,1734 +0,0 @@ - 330 143 338 - 769 547 83 - 930 625 317 - 669 866 147 - 15 881 210 - 662 15 70 - 273 277 707 - 50 592 770 - 280 313 407 - 642 487 372 - 94 619 295 - 734 243 141 - 220 141 515 - 198 824 745 - 210 787 964 - 213 627 601 - 918 4 447 - 805 630 802 - 711 237 987 - 938 552 388 - 643 405 779 - 803 747 525 - 917 832 631 - 899 292 843 - 81 206 445 - 141 874 465 - 177 974 54 - 520 725 814 - 271 958 554 - 779 579 264 - 358 18 257 - 978 77 270 - 984 88 131 - 475 702 940 - 183 756 160 - 383 941 820 - 806 142 646 - 793 275 804 - 53 272 368 - 942 821 785 - 863 830 902 - 219 52 199 - 473 479 351 - 860 522 361 - 890 240 216 - 94 756 407 - 310 189 468 - 234 909 178 - 889 667 756 - 429 485 730 - 825 405 30 - 943 806 253 - 98 455 365 - 998 454 290 - 971 576 223 - 64 429 273 - 945 779 63 - 352 960 59 - 672 948 577 - 782 43 567 - 460 315 719 - 825 604 183 - 453 442 788 - 694 632 334 - 569 619 317 - 337 49 17 - 878 468 660 - 393 598 717 - 550 827 159 - 540 362 346 - 66 713 380 - 491 477 44 - 411 114 320 - 554 96 250 - 306 67 196 - 769 553 333 - 762 436 382 - 278 322 153 - 894 603 334 - 539 441 844 - 486 162 927 - 197 9 218 - 94 221 804 - 250 220 913 - 557 626 486 - 562 705 630 - 968 922 285 - 518 36 468 - 18 608 83 - 512 611 530 - 534 37 65 - 621 136 90 - 239 113 139 - 371 640 956 - 629 54 959 - 531 620 338 - 682 499 810 - 798 170 968 - 187 640 645 - 660 535 332 - 663 530 314 - 64 26 65 - 55 285 488 - 620 288 52 - 642 474 450 - 455 9 962 - 51 760 489 - 426 760 833 - 304 783 772 - 498 765 695 - 635 53 126 - 44 430 774 - 979 943 838 - 962 892 64 - 494 709 614 - 7 695 120 - 503 114 606 - 362 340 689 - 509 367 389 - 673 410 664 - 773 262 558 - 897 958 245 - 140 773 483 - 965 468 584 - 546 209 668 - 856 381 184 - 274 237 762 - 888 677 906 - 871 516 405 - 102 529 912 - 285 724 885 - 352 501 53 - 774 139 245 - 380 309 594 - 813 185 765 - 530 645 965 - 958 618 120 - 851 202 957 - 737 476 131 - 595 546 108 - 716 113 66 - 327 215 318 - 397 343 390 - 351 143 103 - 138 91 31 - 108 224 919 - 230 276 896 - 426 975 177 - 327 975 918 - 238 365 764 - 328 799 775 - 590 906 967 - 578 460 338 - 507 619 647 - 711 617 867 - 933 478 734 - 820 760 721 - 199 711 824 - 983 214 228 - 382 150 648 - 415 782 242 - 615 754 445 - 693 689 590 - 382 784 482 - 997 181 322 - 682 241 172 - 587 302 252 - 184 135 254 - 574 104 549 - 88 738 796 - 486 715 861 - 62 491 815 - 463 434 569 - 519 622 310 - 199 443 782 - 572 657 85 - 763 517 844 - 750 175 835 - 228 269 710 - 611 316 551 - 883 546 296 - 169 693 18 - 992 743 316 - 263 529 529 - 705 570 4 - 918 706 527 - 609 285 971 - 260 533 112 - 711 486 904 - 820 40 472 - 997 301 129 - 257 288 343 - 635 439 375 - 560 381 417 - 773 105 145 - 58 963 267 - 976 742 424 - 994 441 384 - 389 770 514 - 782 463 335 - 919 727 276 - 780 794 372 - 326 180 590 - 918 946 257 - 889 842 181 - 507 61 464 - 762 835 443 - 827 607 982 - 174 875 544 - 934 885 589 - 32 343 757 - 987 826 257 - 981 782 844 - 446 291 397 - 443 800 421 - 165 668 539 - 410 373 487 - 422 803 881 - 546 998 953 - 291 607 160 - 919 894 62 - 842 718 117 - 110 816 582 - 470 836 596 - 575 687 35 - 37 835 374 - 90 954 354 - 101 141 407 - 174 398 499 - 173 737 964 - 4 365 950 - 946 616 634 - 906 904 619 - 40 789 16 - 788 769 76 - 737 867 88 - 565 812 31 - 508 380 201 - 34 935 339 - 500 862 326 - 431 181 475 - 403 346 585 - 88 530 708 - 731 137 781 - 715 563 272 - 817 659 932 - 396 368 360 - 162 683 376 - 278 620 39 - 525 910 371 - 688 524 149 - 488 998 279 - 286 392 523 - 325 144 406 - 79 532 419 - 540 460 465 - 222 832 416 - 517 507 46 - 87 744 183 - 382 819 701 - 306 763 647 - 744 74 913 - 62 813 849 - 691 874 775 - 291 422 314 - 432 630 809 - 611 510 566 - 583 745 289 - 397 19 727 - 188 766 442 - 96 108 329 - 963 719 598 - 963 764 469 - 444 636 731 - 792 636 422 - 993 1 416 - 518 300 532 - 298 312 736 - 316 111 463 - 825 569 35 - 858 591 584 - 809 84 607 - 681 610 740 - 383 279 210 - 851 733 615 - 287 959 160 - 856 851 171 - 606 115 211 - 310 541 845 - 506 119 319 - 665 471 562 - 382 885 798 - 440 29 595 - 113 903 475 - 257 773 846 - 306 741 776 - 97 804 76 - 489 332 423 - 466 632 613 - 86 739 481 - 199 846 712 - 62 282 809 - 155 681 142 - 705 525 270 - 159 800 117 - 612 664 316 - 505 616 837 - 578 839 770 - 942 535 122 - 542 781 512 - 552 22 475 - 760 791 97 - 432 626 837 - 26 616 336 - 412 316 702 - 108 232 242 - 158 311 449 - 60 141 325 - 58 1 714 - 532 977 123 - 531 978 598 - 679 899 57 - 645 523 54 - 167 892 14 - 164 574 492 - 105 37 491 - 132 555 485 - 600 879 508 - 608 843 222 - 270 255 398 - 232 960 281 - 241 995 436 - 113 674 411 - 381 567 5 - 697 450 966 - 726 857 969 - 722 686 965 - 543 20 453 - 955 689 554 - 858 161 923 - 140 979 953 - 786 836 237 - 200 322 875 - 311 623 398 - 510 814 945 - 67 387 825 - 621 620 740 - 630 842 163 - 545 75 373 - 506 531 501 - 301 571 357 - 746 491 253 - 37 29 748 - 769 507 754 - 69 886 861 - 423 629 856 - 380 723 83 - 875 647 657 - 144 696 580 - 896 49 629 - 275 598 374 - 118 636 279 - 277 80 529 - 623 130 493 - 368 712 621 - 833 730 512 - 59 767 829 - 105 933 731 - 54 240 108 - 803 235 992 - 837 726 881 - 426 855 450 - 636 730 731 - 840 561 977 - 996 229 670 - 508 234 186 - 529 108 917 - 373 337 795 - 681 35 565 - 790 251 152 - 301 235 599 - 875 416 653 - 277 338 990 - 800 207 595 - 954 650 896 - 931 667 706 - 84 851 822 - 254 778 816 - 316 141 732 - 233 759 239 - 546 473 315 - 69 15 96 - 513 470 320 - 460 188 729 - 429 950 288 - 709 807 790 - 456 161 570 - 269 718 339 - 213 628 602 - 155 367 686 - 176 418 568 - 66 251 723 - 959 696 536 - 794 279 885 - 315 527 993 - 603 853 868 - 727 747 994 - 411 287 193 - 528 763 559 - 803 149 739 - 542 883 696 - 275 676 183 - 411 317 161 - 349 875 35 - 39 729 221 - 256 831 216 - 247 238 176 - 399 59 306 - 409 445 550 - 9 387 253 - 613 204 474 - 81 868 944 - 589 912 735 - 319 264 83 - 984 704 614 - 778 614 532 - 699 762 556 - 680 250 507 - 504 581 647 - 160 351 295 - 513 739 413 - 651 915 651 - 878 218 499 - 872 990 503 - 38 886 12 - 218 201 415 - 240 250 504 - 265 448 382 - 402 876 126 - 488 950 649 - 189 210 597 - 24 850 758 - 30 451 347 - 5 437 723 - 634 310 546 - 801 179 411 - 679 338 852 - 385 32 933 - 406 531 554 - 88 516 871 - 860 486 834 - 467 535 849 - 419 820 785 - 206 649 526 - 244 499 714 - 80 774 678 - 336 149 612 - 310 175 656 - 150 221 791 - 159 806 701 - 336 465 530 - 376 819 272 - 533 472 421 - 82 124 909 - 523 561 539 - 844 811 576 - 439 612 587 - 782 457 686 - 152 51 837 - 413 573 855 - 403 608 26 - 893 819 910 - 361 499 657 - 677 937 617 - 428 6 343 - 310 38 431 - 474 35 420 - 574 256 221 - 700 907 515 - 149 685 478 - 206 325 720 - 114 51 67 - 320 338 686 - 293 59 527 - 147 756 986 - 250 697 573 - 968 194 545 - 542 480 72 - 454 574 619 - 473 55 592 - 475 339 889 - 884 313 993 - 125 127 742 - 591 514 585 - 543 583 282 - 264 580 390 - 839 487 781 - 902 664 868 - 334 459 819 - 107 20 211 - 368 479 775 - 683 691 273 - 681 336 630 - 22 978 536 - 926 828 708 - 210 319 723 - 787 689 866 - 854 633 856 - 960 494 866 - 122 687 596 - 918 705 539 - 84 564 791 - 876 138 949 - 836 1 500 - 718 308 466 - 228 311 271 - 421 998 433 - 622 772 174 - 875 720 432 - 680 687 509 - 215 95 623 - 674 732 166 - 198 174 645 - 721 839 390 - 617 896 448 - 73 331 155 - 789 134 431 - 853 376 400 - 82 862 411 - 779 362 70 - 750 777 349 - 674 604 224 - 812 731 446 - 280 546 336 - 922 781 619 - 196 892 876 - 941 361 479 - 344 988 873 - 499 92 795 - 287 913 546 - 625 167 604 - 617 1 399 - 154 166 720 - 328 323 111 - 713 619 530 - 606 756 580 - 194 247 935 - 149 65 64 - 55 287 902 - 870 866 127 - 478 679 587 - 900 459 565 - 563 787 743 - 962 798 769 - 669 39 525 - 745 691 317 - 484 123 93 - 500 598 348 - 159 535 681 - 618 176 877 - 723 373 464 - 304 184 131 - 542 209 654 - 716 47 647 - 976 537 771 - 914 606 568 - 241 250 481 - 616 640 660 - 744 187 843 - 303 617 927 - 369 525 773 - 754 697 360 - 595 560 605 - 562 589 610 - 799 497 655 - 823 553 532 - 937 502 449 - 976 941 158 - 194 720 347 - 474 694 822 - 528 184 272 - 922 698 568 - 415 889 638 - 169 822 65 - 547 281 663 - 582 167 110 - 365 56 914 - 431 162 923 - 473 812 578 - 572 890 386 - 164 119 308 - 604 946 496 - 327 142 72 - 641 916 472 - 743 663 228 - 107 446 345 - 823 486 152 - 997 47 968 - 565 155 631 - 438 205 416 - 271 163 875 - 123 393 111 - 169 412 854 - 615 683 659 - 592 362 9 - 99 895 668 - 834 205 172 - 359 355 550 - 499 149 389 - 755 298 916 - 475 706 807 - 829 425 118 - 43 527 479 - 159 473 874 - 151 326 992 - 970 660 509 - 837 930 35 - 164 345 506 - 209 879 487 - 97 157 503 - 289 755 793 - 624 897 293 - 382 134 451 - 257 917 339 - 110 168 85 - 470 583 139 - 486 613 120 - 584 747 795 - 959 699 339 - 866 384 672 - 157 639 464 - 939 485 409 - 947 441 131 - 179 953 581 - 735 587 605 - 834 582 36 - 304 422 707 - 195 348 347 - 163 521 486 - 948 471 675 - 915 453 406 - 40 345 635 - 81 124 115 - 127 105 127 - 50 32 10 - 221 399 397 - 487 676 412 - 574 607 450 - 268 625 323 - 843 858 145 - 706 286 218 - 822 168 254 - 950 708 944 - 572 640 775 - 958 563 909 - 996 154 918 - 378 626 564 - 335 823 339 - 499 810 270 - 294 22 98 - 987 959 591 - 101 899 442 - 931 409 576 - 542 102 655 - 404 980 398 - 759 990 381 - 692 990 750 - 752 93 149 - 278 973 883 - 621 459 232 - 398 261 626 - 221 212 744 - 790 241 352 - 802 218 317 - 443 294 244 - 393 131 941 - 466 378 885 - 516 419 240 - 799 748 407 - 468 502 386 - 829 329 766 - 432 376 408 - 681 88 198 - 553 351 489 - 234 717 59 - 332 525 675 - 437 691 723 - 441 834 433 - 616 144 274 - 966 911 650 - 254 274 782 - 346 714 856 - 330 696 171 - 394 407 298 - 897 553 867 - 755 503 956 - 253 840 382 - 923 195 262 - 918 735 483 - 55 703 227 - 768 759 225 - 825 238 14 - 7 479 978 - 211 603 957 - 216 866 94 - 112 698 60 - 847 631 307 - 940 164 253 - 406 133 14 - 380 816 425 - 147 873 429 - 698 987 98 - 534 823 691 - 197 690 754 - 979 39 468 - 928 73 531 - 119 66 920 - 982 810 569 - 476 534 397 - 931 366 182 - 783 104 732 - 131 32 619 - 784 136 530 - 16 933 484 - 995 987 739 - 985 88 977 - 43 919 914 - 540 399 915 - 566 859 257 - 639 419 73 - 727 118 865 - 477 370 834 - 293 434 155 - 422 557 603 - 203 243 754 - 373 15 748 - 466 574 807 - 282 576 70 - 275 365 608 - 987 644 648 - 711 629 717 - 420 410 696 - 252 417 874 - 642 26 202 - 223 23 531 - 545 580 675 - 565 600 521 - 130 745 142 - 264 377 397 - 300 618 253 - 683 331 279 - 440 826 275 - 835 785 266 - 592 264 590 - 257 255 173 - 532 23 620 - 571 749 434 - 988 552 492 - 566 766 234 - 617 818 776 - 45 113 882 - 579 793 114 - 971 243 608 - 979 241 241 - 130 83 634 - 91 361 5 - 311 107 501 - 377 388 496 - 727 849 317 - 323 702 256 - 804 254 189 - 70 11 246 - 752 425 785 - 799 413 882 - 917 133 695 - 959 49 902 - 420 121 412 - 177 170 158 - 828 734 135 - 880 875 75 - 824 556 960 - 857 689 960 - 74 951 2 - 246 687 756 - 311 93 487 - 209 626 886 - 17 545 566 - 963 252 283 - 947 493 805 - 185 493 462 - 728 365 885 - 808 214 528 - 582 780 100 - 30 254 654 - 596 706 553 - 713 968 803 - 123 270 839 - 792 778 475 - 442 95 682 - 931 212 678 - 781 140 439 - 651 645 978 - 137 829 286 - 593 503 895 - 642 215 144 - 687 122 934 - 84 240 919 - 656 515 774 - 51 799 273 - 636 324 924 - 213 161 309 - 509 157 458 - 582 1 727 - 716 269 819 - 978 343 303 - 828 264 708 - 108 620 190 - 12 12 634 - 103 615 579 - 364 286 660 - 809 714 656 - 729 504 10 - 994 366 341 - 433 796 77 - 663 462 353 - 776 687 758 - 751 495 651 - 33 751 753 - 349 919 228 - 204 799 584 - 335 156 563 - 725 191 535 - 731 676 524 - 455 571 10 - 899 379 689 - 773 641 812 - 324 761 421 - 354 557 897 - 571 740 161 - 407 271 856 - 886 393 428 - 286 870 218 - 950 819 347 - 331 847 858 - 498 471 689 - 357 378 775 - 890 503 514 - 201 863 428 - 721 737 796 - 636 178 974 - 14 387 936 - 622 424 144 - 82 201 727 - 127 164 779 - 173 319 326 - 195 748 641 - 469 512 510 - 626 949 405 - 552 542 251 - 192 204 382 - 655 558 631 - 970 519 3 - 918 701 399 - 56 543 403 - 524 848 641 - 620 431 539 - 604 473 824 - 369 105 464 - 575 957 429 - 859 978 199 - 712 381 199 - 941 305 738 - 892 663 937 - 653 963 365 - 70 331 508 - 620 923 682 - 739 122 350 - 288 418 768 - 733 326 520 - 694 472 793 - 725 415 739 - 895 398 201 - 500 157 168 - 727 814 354 - 807 726 340 - 431 329 212 - 635 374 403 - 677 78 347 - 386 559 505 - 385 361 161 - 262 494 621 - 481 237 767 - 318 966 640 - 723 732 546 - 911 652 823 - 958 502 677 - 718 258 834 - 98 666 506 - 929 41 933 - 869 637 605 - 585 156 335 - 490 316 149 - 436 339 323 - 596 948 224 - 275 433 241 - 545 890 155 - 601 413 676 - 893 401 673 - 694 171 403 - 211 110 482 - 267 61 541 - 206 124 256 - 189 353 308 - 351 880 70 - 237 677 380 - 759 754 388 - 465 99 862 - 852 787 925 - 758 890 804 - 252 817 784 - 773 129 860 - 954 102 872 - 743 396 730 - 500 304 173 - 492 399 527 - 413 465 813 - 670 837 933 - 897 424 430 - 782 404 14 - 151 24 418 - 897 260 306 - 811 287 386 - 440 93 449 - 229 185 582 - 136 63 678 - 211 250 940 - 184 400 209 - 122 383 238 - 143 386 111 - 320 194 415 - 925 790 501 - 924 596 614 - 606 733 277 - 886 116 194 - 278 627 189 - 225 536 981 - 487 538 584 - 539 2 793 - 219 456 57 - 341 424 941 - 199 482 921 - 231 241 588 - 711 740 334 - 596 554 323 - 917 164 629 - 19 138 756 - 939 70 225 - 536 432 401 - 137 614 14 - 593 818 402 - 871 280 515 - 268 259 326 - 900 97 376 - 68 699 461 - 546 810 400 - 540 697 676 - 591 125 751 - 159 719 919 - 605 763 898 - 171 845 459 - 115 289 376 - 265 636 317 - 646 225 84 - 663 755 89 - 192 828 12 - 316 523 822 - 310 933 784 - 44 721 873 - 893 873 461 - 898 15 548 - 96 861 726 - 9 837 398 - 238 404 29 - 227 845 428 - 770 764 472 - 960 747 784 - 990 281 811 - 59 597 111 - 930 799 729 - 930 882 758 - 459 961 116 - 484 83 914 - 83 969 994 - 828 423 132 - 346 541 246 - 783 484 303 - 983 7 921 - 216 208 905 - 802 216 54 - 6 121 306 - 609 36 749 - 608 84 626 - 97 705 89 - 200 688 878 - 242 314 802 - 294 66 338 - 768 417 272 - 785 351 266 - 58 505 668 - 791 291 679 - 783 694 43 - 794 468 355 - 777 796 171 - 378 784 426 - 224 510 840 - 557 606 708 - 513 127 189 - 231 976 517 - 772 37 433 - 684 973 324 - 70 661 83 - 914 136 702 - 917 630 710 - 826 894 84 - 373 416 248 - 551 924 226 - 357 646 374 - 890 491 246 - 938 293 519 - 66 42 704 - 537 60 374 - 508 56 405 - 437 751 653 - 681 718 160 - 683 293 800 - 569 288 878 - 692 206 611 - 173 157 399 - 201 492 645 - 98 132 329 - 234 612 711 - 296 54 975 - 651 219 923 - 527 177 138 - 585 598 302 - 552 653 474 - 54 288 358 - 828 631 279 - 854 642 746 - 80 52 645 - 386 346 181 - 488 7 569 - 168 351 533 - 906 186 681 - 833 404 191 - 863 297 526 - 451 555 808 - 336 544 155 - 253 211 838 - 759 819 238 - 921 343 761 - 264 632 690 - 165 424 159 - 121 481 361 - 181 409 439 - 94 972 995 - 696 904 722 - 613 238 422 - 190 281 334 - 385 127 129 - 300 364 234 - 479 768 937 - 883 654 35 - 979 679 959 - 244 51 788 - 275 613 804 - 143 575 210 - 160 168 608 - 330 471 651 - 407 594 410 - 723 576 943 - 268 912 361 - 692 442 760 - 443 288 20 - 382 610 556 - 62 694 568 - 322 257 214 - 253 458 861 - 260 213 829 - 37 137 420 - 668 220 104 - 673 150 435 - 551 466 897 - 390 729 999 - 423 963 763 - 837 36 295 - 854 726 495 - 16 728 389 - 735 246 510 - 218 136 617 - 604 197 140 - 113 355 499 - 631 902 488 - 689 898 212 - 780 826 901 - 556 205 657 - 855 661 288 - 141 34 480 - 27 23 194 - 115 53 393 - 333 287 700 - 68 300 671 - 394 589 28 - 572 248 771 - 454 118 797 - 526 141 300 - 785 377 504 - 886 723 105 - 541 712 470 - 156 128 932 - 479 85 989 - 381 207 162 - 813 839 544 - 143 783 541 - 916 361 24 - 878 133 886 - 986 750 335 - 122 643 864 - 395 460 591 - 387 896 627 - 117 455 109 - 2 14 569 - 873 364 215 - 875 350 554 - 70 878 940 - 234 846 82 - 256 279 901 - 693 990 473 - 951 866 824 - 923 408 891 - 36 5 531 - 954 654 266 - 921 652 434 - 561 701 427 - 232 764 365 - 330 331 73 - 46 813 6 - 380 698 297 - 396 221 289 - 135 867 633 - 814 649 286 - 797 918 827 - 705 58 338 - 6 305 310 - 701 352 28 - 903 97 825 - 693 126 794 - 438 144 592 - 367 932 400 - 320 820 264 - 687 210 652 - 682 84 566 - 671 604 816 - 529 646 267 - 795 654 114 - 955 426 118 - 249 759 102 - 343 581 267 - 341 619 107 - 479 57 341 - 683 32 870 - 630 609 210 - 361 643 803 - 506 856 406 - 580 562 359 - 312 433 154 - 750 379 920 - 448 520 312 - 733 259 899 - 33 786 319 - 579 669 90 - 595 769 242 - 160 985 236 - 654 903 946 - 635 99 802 - 75 158 437 - 467 382 289 - 406 542 548 - 684 417 794 - 729 105 122 - 44 485 689 - 737 15 713 - 970 391 17 - 373 384 729 - 336 1 118 - 814 807 759 - 965 808 828 - 179 181 834 - 242 94 838 - 188 183 82 - 691 402 618 - 984 43 561 - 330 447 872 - 553 581 30 - 884 393 836 - 431 298 837 - 278 389 690 - 976 587 803 - 722 220 538 - 548 208 107 - 629 414 729 - 543 584 672 - 512 431 954 - 475 367 959 - 226 306 9 - 824 774 668 - 188 22 870 - 722 764 300 - 647 803 256 - 410 972 21 - 436 536 278 - 995 577 453 - 670 439 224 - 434 488 572 - 82 317 498 - 559 823 662 - 499 614 196 - 944 14 432 - 618 866 652 - 467 872 289 - 471 722 189 - 923 756 17 - 790 409 195 - 511 500 545 - 667 283 758 - 271 373 283 - 573 686 490 - 659 706 560 - 770 247 633 - 424 169 895 - 47 349 411 - 380 235 805 - 384 546 148 - 747 870 831 - 754 421 910 - 937 15 433 - 188 760 806 - 872 748 418 - 718 556 510 - 165 590 486 - 798 40 177 - 349 923 530 - 795 690 746 - 550 671 360 - 824 442 775 - 331 686 152 - 570 270 926 - 860 64 383 - 408 464 170 - 758 440 349 - 773 434 699 - 780 563 352 - 18 644 621 - 432 663 188 - 420 887 956 - 237 586 788 - 319 526 586 - 544 647 115 - 628 235 511 - 666 408 33 - 670 459 697 - 48 189 692 - 837 708 428 - 462 652 632 - 426 106 457 - 730 744 195 - 700 816 769 - 383 480 923 - 601 612 910 - 559 953 779 - 533 937 240 - 464 123 344 - 579 82 76 - 179 188 373 - 1 641 56 - 688 698 50 - 688 160 4 - 790 364 767 - 202 70 137 - 914 420 674 - 961 657 851 - 578 708 875 - 503 94 776 - 221 143 356 - 34 126 403 - 234 31 78 - 721 949 330 - 675 191 460 - 80 957 651 - 690 580 824 - 461 73 802 - 725 606 51 - 183 857 521 - 708 800 482 - 644 111 37 - 769 778 869 - 883 693 909 - 549 714 43 - 273 246 599 - 637 309 675 - 451 195 552 - 681 408 126 - 422 465 52 - 743 235 144 - 248 586 312 - 42 398 313 - 222 335 21 - 528 312 738 - 856 312 132 - 915 79 610 - 550 605 186 - 566 815 698 - 127 250 717 - 532 129 775 - 604 132 549 - 134 44 247 - 521 815 470 - 370 853 515 - 795 187 851 - 963 295 50 - 757 228 169 - 706 303 120 - 416 133 309 - 956 63 11 - 751 162 301 - 387 632 29 - 257 383 994 - 215 247 994 - 529 606 963 - 770 305 756 - 721 791 971 - 558 531 675 - 253 477 918 - 470 52 615 - 256 335 24 - 301 523 651 - 316 702 637 - 321 721 32 - 591 730 179 - 341 364 146 - 673 120 501 - 31 183 207 - 641 116 463 - 221 54 775 - 262 458 669 - 139 486 904 - 736 260 139 - 406 359 663 - 434 563 753 - 981 6 215 - 423 320 358 - 719 319 415 - 315 375 320 - 7 637 423 - 314 365 175 - 199 687 754 - 174 546 1 - 29 526 754 - 153 402 251 - 787 565 919 - 820 239 876 - 994 614 47 - 958 816 288 - 244 750 275 - 248 890 694 - 628 194 414 - 774 958 466 - 181 34 442 - 569 371 939 - 500 347 740 - 745 123 467 - 614 662 119 - 201 690 352 - 596 974 215 - 508 921 240 - 405 947 317 - 402 372 733 - 298 41 357 - 135 339 759 - 544 683 690 - 584 1 893 - 215 680 501 - 191 453 649 - 952 84 727 - 815 494 293 - 163 168 46 - 136 119 441 - 185 112 474 - 877 830 354 - 497 242 226 - 484 714 178 - 854 570 402 - 873 120 432 - 30 613 50 - 365 529 624 - 969 332 586 - 636 617 153 - 588 669 314 - 12 52 628 - 584 704 642 - 95 199 69 - 979 486 705 - 953 391 698 - 698 471 333 - 302 466 64 - 678 19 376 - 353 860 905 - 236 113 797 - 400 879 962 - 341 805 493 - 661 506 196 - 736 357 644 - 943 352 365 - 484 756 282 - 491 943 262 - 765 494 729 - 321 208 986 - 621 346 290 - 258 706 386 - 179 452 276 - 433 583 153 - 708 2 212 - 193 151 320 - 647 149 299 - 335 951 831 - 661 787 792 - 818 742 477 - 799 964 157 - 726 780 172 - 740 225 24 - 428 39 263 - 388 901 506 - 97 940 413 - 41 454 826 - 324 453 443 - 346 76 938 - 463 595 751 - 854 948 454 - 451 902 507 - 722 961 130 - 695 529 425 - 59 591 467 - 559 623 222 - 991 194 196 - 749 793 245 - 474 327 247 - 346 2 277 - 643 328 135 - 785 264 751 - 35 537 887 - 811 584 685 - 475 903 748 - 471 115 698 - 7 945 449 - 464 880 227 - 287 868 878 - 564 11 850 - 221 623 475 - 314 325 553 - 209 865 621 - 39 655 236 - 95 296 235 - 124 920 21 - 439 473 902 - 334 375 792 - 315 116 768 - 267 736 95 - 703 606 595 - 505 886 514 - 114 168 52 - 301 584 495 - 200 709 527 - 164 422 554 - 246 546 460 - 377 141 223 - 286 323 354 - 810 240 90 - 920 450 425 - 277 8 570 - 28 649 50 - 295 650 534 - 690 187 665 - 674 184 483 - 68 139 376 - 570 430 500 - 590 422 543 - 304 68 43 - 422 666 163 - 501 375 696 - 81 621 813 - 19 981 945 - 410 83 941 - 427 945 25 - 283 408 825 - 281 648 635 - 294 678 615 - 113 936 500 - 554 772 314 - 502 642 624 - 262 318 699 - 88 526 817 - 242 468 161 - 820 179 253 - 580 62 531 - 343 183 422 - 430 161 485 - 26 127 435 - 442 32 517 - 491 243 544 - 552 680 310 - 131 489 457 - 697 162 526 - 897 838 305 - 695 748 335 - 753 936 24 - 46 681 637 - 745 808 617 - 318 251 171 - 49 39 855 - 359 284 725 - 221 837 145 - 581 821 444 - 573 267 318 - 706 969 583 - 722 912 586 - 680 86 869 - 833 546 97 - 865 507 481 - 938 104 386 - 941 217 265 - 360 53 607 - 634 197 476 - 787 659 444 - 368 163 783 - 493 738 345 - 182 539 52 - 764 827 612 - 699 493 663 - 914 384 17 - 495 546 260 - 739 461 275 - 386 91 394 - 804 506 198 - 780 421 269 - 109 669 193 - 457 298 349 - 560 800 331 - 282 153 637 - 160 254 807 - 434 204 476 - 717 759 737 - 629 785 65 - 347 614 790 - 270 663 647 - 188 271 528 - 277 929 591 - 853 744 589 - 704 881 761 - 573 714 627 - 541 689 287 - 540 301 187 - 670 397 368 - 867 8 698 - 869 146 802 - 10 137 104 - 164 575 450 - 507 233 466 - 548 425 46 - 435 824 78 - 334 951 34 - 646 551 99 - 60 829 569 - 501 866 382 - 440 327 222 - 744 132 333 - 800 983 126 - 887 866 451 - 28 599 39 - 833 129 307 - 804 519 319 - 510 746 821 - 639 209 561 - 197 649 333 - 638 644 361 - 754 474 366 - 193 219 106 - 843 536 331 - 483 634 611 - 367 195 592 - 753 71 115 - 934 42 83 - 337 75 85 - 475 304 169 - 672 143 211 - 360 406 74 - 370 119 111 - 351 955 696 - 543 849 785 - 375 576 836 - 288 316 239 - 512 273 786 - 721 407 82 - 998 634 292 - 449 399 284 - 540 316 693 - 430 68 984 - 146 376 482 - 785 134 643 - 157 509 441 - 808 615 552 - 920 564 452 - 407 341 441 - 990 778 211 - 822 325 925 - 368 206 876 - 491 153 126 - 11 373 546 - 854 752 143 - 843 773 660 - 777 472 964 - 359 708 889 - 575 941 882 - 945 22 152 - 968 237 115 - 30 238 110 - 101 504 412 - 119 646 719 - 28 190 336 - 890 301 712 - 11 657 782 - 885 465 361 - 424 669 645 - 528 654 194 - 894 252 667 - 516 299 998 - 370 837 976 - 305 651 194 - 701 447 175 - 470 234 929 - 752 606 965 - 568 370 322 - 226 592 281 - 553 801 330 - 576 228 623 - 639 477 637 - 252 664 998 - 781 215 994 - 446 698 25 - 562 500 980 - 702 444 299 - 971 550 387 - 754 562 439 - 347 896 716 - 242 861 596 - 588 829 323 - 464 211 949 - 481 192 47 - 598 98 963 - 932 960 32 - 933 482 893 - 15 989 888 - 866 735 629 - 636 513 470 - 280 528 944 - 531 66 867 - 284 735 865 - 778 743 3 - 458 131 262 - 772 273 255 - 942 278 50 - 269 151 917 - 502 4 883 - 538 155 68 - 929 850 21 - 126 759 729 - 869 689 711 - 180 359 855 - 299 68 975 - 210 371 205 - 477 183 827 - 922 50 841 - 665 154 312 - 379 848 486 - 450 835 743 - 69 161 515 - 680 535 83 - 692 779 352 - 818 554 389 - 781 89 538 - 746 218 209 - 292 201 652 - 417 375 393 - 916 962 644 - 518 923 561 - 915 469 386 - 142 460 454 - 947 392 89 - 144 840 866 - 205 465 967 - 209 657 650 - 891 322 207 - 800 522 907 - 516 498 994 - 185 806 804 - 179 393 137 - 316 765 892 - 850 756 123 - 494 783 627 - 832 53 659 - 93 949 602 - 666 954 516 - 592 11 210 - 223 4 389 - 221 280 388 - 100 279 50 - 380 589 345 - 385 238 382 - 205 506 359 - 98 280 652 - 396 371 290 - 314 477 454 - 368 692 564 - 48 263 586 - 356 902 922 \ No newline at end of file diff --git a/advent04.hs b/advent04.hs deleted file mode 100644 index b8c095e..0000000 --- a/advent04.hs +++ /dev/null @@ -1,66 +0,0 @@ -module Main(main) where - -import Data.List (last, intersperse, sortBy, intercalate, isInfixOf, init) -import Data.List.Split (splitOn) -import Data.Char (isLetter, ord, chr) -import qualified Data.Map.Lazy as Map - -data Room = Room { name :: String - , sector :: Int - , checksum :: String - } deriving (Show) - -main :: IO () -main = do - instrText <- readFile "advent04.txt" - let rooms = map (parseLine) $ lines instrText - part1 rooms - part2 rooms - - -part1 :: [Room] -> IO () -part1 rooms = do - print $ sum $ map (sector) validRooms - where - validChecksum room = (checksum room) == makeChecksum (name room) - validRooms = filter (validChecksum) rooms - -part2 :: [Room] -> IO () -part2 rooms = do - print $ fst $ head $ filter (\sn -> isInfixOf "north" (snd sn)) sectorNames - where - validChecksum room = (checksum room) == makeChecksum (name room) - validRooms = filter (validChecksum) rooms - sectorNames = [((sector r), - shiftWord (sector r) (name r)) | r <- validRooms] - - -parseLine :: String -> Room -parseLine line = Room {name=name, sector=sector, checksum=checksum} - where components = splitOn "-" line - name = intercalate "-" $ init components - sector = read $ head $ splitOn "[" $ last components - checksum = filter (isLetter) $ last components - -countedLetters :: String -> [(Char, Int)] -countedLetters name = sortBy sortCLetter $ unsortedCountedLetters name - where unsortedCountedLetters name = - Map.toList $ Map.fromListWith (+) [(c, 1) | c <- filter (isLetter) name] - -sortCLetter :: (Char, Int) -> (Char, Int) -> Ordering -sortCLetter (l1, n1) (l2, n2) - | n1 < n2 = GT - | n1 > n2 = LT - | n1 == n2 = compare l1 l2 - -makeChecksum :: String -> String -makeChecksum name = [l | (l, _) <- take 5 $ countedLetters name] - - -shiftWord :: Int -> String -> String -shiftWord shift letters = map (shiftLetter shift) letters - -shiftLetter :: Int -> Char -> Char -shiftLetter shift letter - | isLetter letter = chr $ (ord letter - ord 'a' + shift) `mod` 26 + ord 'a' - | otherwise = ' ' diff --git a/advent04.txt b/advent04.txt deleted file mode 100644 index 8f99f7a..0000000 --- a/advent04.txt +++ /dev/null @@ -1,991 +0,0 @@ -aczupnetwp-dnlgpyrpc-sfye-dstaatyr-561[patyc] -jsehsyafy-vqw-ljsafafy-866[nymla] -tyepcyletzylw-ncjzrpytn-prr-opawzjxpye-743[cnrdl] -foadouwbu-qvcqczohs-obozmgwg-662[lamjh] -ckgvutofkj-pkrrehkgt-zkinturume-436[krtue] -pelbtravp-pnaql-ernpdhvfvgvba-481[szram] -yflexwxoalrp-ciltbo-tlohpelm-887[bmwep] -ipvohghykvbz-ihzrla-jbzavtly-zlycpjl-253[lzhvy] -cybyjqho-whqtu-rqiauj-fkhsxqiydw-322[syzwi] -tipfxvezt-sleep-tljkfdvi-jvimztv-425[tveif] -ktiaaqnqml-xtiabqk-oziaa-xczkpiaqvo-616[aiqko] -ckgvutofkj-xghhoz-gtgreyoy-306[nyhpz] -molgbzqfib-zovldbkfz-zxkav-lmboxqflkp-341[xlomg] -ikhcxvmbex-vtgwr-vhtmbgz-mxvaghehzr-111[hvgmx] -dpssptjwf-fhh-tfswjdft-805[fstdh] -oaddaeuhq-otaoaxmfq-qzsuzqqduzs-534[qadou] -dzczkrip-xiruv-sleep-drerxvdvek-685[erdvi] -jvsvymbs-yhiipa-vwlyhapvuz-149[zfyqn] -nsyjwsfyntsfq-gfxpjy-jslnsjjwnsl-853[sjnfy] -mbiyqoxsm-lsyrkjkbnyec-nio-wkbuodsxq-614[bkosy] -jchipqat-uadltg-hidgpvt-375[kcnop] -jqwpihizlwca-lgm-nqvivkqvo-980[ldeay] -xfbqpojafe-dipdpmbuf-tfswjdft-493[fdpbj] -kwvacumz-ozilm-kpwkwtibm-lmxtwgumvb-798[mwkbi] -eqttqukxg-ejqeqncvg-ocpcigogpv-648[sdtzl] -dsxxw-bwc-bcnjmwkclr-678[cwbxd] -jvuzbtly-nyhkl-ibuuf-thuhnltlua-175[ulhtb] -rdadguja-uadltg-bpgztixcv-401[adgtu] -atyzghrk-kmm-ktmotkkxotm-930[xzfpe] -uwtojhynqj-ojqqdgjfs-xjwanhjx-151[waqmk] -hwdtljsnh-uqfxynh-lwfxx-rfsfljrjsy-567[fhjls] -xst-wigvix-gspsvjyp-gerhc-erepcwmw-724[uplfw] -kzgwomvqk-jcvvg-zmamizkp-122[kmvzg] -sbejpbdujwf-dboez-dpbujoh-dvtupnfs-tfswjdf-623[uxrpz] -bxaxipgn-vgpst-rwdrdapit-prfjxhxixdc-609[xpdir] -avw-zljyla-zjhclunly-obua-ayhpupun-981[aluyh] -nuatmlmdpage-qss-fdmuzuzs-404[btopv] -oaddaeuhq-otaoaxmfq-dqoquhuzs-716[aoqdu] -myvybpev-cmkfoxqob-rexd-bomosfsxq-432[khwfc] -oxaflxzqfsb-zelzlixqb-jxohbqfkd-471[hxkwc] -fnjyxwrinm-snuuhknjw-anbnjalq-875[ztvnr] -qfmcusbwq-pibbm-fsqswjwbu-922[bqswf] -wihmogyl-aluxy-jfumncw-alumm-nluchcha-916[lmuac] -oxaflxzqfsb-avb-bkdfkbbofkd-757[trzjy] -ksodcbwnsr-qzoggwtwsr-gqojsbusf-vibh-fsgsofqv-818[gsdca] -rzvkjiduzy-xcjxjgvoz-gvwjmvojmt-161[zufvq] -nwlddtqtpo-mldvpe-dezclrp-639[zlnki] -vkppo-rqiauj-huqsgkyiyjyed-530[yijkp] -dfcxsqhwzs-qobrm-qcohwbu-fsoqeiwgwhwcb-688[wqbch] -vxupkizork-xghhoz-aykx-zkyzotm-462[kzoxh] -zotts-jfumncw-alumm-omyl-nymncha-396[bstha] -yaxsnlcrun-npp-cajrwrwp-355[nprac] -bkwzkqsxq-pvygob-nozkbdwoxd-822[bkodq] -frqvxphu-judgh-fdqgb-frdwlqj-hqjlqhhulqj-595[ezyxq] -hqtyeqsjylu-sqdto-sedjqydcudj-764[dqjsy] -fab-eqodqf-omzpk-fdmuzuzs-430[yxkbc] -gpewwmjmih-glsgspexi-xvemrmrk-204[cynzd] -kwtwznct-jcvvg-wxmzibqwva-694[cdaps] -guahyncw-wuhxs-zchuhwcha-396[xwnmj] -pybgmyargtc-zsllw-dglylagle-912[mcrsp] -kyelcrga-zyqicr-jyzmpyrmpw-782[yrcmp] -wsvsdkbi-qbkno-zvkcdsm-qbkcc-myxdksxwoxd-432[kdsbc] -ltpedcxots-rwdrdapit-advxhixrh-271[drtxa] -elrkdcdugrxv-sodvwlf-judvv-vklsslqj-465[vdlsj] -htwwtxnaj-hfsid-htfynsl-ywfnsnsl-281[ghfea] -nij-mywlyn-xsy-xymcah-682[kiasm] -zovldbkfz-yrkkv-abmilvjbkq-939[chetn] -esyfwlau-kusnwfywj-zmfl-ghwjslagfk-398[fwlsa] -lahxpnwrl-yujbcrl-pajbb-mnyuxhvnwc-147[tzcxk] -rwcnawjcrxwju-lqxlxujcn-lxwcjrwvnwc-381[hxsdl] -pbybeshy-pynffvsvrq-wryylorna-jbexfubc-143[ybfre] -lxaaxbren-kdwwh-bqryyrwp-407[sktqh] -pybgmyargtc-zyqicr-rpyglgle-106[vsdft] -jfifqxov-doxab-yxphbq-obxznrfpfqflk-939[nyvhm] -pualyuhapvuhs-jovjvshal-thuhnltlua-383[lrfob] -gvcskirmg-tpewxmg-kveww-pskmwxmgw-438[ujily] -lgh-kwujwl-tmffq-esfsywewfl-242[fwles] -jyddc-fewoix-hitevxqirx-412[ixdec] -uzfqdzmfuazmx-otaoaxmfq-ogefayqd-eqdhuoq-222[lbfru] -ryexqpqhteki-sxesebqju-tufbeocudj-348[tjzhb] -kfg-jvtivk-sleep-wzeretzex-477[ektvz] -kzgwomvqk-jcvvg-bmkpvwtwog-174[vgkwm] -odiih-kdwwh-uxprbcrlb-251[bdhir] -htqtwkzq-xhfajsljw-mzsy-yjhmstqtld-229[thjqs] -qjopwxha-xwogap-owhao-914[astye] -wrs-vhfuhw-edvnhw-hqjlqhhulqj-439[vufmz] -rdggdhxkt-xcitgcpixdcpa-rpcsn-rdpixcv-stktadebtci-609[cdtip] -eqttqukxg-fag-eqpvckpogpv-544[jmtpx] -kdijqrbu-sqdto-seqjydw-iuhlysui-946[bioht] -fydelmwp-awldetn-rcldd-cplnbftdtetzy-951[kpxim] -ubhatstkwhnl-unggr-nlxk-mxlmbgz-761[geyqm] -ocipgvke-gii-fgxgnqrogpv-726[giopv] -fab-eqodqf-otaoaxmfq-iadwetab-430[azmnb] -fab-eqodqf-otaoaxmfq-pqhqxabyqzf-456[qafob] -xekdwvwnzkqo-zua-naoawnyd-784[anwdk] -sbejpbdujwf-fhh-tbmft-285[mbfsn] -hwbba-eqpuwogt-itcfg-rncuvke-itcuu-ugtxkegu-648[ugtce] -hqcfqwydw-fbqijys-whqii-cqdqwucudj-452[ztesw] -dmpuamofuhq-nmewqf-emxqe-742[meqfu] -iqmbazulqp-pkq-iadwetab-976[kcxmz] -lahxpnwrl-ljwmh-lxjcrwp-bnaerlnb-927[lnrwa] -laffe-lruckx-vaxingyotm-306[aflxc] -forwcoqhwjs-qcffcgwjs-tzcksf-rsdzcmasbh-220[csfwh] -yflexwxoalrp-gbiivybxk-abpfdk-731[sjtrd] -foadouwbu-ibghopzs-pogysh-kcfygvcd-506[ogbcd] -rtqlgevkng-hnqygt-ugtxkegu-232[zdgob] -yrwxefpi-fyrrc-asvowlst-880[jmzfi] -tyepcyletzylw-nlyoj-nzletyr-fdpc-epdetyr-795[jfvnq] -rkpqxyib-yxphbq-lmboxqflkp-627[vzmla] -xjinphzm-bmvyz-hvbizodx-ytz-gjbdnodxn-967[jmuws] -ktfitzbgz-vtgwr-inkvatlbgz-813[tgzbi] -hqtyeqsjylu-sbqiiyvyut-fbqijys-whqii-vydqdsydw-634[yqisd] -hcd-gsqfsh-dzoghwq-ufogg-qcbhowbasbh-506[hgboq] -ryexqpqhteki-uww-qdqboiyi-140[qiewy] -bkzrrhehdc-qzaahs-cdoknxldms-625[czsmn] -sawlkjevaz-lhwopey-cnwoo-yqopkian-oanreya-966[znhlt] -xjgjmapg-hdgdovmt-bmvyz-zbb-yzkgjthzio-577[gzbjm] -myxcewob-qbkno-lexxi-wkbuodsxq-250[xboek] -nsyjwsfyntsfq-hfsid-htfynsl-wjfhvznxnynts-255[umtns] -kpvgtpcvkqpcn-ecpfa-ewuvqogt-ugtxkeg-596[ehsca] -vkrhzxgbv-cxeeruxtg-ftgtzxfxgm-579[ymast] -pbeebfvir-fpniratre-uhag-genvavat-663[smznt] -vehmsegxmzi-glsgspexi-hitpscqirx-802[jszht] -tyepcyletzylw-nlyoj-nzletyr-cpdplcns-223[lycen] -jxdkbqfz-oxaflxzqfsb-avb-lmboxqflkp-523[mzvny] -tcfkqcevkxg-tcddkv-uvqtcig-336[cdsln] -ide-htrgti-hrpktcvtg-wjci-ldgzhwde-947[tdghi] -ojk-nzxmzo-kgvnodx-bmvnn-ozxcijgjbt-213[nojxz] -avw-zljyla-msvdly-yljlpcpun-539[lyajp] -rdchjbtg-vgpst-rpcsn-rdpixcv-htgkxrth-661[rtcgh] -xlrypetn-dnlgpyrpc-sfye-dezclrp-353[pelry] -enqvbnpgvir-enoovg-erfrnepu-455[ftlpj] -xjinphzm-bmvyz-xviyt-xjvodib-pnzm-oznodib-291[mlybz] -rwcnawjcrxwju-kjbtnc-bqryyrwp-511[tkyns] -gokzyxsjon-pvygob-nofovyzwoxd-458[ndtfs] -bjfutsneji-hfsid-htfynsl-rfwpjynsl-489[fsjnh] -ydjuhdqjyedqb-rqiauj-qdqboiyi-452[qdijy] -enzcntvat-rtt-genvavat-351[lznyt] -rdadguja-qjccn-advxhixrh-791[yncim] -fmsledevhsyw-ikk-irkmriivmrk-646[nlxzm] -jfifqxov-doxab-mixpqfz-doxpp-obpbxoze-471[oxpbf] -jqwpihizlwca-zijjqb-aitma-408[gzpmw] -pyknyegle-afmamjyrc-bcqgel-808[gynip] -zbytomdsvo-mkxni-bocokbmr-406[obmkc] -wfummczcyx-luvvcn-fuvilunils-526[bavmt] -hwdtljsnh-gfxpjy-rfsfljrjsy-541[gpszy] -lsyrkjkbnyec-oqq-gybucryz-848[ybckq] -oaddaeuhq-vqxxknqmz-xasuefuoe-378[rzmqe] -vhglnfxk-zktwx-fbebmtkr-zktwx-wrx-vhgmtbgfxgm-813[xepwt] -yrwxefpi-gerhc-hitevxqirx-594[eirxh] -mvydjvxodqz-xviyt-xjvodib-rjmfncjk-265[cqirj] -kdijqrbu-tou-kiuh-juijydw-140[uijdk] -ugjjgkanw-usfvq-vwkayf-970[rntsw] -froruixo-fdqgb-ilqdqflqj-569[cylni] -gpsxdprixkt-hrpktcvtg-wjci-gtprfjxhxixdc-999[xptcg] -kwvacumz-ozilm-akidmvomz-pcvb-nqvivkqvo-460[emnrk] -pejji-zvkcdsm-qbkcc-domrxyvyqi-484[cdijk] -rdadguja-xcitgcpixdcpa-qphzti-bpgztixcv-791[cipad] -rkpqxyib-zxkav-zlxqfkd-qoxfkfkd-965[qiftn] -bkzrrhehdc-bnmrtldq-fqzcd-atmmx-qdrdzqbg-937[dqrbm] -eqttqukxg-rtqlgevkng-dwppa-fgxgnqrogpv-570[gxetc] -zbytomdsvo-mkxni-myxdksxwoxd-510[xdmok] -ymszqfuo-rxaiqd-dqmocgueufuaz-274[umtwy] -pelbtravp-ovbunmneqbhf-qlr-znantrzrag-663[xlyio] -rdadguja-ytaanqtpc-gtprfjxhxixdc-141[krcaf] -etaqigpke-hnqygt-eqpvckpogpv-362[pegqk] -rtqlgevkng-etaqigpke-ecpfa-eqcvkpi-ewuvqogt-ugtxkeg-206[gxszf] -fubrjhqlf-fkrfrodwh-sxufkdvlqj-777[pozts] -wfintfhynaj-wfggny-xjwanhjx-957[nfjwa] -xcitgcpixdcpa-bpvctixr-qphzti-gthtpgrw-479[zjlmc] -gntmfefwitzx-hfsid-fsfqdxnx-697[oanif] -xgjougizobk-jek-jkvgxzsktz-384[kgjzo] -nzydfxpc-rclop-mldvpe-cpdplcns-925[pcdln] -ltpedcxots-qphzti-gtrtxkxcv-739[txcpd] -gvaaz-fhh-mphjtujdt-233[hajtd] -jchipqat-rpcsn-gtprfjxhxixdc-297[cpxhi] -gsvvswmzi-gerhc-tyvglewmrk-308[zbdcy] -dmybmsuzs-omzpk-oamfuzs-pqhqxabyqzf-508[mzqsa] -iruzfrtkzmv-treup-tfrkzex-jkfirxv-295[rfktz] -pdjqhwlf-mhoobehdq-vwrudjh-127[hdjoq] -rgndvtcxr-hrpktcvtg-wjci-apqdgpidgn-375[jdrhb] -sbqiiyvyut-isqludwuh-xkdj-efuhqjyedi-114[qjzpn] -lahxpnwrl-npp-nwprwnnarwp-459[ontmq] -zntargvp-onfxrg-fnyrf-871[fnrga] -molgbzqfib-avb-absbilmjbkq-601[bailm] -kpvgtpcvkqpcn-tcddkv-wugt-vguvkpi-492[vkpcg] -jfifqxov-doxab-zxkav-zlkqxfkjbkq-341[kxfqa] -qfmcusbwq-dzoghwq-ufogg-fsqswjwbu-220[zbjty] -xjinphzm-bmvyz-mvwwdo-yzkgjthzio-785[zmhij] -ejpanjwpekjwh-ydkykhwpa-owhao-186[hqlfd] -nzydfxpc-rclop-prr-cplnbftdtetzy-483[pcrtd] -kwtwznct-rmttgjmiv-amzdqkma-590[mtakw] -muqfedyput-fbqijys-whqii-iqbui-790[gjxky] -egdytrixat-rgndvtcxr-rpcsn-jhtg-ithixcv-115[trcgi] -fab-eqodqf-rxaiqd-mzmxkeue-404[eqadf] -zotts-xsy-guleyncha-708[ymnbi] -mbiyqoxsm-pvygob-gybucryz-536[zbyxv] -dmybmsuzs-bxmefuo-sdmee-pqhqxabyqzf-716[mbeqs] -qspkfdujmf-ezf-fohjoffsjoh-519[fjohs] -nwlddtqtpo-prr-xlcvpetyr-249[owkmz] -amlqskcp-epybc-aylbw-amyrgle-bctcjmnkclr-808[clabm] -qspkfdujmf-qmbtujd-hsbtt-eftjho-727[tigys] -pualyuhapvuhs-thnulapj-msvdly-ylzlhyjo-877[lhuya] -diozmivodjivg-zbb-nzmqdxzn-629[zdibm] -yrwxefpi-qmpmxevc-kvehi-gerhc-gsexmrk-qerekiqirx-126[erixk] -qlm-pbzobq-zxkav-zlxqfkd-zrpqljbo-pbosfzb-575[phqza] -irgyyolokj-lruckx-aykx-zkyzotm-904[ubkvy] -cebwrpgvyr-pnaql-pbngvat-bcrengvbaf-793[bagnp] -wlsiayhcw-wifilzof-wuhxs-mylpcwym-630[wilyc] -nglmtuex-ktuubm-nlxk-mxlmbgz-215[egtsz] -sbejpbdujwf-dboez-nbobhfnfou-883[jpkmo] -qzoggwtwsr-qobrm-gsfjwqsg-480[xkwvm] -nwzekwypera-oywrajcan-dqjp-wymqeoepekj-472[zeydw] -sawlkjevaz-ywjzu-yqopkian-oanreya-836[ayejk] -pybgmyargtc-afmamjyrc-rpyglgle-470[zgmsu] -nzwzcqfw-qwzhpc-cplnbftdtetzy-977[zctwf] -lhkhszqx-fqzcd-okzrshb-fqzrr-cdudknoldms-651[defrs] -ugfkmewj-yjsvw-owshgfarwv-tskcwl-wfyafwwjafy-294[wfajs] -gpbepvxcv-gpqqxi-stktadebtci-609[npyad] -pxtihgbsxw-vahvhetmx-hixktmbhgl-397[pvcfe] -guahyncw-vohhs-fiacmncwm-656[chamn] -wfruflnsl-uqfxynh-lwfxx-wjfhvznxnynts-463[fnxlw] -lzfmdshb-cxd-dmfhmddqhmf-703[dmfhb] -gzefmnxq-eomhqzsqd-tgzf-oazfmuzyqzf-118[zfqme] -udskkaxawv-usfvq-ugslafy-hmjuzskafy-658[asufk] -ugjjgkanw-vqw-ksdwk-112[kwgja] -enqvbnpgvir-cynfgvp-tenff-fuvccvat-975[vfnce] -fydelmwp-ojp-nfdezxpc-dpcgtnp-353[gziom] -fmsledevhsyw-gpewwmjmih-glsgspexi-tyvglewmrk-178[egmsw] -shmml-enoovg-freivprf-585[efmor] -bnqqnrhud-atmmx-qdrdzqbg-651[qdbmn] -pxtihgbsxw-vahvhetmx-nlxk-mxlmbgz-943[xhmbg] -xfbqpojafe-dipdpmbuf-tbmft-441[wuizc] -zsxyfgqj-uqfxynh-lwfxx-ijxnls-749[futrq] -oaddaeuhq-nmewqf-dqmocgueufuaz-508[mwlcv] -buzahisl-zjhclunly-obua-zavyhnl-201[kzylj] -yhwooebeaz-iwcjapey-oywrajcan-dqjp-zaoecj-524[aejoc] -bwx-amkzmb-qvbmzvibqwvit-lgm-zmikycqaqbqwv-772[dubva] -oxmeeuruqp-ngzzk-fqotzaxask-638[zaeko] -xfbqpojafe-qmbtujd-hsbtt-efwfmpqnfou-363[fbqte] -iehepwnu-cnwza-xqjju-nayaerejc-472[eajnc] -ytu-xjhwjy-jll-ijxnls-385[moyjn] -nvrgfezqvu-treup-tfrkzex-wzeretzex-997[fpvnt] -kwvacumz-ozilm-moo-camz-bmabqvo-434[sanvt] -lxaaxbren-ouxfna-bjunb-277[abnxu] -gpsxdprixkt-uadltg-tcvxcttgxcv-453[txcgd] -owshgfarwv-jsttal-hmjuzskafy-658[asfhj] -pbafhzre-tenqr-qlr-ynobengbel-403[ebnrl] -yaxsnlcrun-mhn-jlzdrbrcrxw-121[wngsc] -bgmxkgtmbhgte-vtgwr-vhtmbgz-tgterlbl-995[gtbme] -nvrgfezqvu-avccpsvre-tljkfdvi-jvimztv-269[vcefi] -apwmeclga-pyzzgr-dglylagle-158[auvsi] -qczcftiz-pogysh-rsgwub-350[kcdvs] -qlm-pbzobq-gbiivybxk-abpfdk-211[bikpq] -crwwv-rkpqxyib-yrkkv-cfkxkzfkd-419[krcfv] -sbnqbhjoh-cbtlfu-tupsbhf-285[bhfst] -qlm-pbzobq-avb-bkdfkbbofkd-159[golnc] -nchhg-jiasmb-lmaqov-902[dpmcw] -tagzsrsjvgmk-jsttal-umklgewj-kwjnauw-944[fsqml] -rkpqxyib-yxphbq-jxkxdbjbkq-601[npbtf] -ujqgywfau-tmffq-hmjuzskafy-736[zmnlk] -ujqgywfau-hdsklau-yjskk-umklgewj-kwjnauw-190[kujwa] -uqtqbizg-ozilm-jcvvg-lmxizbumvb-850[mhanw] -yhtwhnpun-ihzrla-klclsvwtlua-591[lkqzn] -sbqiiyvyut-sqdto-seqjydw-sedjqydcudj-738[warvn] -bwx-amkzmb-uqtqbizg-ozilm-moo-kwvbiqvumvb-746[wystg] -tipfxvezt-vxx-cfxzjkztj-555[xtzfj] -cjpibabsepvt-cvooz-sftfbsdi-571[myqsb] -ymszqfuo-fab-eqodqf-pkq-xmnadmfadk-274[tkbds] -wlqqp-treup-tfrkzex-jkfirxv-581[refkp] -lnkfaypeha-fahhuxawj-wjwhuoeo-550[ahwef] -lsyrkjkbnyec-oqq-ckvoc-874[azsyv] -gvcskirmg-fewoix-wlmttmrk-360[mgikr] -irdgrxzex-tipfxvezt-treup-tfrkzex-cfxzjkztj-607[txzer] -avw-zljyla-zjhclunly-obua-yljlpcpun-617[lajuy] -nwzekwypera-lhwopey-cnwoo-hkceopeyo-134[zulqp] -vkppo-sqdto-seqjydw-jhqydydw-114[dqyjo] -zixppfcfba-zxkav-zlkqxfkjbkq-679[txhzn] -sbnqbhjoh-dboez-sftfbsdi-623[bsdfh] -qjopwxha-bhksan-zalhkuiajp-316[ahjkp] -yhtwhnpun-thnulapj-ibuuf-klzpnu-773[unhpl] -uwtojhynqj-kqtbjw-wjfhvznxnynts-827[ntyqj] -jef-iushuj-rkddo-ijehqwu-504[biekf] -gspsvjyp-tpewxmg-kveww-gywxsqiv-wivzmgi-672[sryce] -rgllk-eomhqzsqd-tgzf-etubbuzs-118[zbegl] -shmml-pubpbyngr-ynobengbel-403[bnegl] -gsrwyqiv-kvehi-fewoix-wivzmgiw-256[rimyz] -iuxxuyobk-yigbktmkx-natz-xkykgxin-852[kxiyb] -excdklvo-oqq-vklybkdybi-744[utifh] -ojk-nzxmzo-agjrzm-xpnojhzm-nzmqdxz-915[zmjno] -qspkfdujmf-sbccju-eftjho-103[byjhc] -fodvvlilhg-mhoobehdq-whfkqrorjb-699[taskb] -aflwjfslagfsd-usfvq-ogjckzgh-814[emsnh] -sebehvkb-uww-tulubefcudj-712[ubewc] -egdytrixat-gpbepvxcv-hrpktcvtg-wjci-hidgpvt-531[vzdcg] -nsyjwsfyntsfq-zsxyfgqj-gzssd-wjxjfwhm-749[sgmhv] -ktfitzbgz-yehpxk-kxvxbobgz-761[ryzea] -tcrjjzwzvu-irsszk-rthlzjzkzfe-503[ocepg] -dfcxsqhwzs-pibbm-sbuwbssfwbu-558[tocys] -nwzekwypera-bhksan-odellejc-758[eakln] -qfmcusbwq-qobrm-qcohwbu-fsoqeiwgwhwcb-402[cpzsy] -cvabijtm-zijjqb-uizsmbqvo-434[btzma] -irdgrxzex-srjbvk-glityrjzex-867[rxegi] -rdadguja-tvv-gtrtxkxcv-609[tvadg] -wdjcvuvmyjpn-zbb-mznzvmxc-213[ndmaz] -vagreangvbany-sybjre-nanylfvf-507[bryme] -vjpwncrl-mhn-bqryyrwp-979[rnpwy] -jqwpihizlwca-ntwemz-abwziom-642[iyzsa] -jchipqat-rwdrdapit-detgpixdch-921[dipta] -vqr-ugetgv-tcddkv-eqpvckpogpv-440[vgpcd] -ajyqqgdgcb-aylbw-amyrgle-qyjcq-756[qyagb] -fbebmtkr-zktwx-utldxm-nlxk-mxlmbgz-553[onbvf] -hwdtljsnh-kqtbjw-ijajqturjsy-827[jthqs] -sedikcuh-whqtu-sxesebqju-udwyduuhydw-556[rvudf] -ipvohghykvbz-tpspahyf-nyhkl-yhiipa-huhsfzpz-123[hpyiz] -fubrjhqlf-mhoobehdq-oderudwrub-153[bdhor] -mbggf-zjhclunly-obua-dvyrzovw-695[bglou] -houngfgxjuay-igtje-aykx-zkyzotm-176[qcita] -lugjuacha-mwupyhayl-bohn-xyjulngyhn-318[gnftc] -rdggdhxkt-rpcsn-rdpixcv-itrwcdadvn-505[uancd] -yaxsnlcrun-ouxfna-jwjuhbrb-199[xnmwj] -yrwxefpi-tpewxmg-kveww-wlmttmrk-334[rfqkl] -ktwbhtvmbox-unggr-kxtvjnblbmbhg-215[bgthk] -amlqskcp-epybc-bwc-pcyaosgqgrgml-600[cgpab] -ujqgywfau-usfvq-ugslafy-jwuwanafy-606[uafwy] -nwzekwypera-lhwopey-cnwoo-lqnydwoejc-134[xithv] -nwzekwypera-acc-naoawnyd-160[itvch] -luxciuwncpy-ohmnuvfy-yaa-wihnuchgyhn-526[hnuyc] -ygcrqpkbgf-ejqeqncvg-tgegkxkpi-674[gekqc] -mtzslklcozfd-qwzhpc-nfdezxpc-dpcgtnp-223[ucwob] -tinnm-tzcksf-zcuwghwqg-948[nmktj] -rdchjbtg-vgpst-hrpktcvtg-wjci-itrwcdadvn-453[ngtzh] -yrwxefpi-nippcfier-hizipstqirx-932[ipref] -cvabijtm-xtiabqk-oziaa-kcabwumz-amzdqkm-590[mpqzo] -dpmpsgvm-dipdpmbuf-efqmpznfou-259[pmdfu] -ynukcajey-nwxxep-zarahkliajp-238[ytaej] -zbytomdsvo-mkxni-mykdsxq-nocsqx-770[mosxd] -tagzsrsjvgmk-xdgowj-jwuwanafy-814[efhpk] -xqvwdeoh-fdqgb-rshudwlrqv-127[jpkat] -kpvgtpcvkqpcn-fag-qrgtcvkqpu-596[pcgkq] -zlkprjbo-doxab-gbiivybxk-obpbxoze-393[boxik] -zbytomdsvo-mrymyvkdo-domrxyvyqi-744[ymodv] -jvuzbtly-nyhkl-qlssfilhu-klwhyatlua-695[lhuya] -nzydfxpc-rclop-nsznzwlep-xlylrpxpye-145[plnxy] -atyzghrk-xghhoz-rghuxgzuxe-748[ghxzr] -vhglnfxk-zktwx-ietlmbv-zktll-ftkdxmbgz-787[wbspa] -njmjubsz-hsbef-dipdpmbuf-vtfs-uftujoh-623[fubjs] -pyknyegle-aylbw-jmegqrgaq-756[egyal] -bgmxkgtmbhgte-lvtoxgzxk-angm-vhgmtbgfxgm-137[gmtxb] -ydjuhdqjyedqb-vbemuh-jusxdebewo-946[debju] -jxdkbqfz-zxkav-zlxqfkd-mrozexpfkd-263[kxzdf] -nbhofujd-dipdpmbuf-pqfsbujpot-597[pbdfu] -wrs-vhfuhw-fdqgb-vklsslqj-647[sfhlq] -vkrhzxgbv-vtgwr-ehzblmbvl-449[knuzb] -gsrwyqiv-kvehi-fyrrc-pefsvexsvc-750[versc] -hqcfqwydw-vbemuh-ixyffydw-270[fwydh] -vetllbybxw-vkrhzxgbv-lvtoxgzxk-angm-ybgtgvbgz-527[jxrwq] -bkzrrhehdc-eknvdq-cdrhfm-365[dhrce] -cybyjqho-whqtu-rkddo-qsgkyiyjyed-530[ydqhj] -ckgvutofkj-hatte-ynovvotm-332[tovka] -sawlkjevaz-zua-iwngapejc-758[jzwql] -mvhkvbdib-kgvnodx-bmvnn-gjbdnodxn-551[bmkyo] -enzcntvat-fpniratre-uhag-grpuabybtl-689[sqkoh] -bqvvu-acc-oanreyao-108[acovb] -tyepcyletzylw-nlyoj-nzletyr-nfdezxpc-dpcgtnp-275[yelnp] -fbebmtkr-zktwx-lvtoxgzxk-angm-kxlxtkva-839[kxtab] -ojk-nzxmzo-wvnfzo-vivgtndn-707[mlndw] -tpspahyf-nyhkl-qlssfilhu-klwsvftlua-487[iewds] -shoewudys-isqludwuh-xkdj-husuylydw-868[tlyhz] -qzoggwtwsr-qobrm-oqeiwgwhwcb-116[wgoqb] -zlkprjbo-doxab-yxphbq-pxibp-237[ocanz] -iruzfrtkzmv-avccpsvre-vexzevvizex-893[nyktl] -hqtyeqsjylu-hqrryj-tulubefcudj-894[ujqye] -zlkprjbo-doxab-fkqbokxqflkxi-mixpqfz-doxpp-xznrfpfqflk-523[fxkpo] -dpmpsgvm-sbccju-dvtupnfs-tfswjdf-129[neysa] -qcbgiasf-ufors-dzoghwq-ufogg-zopcfohcfm-246[yhmkz] -esyfwlau-ugjjgkanw-usfvq-kzahhafy-242[wnzhb] -mbiyqoxsm-lkcuod-nozkbdwoxd-432[odbkm] -usfvq-ugslafy-vwhdgqewfl-632[fglqs] -gokzyxsjon-zvkcdsm-qbkcc-oxqsxoobsxq-484[xrkfl] -hdgdovmt-bmvyz-wvnfzo-gjbdnodxn-395[bwicg] -sehheiylu-fhezusjybu-rkddo-udwyduuhydw-530[udhye] -glrcplyrgmlyj-aylbw-amyrgle-nspafyqgle-210[dmuny] -aflwjfslagfsd-jsttal-xafsfuafy-138[faslj] -yuxufmdk-sdmpq-iqmbazulqp-otaoaxmfq-pqbxakyqzf-586[qamfp] -jef-iushuj-sxesebqju-ixyffydw-270[iztnj] -zvyvgnel-tenqr-enzcntvat-ohaal-ratvarrevat-793[atven] -yuxufmdk-sdmpq-vqxxknqmz-ogefayqd-eqdhuoq-612[qdmux] -yhtwhnpun-kfl-ylhjxbpzpapvu-357[phlnu] -egdytrixat-qjccn-bpcpvtbtci-557[mtpgc] -wsvsdkbi-qbkno-mkxni-mykdsxq-ecob-docdsxq-120[dksbo] -xtwtelcj-rclop-ojp-dstaatyr-873[omnal] -wifilzof-jfumncw-alumm-xypyfijgyhn-318[evfso] -mvydjvxodqz-agjrzm-hvivbzhzio-655[vzdhi] -jsehsyafy-usfvq-ugslafy-jwuwanafy-840[afsyu] -myxcewob-qbkno-nio-bocokbmr-900[obckm] -ipvohghykvbz-wshzapj-nyhzz-vwlyhapvuz-539[hzvpy] -tbxmlkfwba-pzxsbkdbo-erkq-zrpqljbo-pbosfzb-185[bkopz] -rdadguja-eaphixr-vgphh-itrwcdadvn-869[nfpxs] -lugjuacha-jfumncw-alumm-zchuhwcha-734[uachm] -jsehsyafy-jsttal-jwsuimakalagf-762[mnvlh] -zixppfcfba-yrkkv-absbilmjbkq-393[ihgyz] -bxaxipgn-vgpst-rdchjbtg-vgpst-rpcsn-rdpixcv-hpath-817[pgtch] -rtqlgevkng-ejqeqncvg-hkpcpekpi-154[xpgty] -laffe-hgyqkz-xkikobotm-488[kfoab] -jfifqxov-doxab-zxkav-zlxqfkd-qoxfkfkd-419[ubaro] -myxcewob-qbkno-cmkfoxqob-rexd-zebmrkcsxq-952[boxce] -apuut-wvnfzo-rjmfncjk-447[fjnua] -lejkrscv-tfcfiwlc-avccpsvre-fgvirkzfej-113[cfver] -nglmtuex-cxeeruxtg-kxvxbobgz-215[xegbt] -sgmtkzoi-kmm-xkgiwaoyozout-748[qrkst] -amppmqgtc-djmucp-rcaflmjmew-912[bcvna] -xst-wigvix-fyrrc-wepiw-438[ygref] -dzczkrip-xiruv-jtrmvexvi-ylek-fgvirkzfej-295[irvek] -diozmivodjivg-xviyt-xjvodib-zibdizzmdib-265[zmrey] -rgndvtcxr-ytaanqtpc-stepgibtci-661[tcagi] -xgsvgmotm-hgyqkz-jkyomt-358[ajyhb] -zloolpfsb-yxphbq-ixyloxqlov-393[loxbp] -zilqwikbqdm-jiasmb-uizsmbqvo-668[ibmqs] -rtqlgevkng-rncuvke-itcuu-ucngu-206[ucgne] -dmybmsuzs-yuxufmdk-sdmpq-eomhqzsqd-tgzf-iadwetab-482[nkqyl] -vetllbybxw-ktuubm-hixktmbhgl-345[ikqop] -bwx-amkzmb-jcvvg-ikycqaqbqwv-954[symcn] -ubhatstkwhnl-ynssr-lvtoxgzxk-angm-kxlxtkva-163[ktxal] -zlilocri-yxphbq-pefmmfkd-471[filmp] -yflexwxoalrp-zlkprjbo-doxab-zxkav-zlxqfkd-qoxfkfkd-419[xkflo] -oxaflxzqfsb-zelzlixqb-xznrfpfqflk-393[flxzq] -ixccb-vfdyhqjhu-kxqw-ghyhorsphqw-101[pzgst] -pybgmyargtc-qaytclecp-fslr-sqcp-rcqrgle-860[crglp] -zbytomdsvo-mkxni-kmaescsdsyx-562[smdko] -hwbba-dwppa-ocpcigogpv-570[pabcg] -eza-dpncpe-nlyoj-nzletyr-wlmzclezcj-171[elzcn] -tbxmlkfwba-mixpqfz-doxpp-zlkqxfkjbkq-159[kxbfp] -vetllbybxw-yehpxk-ehzblmbvl-657[blehv] -zuv-ykixkz-jek-lotgtiotm-852[ktioz] -fnjyxwrinm-mhn-mnyjacvnwc-277[zgpnw] -odiih-ljwmh-lxjcrwp-mnenuxyvnwc-615[nwchi] -wfummczcyx-wuhxs-qilembij-838[mciuw] -sno-rdbqds-bgnbnkzsd-bnmszhmldms-859[sbdnm] -nvrgfezqvu-gcrjkzt-xirjj-ivjvrity-555[ylfxv] -encuukhkgf-uecxgpigt-jwpv-ujkrrkpi-622[kugpc] -lnkfaypeha-xqjju-qoan-paopejc-446[ajpen] -kmjezxodgz-ytz-gvwjmvojmt-109[jmzgo] -ygcrqpkbgf-hnqygt-octmgvkpi-128[gckpq] -jxdkbqfz-mixpqfz-doxpp-tlohpelm-107[pxdfl] -xjgjmapg-xviyt-xjvodib-adivixdib-759[ixdjv] -laffe-jek-sgtgmksktz-644[vuenb] -pbafhzre-tenqr-enoovg-ratvarrevat-975[ymshj] -lqwhuqdwlrqdo-vfdyhqjhu-kxqw-uhvhdufk-959[kzlvy] -rflsjynh-jll-zxjw-yjxynsl-697[jlyns] -wrs-vhfuhw-sodvwlf-judvv-ghvljq-361[vhwdf] -ynssr-unggr-tvjnblbmbhg-163[bgnrs] -jyfvnlupj-jvsvymbs-yhiipa-zopwwpun-903[nrdma] -kzeed-hfsid-uzwhmfxnsl-515[uoyvx] -ide-htrgti-uadltg-gtprfjxhxixdc-375[tdgix] -sorozgxe-mxgjk-hatte-vaxingyotm-358[fwxei] -ydjuhdqjyedqb-fbqijys-whqii-jusxdebewo-582[nuzsj] -yknnkoera-xwogap-paydjkhkcu-498[kanop] -nzydfxpc-rclop-upwwjmply-opdtry-691[pycdl] -dlhwvupglk-jhukf-jvhapun-zlycpjlz-409[lhjpu] -kwvacumz-ozilm-moo-bmkpvwtwog-694[mowkv] -kmjezxodgz-wpiit-mzxzdqdib-863[anvbu] -xlrypetn-nsznzwlep-xlylrpxpye-587[znfwt] -pybgmyargtc-qaytclecp-fslr-umpiqfmn-600[nzvej] -etyyx-qzaahs-lzqjdshmf-781[ahqsy] -ovbunmneqbhf-wryylorna-znantrzrag-221[pnazx] -gzefmnxq-bxmefuo-sdmee-ymzmsqyqzf-352[lgvpu] -ixeumktoi-jek-jkbkruvsktz-488[mzeun] -dzczkrip-xiruv-avccpsvre-glityrjzex-321[eflmp] -wfruflnsl-hfsid-fhvznxnynts-307[fnshl] -vkppo-rkddo-iqbui-218[dikop] -muqfedyput-zubboruqd-mehaixef-452[inbaj] -ftzgxmbv-cxeeruxtg-nlxk-mxlmbgz-683[xgmbe] -htsxzrjw-lwfij-uqfxynh-lwfxx-hzxytrjw-xjwanhj-827[xjwhf] -qekrixmg-wgezirkiv-lyrx-tyvglewmrk-282[regik] -ktiaaqnqml-jiasmb-apqxxqvo-226[asvyf] -lejkrscv-irdgrxzex-srjbvk-kvtyefcfxp-165[rekvx] -hvbizodx-nxvqzibzm-cpio-hvmfzodib-291[izbov] -ltpedcxots-tvv-rjhidbtg-htgkxrt-297[tdghr] -dlhwvupglk-mbggf-jovjvshal-zlycpjlz-565[lgjvh] -xfbqpojafe-tdbwfohfs-ivou-sfbdrvjtjujpo-779[fjobd] -kmjezxodgz-xviyt-gvwjmvojmt-577[flhas] -jshzzpmplk-jhukf-jvhapun-vwlyhapvuz-669[hpjuv] -tfejldvi-xiruv-gcrjkzt-xirjj-drerxvdvek-295[dpsef] -zotts-yaa-lymyulwb-968[skymd] -rmn-qcapcr-zyqicr-umpiqfmn-704[cmqri] -xfbqpojafe-cbtlfu-qvsdibtjoh-727[bfjoq] -ykhknbqh-nwxxep-oanreyao-732[naehk] -raphhxuxts-hrpktcvtg-wjci-hidgpvt-921[hmzng] -yrwxefpi-qmpmxevc-kvehi-gerhc-gsexmrk-hizipstqirx-932[mdsza] -xjgjmapg-xviyt-vivgtndn-603[utnks] -cxy-bnlanc-mhn-vjwjpnvnwc-745[mtsvn] -ujoon-gpbepvxcv-eaphixr-vgphh-uxcpcrxcv-687[pcvxh] -ykjoqian-cnwza-iwcjapey-lhwopey-cnwoo-opknwca-264[owacn] -lnkfaypeha-oywrajcan-dqjp-zalwnpiajp-108[apjnl] -ktwbhtvmbox-yehpxk-mktbgbgz-293[cndif] -hqcfqwydw-cqwdujys-rqiauj-qsgkyiyjyed-738[qydjw] -amlqskcp-epybc-zyqicr-kylyeckclr-600[sdrzj] -bnmrtldq-fqzcd-rbzudmfdq-gtms-zbpthrhshnm-443[dmbhq] -nwlddtqtpo-nlyoj-nzletyr-epnsyzwzrj-379[tyrzv] -cvabijtm-kpwkwtibm-lmxtwgumvb-980[mbtwi] -amlqskcp-epybc-afmamjyrc-jyzmpyrmpw-574[mpyac] -aflwjfslagfsd-vqw-dstgjslgjq-424[sfgjl] -willimcpy-zfiqyl-xymcah-110[ilycm] -kpvgtpcvkqpcn-lgnnadgcp-ujkrrkpi-128[knmqz] -wyvqljapsl-buzahisl-ibuuf-lunpullypun-409[wyhza] -amlqskcp-epybc-pyzzgr-pcacgtgle-210[cpgae] -xtwtelcj-rclop-mldvpe-dstaatyr-821[nkabu] -pdjqhwlf-gbh-sxufkdvlqj-751[cdmbz] -wkqxodsm-zvkcdsm-qbkcc-ecob-docdsxq-432[cdkoq] -xjmmjndqz-wpiit-gjbdnodxn-811[djnim] -zlkprjbo-doxab-zelzlixqb-absbilmjbkq-939[blzai] -htqtwkzq-xhfajsljw-mzsy-ywfnsnsl-619[lfsnu] -zhdsrqlchg-mhoobehdq-xvhu-whvwlqj-361[hqdlo] -tcfkqcevkxg-tcorcikpi-ejqeqncvg-uvqtcig-544[lsyzm] -kwtwznct-kivlg-zmamizkp-824[ixjen] -bkzrrhehdc-qzaahs-rghoohmf-287[hraoz] -lxuxaodu-mhn-cajrwrwp-303[aruwx] -tcorcikpi-dcumgv-octmgvkpi-700[vygzd] -crwwv-zlkprjbo-doxab-yxphbq-bkdfkbbofkd-809[bkdof] -xgvnndadzy-xcjxjgvoz-ncdkkdib-447[dnxcg] -elrkdcdugrxv-fkrfrodwh-xvhu-whvwlqj-179[eubfs] -odkasqzuo-rxaiqd-eqdhuoqe-430[nlyts] -vhglnfxk-zktwx-xzz-xgzbgxxkbgz-917[xzgkb] -jyfvnlupj-wyvqljapsl-jovjvshal-zlycpjlz-357[jlvpy] -gpbepvxcv-eaphixr-vgphh-gtrtxkxcv-687[pvxgh] -jrncbavmrq-zntargvp-qlr-qrirybczrag-741[dnzpg] -hqfxxnknji-hfsid-knsfshnsl-307[wtfhe] -aietsrmdih-nippcfier-stivexmsrw-750[iersm] -glrcplyrgmlyj-pyzzgr-pcqcypaf-912[nkoyv] -ugfkmewj-yjsvw-hdsklau-yjskk-sfsdqkak-216[ksjad] -mhi-lxvkxm-vtgwr-kxtvjnblbmbhg-917[bmvxg] -tipfxvezt-irsszk-kvtyefcfxp-451[fteik] -jxdkbqfz-mixpqfz-doxpp-qoxfkfkd-939[fxdkp] -dsxxw-pyzzgr-qrmpyec-288[prxyz] -ejpanjwpekjwh-fahhuxawj-ajcejaanejc-394[jaehw] -pinovwgz-xgvnndadzy-xviyt-vxlpdndodji-109[dnvix] -szfyrqriuflj-upv-rercpjzj-243[jprqg] -dmbttjgjfe-gmpxfs-efqbsunfou-701[fbegj] -sgmtkzoi-inuiurgzk-ykxboiky-436[qlcfs] -slqryzjc-djmucp-ylyjwqgq-158[jqycl] -aflwjfslagfsd-vqw-hmjuzskafy-398[fasjl] -slqryzjc-djmucp-pcacgtgle-886[cgjlp] -qjopwxha-ywjzu-ajcejaanejc-420[zoehr] -amjmpdsj-njyqrga-epyqq-kylyeckclr-756[yksln] -zlkprjbo-doxab-zxkav-zlxqfkd-abpfdk-445[kabdx] -lhkhszqx-fqzcd-bgnbnkzsd-nodqzshnmr-989[nzdhq] -dlhwvupglk-ibuuf-klwhyatlua-591[dzktb] -dpotvnfs-hsbef-cbtlfu-ufdiopmphz-623[homsd] -ajvyjprwp-npp-mnbrpw-875[pjnrw] -lxwbdvna-pajmn-snuuhknjw-mnyuxhvnwc-251[nuwah] -vetllbybxw-lvtoxgzxk-angm-xgzbgxxkbgz-865[mknli] -aflwjfslagfsd-jsehsyafy-usfvq-vwkayf-268[fsayj] -xjgjmapg-agjrzm-gvwjmvojmt-291[jgmav] -plolwdub-judgh-iorzhu-dqdobvlv-465[dloub] -htqtwkzq-wfggny-fsfqdxnx-645[wsznf] -fkqbokxqflkxi-zxkav-zlxqfkd-jxohbqfkd-341[kxfqb] -oxjmxdfkd-avb-tlohpelm-653[dlmox] -xtwtelcj-rclop-nsznzwlep-epnsyzwzrj-873[zelnp] -rtqlgevkng-gii-ceswkukvkqp-466[kgeiq] -molgbzqfib-yrkkv-ixyloxqlov-237[lobik] -zbytomdsvo-mrymyvkdo-nocsqx-848[pahef] -szfyrqriuflj-treup-tfrkzex-ivtvzmzex-867[xejut] -upq-tfdsfu-kfmmzcfbo-mphjtujdt-909[fmtud] -ykhknbqh-lhwopey-cnwoo-bejwjyejc-342[hwxgn] -qfkkj-nsznzwlep-nzyeltyxpye-327[vkmwy] -excdklvo-zvkcdsm-qbkcc-psxkxmsxq-900[cvoiz] -dszphfojd-dboez-dpbujoh-xpsltipq-623[zbxem] -udpsdjlqj-iorzhu-ghsorbphqw-517[hdjop] -xcitgcpixdcpa-ide-htrgti-gpqqxi-gthtpgrw-609[gitpc] -cybyjqho-whqtu-uww-tuiywd-348[styfx] -yuxufmdk-sdmpq-nmewqf-oazfmuzyqzf-924[hfsly] -tfejldvi-xiruv-avccpsvre-crsfirkfip-997[rxygp] -wsvsdkbi-qbkno-oqq-wkxkqowoxd-822[koqwb] -qcbgiasf-ufors-tzcksf-sbuwbssfwbu-610[ivjsc] -vkrhzxgbv-wrx-lmhktzx-839[xhkrv] -xmrrq-bwddqtwsf-vwnwdghewfl-242[fpmoq] -kmjezxodgz-nxvqzibzm-cpio-gjbdnodxn-577[isocd] -iutyaskx-mxgjk-kmm-jkyomt-436[kmjtx] -ide-htrgti-snt-rjhidbtg-htgkxrt-531[tghir] -vkppo-uww-bqrehqjeho-764[xmntl] -bdavqofuxq-pkq-ymzmsqyqzf-196[qfmyz] -diozmivodjivg-hvbizodx-zbb-ozxcijgjbt-915[zueag] -cybyjqho-whqtu-hqrryj-bqrehqjeho-374[hqjry] -vcibutulxiom-vohhs-lywycpcha-630[owyks] -chnylhuncihuf-wuhxs-fiacmncwm-786[chnuf] -xekdwvwnzkqo-ywjzu-ykwpejc-wymqeoepekj-264[dmbln] -etyyx-cxd-vnqjrgno-391[hntfq] -pwcvonofrcig-dfcxsqhwzs-qobrm-qighcasf-gsfjwqs-194[scfqg] -xgvnndadzy-ezggtwzvi-nojmvbz-837[vnsth] -dszphfojd-qmbtujd-hsbtt-usbjojoh-467[rskch] -npmhcargjc-aylbw-amyrgle-yaosgqgrgml-886[galmr] -qczcftiz-gqojsbusf-vibh-twbobqwbu-350[bnsiu] -kwvacumz-ozilm-kzgwomvqk-xtiabqk-oziaa-twoqabqka-980[akoqz] -dsxxw-zyqicr-cleglccpgle-418[clegx] -jrncbavmrq-cynfgvp-tenff-ynobengbel-611[nbefc] -hqtyeqsjylu-fbqijys-whqii-tuiywd-322[mitks] -rnqnyfwd-lwfij-wfggny-xmnuunsl-697[tseia] -fhezusjybu-rqiauj-udwyduuhydw-868[ngyzs] -pkl-oaynap-ywjzu-ykwpejc-opknwca-628[pakwy] -nuatmlmdpage-vqxxknqmz-geqd-fqefuzs-508[romxa] -awzwhofm-ufors-qobrm-qcohwbu-hsqvbczcum-948[obchm] -dfcxsqhwzs-rms-fsgsofqv-766[sfqcd] -wlqqp-tyftfcrkv-rercpjzj-711[rcfjp] -clotzlnetgp-awldetn-rcldd-nzyeltyxpye-743[letdn] -lgh-kwujwl-hdsklau-yjskk-vwhsjlewfl-788[lkwhj] -uqtqbizg-ozilm-kivlg-kwibqvo-uizsmbqvo-512[iqbov] -vetllbybxw-lvtoxgzxk-angm-kxlxtkva-683[xlktv] -qyujihctyx-mwupyhayl-bohn-uwkocmcncih-760[chyui] -crwwv-zxkav-obzbfsfkd-237[bfkvw] -qczcftiz-pogysh-igsf-hsghwbu-610[tnjwm] -udpsdjlqj-gbh-hqjlqhhulqj-725[hjqld] -yuxufmdk-sdmpq-nmewqf-emxqe-326[meqdf] -molgbzqfib-ciltbo-ildfpqfzp-653[bfilo] -uwtojhynqj-gfxpjy-ywfnsnsl-151[jnyfs] -qvbmzvibqwvit-jiasmb-camz-bmabqvo-330[bmvai] -xmtjbzidx-xviyt-xjvodib-xpnojhzm-nzmqdxz-603[torgb] -ykjoqian-cnwza-fahhuxawj-qoan-paopejc-628[ajnoc] -gvcskirmg-veffmx-irkmriivmrk-906[imrkv] -njmjubsz-hsbef-dboez-dpbujoh-bdrvjtjujpo-649[astyb] -ovbunmneqbhf-pnaql-pbngvat-jbexfubc-845[yzqwm] -joufsobujpobm-kfmmzcfbo-usbjojoh-571[mkpnw] -lzfmdshb-cxd-lzmzfdldms-287[dlmzf] -froruixo-mhoobehdq-pdunhwlqj-439[ohdqr] -xcitgcpixdcpa-rpcsn-rdpixcv-bpcpvtbtci-193[cpitx] -dfcxsqhwzs-ksodcbwnsr-xszzmpsob-rsgwub-168[sbwzc] -iuruxlar-lruckx-sgtgmksktz-436[krugl] -nbhofujd-dboez-fohjoffsjoh-467[ofhjb] -pejji-tovvilokx-nozvyiwoxd-276[bzkve] -bxaxipgn-vgpst-rpcsn-rdpixcv-rjhidbtg-htgkxrt-583[upjyv] -bkzrrhehdc-bzmcx-bnzshmf-lzqjdshmf-443[hzbmc] -dpssptjwf-gmpxfs-mphjtujdt-571[pjstd] -pdjqhwlf-sodvwlf-judvv-orjlvwlfv-829[tuszv] -mfklstdw-tmffq-wfyafwwjafy-918[wmvan] -joufsobujpobm-ezf-gjobodjoh-779[xwadm] -hafgnoyr-gbc-frperg-rtt-grpuabybtl-481[jcgnd] -joufsobujpobm-fhh-tijqqjoh-233[johbf] -zuv-ykixkz-vrgyzoi-mxgyy-yzuxgmk-150[yzgkx] -ibghopzs-qvcqczohs-qighcasf-gsfjwqs-948[ubrmn] -qfmcusbwq-pwcvonofrcig-foppwh-fsgsofqv-584[focpq] -aczupnetwp-awldetn-rcldd-qtylyntyr-119[tdlny] -dpssptjwf-ezf-sfdfjwjoh-909[znfwy] -qxdwpopgsdjh-ytaanqtpc-pcpanhxh-297[pahcd] -ucynmlgxcb-aylbw-rpyglgle-626[lgybc] -oqnidbshkd-okzrshb-fqzrr-rdquhbdr-573[rdbhq] -frqvxphu-judgh-fdqgb-vhuylfhv-647[hfuvd] -vhehkyne-cxeeruxtg-hixktmbhgl-319[ehxgk] -gsrwyqiv-kvehi-gerhc-gsexmrk-vigimzmrk-412[girek] -ajmrxjlcren-yujbcrl-pajbb-bnaerlnb-719[lvzpq] -zixppfcfba-bdd-bkdfkbbofkd-393[hnmcz] -aflwjfslagfsd-hdsklau-yjskk-ugflsafewfl-918[flsak] -xtwtelcj-rclop-upwwjmply-nzyeltyxpye-847[lpyet] -oaddaeuhq-qss-dqmocgueufuaz-924[qzwti] -tvsnigxmpi-wgezirkiv-lyrx-hitpscqirx-568[irxgp] -ksodcbwnsr-qczcftiz-gqojsbusf-vibh-igsf-hsghwbu-272[sbcfg] -sgmtkzoi-jek-gtgreyoy-410[tqkns] -rzvkjiduzy-kgvnodx-bmvnn-omvdidib-109[fpsxk] -diozmivodjivg-rzvkjiduzy-zbb-adivixdib-447[nayqm] -froruixo-vfdyhqjhu-kxqw-rshudwlrqv-517[rhqud] -dmpuamofuhq-dmnnuf-ymzmsqyqzf-222[mwnak] -mybbycsfo-zvkcdsm-qbkcc-wkbuodsxq-380[bcksd] -tcrjjzwzvu-wcfnvi-vexzevvizex-633[vzeci] -qzoggwtwsr-gqojsbusf-vibh-hsqvbczcum-870[sbgqc] -enzcntvat-cynfgvp-tenff-phfgbzre-freivpr-845[xnfot] -gsvvswmzi-gerhc-gsexmrk-stivexmsrw-984[segmr] -fhezusjybu-vbemuh-iqbui-244[iektm] -oqnidbshkd-idkkxadzm-qdzbpthrhshnm-469[gekyh] -pybgmyargtc-cee-nspafyqgle-574[egyac] -jyddc-gerhc-gsexmrk-vigimzmrk-672[gmrcd] -tipfxvezt-gcrjkzt-xirjj-rercpjzj-399[ldquc] -bdavqofuxq-bxmefuo-sdmee-dqeqmdot-768[hwmck] -fbebmtkr-zktwx-vtgwr-hixktmbhgl-475[tbkgh] -irgyyolokj-igtje-iugzotm-rumoyzoiy-202[mpijw] -fbebmtkr-zktwx-xzz-kxlxtkva-865[yicwo] -tyepcyletzylw-dnlgpyrpc-sfye-nfdezxpc-dpcgtnp-145[badwi] -vrurcjah-pajmn-ljwmh-anbnjalq-849[ajnhl] -rtqlgevkng-ecpfa-fgukip-700[gefkp] -pdjqhwlf-froruixo-udeelw-wudlqlqj-907[kymab] -tinnm-xszzmpsob-qcbhowbasbh-688[nhcdm] -nij-mywlyn-wuhxs-lywycpcha-318[ywchl] -fnjyxwrinm-ouxfna-ldbcxvna-bnaerln-979[naxbf] -ajvyjprwp-bljenwpna-qdwc-anjlzdrbrcrxw-823[jrwan] -diozmivodjivg-wpiit-mzxzdqdib-551[kmhon] -nij-mywlyn-dyffsvyuh-xyjfisgyhn-656[yfnhi] -fhezusjybu-zubboruqd-vydqdsydw-504[dubyq] -ubhatstkwhnl-lvtoxgzxk-angm-kxvxbobgz-579[xbgkt] -xcitgcpixdcpa-rwdrdapit-htgkxrth-557[zastp] -wfintfhynaj-jll-hzxytrjw-xjwanhj-281[jhnwa] -irgyyolokj-vrgyzoi-mxgyy-rumoyzoiy-800[sptbo] -jvyyvzpcl-yhkpvhjapcl-ibuuf-aljouvsvnf-227[vjlpu] -iruzfrtkzmv-treup-kirzezex-841[rzeik] -cxy-bnlanc-ljwmh-ujkxajcxah-979[waqkz] -qzoggwtwsr-foppwh-difqvogwbu-948[wgofp] -qyujihctyx-dyffsvyuh-zchuhwcha-552[hycuf] -yknnkoera-lhwopey-cnwoo-pnwejejc-992[enowc] -zovldbkfz-zxkav-zlxqfkd-xkxivpfp-289[vtcos] -mrxivrexmsrep-glsgspexi-erepcwmw-750[btrnl] -udskkaxawv-kusnwfywj-zmfl-dgyaklauk-866[xeozd] -esyfwlau-tmffq-vwnwdghewfl-632[czoml] -hjgbwuladw-kusnwfywj-zmfl-esfsywewfl-294[xwfie] -hwbba-rncuvke-itcuu-ocpcigogpv-232[cubgi] -vhkkhlbox-vtgwr-xgzbgxxkbgz-631[typnq] -nvrgfezqvu-szfyrqriuflj-vxx-jkfirxv-139[krijl] -iuruxlar-zuv-ykixkz-lruckx-xkykgxin-826[kxuir] -yhwooebeaz-ywjzu-yqopkian-oanreya-966[ynwkb] -iuxxuyobk-pkrrehkgt-xkgiwaoyozout-176[sjwtp] -glrcplyrgmlyj-djmucp-qrmpyec-236[clmpr] -pejji-tovvilokx-bocokbmr-588[obijk] -hplazytkpo-upwwjmply-dpcgtnpd-119[pdltw] -nij-mywlyn-xsy-jolwbumcha-136[yjlmn] -pynffvsvrq-ohaal-fgbentr-923[fanrv] -lgh-kwujwl-kusnwfywj-zmfl-kwjnauwk-736[wkjlu] -dszphfojd-sbccju-mbcpsbupsz-727[sbcpd] -ixeumktoi-lruckx-zkinturume-800[ktsyl] -fmsledevhsyw-tvsnigxmpi-veffmx-viwievgl-412[veifm] -mrxivrexmsrep-fyrrc-qevoixmrk-880[wtmdx] -qmpmxevc-kvehi-wgezirkiv-lyrx-wlmttmrk-620[zyxjd] -zixppfcfba-oxyyfq-qbzeklildv-289[fbilp] -nwlddtqtpo-dnlgpyrpc-sfye-wlmzclezcj-431[jefsy] -tinnm-foppwh-oqeiwgwhwcb-688[fzyjx] -plolwdub-judgh-fdqgb-ghyhorsphqw-413[hystk] -bwx-amkzmb-zijjqb-bmkpvwtwog-460[bmwjk] -qcbgiasf-ufors-pibbm-ghcfous-896[bfscg] -ktwbhtvmbox-vetllbybxw-cxeeruxtg-tgterlbl-215[tmybs] -lqwhuqdwlrqdo-mhoobehdq-vwrudjh-387[dhqow] -lgh-kwujwl-tskcwl-vwhdgqewfl-684[afnbs] -yuxufmdk-sdmpq-rxaiqd-efadmsq-976[mczye] -ftzgxmbv-unggr-kxlxtkva-917[ezfmx] -rmn-qcapcr-aylbw-amyrgle-ylyjwqgq-158[prcqj] -fhezusjybu-rqiauj-husuylydw-582[uyhjs] -apuut-xviyt-xjvodib-yzkvmohzio-525[yomvc] -mybbycsfo-dyz-combod-zvkcdsm-qbkcc-oxqsxoobsxq-848[obcsd] -yhwooebeaz-lhwopey-cnwoo-zalhkuiajp-706[oaehw] -bqxnfdmhb-bzmcx-trdq-sdrshmf-469[zdyht] -dmpuamofuhq-vqxxknqmz-pqbmdfyqzf-924[qmfdp] -kmjezxodgz-ytz-mzvxlpdndodji-889[gefcn] -apuut-xviyt-xjvodib-mznzvmxc-369[vximt] -fodvvlilhg-surmhfwloh-hjj-hqjlqhhulqj-647[hljqf] -tipfxvezt-srjbvk-tljkfdvi-jvimztv-269[vtijf] -ikhcxvmbex-xzz-labiibgz-423[qnzsg] -qzchnzbshud-azrjds-lzmzfdldms-885[xubgy] -eadalsjq-yjsvw-vqw-esjcwlafy-398[ajswe] -oxmeeuruqp-bxmefuo-sdmee-etubbuzs-898[stupo] -frqvxphu-judgh-xqvwdeoh-fdqgb-frdwlqj-zrunvkrs-257[dqrfh] -ltpedcxots-gpbepvxcv-qphzti-igpxcxcv-349[jzdyi] -vhkkhlbox-vtgwr-phkdlahi-969[tmszy] -cvabijtm-jcvvg-lmdmtwxumvb-226[nvfca] -sedikcuh-whqtu-sqdto-qsgkyiyjyed-790[dqsye] -gzefmnxq-bdavqofuxq-rxaiqd-ymzmsqyqzf-690[zklij] -zntargvp-cynfgvp-tenff-qrcyblzrag-351[sqzyh] -xfbqpojafe-dboez-xpsltipq-857[ehgum] -uqtqbizg-ozilm-jcvvg-lmaqov-980[xzwsi] -xjgjmapg-ezggtwzvi-xpnojhzm-nzmqdxz-161[zgjmx] -muqfedyput-vbemuh-fkhsxqiydw-920[udefh] -kzeed-gfxpjy-ywfnsnsl-489[xeoyn] -pynffvsvrq-onfxrg-ynobengbel-741[nfbeg] -froruixo-iorzhu-rshudwlrqv-647[rouhi] -amjmpdsj-qaytclecp-fslr-qyjcq-938[cjqal] -otzkxtgzoutgr-jek-iayzuskx-ykxboik-826[kotxz] -tpspahyf-nyhkl-jhukf-zavyhnl-279[hyafk] -pualyuhapvuhs-ihzrla-ylhjxbpzpapvu-929[lbncu] -odiih-ajkkrc-mnbrpw-355[ikrab] -votubcmf-gmpxfs-bdrvjtjujpo-363[jbfmo] -zgmfyxypbmsq-rmn-qcapcr-bwc-pcacgtgle-704[ztspm] -uqtqbizg-ozilm-nchhg-jiasmb-ivitgaqa-382[snpaf] -willimcpy-jfumncw-alumm-lyuwkocmcncih-734[cmliu] -ibghopzs-qvcqczohs-hsqvbczcum-506[chqsz] -ugjjgkanw-tmffq-vwkayf-216[lfrby] -pynffvsvrq-pnaql-erprvivat-507[vpraf] -aczupnetwp-nlyoj-nzletyr-pyrtyppctyr-197[pytnr] -vkppo-sqdto-seqjydw-bewyijysi-686[sydei] -dpotvnfs-hsbef-ezf-qvsdibtjoh-337[fsbde] -wlqqp-avccpsvre-ivtvzmzex-425[vcepq] -jfifqxov-doxab-gbiivybxk-jxohbqfkd-549[skgzo] -rgndvtcxr-jchipqat-rpcsn-igpxcxcv-713[cprxg] -ykhknbqh-xqjju-wymqeoepekj-576[ejkqh] -pejji-mrymyvkdo-domrxyvyqi-536[ymdij] -wihmogyl-aluxy-xsy-womnigyl-mylpcwy-786[ylmwg] -jlidywncfy-zfiqyl-mbcjjcha-162[cjyfi] -pynffvsvrq-sybjre-grpuabybtl-455[byavk] -uqtqbizg-ozilm-uiovmbqk-akidmvomz-pcvb-bziqvqvo-694[xywnk] -lxaaxbren-ouxfna-ydalqjbrwp-225[mibtg] -joufsobujpobm-kfmmzcfbo-dvtupnfs-tfswjdf-675[ijokq] -crwwv-gbiivybxk-pqloxdb-913[rtmzn] -pkl-oaynap-nwxxep-bejwjyejc-576[jfmel] -wfummczcyx-gcfcnuls-aluxy-wuhxs-wihnuchgyhn-786[giqsn] -htsxzrjw-lwfij-ojqqdgjfs-ijajqturjsy-229[tjxbs] -qczcftiz-foppwh-rsgwub-246[exnyt] -lnkfaypeha-xwogap-naoawnyd-342[zynls] -thnulapj-zjhclunly-obua-thuhnltlua-201[luhan] -vkppo-fbqijys-whqii-bqrehqjeho-504[lkosn] -eqpuwogt-itcfg-ecpfa-qrgtcvkqpu-622[cgpqt] -odkasqzuo-oazegyqd-sdmpq-otaoaxmfq-efadmsq-222[aoqdm] -ide-htrgti-bxaxipgn-vgpst-qjccn-pcpanhxh-453[pcghi] -luxciuwncpy-jfumncw-alumm-xyjulngyhn-552[unclm] -plolwdub-judgh-hjj-zrunvkrs-777[yfulq] -pejji-lexxi-oxqsxoobsxq-458[xoeij] -uzfqdzmfuazmx-pkq-fdmuzuzs-170[npsqv] -bknsykmdsfo-zvkcdsm-qbkcc-cdybkqo-614[fastx] -qfkkj-upwwjmply-qtylyntyr-873[yjklp] -hqcfqwydw-zubboruqd-ijehqwu-218[djvhz] -kmjezxodgz-pinovwgz-zbb-ncdkkdib-473[vimty] -bknsykmdsfo-myvybpev-mkxni-mykdsxq-bocokbmr-562[sdwfr] -eqttqukxg-gii-hkpcpekpi-960[yljdr] -drxevkzt-wcfnvi-cfxzjkztj-607[twoxz] -vkppo-rkddo-ijehqwu-504[dkope] -rgllk-rxaiqd-dqmocgueufuaz-456[mxkzr] -ktiaaqnqml-moo-xczkpiaqvo-122[aoqik] -amjmpdsj-njyqrga-epyqq-pcqcypaf-600[pqajy] -rwcnawjcrxwju-npp-ujkxajcxah-199[jacwx] -fmsledevhsyw-gspsvjyp-gerhc-gsexmrk-ywiv-xiwxmrk-412[segmr] -ajmrxjlcren-kdwwh-anbnjalq-745[myzet] -aoubshwq-tinnm-suu-fsoqeiwgwhwcb-480[wsubh] -rdggdhxkt-rpcsn-hpath-531[tsamh] -pbafhzre-tenqr-pnaql-pbngvat-nanylfvf-715[upmid] -zbytomdsvo-cmkfoxqob-rexd-gybucryz-562[obycd] -bkwzkqsxq-mkxni-ecob-docdsxq-978[ksmtq] -oknkvcta-itcfg-ecpfa-ncdqtcvqta-414[lcwjp] -fydelmwp-clmmte-cpnptgtyr-405[jlgak] -tcorcikpi-ecpfa-gpikpggtkpi-804[picgk] -xtwtelcj-rclop-upwwjmply-hzcvdsza-327[clpwj] -tcfkqcevkxg-ecpfa-eqcvkpi-ncdqtcvqta-752[cqekt] -etaqigpke-tcddkv-uvqtcig-440[tcdeg] -raphhxuxts-qxdwpopgsdjh-rpcsn-rdpixcv-sthxvc-843[tvexn] -atyzghrk-xghhoz-ktmotkkxotm-748[kthog] -fmsledevhsyw-nippcfier-asvowlst-412[zksal] -oaxadrgx-eomhqzsqd-tgzf-eqdhuoqe-846[zfylm] -qcbgiasf-ufors-dzoghwq-ufogg-qcbhowbasbh-194[bgofh] -qvbmzvibqwvit-bwx-amkzmb-jiasmb-xczkpiaqvo-122[bimva] -qfkkj-prr-hzcvdsza-639[dqmts] -jvyyvzpcl-ibuuf-bzly-alzapun-981[mnakf] -dsxxw-cee-pcacgtgle-626[odsgr] -buzahisl-zjhclunly-obua-zlycpjlz-617[rsglh] -gpewwmjmih-tpewxmg-kveww-jmrergmrk-594[mwegr] -aietsrmdih-hci-stivexmsrw-516[hsvof] -ujoon-ytaanqtpc-stepgibtci-219[tacin] -kpvgtpcvkqpcn-fag-ceswkukvkqp-830[cijob] -etaqigpke-uecxgpigt-jwpv-ocpcigogpv-154[gpcei] -eqnqthwn-tcddkv-rwtejcukpi-674[tcdek] -mhi-lxvkxm-ktuubm-nlxk-mxlmbgz-241[mxklb] -avw-zljyla-wshzapj-nyhzz-ylzlhyjo-149[plqkx] -xekdwvwnzkqo-nwxxep-odellejc-862[xyzwn] -pkl-oaynap-bhksan-qoan-paopejc-498[ojduv] -xjinphzm-bmvyz-xjgjmapg-ezggtwzvi-zibdizzmdib-499[zigmb] -bdavqofuxq-rxaiqd-bgdotmeuzs-508[clbmv] -xzwrmkbqtm-jcvvg-ewzsapwx-902[wmvxz] -dmybmsuzs-rxaiqd-xmnadmfadk-846[dmasx] -surmhfwloh-exqqb-vwrudjh-127[hqruw] -gntmfefwitzx-ojqqdgjfs-xytwflj-827[xgtuv] -tbxmlkfwba-zxkav-zlxqfkd-ildfpqfzp-965[jncig] -sbnqbhjoh-tdbwfohfs-ivou-qvsdibtjoh-597[rftxz] -hqcfqwydw-fbqijys-whqii-iqbui-322[iqwbf] -forwcoqhwjs-xszzmpsob-gvwddwbu-324[ftyzu] -zlilocri-oxjmxdfkd-ciltbo-pbosfzbp-991[gjars] -kwzzwaqdm-rmttgjmiv-uizsmbqvo-434[mziqt] -willimcpy-gcfcnuls-aluxy-mwupyhayl-bohn-yhachyylcha-162[kcimx] -uqtqbizg-ozilm-kivlg-uizsmbqvo-954[pifvj] -ugdgjxmd-tskcwl-wfyafwwjafy-762[wfadg] -ajyqqgdgcb-bwc-qyjcq-262[qcbgj] -yknnkoera-oywrajcan-dqjp-wjwhuoeo-602[oajnw] -bqxnfdmhb-qzaahs-rzkdr-963[abdhq] -dwbcjkun-mhn-jwjuhbrb-693[niusd] -wlqqp-wcfnvi-crsfirkfip-373[nrtqs] -guahyncw-wbiwifuny-xymcah-240[wyach] -qfkkj-prr-opgpwzaxpye-613[pkrae] -cqwdujys-tou-tufbeocudj-322[ucdjo] -wfruflnsl-wfggny-ijuqtdrjsy-931[wjznm] -bnqqnrhud-okzrshb-fqzrr-cdrhfm-105[rhqbd] -yhtwhnpun-tpspahyf-nyhkl-jovjvshal-zlycpjlz-487[hlpyj] -iutyaskx-mxgjk-hatte-lotgtiotm-176[shzku] -gntmfefwitzx-kqtbjw-xfqjx-645[nmfsa] -jvsvymbs-jhukf-jbzavtly-zlycpjl-695[frnkz] -dlhwvupglk-zjhclunly-obua-jvuahputlua-825[ulahj] -wyvqljapsl-jhukf-jvhapun-ylzlhyjo-487[jlhya] -ghkmaihex-hucxvm-lmhktzx-267[hmxka] -irgyyolokj-vrgyzoi-mxgyy-xkikobotm-670[ryfvl] -kwzzwaqdm-zijjqb-amzdqkma-564[qzdtv] -rflsjynh-idj-xytwflj-541[jflyd] -emixwvqhml-ntwemz-zmkmqdqvo-200[zmbdq] -kzgwomvqk-rmttgjmiv-abwziom-330[mtnsk] -xjgjmapg-wpiit-vivgtndn-499[weiza] -cebwrpgvyr-pnaql-grpuabybtl-117[xqmjc] -egdytrixat-uadltg-uxcpcrxcv-297[ctxad] -gvaaz-ezf-tfswjdft-623[fatzd] -excdklvo-mkxni-mykdsxq-mecdywob-cobfsmo-692[mocdk] -ovbunmneqbhf-pnaql-bcrengvbaf-351[mtgcw] -nwlddtqtpo-clmmte-nzyeltyxpye-509[ydnsh] -froruixo-udeelw-vwrudjh-309[sxgvu] -hqcfqwydw-sxesebqju-cqhaujydw-660[fghtp] -bpvctixr-rwdrdapit-ldgzhwde-895[sfioq] -ajmrxjlcren-yaxsnlcrun-bljenwpna-qdwc-fxatbqxy-797[fnjis] -lugjuacha-zfiqyl-uhufsmcm-370[uacfh] -houngfgxjuay-pkrrehkgt-iayzuskx-ykxboik-852[kguxy] -gcfcnuls-aluxy-luxciuwncpy-jfumncw-alumm-uhufsmcm-214[zftvs] -oxmeeuruqp-otaoaxmfq-emxqe-794[drzyv] -nvrgfezqvu-upv-tfekrzedvek-867[evfkr] -uwtojhynqj-xhfajsljw-mzsy-zxjw-yjxynsl-801[jyswx] -zixppfcfba-yxphbq-jxohbqfkd-887[zgoyn] -qczcftiz-qvcqczohs-aobousasbh-402[coqsz] -lejkrscv-upv-tfekrzedvek-919[ekvrc] -chnylhuncihuf-zfiqyl-zchuhwcha-604[magtu] -vetllbybxw-lvtoxgzxk-angm-ybgtgvbgz-605[gbltv] -dmpuamofuhq-omzpk-qzsuzqqduzs-820[quzmd] -rdggdhxkt-gpqqxi-rdcipxcbtci-219[yrlha] -tfejldvi-xiruv-wcfnvi-jvimztvj-243[fqclr] -foadouwbu-dzoghwq-ufogg-gvwddwbu-324[dgouw] -tbxmlkfwba-pzxsbkdbo-erkq-bkdfkbbofkd-913[hgans] -gpbepvxcv-rpcsn-itrwcdadvn-453[sbuap] -szfyrqriuflj-srjbvk-ivrthlzjzkzfe-633[sqwil] -jqwpihizlwca-jiasmb-ivitgaqa-122[amzud] -bqvvu-ywjzu-qoan-paopejc-264[ajopq] -mvydjvxodqz-wpiit-gvwjmvojmt-525[oabkn] -ktiaaqnqml-moo-zmikycqaqbqwv-252[qamik] -dpmpsgvm-cbtlfu-sfdfjwjoh-909[pntzm] -nzcczdtgp-nsznzwlep-qtylyntyr-171[nztyc] -htqtwkzq-idj-rfwpjynsl-723[ndmel] -gzefmnxq-nmewqf-eqdhuoqe-300[eqfmn] -qzlozfhmf-cxd-lzqjdshmf-469[fzdhl] -pinovwgz-mvydjvxodqz-xviyt-xjvodib-yzndbi-447[pztyh] -gspsvjyp-gerhc-gsexmrk-vieguymwmxmsr-256[gmser] -ygcrqpkbgf-tcfkqcevkxg-hnqygt-vtckpkpi-102[puovq] -jsehsyafy-tmffq-vwhdgqewfl-112[rnach] -qmpmxevc-kvehi-hci-eguymwmxmsr-204[mechi] -tcfkqcevkxg-tcorcikpi-gii-gpikpggtkpi-544[wytzs] -pbafhzre-tenqr-enzcntvat-onfxrg-ratvarrevat-845[raten] -shoewudys-rqiauj-bqrehqjeho-270[ehqjo] -xjinphzm-bmvyz-ojk-nzxmzo-ezggtwzvi-zibdizzmdib-577[zimbd] -rkpqxyib-bdd-pbosfzbp-939[bpdfi] -vcibutulxiom-vumeyn-omyl-nymncha-786[ziwys] -nvrgfezqvu-upv-ivrthlzjzkzfe-321[vzefr] -krxqjijamxdb-yujbcrl-pajbb-dbna-cnbcrwp-303[bjacr] -zixppfcfba-mixpqfz-doxpp-qbzeklildv-653[zdxgu] -lsyrkjkbnyec-mkxni-gybucryz-640[ykbcn] -qspkfdujmf-kfmmzcfbo-dpoubjonfou-155[fomub] -sno-rdbqds-rbzudmfdq-gtms-cdozqsldms-755[yaubo] -houngfgxjuay-vrgyzoi-mxgyy-ygrky-462[ygoru] -gcfcnuls-aluxy-wifilzof-yaa-omyl-nymncha-266[alycf] -hwdtljsnh-gzssd-xfqjx-463[fajso] -htwwtxnaj-idj-hzxytrjw-xjwanhj-281[hzrnq] -sorozgxe-mxgjk-lruckx-xkgiwaoyozout-176[oxgkr] -ynssr-vtgwr-vhtmbgz-ftgtzxfxgm-475[gtfmr] -rtqlgevkng-lgnnadgcp-yqtmujqr-648[nelzc] -kwtwznct-rmttgjmiv-camz-bmabqvo-460[nmbls] -surmhfwloh-fdqgb-wudlqlqj-959[lqdfh] -iutyaskx-mxgjk-hgyqkz-rumoyzoiy-644[ykgim] -jqwpihizlwca-kivlg-kwibqvo-wxmzibqwva-434[iwqva] -amppmqgtc-djmucp-asqrmkcp-qcptgac-496[cpmaq] -apuut-xjmmjndqz-wpiit-vivgtndn-187[intdj] -ftzgxmbv-vtgwr-wxlbzg-267[gbtvw] -eza-dpncpe-mldvpe-wlmzclezcj-171[eclpz] -rnqnyfwd-lwfij-wfggny-ijuqtdrjsy-827[fjnwy] -aflwjfslagfsd-xdgowj-ghwjslagfk-684[fgajl] -lzfmdshb-eknvdq-rsnqzfd-859[ybjfz] -hqtyeqsjylu-uww-tufbeocudj-582[uejqt] -qfkkj-nsznzwlep-dstaatyr-223[aknst] -ubhatstkwhnl-xzz-kxvxbobgz-267[umogq] -xekdwvwnzkqo-oywrajcan-dqjp-ykjpwejiajp-238[mtbvo] -cebwrpgvyr-sybjre-qrfvta-195[rbevy] -hjgbwuladw-usfvq-esfsywewfl-710[mpiho] -lujbbrornm-kjbtnc-fxatbqxy-823[ywamx] -ugjjgkanw-uzgugdslw-hmjuzskafy-476[stfoh] -fmsledevhsyw-fewoix-pefsvexsvc-724[scznt] -zlkprjbo-doxab-bdd-obzbfsfkd-419[bdofk] -vcibutulxiom-wuhxs-nluchcha-864[uchil] -yhkpvhjapcl-ihzrla-dvyrzovw-305[qyhmr] -hmsdqmzshnmzk-qzlozfhmf-qzaahs-zmzkxrhr-287[zhmqs] -gzefmnxq-dmnnuf-etubbuzs-482[nubef] -ejpanjwpekjwh-ywjzu-ykwpejc-nayaerejc-550[jewap] -cxy-bnlanc-npp-mnyuxhvnwc-433[nvmyt] -jfifqxov-doxab-gbiivybxk-obzbfsfkd-601[epyzn] -pkl-oaynap-xqjju-wjwhuoeo-680[joapu] -jef-iushuj-hqtyeqsjylu-rqiauj-bewyijysi-842[hyzgu] -dfcxsqhwzs-tzcksf-aobousasbh-896[wkqxh] -lahxpnwrl-ljwmh-bjunb-693[jtoyp] -rnqnyfwd-lwfij-gfxpjy-wjhjnansl-931[jnfwl] -buzahisl-jvyyvzpcl-jhukf-jvhapun-klwhyatlua-617[ahluj] -jchipqat-eaphixr-vgphh-bpgztixcv-271[hpiac] -zlkprjbo-doxab-avb-absbilmjbkq-107[wbymr] -eqpuwogt-itcfg-dcumgv-fgxgnqrogpv-362[gcfop] -rdadguja-qjccn-gtrtxkxcv-791[cadgj] -etaqigpke-oknkvcta-itcfg-hnqygt-hkpcpekpi-674[mcoya] -gspsvjyp-hci-wxsveki-386[myuqs] -jef-iushuj-vbemuh-mehaixef-920[ehufi] -encuukhkgf-fag-tgceswkukvkqp-752[kguce] -npmhcargjc-njyqrga-epyqq-kypicrgle-444[cgpqr] -xtwtelcj-rclop-mldvpe-dpcgtnpd-379[pcdlt] -nchhg-kpwkwtibm-mvoqvmmzqvo-252[mvhko] -uqtqbizg-ozilm-jiasmb-uizsmbqvo-122[ktxvs] -nwlddtqtpo-mldvpe-fdpc-epdetyr-509[dpetl] -wfintfhynaj-idj-qfgtwfytwd-229[efudw] -yhwooebeaz-nwilwcejc-ydkykhwpa-owhao-160[skuyi] \ No newline at end of file diff --git a/advent05.hs b/advent05.hs deleted file mode 100644 index c86b14c..0000000 --- a/advent05.hs +++ /dev/null @@ -1,44 +0,0 @@ -module Main(main) where - -import Data.Hash.MD5 (md5s, Str(..)) -import Data.List (isPrefixOf) -import qualified Data.Map.Lazy as Map - -type Password = Map.Map Integer Char - -input = "cxdnnyjw" - -main :: IO () -main = do - part1 - part2 - - -part1 :: IO () -part1 = do - print $ take 8 [h!!5 | h <- filter (interesting) $ md5sequence input 0] - -part2 :: IO () -part2 = do - print $ Map.foldr (:) [] password - where interestingHashes = - [(read [h!!5], h!!6) | - h <- filter (interesting) (md5sequence input 0), - h!!5 `elem` "01234567"] - password = findPassword Map.empty interestingHashes - - -md5sequence :: String -> Integer -> [String] -md5sequence key i = (md5s (Str (key ++ show i))) : (md5sequence key (i+1)) - -interesting :: String -> Bool -interesting hash = "00000" `isPrefixOf` hash - -dontReplace :: (Integer, Char) -> Password -> Password -dontReplace (k, v) = Map.insertWith (\_ v -> v) k v - -findPassword :: Password -> [(Integer, Char)] -> Password -findPassword p (c:cs) - | Map.size p == 8 = p - | otherwise = findPassword p' cs - where p' = dontReplace c p diff --git a/advent06-old.hs b/advent06-old.hs deleted file mode 100644 index 77d4093..0000000 --- a/advent06-old.hs +++ /dev/null @@ -1,36 +0,0 @@ -module Main(main) where - -import Data.List (transpose) -import Data.Char (isLetter) -import qualified Data.Map.Lazy as Map - -main :: IO () -main = do - text <- readFile "advent06.txt" - let message = lines text - part1 message - part2 message - -part1 :: [String] -> IO () -part1 message = do - print $ map (fst) $ map (mostCommon) $ map (countedLetters) $ transpose message - -part2 :: [String] -> IO () -part2 message = do - print $ map (fst) $ map (leastCommon) $ map (countedLetters) $ transpose message - - -countedLetters :: String -> Map.Map Char Int -countedLetters name = Map.fromListWith (+) [(c, 1) | c <- filter (isLetter) name] - -mostCommon = Map.foldlWithKey (mostCommonP) ('a', 0) - -mostCommonP (letter0, count0) letter count - | count > count0 = (letter, count) - | otherwise = (letter0, count0) - -leastCommon = Map.foldlWithKey (leastCommonP) ('a', maxBound :: Int) - -leastCommonP (letter0, count0) letter count - | count < count0 = (letter, count) - | otherwise = (letter0, count0) \ No newline at end of file diff --git a/advent06.hs b/advent06.hs deleted file mode 100644 index e2a41e7..0000000 --- a/advent06.hs +++ /dev/null @@ -1,22 +0,0 @@ -module Main(main) where - -import Data.List (transpose, maximum, minimum, sort, group) -import Data.Tuple (swap) - -main :: IO () -main = do - text <- readFile "advent06.txt" - let message = lines text - part1 message - part2 message - -part1 :: [String] -> IO () -part1 message = do - putStrLn $ map (snd . maximum . counts) $ transpose message - -part2 :: [String] -> IO () -part2 message = do - putStrLn $ map (snd . minimum . counts) $ transpose message - -counts :: (Eq a, Ord a) => [a] -> [(Int, a)] -counts = map (\g -> (length g, head g)) . group . sort \ No newline at end of file diff --git a/advent06.txt b/advent06.txt deleted file mode 100644 index 4a1a2a6..0000000 --- a/advent06.txt +++ /dev/null @@ -1,624 +0,0 @@ -focdealm -ggsipflx -rvibwxbm -vqrfyyrh -hsjtzpgs -ozymxpoy -jiecwags -lztseufl -dfwibwsn -skiuhnwl -kamgzqog -axeqncwa -gobivxto -nwgoryhd -tzrlitrq -uzoldxbv -zsteobha -pfcgdqkg -prcqlunp -iwivemkh -vpkilupm -ewuznabz -veaptost -cyvirffe -ejhhqfng -ibsqztgg -xzczkboh -bckhbodf -vbycgonv -esmoyyku -unccgdgj -cqwnqlzs -edoqmykb -bkvzlhyq -yzrspisn -zlzibhca -povnweaf -muyfegxe -oaojqfrl -gwesjxws -rjknfyeh -dkquvctc -cfuzhxoj -tdzzzfqc -lzjzsyni -wjfxckkf -xmhyjhop -kmtllzxs -yohearbj -ilmvyxgn -erczytzw -kuetjsba -vwkpollq -tujwluzc -jlvedjcp -acmoaoji -gqoliyen -agckavhf -ottamfdm -jxwlyotw -tdpsrapj -carwwmqc -ykaipjdj -zdfrbduu -vwiiosud -uoixglbw -yegbwxjb -wbpqqqfv -wpynmyqi -aqdkscgd -oghnbnnf -duftexbb -ttvbofay -jferymwy -hqzimpiq -sifyogml -nymxqbws -dhdlhhqp -urtuhcrj -giwcunfq -fxgretsl -maihqkpk -pdxfkcru -xixtthag -vuzxqzzi -wxxeleug -xpopxkzo -hgcsyuad -xcbydxnx -kxocfakp -erxdajeq -tliakzhh -iygbbuxs -qlgqthpp -duzzptwk -gfnqdotc -kjayxeqf -fehitfar -yemshppn -igtczmmw -gfajhxch -bslzmgwo -xpmhmirx -yhlwlupt -nymajupw -tlhgdefw -bqkudizc -lucrhmnm -svkoaqzz -luggfivf -ckawtiwy -eeivawhj -qdmmmvdl -quezzzqa -oimsfsuo -jdvcknqu -aupohqbk -llwsasnz -zlpljtjl -xfylqxlv -zqppxkul -varoizrq -yxryqwso -gsscetca -gcbdgqyo -hsdnvteo -pxtoreoc -rwjdkwzs -zdgofynf -polyntkx -jhulgrnf -ycbzpdpw -bzvdbwsy -vydjbucs -rxadwwuo -ccnvzjak -nombazjc -lbxwdasr -cbdlkiha -sdomdvow -phjnkkkp -nmtmrnyz -nxsvmcwk -hqimjvir -vmjhhuuv -zilhgqlb -gfgbibgg -imxxugfe -wtaffkbj -lyguqvjs -pejslhls -qjnefwii -oanqnnnc -kcjyfwxm -zoxjwxmw -ihmokcrm -uebsbhfr -fxvjiorr -ebjiucyt -ofutlokv -mdfnsuyr -dzviwqdk -umwyaijz -hdqwfalt -qtyrouwh -lkzcrtwa -dtqvwzke -buplmmca -xxepjuvj -omyotlar -ytndbwhi -sbntigym -mphrnsme -xiymeoxr -kcujxcih -bydnchgk -snwdjlip -yljsymtv -tyhbpoab -zlqhvzxl -akbtnzop -xnpjmysj -znhednen -vbcsocrm -ywjajour -ejngbqev -rstykfhc -cbcnoexq -mzlxvxwj -vfdqaalp -nbszzozr -dqpyojid -hfuqilbl -uoackeup -shqkcsmr -jbdasroe -fmlkvsnt -cnomxkvk -unbsfncq -bnzxltxe -bbadfyin -skmhtmhn -xkypwglb -flbfiioo -fzywneyg -srngxbut -qtodeuxg -xvawfqli -nyfmrdsn -rdjysbxj -spmezvvj -ofoivcuc -touzgqzx -mfqyzagc -dmaurbdv -gqnrlyuw -wuppusoh -qgstihuy -uldnlrpi -xaskgwim -djjrphid -qjhmctyu -osfenjdn -zvoahhkk -xiuyatyn -fepobmjh -kmugpjpw -aikpozqs -kmgmazif -gbzlodzb -hrocqadn -noekklwb -vzwhnkvx -osrspxsc -iekmqgua -xeehndee -quttqjav -htoptweo -cyicmwba -jltlwlyy -qvccdkig -bibggekq -kwfwvrfg -eycwlcup -murgcddl -lyukeubx -twbpzoyg -dkcvzele -fozhtmcz -frugeivm -qjbhpdpr -tgkkeroo -ryuvgqgc -jhixykqn -wsebmcrn -wohtjpgu -isflpxxt -xggwmamk -tfwdsrfe -cpjvcghr -fekhexdb -zcwzqofh -awnfiqzu -ihekvqby -rqaqajij -cumouwzx -ccyrflxd -rredygrk -patcpktn -mjnwuefa -tuhgyfsw -mjpxrgkx -hupfjqxo -mgkclcrf -jkmkhkci -nkcrwgqd -apmfiqpg -pxiawshv -ledhpfaz -btikmkwj -jwosopir -mgxftcte -phkbcdex -uakftnbh -fnkmdecn -swrvbjwj -hphskevf -trnpfdmy -odvmmqss -akvqgemq -zyqlkwdm -nbnaqjsa -mbnogzyt -mchaxjxu -tcqqerqz -ayylasgq -zqbrjfli -ccjjnfat -lvlpdjqu -luiabalt -qsvkepvz -dtyobsiy -jkulvrnc -thwjbzkh -vvhrwbkx -fhxejrff -bacuriaz -grmtyude -feynnckb -hfdepyjn -lvsfflyc -xfrgfgeh -vqqybtba -ntlfjqjt -zadauvmg -itukkpqf -mrnnfgmf -hpjqvppo -dshgwmgb -pzxeoymv -nlokvrio -cgcaxffl -dvimsnxu -iczcvwho -lkxumswj -satmovog -ujwknitl -halkgpaa -pnttnodc -adsvsumi -jwerfpko -yhsjqytk -vpevemez -yvjmltwj -vdoeippw -siouxait -ftrspdpx -hptwqlmz -haewgrft -watbdvqz -eiptzrvr -msvbioso -dnjeoucg -qixvmlem -mqquklfq -sszagakl -khfbexqb -uysydrlc -inawynse -whuonlhq -eshukapj -vtrepdxm -pgjjcisd -puiunlts -replddlv -emjyyhmd -aahwhond -laneyzsj -jnlkdpyb -sqxrctuo -wmmyybvl -ldyvqldz -bzbrsdjr -ekxwhzte -gnpqywzz -afsfbtte -ggkbrgds -dlawfrbp -opypolpc -cqpxcfgh -ynmtlgvl -slfmicyv -ooguwxjc -tewmtlty -wcdwansw -ktercyvw -qrgxrzne -wvbhflls -dpfjwbmm -uigmcaow -ejzhkxic -fbewvcoh -jxbtcmwn -ywiktjqn -rftnjqpp -yalixnnw -srdsiwgy -pdpdrynx -ioroheqp -vpvvnmad -tqksxfsp -snzxciua -nrhtoskm -crfvapzk -wndbcxvf -syffkzmv -nneibkaf -unuvhnli -ujhdjkvs -gmyqgvdr -jedfxwje -bcshopnu -xgiprhyv -onibkkoq -riguljez -yodzrfeu -ogbwakaa -ymrltbxa -ourmuhrx -yxwixtuv -ptnxdvdm -oskvgexz -fbigwiaw -xctckzmy -khwiyvmw -qbqbtxpr -kavzlngz -bbklqvzt -rwlzppbq -upirhhca -ezlaqdgo -ieuynchi -qmjtojzq -qrricseq -hxkrsfmw -nssfpnws -tiaziudb -rvskpahe -pplmppvi -jxpyidio -teudseap -aclyhavi -yqafhkyd -drjhcqgu -zvfcfbjc -sqfuuezn -gwtsupqk -czakgbiy -wknfzbyj -ooxwycji -wxymanlx -ewbtpqtl -jmwnxydh -ceqdllqb -jhdbejmt -mazzsanu -uypyqlvh -itnrzbie -miuegdjz -tqxeipin -kbareizb -jgjxrycy -epshhech -oicruxsz -ptxgidha -bmgnvjtr -qvwzlmgq -cvwtdffi -ibzasmru -jfenrbjd -nrkgwvcz -hlmghdgd -emhdaicl -wdwrzocv -spwjcrud -dsgilvqn -phvmafqk -iiihsfff -uvcqgtyc -doxkrzzw -hktdpsbv -evqojani -kzapomdx -ewtbrdtb -rgshzyxq -ltinzxld -cazrrlcu -irfxunbt -rmqcsbvm -gddexbsb -qladhkpd -xlvzpmab -wirftlbu -fxfqjubx -sgogtrcb -zlqxxwfy -djgtbihr -gslssgsu -wytydgje -vmovsmdh -ogyiuirh -mtfxzrrx -kcpfbemc -blreqhel -zjsjqqyh -ciqwtpvk -yjcinpaa -wxbxagui -aqbjqmig -ybaeuhew -mjzpnttv -mevjcrqp -fpmgzgco -gklesvof -jzfssvvx -aynfmwhl -euosbnhf -lcebcalt -kvsuuyyt -ltranzur -nlledtpz -vqdrgckr -yodxnjpt -uyznwnni -ckczwqkp -uxtjgoee -otdoyaxg -lbccbfgi -mhzjujrp -cekkthvf -fbvpuhog -nzfannep -rnnqusey -aiocsiyy -uvcbtfwr -bzqirxrg -qnmfgshq -inyevvbn -wswvhglx -huxqxwwb -fdutjnfq -adajhsjk -ahllesij -tcfawzgu -zfdgmtry -byznvpfp -duunxdad -kgadxmdf -ptfaovzv -uhuvlivs -xcoqrmeu -nnnlvmga -zwrbykek -lvpumidd -hieivrnt -vrwqsvci -npbplsvm -ougzcgty -rzvgzooo -iehafkto -rzspzjne -dzvvhvld -fgkmmfda -xjsnnlmd -igvjrsuk -narcempo -xrhoiugu -ghxbpomr -waxtcbcg -tmqgsejx -dobaxhel -mpzgjyww -ehyfvnaz -zxrdlajd -hfquyvok -aqxxdcqv -vjbukram -rjvttibk -pryxgzrd -hcqpxgee -qjgqvoal -wmbuvcty -zpgxmdiu -foequjps -lmdjwyfj -mhqudwzv -lrzkttsw -owyatnru -gwppbbfb -fvlkdsjk -pwhlvjtb -zgldiibp -sokjzgvq -kfourwqm -nfqoyvsz -hdiwmrhk -nnapsbht -blqjjtwy -aknoauti -uhgowkyx -uypyjorh -blfeioot -kzbukpxk -kfmbxgle -zmegahum -upjouzrg -tkedvzfy -bxwxuutn -rrwxobjp -jdujkhox -jkycewdx -ivlbibns -qjshodxf -bektjeou -wotjfgfl -rjrcfiug -aklhubjf -kwpnaezt -lsqvzdom -pxzvorct -vcxazyzs -xsszjsjq -ydgfsukl -gqxpcrla -rvsoxkhy -rschupcm -ivlpikxi -etrnyvkh -byzymjms -qagdcqww -sxnausxs -giuitchj -qgolehtg -keeskeyb \ No newline at end of file diff --git a/advent07.hs b/advent07.hs deleted file mode 100644 index 2705b9d..0000000 --- a/advent07.hs +++ /dev/null @@ -1,135 +0,0 @@ -import Text.Parsec -import Control.Applicative ((<$), (<*), (*>), liftA) -import Data.List (partition, union, intersect, tails) -import Data.Char (isAlphaNum) - -data Chunk = Include String | Exclude String deriving (Show) -data ChunkV = Includev Bool | Excludev Bool deriving (Show) - -chunkValue :: Chunk -> String -chunkValue (Include v) = v -chunkValue (Exclude v) = v - -isInclude :: Chunk -> Bool -isInclude (Include _) = True -isInclude (Exclude _) = False - -chunkValueV :: ChunkV -> Bool -chunkValueV (Includev v) = v -chunkValueV (Excludev v) = v - -isIncludeV :: ChunkV -> Bool -isIncludeV (Includev _) = True -isIncludeV (Excludev _) = False - - -main :: IO () -main = do - text <- readFile "advent07.txt" - part1 text - part2 text - - -part1 :: String -> IO () -part1 text = do - print $ length $ filter (allowsAbba) $ successfulParse $ parseI7vf text - - -part2 :: String -> IO () -part2 text = do - print $ length $ filter (supportsSSL) $ successfulParse $ parseI7f text - -allowsAbba :: [ChunkV] -> Bool -allowsAbba chunks = (any (chunkValueV) includeChunks) && (not (any (chunkValueV) excludeChunks)) - where (includeChunks, excludeChunks) = partition (isIncludeV) chunks - -i7file = i7line `endBy` newline -i7line = many1 (includeChunk <|> excludeChunk) - -chunk = many1 alphaNum - -excludeChunk = Exclude <$> (between (char '[') (char ']') $ chunk) -includeChunk = Include <$> chunk - -hasABBA = preambleAbba <* (many alphaNum) -preambleAbba = (try abba) <|> (alphaNum >> preambleAbba) - --- abba = --- do a <- alphaNum --- b <- alphaNum --- if a == b then --- fail "Identical" --- else do char b --- char a --- return [a, b, b, a] - -abba = - do a <- alphaNum - b <- noneOf [a] - char b - char a - return [a, b, b, a] - --- where ---   firstChar = satisfy (\a -> isLetter a || a == '_') ---   nonFirstChar = satisfy (\a -> isDigit a || isLetter a || a == '_') - - -- b <- bChar --- where bChar = satisfy (\l -> lsLetter l && l /= a) - - - -i7filev = i7linev `endBy` newline -i7linev = many1 (includeChunkv <|> excludeChunkv) - -excludeChunkv = Excludev <$> (between (char '[') (char ']') $ hasABBAv) -includeChunkv = Includev <$> hasABBAv - -hasABBAv = - (try (id True <$ preambleAbba <* (many alphaNum))) - <|> - (id False <$ (many1 alphaNum)) - - -parseI7f :: String -> Either ParseError [[Chunk]] -parseI7f input = parse i7file "(unknown)" input - -parseI7 :: String -> Either ParseError [Chunk] -parseI7 input = parse i7line "(unknown)" input - -parseAbba :: String -> Either ParseError String -parseAbba input = parse hasABBA "(unknown)" input - -parseI7v :: String -> Either ParseError [ChunkV] -parseI7v input = parse i7linev "(unknown)" input - -parseI7vf :: String -> Either ParseError [[ChunkV]] -parseI7vf input = parse i7filev "(unknown)" input - -successfulParse :: Either ParseError [a] -> [a] -successfulParse (Left _) = [] -successfulParse (Right a) = a - - -allSubstrings :: Int -> [a] -> [[a]] --- allSubstrings n es --- | length es < n = [] --- | otherwise = (take n es) : (allSubstrings n $ tail es) -allSubstrings n e = filter (\s -> length s == n) $ map (take n) $ tails e - - -ieCandidates :: [Chunk] -> ([String], [String]) -ieCandidates chunks = (includeCandidates, excludeCandidates) - where (includeChunks, excludeChunks) = partition (isInclude) chunks - isABA s = (s!!0 == s!!2) && (s!!0 /= s!!1) - candidates = (filter (isABA)) . (foldl (union) []) . (map ((allSubstrings 3) . chunkValue)) - includeCandidates = candidates includeChunks - excludeCandidates = candidates excludeChunks - -inverseABA :: String -> String -inverseABA s = [s!!1, s!!0, s!!1] - -supportsSSL :: [Chunk] -> Bool -supportsSSL chunks = not $ null $ intersect abas eabas - where (abas, babs) = ieCandidates chunks - eabas = map (inverseABA) babs diff --git a/advent07.txt b/advent07.txt deleted file mode 100644 index fb0a641..0000000 --- a/advent07.txt +++ /dev/null @@ -1,2000 +0,0 @@ -dnwtsgywerfamfv[gwrhdujbiowtcirq]bjbhmuxdcasenlctwgh -rnqfzoisbqxbdlkgfh[lwlybvcsiupwnsyiljz]kmbgyaptjcsvwcltrdx[ntrpwgkrfeljpye]jxjdlgtntpljxaojufe -jgltdnjfjsbrffzwbv[nclpjchuobdjfrpavcq]sbzanvbimpahadkk[yyoasqmddrzunoyyk]knfdltzlirrbypa -vvrchszuidkhtwx[ebqaetowcthddea]cxgxbffcoudllbtxsa -olgvwasskryjoqpfyvr[hawojecuuzobgyinfi]iywikscwfnlhsgqon -jlzynnkpwqyjvqcmcbz[fdjxnwkoqiquvbvo]bgkxfhztgjyyrcquoiv[xetgnqvwtdiuyiyv]zyfprefpmvxzauur -vjqhodfzrrqjshbhx[lezezbbswydnjnz]ejcflwytgzvyigz[hjdilpgdyzfkloa]mxtkrysovvotkuyekba -xjmkkppyuxybkmzya[jbmofazcbdwzameos]skmpycixjqsagnzwmy -zeebynirxqrjbdqzjav[cawghcfvfeefkmx]xqcdkvawumyayfnq[qhhwzlwjvjpvyavtm]sbnvwssglfpyacfbua[wpbknuubmsjjbekkfy]icimffaoqghdpvsbx -enupgggxsmwvfdljoaj[qlfmrciiyljngimjh]qkjawvmtnvkidcclfay[bllphejvluylyfzyvli]heboydfsgafkqoi -ottpscfbgoiyfri[iwzhojzrpzuinumuwd]orfroqlcemumqbqqrea -zhrhvyfxxcsdpris[xdqecoqujrnqbgla]bpwibmrkcfbzigf[rlqtqykdltcpusvc]ybtsglkxrhucxwv -msaebhhuxyaevahov[skkhuecthcqtrvtunw]bzlvljpsapsezchptjs[lbcxoczqbyysmha]zdqlfydjdctfnuetghr[owwhfhnjmpekukafw]qqitepzwooogqifl -jhdfwesnofrkpse[mkruficpgplktbmoo]mnrjpuvsauanolvzhym -ucibfxxivatgxlupp[rxlbgrqostcioowo]faiimhdhgpockadenua[teomupxzwrernokhyud]ohsfljkyjvkfzwus -gzxcgjqdbyvfndfpw[ypfsapvecfqihnpuszq]mvwxgfkniekgqzqid -fipkggpfwvgrqiwosi[itadifxotejgzkt]szwurlcbvffhgse -ketltdpowbxcusrcua[oonjssgqvcgwvlz]otjxgpizqfpcriuco[mgtgmwcjecomtdkxdev]dnrecyeyhqcpausqzsw -lcototgbpkkoxhsg[erticxnxcjwypnunco]notoouvtmgqcfdupe[hubcmesmprktstzyae]unuquevgbpxqnrib[egalxegqwowylkdjkdg]spqmkzfjnzwcwgutl -nesmourutitzqtolwd[rurfefjvljejcufm]jagkqdwpkefkjdz[cctohikipqxxbdjxsg]badmffkslhmgsxqscf -vvbwenaczgfagvrv[dqjzprtikukbikojlgm]bkfrnbigwaitptbdcha[llnwgonsrsppphnnp]sqozspzzfbeigmw -jzkzjzzghblqqme[fsqzyykcotbavruyp]vjzohzsunrevhmpi -jlngucjirfgdgorbgb[nvvkvebcjahujrwjmy]cfnlrssuthgusytkqt -kegsdcxndhtlskseb[zbtcngduxclffzlw]wrdqbtrqbcpbeaiqvx[svsyqhkrryycnkceq]ztrawvffepndijceeih -imtafeyfivrcegpagsl[tjzsewuwboushjl]mtnyptormlwiijlds -sblhlpnuutqgtuvlc[jlkivbtbkivklrnr]zkzcykzkyjxarepzvrr -ojuqmcidxmsyjkhuh[gsegkxlimzuyceo]dlhjiensaurluhul -sxkxluastorxmnd[gwkeczwgmamhjquth]yvpdadteadabxgsplmr -cndxxzfcmwwtcibgktm[ntsvmiwosuvniztv]onnfaenxutizlbxdk -eqiwaqxxstamxgzc[vnomzylvfpmcscjar]rwdqevxpeqvrmvliu -tvzbzkhvpzedqtp[whzeqaisikjjbezzcow]hqbizwaaffwbtfglq -ajwpjiqawievazmipkw[mgfhwrppaxagfdgfsa]iaqcnovhgearcutadns[anaukyaljeflxdnucbn]bhqcwrkeolrhwdih -neakzsrjrhvixwp[ydbbvlckobfkgbandud]xdynfcpsooblftf[wzyquuvtwnjjrjbuhj]yxlpiloirianyrkzfqe -jugqswdvlbaorwk[dfqvlubdcigzpcz]aqhybhnoukoyxuiw -kkkfysfugyvqnfvj[ahhqkrufcvhfvapblc]jfincvlxbjivelqrs[mpoymhslpyekjmy]eicbqlzecwuugez[tsqmqvjiokqofbp]senbbdxrdigwcjwik -ogiiiqaxakiaucwa[ltdchlxwnzefocrw]koxethzfvlsewbqdt[qdfqgtzftqpaxuzcruo]fvkgjcglmmxqnifv -epmnxkubnsnyeeyubv[ydzhcoytayiqmxlv]edmbahbircojbkmrg[dlxyprugefqzkum]svdaxiwnnwlkrkukfg[eacekyzjchfpzghltn]ofwgevhoivrevueaj -vvwvubpdeogvuklsjy[psnqcfnqhxaibnij]fwzpkbdgmpocoqp -pjdxcbutwijvtoftvw[zkqtzecoenkibees]llfxdbldntlydpvvn[uaweaigkebxceixszbh]xxlipjtlogbnxse -zmnirrxetiwyese[cedxmaoadgjjvsesk]nuisspyclmncqlasmuy[zxwlwmbzbjmvubgcf]hfqniztoirmsdwz[zlffqhttbpehxoabzhx]upmydjqzzwefvgdpqu -lwvsssgvvylrvqh[duxjrrqkzchbpvnmm]pckmefvejytvzavgzgc[dcekfwnrzooigwio]pmutxfiwfowlfnnggl[lzytuzirtzgwhkz]yzgxtksuqrgvvgfefon -tpmyecqhqjjpertn[qomuwmxstmgzexds]ftvqqwsvsrnmvpg[vtpebuufpyieqbhuu]dorortnekxkwnploro[pzajzflqvbkhautupl]eowpcyzmyvnntvzmvx -foguzgeasrkncbny[tlyweucylxkswwxb]jtzjubgewwhlddar[dkddqrpwaqvlhdp]skkegnatbjubqglwu[pkwscrmgvjzarzb]ibaagrqwnxblvtkg -ejgpdxesfyoyaggmymi[axfkdoyoqkpkhusfwe]pnczsmszqevkqiwlfc[dqhzcqjzpgnoknmv]ldrjdhopfyctlqtn -gqhyasteoryuofc[bhblyxlbiqtzzyzvzqg]dtvxrlkyuwxttyw[qvvzvuzhkemwglh]bopvfttkwtaeckq[vvhkkgrddaoxnzctwar]gsscsjuictekguq -sviwnvbtrgyydtadhz[ipjrrywkoxwuzmlrzd]kcxruwyisqvokporkub[tvarlltnhjmcuvvcck]raafszljrhconjqsqi[snbxmvzrkojpjybkgpi]ekoeuottccqbxrvpkb -vtouviqjarqwnoexuy[lzxhegzxptktueqo]azfsikzbwiajcrhnas[hvqxgtffjyyfgsjowxy]ddbmpksrtghvvypev[eoepwehfavxzwgt]igsulpdhrevkghzh -fucimprxzsubuuzmk[umzezmmnkfzvjlela]qxzdlcryifsinmkgeha -kauzjbailyzpvtji[hgeslalzqgpdkpuvomw]utsywinellykvmuawwr -oacbdgfaszolybf[hsytrkjoylrkkduzfz]bmoelqhppaxshmfjl[cusgbbuydfqtbbmsju]mcftwalxlvfvvpeu -ybylybngqxxrmplf[mybpfztzwnisfpfgqmb]fsllclehoezgthek[ldxhvhwniqfpqbl]ebybalwrmrqldukb[okenxoqxjgrenrcjd]kluumgtqybryflqi -mufsafgfxiegfgf[ydibrbrmiaulexjek]ouwchrlvilmygbuppjl[imyaxsiodgjteppdyy]ugondbuqnhjrzzzn -idihouejjocbahe[mclnirhxghanatge]ubwhxskdzgkmyrp[vksyktucsyumvxoc]bregaefrdlrgmtwt -qnsqwkqttdevlnzg[noyxiueharjajsalnhu]heaxmujxhpgjddqur[xnqwujjeasceovnroiv]hnrnwuogebatnfsa -evruuxfhpivnmknolsj[itpsnnhbtrrbllsbo]gefodpceljlvwuahz -ebddlswrvbjohtnkyip[qkssdudizhcoaazvyow]xvnqicorrkjrnxixp -bbmmzbebuexzmtbr[tpzfxmwgamhaikfpaeu]kraaocehdtalyjrf[zzqqtjplepyidohpvx]kzehgejueimxlqglfj[zgysopfdgxtokkdxwk]gwcfaflybmhdgoxjq -xztpwfipuczrtoyt[uwnlokmtopkhdtemm]sdfmvgvctgwbdjpmvhh[ozjpkdigpjqzqgy]yrkwokmkrevauzroaqm[vctyupmildfnnjomue]cvagxsievhrukgyqzg -jpmvqhuabqsvroxgmyk[toieqxrazxhhsbrm]wdwhoqdddwdacuo -mlaqnefjmwbxeetyxz[sziklwesunikpiqjark]iltkcgfzmhvusdnlr[bmfprkswemctykvio]hhsmvppnztgipxij[kvlbovfklljaumwmy]mdpaiazrlputabj -czdgmoqwzhvfnulxo[mlbkytxjhscsxrgchri]veugcvavrzihzencp -rbjtyudgcswzezr[inlznakcutfnnequc]uhisbxotgqqtzionoq[hzlgqtkpeubvudi]qqsryagiowmcijbejhr -wkvwdohwocizssun[kimsjrwwfpilzpkf]ruqhrplgugwhmnn[iouhwbjnqzlqyewxof]exjuguxwmphfypvsivl -bcnuloxdfhnyesgtdky[hvmgfzcjhhiiqino]sfipughwbebgstwrua[behnamammdxrnnok]ttpbmbflilacfvwiwd[sosjbmmjygpbfetziv]qcosdgrbfdsgqqrlhym -fbmthzppxydfxiipo[zsyfzbueqoaoxeueado]santekllapuywlmwjkl[yfsonktbvuyilcxf]xjerezinsamruvn[cceqpogyrsztadfap]fiivtuyynltqoypypou -lfjigofbbnyrdlhxv[gfblbnmkfnpxbio]zeqevpmpjowrxtw[mofuoyllwekzcjtxjhp]lnzewigzwruzlbjh -xjgdfbtgqmgazgvtif[farekeencwufapef]dxjltmtfxuiydactuko -njaolcljynwvrwy[qplxbpadtyndosjcch]fscxierutuanappsqiy[jftravlojauqkmgludp]pkfwxpdfcrjrmbucf -iyotvokljqynxnpjsfs[lfwwocnwcwstidfpb]mutsdjbqfruxxprzrnk -kpvxcagazjsxgagg[sabugyxucglnvcjb]uvrdglycowrjddy -zclgitkurpfdspcbk[yedvkzgbawpthoyn]dhvnmtxbrpttrdrio[drdahsrphffqsigrlmk]ykghbvcdosmtcgxdeb -rkmajkdvlbqwtnuanue[brdlutivdnfekggixum]pbsgstnxgghrygqwpf[rlqzaflmkbvvefdoc]jhbtzkodsfglsaow[onlllmfziapizsd]usvejrxmziulunvjux -jqlketojwcgvuce[ftcxdqqebijrnfzjriq]ucwgiavuxrxokmvxgad[zmyusreluasvwgzngmx]semjnvafnqvwtvkimy[owvczdccmvfohtbijfu]dmhbiikbzcualbbs -roewzhbnwyvondnn[ejikyjgtzpmepihnnl]yurjuztavzqkxqlrle[mbjcyqrzfuhhsnipzx]fcrtuzhrqorxrdmrcn -ycznijylnnqwmqzdd[ycnztjgxgyapvafhwaa]pzdtesugxpchhdb[sdruhgxaqpitoxlncc]exnhjwmnvqmquvclhu -iufdjzqflteyvhrem[eqiluhtbfuegasby]ikqccaxrpnjjrevdsev[wfluwngzffaxhaflbf]wnlyrgvaxzsmqvc[smkdicgtwwwxmdizdi]joaqneodtgvioxzg -pddsupswtnzture[pehcqhpltqocptr]ymzrvibfbeasccxh[jwwhastouxzmyhh]xsllfxcuzbtciegzcd -rnnvfdyavlqnvwze[aistrderxrrojbsspnu]hfkzgodowrlajmmeq -qnebfycqdylighjpgo[ablnwbutiwhdcrmwbg]hnqeseogqdsdhith[nmrgaeenxhizhoqper]tjxbhutvqtjzpyzh -batsftctktgebkvzv[rovosiyqqpafttgdmoc]ynnztvhekfnexdcuq[lnevylboilqebnkf]udftgymwddomqmy -ybrcyivzafzoubcj[crhigqvjszwqflocc]aesdfdfgzcnyxsmzg -oskvnzcbuyaytyixp[ypctohskpfoxhpydwpf]kgkbxhyfncznsar[vulxrgolpxlqzkknzva]ightbuekpmjodxzfky[nyjpxhpycxjrqdno]jhvrgxgfjwarwzkmfj -relqdjmixussrbijgqj[mfsyrfbtjbojcesuyw]wsckbuhopguszeh[unyhvpqjxxgfbgyf]dddjalolfjwliasyezn -xahbldxnvsviywko[ucmjsyoejvcggbtx]prfpnzzlexpolsgsmsf[bgocwabottcqekxs]ijvpreqlfejnqhfbi -qtcopopjmmcjlyfrtot[dmnfjowrhqtqhevs]pfczfmefcnnfbxiovzj[exoentzecnbfjsy]comgdcvnlyaemmya -plhhfkjlotvzupi[ilbcfjbrxuildya]uuvdzteoijumhavq[tcuesohvzusidbgpw]hdsgdngmjtlybnas -yoifccopobbguvkytps[xhkzrdcfsyhpmuujbt]ocidhllwycinggwu[kouoyzxtwiwknduclv]wkokzcbbqvjxtubqg[plgujclgyfmafflyurt]rpjrpxriaxyinneajvy -jbmiqrqkpbjasqhvwcv[zlyzpnhzdtqiorod]dkigqgjtzmpleja[ijenfaygzeceopbmxks]iwzcpoekmitcckbxbzr -zixveaipmutzulr[awdlukrjbyxtssfksb]hreqwpgrawaqwtqpt[bykxrwwuypetebhs]xhtujigporvkxqot -cldscqwnyjkrzvyegsf[zwsvoudppoalxeja]dbqrfscekpmhmpoellj[xxxpuyedbyuihdzdf]bmtfdebklpxvuacq -ohdqlkppqasvyrkkjm[hevshusrmyhuyyo]qbmrotalialbvje -nvwdnytzqwrugam[pflhibktydncffbnlva]lguqdlkusqqwovr[bgufsrqjnngbwxnhuco]uanvcpxragayfoj -zkvrrzmgitfjnit[gezdzgcdvxdkxytcq]avznjhxyjldbqpfoua -mmyxbuoieontkaxvnk[lijzkcghkhiryhceqc]zuouxoicowwkhklyp[baqxxkavhepnpepnj]jcdekzxrpfucavdq[nxrhabcrumlshoitzba]httcbsbgoyhjpkv -hpzoxihsevceefdjv[nxgkyykcfpjwtlz]lkszzbxqdrwyktr -djqunzvzcyxmjqhy[qapfiyujulhgqipfm]htqbtlhlsqxnjyply -lilhndsdretyqjojrn[oxrhvlpgqiotmvruvh]hgdlazecfzdrmegmnw[alxxixmnnjkyhrqjgh]mpbjuwwcyhdfxynyk -fcrwgutcgcqizev[nwszwhfvqtdhrymgqf]iiahiososrpdafnt[gbkrardsossgcvu]fmudukrxbiqyrpi -xpcgsvaeydonptb[ewpsimxlttaeoth]gersjqmmdamhikqtv[sxyvukeegkkbbarjknr]sohijvshdnoawujw -vnjkhbmpsmvxkdt[yrpltayaihgspvnjxb]ivhwkahhjjlwzxfpz -ofoancxlupttxku[hkedaqsibrvtvqu]zkssllvuecmgtqvs[eklsqwgwuhucbxykl]ioompempaewmnco -nwviejwlkyokiqhuvo[csddbtlbfdwtakxlmss]fxdoqlbdjhoslraj[shasfhtvpcsajdsmxfp]errsdzqcqzbrfnkeux -gvmytvlyluvnmemhgjr[bvqbhytqwpyemefwo]sygljhpvyjnuxzjqy -zootaoveazcrmtbda[qlxlwntntbkjtkqve]vffdsbekufzemgwomh[vzllvqlmloffyyldfh]alltnttrzqrchacoiqm -ksbuxsjkmtzsfsy[shracmzkycsuqrei]qrmgsndwzkqhtojsn[innhjjhyfsffgsboglx]zhwuwgyrwmucjfii -dagldnrnugbavjwiiq[vrsiyprmsvuapxvn]piirprosbofdwzuuhn[epdsrdcpgzkkzdjle]jylrtjltlmvazfpmh[rqqteknolbyzykdysvr]ieejzvgtumekqapi -mtamroysxwglblwmjn[gmebbprtzaogucvyzv]tjzuzqyyfuihjubuzu -pcfbudkakpzlyou[zznswrvmytntytfkt]kvudoarqnyybzeddvn -moelqaykzlstyntby[qmpxihbeysykajdo]omqcjgdbuqvvydd -ddyczdjdwnoacci[wpgjlohduqnlrifih]dfwcghvsdezgdixnpxe[ohhccenoirazgekq]lqtssqpzgusrlvyrd -ewirhlfcfhkqbvmvi[ixrorekrimzzkckpel]ihyukzubvqdpnmqpgu[mbtybrusfomfdhlg]ucrcmbvpnjbghnxdo[lyajfieycgiubui]llelwgnuopqhjax -jpltuunwbrijwnudg[ejxyrxniclwnqxxnh]krckhlysnmqahsz -hkdpdpshmftvxob[fsdhonsqalgpydpub]dirxpfxsxhpxliqg[tvbhlcqkymtbnytjp]xuvawokttfililgwgue -mdnmunbnueofzddapl[wxfahokzfixiapig]wekvqzgvufgztlgldh[zwglgerouhvhtbrdib]xeogmvaqszvkdvxv -mbqnuqonmkxmczjo[ueqnkvfdskaqwesufs]zmoqtlzfcwqaxdnddkk -qoaqjkdsftjstyjyqd[fyvizziweplccjt]ryvpqznfcdvjxuu[syspurpgsonxbbdrcc]vvedpafqmoeugwuize -ctdgzypcrjqxirm[ouyjhaohcueqwdez]kroowbthpspnnzgzuau[pqijczlztofszvdzhx]iccbpchemtflqnhdrnw[esvbnyvlckqirev]psrquqfxaotuzsojbt -rgukaurlmsyzovie[noclopxqrusykxpix]zbbopbxzogbeppp[anouobvemneuuztti]rpnbuugshsxxbbkhauq[zpqywyyxjfabzyppw]ecdrhvipvzregbgl -vmbtrbtoajfkswgy[kailajjwltvmwasynoq]goxmpryedtsrgkx[hljqifnoadoljqtub]xucplzmspnbxvliaap[tfqpmrhbakiidoxwa]iceqprkydjgouemqsmf -cvpnedbnibipftign[cigxthfejgyjzvspaam]esifvgljjjbexwm[uspsplcqhomoszleq]qnogejwqjdiznyfellc[sszzsifsfavntyghfs]btswodsrhcrrbodmtz -lvxwpuujqxypkhqfymh[wtizujakvxzrqwpols]jffeswrfpnhhakyhwlz[lzyloeveicgwixnvdx]uvwhpnjlszclssbf -noblqdnmgtyjbxjq[chxjibegmcbmljibes]edtgpajthcmqgpz[qafbzkjfqbjzilzh]aorhwssnugyflolh -hunicsoijinxshpfskq[lniiseazhvpjiyg]wirqusdwvaiyatimhx[jntjijtppuekuvvzz]mxebkmgiqyfaglow -wvzgoeqwcuudhjlc[nsjqegpxfiwvbtyuo]hehqjsarzkbbidy -ncjcjhyagdubxcibe[qpddbjyualjarnnpkf]cizleaqaaewqysxwys -jqslpqaqntewoglud[xtzdawarqxbigpuf]qnxdyobxvfsrwoaz[snegbwbzchqcbavh]kipasixtzznhgkjskv -hptaschabsnqdgmuzoj[satvzxkqetnonungbjb]gqhigqimupvihhwy[nejqgulbxtzfjbjlya]jywahuqdzrufxenshjj -sjgpoxxqtfsltzk[jqwzhblplilweukbso]tgorxisfymrcgyr[tfbebfnnljlpcfeps]ahpjfbonoajtohthzri[tdgaokthtdhxpsg]ajcykosmkhftnrjqphg -tnwtnvvrpilvadiy[taucexvsohfmaxd]cfhrctuhgqwjgtll -xzzmvrhyhwvprzczwz[lnshilvbyfjqgff]qfkoodzijhqkpuob[iyyvvfibosnuwlov]fhbcvpuqvpxmlolhry[osdmjplktygtobvt]msazwlubhinqvyfh -wanhwievduqinfwlcou[uyalesnoaqmajcc]zbdddgzmqprwiia -dfovljmseevxcfarf[enpclythxgepfzqcw]wechankwzxxkkutq[mvzawbhttzrauulkxvd]emcdawwiunjraebra -sylgfxqcfrqgeeuh[dljwdydnbuddmtdgp]fhenkxvmwvdyaukaxa[xcdbxlqqfgqtjyhoi]tbnpjbnpoxxaxef[rlnmcnmntjlitsmn]vkculrpgrmqsrayre -xexefhsfpwtpxuygp[omxfywhnlcapmpalz]foblbhtxieggkgpcru[lscwcbkqvexwzzbri]ipjoiumgoyugfzq -hbeghglpgqnwpxqio[pcujpvhzhghnyjkmppe]jwcnwmqwctqgoxpj -apqmhkpxrtrfwulqbq[trthojavkcrlcgc]oikizlfqpukeudv[afgmhbusoqjubra]ajbuhxzuhecopcxm[lowqlmwiyvmdojjla]jrrhjmopywkqrhlgicl -dxrqnbrkijtvmkwq[dvtqzljjbreayipqgp]erhjjvypeyramuaab[cjedbzbceteuydrps]kolgelhdemrbeviu -gwjakwyuaxixflozol[omjuyjzbtditgoznip]nqybdawthoydext -lcdwaahhbhajoai[cszvgduipwduhgmo]vpsgnhmtypusbgmhwnb[qitqpalswmqvjiu]iyjenmmobfasnzqefci -tkxizzrgmsxvmrdawsx[edbhkciwrqmoflyang]nbuwbbspldrfhic[guhvpvocfyjpwwclv]olxhqqgrylvzzqxxd[cnhwdegsxurungopo]rdenofdlpgilpiuvmr -wkadrydzokfmuiah[mihkmnzzjladulkvb]weqzktdsbwalcdijda[rejzrqqdtbvrwgbgojt]ggruyvfdesfdwenyx[jjyyleykqeskpfmzl]ssqauxmvzygppvncz -djzzsqykcfbhgfoq[frykddayaohlxmkem]kawloxhrgcpronph[xxkgjvdfespwmnja]jddmrdznkctmsmaxih[uxotxlcobxfemckshh]irmewesnknuknipl -hzojrovrbmfobhsau[itboujfkrmpgjpsvsr]qgczawmbunmisxs[dtrvnzrayqlvdpyzbuy]wrcsquxgcxpvbwwzlqo[kqbfajfleopglhfui]bsoomwrdifoekal -cntxerwyrvbludhaa[fclfiyjfekdtavmgy]lnvvlflygrewrgswx[juijxzrpwfrmshbttg]yjeuhzyjbmbdslbdhf -gclzrtvgfbqqqcl[fdkwmnpoansxtklyusn]ywwzqahbabjbcbzd[kuiejkftwfuzmjbiify]tabpjhaiwzcdnzvof -hmshguykeqstxgzs[fsnsxtrvkdyrlek]rkzkooteryozbwmda[jyjzddadewtuaqulp]gtprcoocgdsfbtduekc[llfoixzevsmexhuitz]ppiutxxuvaxhzgiib -ouvpvcchazfdcljaux[kxqnkynylosbuekz]arsuffkkpzlwuibqd[lmmxhndkoldfbtyfpw]nvcrjoborzogjhgwn -ojesaevpprrzqaksixa[ykxbgapdjiulhmxgihm]nrxxnhdwodfgqoeproy -vzbltcugyxvtlxqnkxu[fcflcasuyaljgewcynf]azqaltkfsglwgkeh -urcslegrolaaalf[grobiijzrtgpntne]uhpzjqkslgahpkehix[prmevyrajmgfhsjpag]kwfhbrhzkojqazxjocg -zwfeopovkggasxxb[fadbebqmbxwktwfdeui]ftomtaogfvgkkdrkc[rdkdznntsigigjiv]warlzbzbnfbjjsh[etjzyzfdjztsfsyi]dulnqfxjoewssxgkfb -nvrsqzcyguparczn[ewfmgkjaibzjoiex]kpooaykofbtkpawayfh[ssuzuankcdhqvold]qaeuwxgakqvcugn -rnlhwrnjgxwleghohuz[nktpaaaciwyfagkpqw]yeyzojziajnryse[bmpxxtaljjigfiv]ojzukghfhfhykqrcdyy -doqbqcwjoldvwtws[qaxghysnphejfacrnkn]iqyhfkjogmrkjpk[hfjqxqeuzwywwmnzj]uzhpypjadzqcpeibcgc -kmcmhdptzlhgqui[cpluzrcwihnwxrsdoj]czbxutspkzdwesrc[fccnqmeaqfmxtqqng]fitsnmdmyzwsifevbat[fxhgcmqhxrudtnleoww]yhxgwphkxlzhxzjnvcp -tmjpplcwhmsaxav[epfnxqdzfpxmaztdqn]vwdoatnafiotogpsxk[lydghxujguhqcjqtbbk]mtvqsesoxvybfrxyoi -fslvgbiibdkhchajyb[zpbhqrokrbfuqrowop]gqqzoqvfsdfcjcdurrs[xhqfcfytbbekivnvod]jxjwuxivnyhppvfhaol[evfnrmrjnnhychtpv]emiyjcjsnojxexs -gqaygymjihevbsps[iepworrljuepufyvne]fzfjulzebpsphczby[kxaohggiqnjpdbf]bsjfluhncewudkumaxj -mvjlhovwivdanexv[iaphahshtwtnhoeoqsk]syolycabjeiwtwtec -ikhcujftlekmcnmcy[ubsoslmlaitakaqb]ruyiqnoobymxiim[ppxtpuphuisxnqumd]qxjhzfwvixjjmfgaqej[bdjpilcwzhqphfumpny]itvjttbjsbfmxppif -xhemwtnqvfankrccdtk[bbjzsytqxhxcgtedp]ksfozdggjvyvpoyw[tberajbwhcirnenwv]juojuogrifenjsbldn -bczvqdwkurvezjxgrg[yjvuwvfypobetomm]vtfujjaergrizoots[snwcbtqylvuhnxyvb]turadiqlfjvclpvbweg[mekdlejerxpllbf]bgkveafnrceyxufsqj -duqeascyrgxyhlspebo[kzimyrleaopbbwmbi]xsxqyleqvoscazopte[debdbibiuaosfdyioum]vjaptdzpitqctukwhf[jffyamdmvkrggbe]qrnqpwcdoditjixsc -cuxdugzthpcubgw[qjvtzbgagyebkobkhf]tsbcghahxswropcgj[yenmfdvoxlqekjsk]kjdmhdgepvdoovzvg[mafjriyxqtotmhxgvty]mdyayljihzqxhiga -ehkhfoqcdkpyxeum[xvjaglxwocodctbzj]osufidsaijsczhtfg[rvmapxxierwnjkc]pgshnzbphxdoaitou -wagqtjalswmbehwmuwm[oarjxyzwyhxzhpgilh]qapupwvuflcoryf[hmqhnrjiahzdfbaz]kuprvbaykjhqagnl[wfxatijeapdinkt]hadtvdjbkdduycdut -emfkovpbnkaxykrmwjg[otoxyqlkgczzivgdt]nsvpzdvcbsvrbpo[vdfxwihznfpxlbsju]xbcniikjhgzelav[opidnljejcjawbikt]gedgtkiksnpijteviu -fxbpujpvuboflfip[dogcwovzlakonhdyww]tkzftiqvyzumadasjtu -rqtkvmbmqtdrqsahsdy[dhaassflbjfdslopp]zetcyybbahysvheand[uncbkqyoidhvxjf]mxqjozeotsollwolhs -pxfqsysywqfsmername[yfcktnozutkhniqyp]tjzzakrnlxrtscena[bitenzjdqfopqevroqo]zujogbgemdxiaven[dtxlpfkysfcivyrxqt]fsgjjgzltbnlvdojqvk -guclyozvgpvbuhktwbh[qmueutcpmdebodbilp]vglsdvkxogzhzewjpl[guoovyobczavohc]jdguogegerfiwrxthui[hdcvpajqgpsoxuoawmz]ztwnqkdjnnwazrdzpc -llcocydhktglycn[aqvpbqqcyyjlfspio]bfwtqbvqbywnhvn[bdkrsfpiokzttiazuaw]kchhszhegdhxega[mgfuozyxaqcxmillwlx]mzcerkylhvawvyujx -jceiyppxbreywlqlc[fizmzubzyefdntbmd]bmholmqrninpjuux[wkbshvxwlfhlrpkbk]bnqhoqtiqqpsibgykwd[ajvhuevpxmsrjrdwt]ejcwhcsechltmxlycwv -lhzgbwzjykgdqwj[ksxhpuzyromwycwqtmi]fqkgkgvjfshsltg[ypmdudbfamagwadtia]nxqvzfdgxlwbbkrssc[zqmfrjzhsztnqbdgo]dvzoywqsqizywigsqsm -vvnbnhvgcpquhzbarub[ufazesxvliazvkcanib]agtuglmgoxupumcispr -mtpdvvydctgradgywc[mtpimzrgtmnlcge]vxbxcxjkpticzboc[ffiyihkovkviqjifrnt]yhxctiahahicybqti[latcrvinlucwkxhmc]ajivvpmxwiypcjtevwh -dpnjvkzcoyyzmgvvs[gtjdsruwdhyukkx]qndpbpmhkdngjmab -raugsxxkqxpsglitbj[ncskiewbnqnhxvojfx]qnqtemgvotsgnlgxyb[exshfmlaagkpxueykd]vgcwastyxsoddgu -vtmkqugezjlfpad[ljdytmxdmcfjvqus]zwkxtirtowwwoqybn[wwbggxlelxpmctsyio]ojizduyxsklhvogj[wkjkwbzdmusrmnwuq]dnvercuduocxwzzqvc -kcuaibmbtowdpkk[behnytmljmvkfzjzx]vwmeazoaavjnyopedp -jzmgdckgiwbhbits[qapkyzlxkcinhakr]zymyymfbxgiypcn -kbcfgsoqgqvurokxs[ygvbgzijbgfeylxvl]xsjucuevvfddgod -unfolwpdrbsrzgoo[xcskhiayzcpeegqfoe]sqhinsvvbcdboctc -yclpzeggejjnvkssg[jaxstjrzmutqmaqq]buvqcwkayhypitxnmp[hpxwubjyepaqhyhud]qhqlpdiqdhhgffsgtqw[ijhwhbvlbixaeywd]fwpyiwyrgoquoeuicxp -jwgenomewntwyxiawpa[eqcukoqwwwaruuaeoaz]przxcbqvsrozygtcyl[krwnmcxmgcgfbvkj]pcifuzymidokmsecl[wetuprgdinttljgam]wiiixvydbevhtscp -vzuukbqyqsivwpeeygi[bsfyvyrjgidexcfzq]wyfowikcidviqqnzcw -nsvfdglsbfbwlxfpfs[hdfyjgnwdgeropdfian]gznlvhnfjawhokhugz[klxeguqtsnydunmtj]gaauhesdugovoftjb[agqwktizuxyqgbvt]zhbzbgfwnkahvueja -xcnkdghtgpxbfefay[iekwzcvfquaynjpflf]rfmwtjyxputzpsgr[rxbiyhzboydmvufaz]vbibxkxeazvkbzpnrqv -efxnnxokdpeqbimle[sygsnwvurqpxovmfv]bfkvfubmjyasmvc -pvyunauqgvtigep[ypayrmkixxbagcbawlh]gsvqfsxbquttcaayobo[cwanbliqbdzlcur]ckdwzoeeeldqnmpnzta -uaxiegivsmmvixygiih[bwxhotmjiqmiffwt]ifggldhrjitovzh[wtrrvwjwudasapqdal]zegculmtzsyaxytuhih -hvikzocatynjoxxzjrr[yowwrajfokqlojraj]gvquwhdppqvtcvd[sqcangyggkdiljktl]fpjugbjlanzohbvfylb[fxdhqobssfucfmeaz]mzrtcejhidkqkpqc -lcgelocktqpqhjgon[vmfhipgnrbypfellki]bqgdqxjnlynzdjogpbk[ppgoudyairolaaomp]utxjqpmjzchqdhz -mtfryyrtmzzlooy[qltyhniowpskiqmolx]nuxblfnfrcqtjqfbzi[bdslgcpqyowecpp]vlxwrojvicfzzzfb -widpcxggzgbkofmmtkl[bhvmncpisdisugtk]azxcnslcqsbtyufnt[lqwxnibqiwuwzwkf]iqnupikuhmhvvhf -amceoqorrqtczywlb[znieihkpkxkvvqxk]rmoexicvufbvzrcxisb[nrrbalocuvporahypgm]sapytlndnufcmsmnl -ldbwysbqqkcizwlkqk[kxbcvzlolkrtyzou]zsqlgwgtcvtkmrc -bejhbhwlnmysyqgzk[gombhcspwwomoqoprog]zgwpzkhgbgaveqpe[kldisefosjggfqzo]eiyzwmdoqqsrpekrs[yoblfghskpxbimnq]ewghiykdpitzdsydl -uxdgjfelalnofqouoee[obhlfmbrcdwvtgs]hgtqhblpsfyxxdmruq[amhlljtgsqandpxg]uftttypexliymsri -xwcoczwpeprblqvdsze[fcqzupldpqdpibi]peaetflnafpkrqz[aibobqkhvfzpwaajxj]mzlrkrfslubibbu -fpofuivhqvybvczq[zbhaursvrqknspvj]zlovzphchihqwko[bxcpnqiijtjpypqk]hmdzgwlnervibxuz[hxskzadaiwuhkjrvia]fqtcewytffzarnbdid -kqzfapnhrgdwnrxtwcw[keiqggcxbtzwrcvrvl]itnkudvtbvfwlcvguev -folpqmauykgkbtb[sajzutpltmpwuvzu]qgkgeonxzucthfluwfz -qiniyhvlxrpcbscgf[mmjtkliysclrogfxsx]snxccrqkeuqchwfi[wbbptxydvrbgemquc]uyqttlcltqvqmhu[sawrjbeubszmuwsjuj]rowkyiykcizmcgha -xafcvdeuuhyxixxn[abpngbyvpnkmojksc]anahdcroysddmoxf[tasztimgjqwkkic]fiycikeddfoyafacbfl -fzmscbkkolwovgnjeb[qzholetigkxxmnmkoc]ffztdtemtdnustwuu[zjrqslegqkywtcaqod]qdtqbyfhwehdezedf[qqvslpytqtjuzrkc]knqvowafliildhqxgex -hicsgtpdpugetplbufu[lzlwcptzokxrsxtrl]smxnwfvtzttcsesdu[wmucgluptdavbca]xggqqcfaxxcagagkx -hwnfzlhdbchsmjwaytr[xfggqnxtnpdjzuyqm]efiweqzxmsxetmyjnhc[mgjnkbfmmvyrwyocr]jhviqqnrgzjsdmidsjs -nvouetegmutetgw[keqvyocxdetebkcgl]qfhnyfdnjqnklpad[swuvsfhrnzsnatb]zjwqmrmphlgwdnms[hdlfprihcbcemfn]lrraefojxvtpxljil -fowkqklueytawgdxklx[pmrpenfrmskqjttdqiw]ttqjijvoxxfxrrdve -nsyzzlnqjssmirvejh[gpqbubkrsqphkdjwg]gvzcxqgbvhopkgy[nzlfaemkjnuwvhul]vxdiuaimpogvtkx -pofmqefryoxboubl[neoxktodwrswfsxwruj]frlrumshrtcllqqf[erlodpkifgfpjlbl]bbfocfbyqjagesavoc[ajasttvajmlfwec]enqqcyveejcayzw -rqtdsfpdgwrlmfj[nmeovqshevzueyvd]ibiplfpvkyxvacl -wtvwzmpwviqbzol[oqlqunyszsyebxbm]ywqypuyvaiegekaok -ijcorxkdzocwisjb[qvcjrwytrzftjicua]buuniicmziszwzikph -pplaiaulcciebujjsx[hlyeskfzscwmeqss]tuuolvvbnyymfmo[trsqblvfyagxmgtwfk]kcigogbmkzsjlsrj -dbsqyxlovoghbra[lwqmeeclsvfsrezsed]odqamvyyhsmctpqegav[xxoamahurojgqse]tngvfzhoprhrxsccgnu[zwwglwyqrieusmlfmrv]tzfresqfmfspigfeo -tmnutczqpsydibk[skiokxeqdgilzjq]rfkxwumjpjulbkiz[folgircuujlcjhjqxa]snhsgynrkjecrsu[vukuvrankaiilqegzup]clzyhjlcbrfdbjrzlu -opgifufncugjrflllk[epkqgmpkzdijtdedk]xmvotyghoniyalmmg -ovtwjnqubjphsgapb[cnrcpnxrfclncasoeka]duqduyvmbzwdopyxp -imtmstorxxvbvmz[muklxeyazsgitgb]sjuudyrlbxgtlph -zbnvlmvzeitlrvclu[rwlyxjkxlvgeyfzdl]uzlfzyvmybjonpqay -cdxryezdoiyoopuzgl[rnmncixgvbxromitr]jgqlptcrlpzdrqh[sstvgpzcldcmoslnycc]cyrecvckpuyjqifsuil -acjvnpfqosyvnvzbjyv[tmnczokfkjaxcvwjo]cszegpeuzanwadl -knqqmdktrcvcikcfvcg[lnsoisfwtfpizbpo]xfxuxthdxsekjpi[qsroiaojvihodgq]jaamntgiaqvdasnz -mqefdyhtbqynychpbh[rrjozrtcexpbrpvfs]dotleanpfblcxfltod -coayqpuuvtnwmxzhgnu[fyjdjtselprfevq]elfqjzpryzqsyqykkb[utrizxtivhakgjoeryu]ozeuxjmcorkcejprcr -ybbgylmtmhxlhqizp[uvknavcimbacgtcaq]bcmdwwkdvfnmnunyp -xfdywwnnhzqqvuywq[drtdcfuoxvlflptlca]oimttatgiboynmu[sdgkeffjrteokyiby]tdiaadhkqdginrtqpq -fbpfhfecwfprygkwu[hvqikgwyrdwtieahmt]dvtcvnchfsienpasxw[ybkvqrxztwzpsnz]aecndxpzpamjkanchaa[gbjwjnipsmepfxpee]wqjnfjiezpzacmgf -adwjbyiantljqwsixso[wpjjoobofoumdxgrxv]rkvrcmmrlditmjtsh[vthldqtnlpjrqbobzs]efwiuqkqzfdxyhvgim -hbbvxnhhxsvghuh[fcrgvyndxojknfr]twczivatsbiynqjxeby[ckqrjoolqrxxjgejzua]omspfwphybvgiqpsc[hmnpdaumzrmqrti]sdysxoudxhpllkknvq -gfussckpoykcibjnoi[fqnfbkgojenspavpz]xqwvoktikoqyzpofg[xhdumbvmqllllthhsrv]vattqhipurbfvlk[hbebbjewrlmxdblgq]dmdhdbknmkouvie -tupwpbmrvffvqbfiw[rqpefvswlzjnphduk]mvafdoftaeiojrirv -bawbqabxqwpswzezv[cjmoppcjgifyfignuf]uawfxptpbgjnqbv -sekswalpvwmmczwdxbf[wmcngumevhrbffuzwp]tqwvmkfngyrhgknowv -dovrepylcvtomveqe[vzzskfllpjbvrvrkryl]byjsouhntlopqffti[lqxrgcqywryeexyao]qsukbxhzoifswmycw[rktzizqtdvetwyrchc]vtsdazzrpipfcrnxbk -ydnkchnxezkalny[wlfhmxcboamfrry]rmzprrgselhmfbeamf[dssnudvuvyhvzyacu]jyzdefurrnaqrfzq[rnndewpbutqgejcy]qxuganmeckxcpdtd -xhwdvxmfxmktgaz[qfzqjtuqokjeznwalq]ddgmotioparmkkudqef[pkgzogoaxvcwsao]cyebyhigpzgyclscf[qehxqzuztsluyweopsq]tikkkgtpkewkzzkdu -cygqebguktathghp[qlkscioiowgqftpd]ytftmijxsnhgacfmmf -ccuocdvpjktkdceebi[pshiishnrprqohwpt]bubrhtrzuabpzzvbwrv[msdeugbygsvewfxco]nzavazcgkniyxva -coscymyrfqgisrge[oggmfoqevlabvhm]xfyhzwpfzhhyhimqkhz[cybjjylavqoqjyyoy]igzwdivoxazgajmiy[kkxkhfunkpsgyvwp]isgotyzlmyzfqrij -vaezncmuzyyjpeomif[lyvwvohtlkcdyuxze]wzdkddeqkxmqbqet -yxcqysoxpbwjlqjdp[jinwxwcdeflygawd]hgdgruqilmuzuzhsg[ivpimcyrtifudwjgso]ostoopidgdzcrzzyzts[vvaiuzzuzywesuzk]ccmdnuyihasnldexf -jhpygjolrfstkxwt[krdivayaqwfuktykopv]dmposdxasvjkzjesg -lcprcppxkrnwuytdt[wysluivwtmytfgqpks]orlmxnkipofpsdteaa[vroskwwxeeylirbkna]zkeahngpukldeszwuk[harebfdcelqdbfemgo]usisvvczvasjomnjrip -eybojdjnfockfbsdjd[xjxxevnxuwjdamien]frogttytivtegcy -rezxczwcihbkywyq[sdzzflizzygfiovwyw]jhtiwvelkbaqhvnylca[xpnwnmqbaawlyqz]kftcwdejxaznztqsbhy -zitlyztihmeogushh[wpsygveulmddxdzvwvt]auvwghiyvkvfxyzf[ccnkvkboczqbgcmekt]hkqnuaoeffocspxkck -ucliphnwkaxtwgnma[wxkbcziemdvopzeq]nwxnkykbefamsdo[lveynsoldnjkcdn]kluaaaoiqsepyqfz[bgjuhrlfjgiyngwkwgj]ofjimzheftgbbyrugn -hshzrytllakuifsbuap[znsqxjzxbeewshkb]tdiohjkqimfsaijvmvf[wxvmhzzkjopfxhshsol]qgjutmxlputvudf[thwwxcavnensivbscm]dounftyvyaoguqzy -hktpfbzotlbrgddcff[adqmcoiraqbphjpag]fxxdcjqhwkftprk[lfeudfsbvnqjvywynfl]whirlnojvbkpyndhyv[xpypetlsykaucaibapl]gcpogvgqrgensxdeyh -afbiuqpasfjkniuw[bqclbergutdzfdqhdpm]gcgpimwjmvopfjhk[geztaacbsloyevwikqp]jjmlssrsuxmhbtnq -ojotaeydgumtjrfdtam[gpkjanckhqjvfjewt]zonzrwxnucpwtrmqyhv -llkryzvclmpozerpao[gfrhlpemunmdackfmp]fbntrvdilgbposhu[koksbsqnmtfdsyifpp]eswrneaxvurkzfs[ixjekbpjqsrhnpgw]pppbdmxsdflptotr -vbmibdiednxxbammtn[gqvlmbobpzpiuoda]agjiighkbopkxvwakva -fnlgxejzkpocaonnloc[ojrecrvcmirtehjfcvi]mrafnbifqfcqxpmqdrb[obuqfqpyrkeinweynd]qceebfqvcmnowjanh[ejpkcpwkjfbvyjmyzoo]hhjyeulunsuagwq -nubgjzyeuxvtwcc[vlpjhggsyeiulml]evysofvjmwxxazzr[tapuneqjkzgtblgy]gvbvijhcgtrdsybt[sdufwiyfojmptfruns]zqzvbotgmrcynfyq -ibcblmwnlhhftwfd[ajuhvgkyaqeikjgju]rvuwgrbnjxvbcgdpy -hizeoqbkkesksvtjotj[wkvmcgctdzwhzlubt]aegcgfmdneprdbw -lqyvebgqsrsfbcdccps[hygatrvziszspyihy]ratonoqinqfwcmm[pfieelpgzrfzhdffhx]zwaytmidpntpolajcg -admawesoilkvcfx[rqurmchqtkuifxm]tliyyitqauzegwst[zwpbngnlemkipcku]hpxfncvznjgfglvugk[ruinbrosnwmxdzav]adbvgjbxedbmxbkpxa -gpqgezsbrdmqmeihdr[etboranxahpniwzr]woeyirnlebizohoa[rufjzeicrsxgitspt]gltoxcqgcsnvlys[dcvxqvoivyuxxayd]zkxlasittnitmoisr -acoxthwyfwbhszfoz[wphyzlksmfenksfs]hpzmfaofkobjpcdxzs[sncrftlydahuqmuvoqq]ojvuhabayhrsynq -nxtmkatkddomlbnxs[qdqxrwoaamrztvkzq]ycyqxxaijhrpzamcbh[japizeqvlqsmdqygr]xhxvgqmbzgomhsm[kizldaqvytagvviondv]tidqihojfrzvyxy -lllcbzykxbdewnyff[iomemkjmyaqllvcx]vjvnigrbpnhdrbi[ukmffsdgnyqxafwstg]ralpevvmfxtqbzyii -vphviazdmmvtcyc[dcomcirqycymvqkm]meeikjmqliqraeqd -jcgueeliyoclqera[verzkovhghnquyndr]lptflbxptsugmbhvf -rcdghcuautflhme[zngtjffrvagsmdrxurj]mwsuxjbytlzyhinxyr[cibaxfqjdkmdwxr]yikrelnmbneqrsg -jyvaeqjealrbvbvekn[yharteswtwefyedz]wosalojtbxzaujpiba -cdfzjfycznejinx[uhnuxxhxgipoujnarw]bkwbisknvmurfnhp[jwbnvuvlvegrddzf]bkeykrhmjuphuvoza -aalmyxywwvbwwttad[daxeeneiiiupzvqz]cqcjxzindssjrqb[komptxyxwgtnuedefro]xfbjflfujclbqflke[fpatdmophhvpcmwfj]cqbuduaifbuhwiy -kogkhuakigjclxbjoi[yuidmmdeopwzvatxc]qdsbzscrwpmnloga[xsnwctwrdpgqvggoian]yayspjjhhpdsyzkkzx[qbttlvpkbplhagtb]ndnljzkxhgdvclz -rojijwgcylsaspmmrdy[jzptmasniljjjusl]fslcazgojebnrrrz[ybcsqnloovizrxiwal]ghjlkcnvkjjlqodusp -egzqbmomtlqvjfo[cdarustihbcqwpfpcv]fzxqpzavyniyjbfvc[wkmiofpbdcsnbtj]kmtvlxnlvdjflivtuge[jvlzovzdpwxwbcak]hwbtpuolbupvwfcbh -drzhzwluzurvcjogd[haakukjmwslumvgq]cmwkhsuahrqxfae[kugdxfrtkjmyyfheze]dyxxyffqsfctugyca -mlalvviidgseekfkqtk[rmltlzesxldtmsnyn]xdqfkftanryqfqrqkhc -vkajuyjjhekfhmwwek[uuanfibpmdbwxesfmsk]dxpsqnnmrnspifpcyts[ezmjkdjacskqhhbaupr]wkzxoqszqigbajudnq -wmpzatzujoibyjdle[awbuzjartnsdxfqtlh]votzdrynubyfrdip -tstuekiwimhtizzlky[trscvkeiiriseqj]glbwxwiwdqhndmnku -kjgjcnoipwnlqnk[hpukxdqokakrgjgjpk]nvinvznddzuhupepemb -vuawkeimjefqtywj[mgdvjppiouqnnyhzz]eeemepklcxhhfot[ktiuxquqhzrojqo]zcwlowvczfjucqeo -zatolywcfoplujidaz[avcmpullpablbdhusiu]bkwehsbzcysrauzz[tbgkmrwkzqfysfdh]anakunhzskapvmq[cqzomvulpzbizfuqug]untygoozordiywrnkm -ozynyagffvaeava[lvsgzdvrtdifdoxgvwy]pdkwomqrhfolkmj[fhemhaolmihgxlehn]huscypjzuujagfaqk[deqkgecbrdfhskujqg]grknbktwdyznqgrwm -mywakayudrxzofpri[qlywfoydoqmsmaoygp]xpwmtcqqfqsmsys -sdwltsgbumfnbqq[irstsqsogmppmlmkont]lrwnbdnpkxgfhjeo[eqstbbwumfepxoqaszs]fdrrfpfiotaugunbdrr -bappxujhicaqxhwiaoo[bjvhcmhrnldlwyrf]jdxfokaxlkbifuwyv -jlziyvwcuubpsziikv[mvkolefxtgoarsk]tpixifdoybzfwnwle[lpbkitwthyxdbvwflp]eyuzdxvhuukuiaqfp[xcwvlmoqpjnehwudh]sqxbifjmrgwknsno -rblicwlpfezecfhati[aqqhagfhathupym]vspyjiyytesirim[rqjyqiviftryoyychs]voksponpgjfuwsp[tmsccufpnvjdtgs]llptwgpugyjizqfch -admwljcwmrudrrph[rcxxxswmdlllfdwrk]etyjbtmryjxeajzccmq[nivhwmfzjwaspuon]tslmnzikhnbtqwkf[xnwykihihgkletgdy]mrtryzmlleorzwpi -ibgqtdglmjgcdfsycxt[ruddaxuheyvamwyi]neoneshgxmsbpydg[ytpshrjgditzqmjdlz]nlvhgtzsbzoskiva[asuilfpsgtgyftgtsho]xgoevzdtjemapbnady -appgubyezsrmwec[wbqyvobthbuperojt]gqxsjlchxpwvdfvdf[xlndklktmbpjkzuo]molwavhkvungdkvwywm -jusgjqhnjemncvbvy[voitjezdotclvwaggg]ffunuypbjmopbbvoh[lhufstqbkhqxqiworpi]gnhhneydiasvmbvbga -hvboappbxdqyjvxqyd[yukgymhpumetulsznf]hgiqjmlrezzsfndrx -jkovbtabgnbztjmzsoa[flxcmdoflhlgvaio]qjxscacvdykhkxclej[taocvcbcyfrjgcxlkm]aovpiymrcdmebktxwfa[coviwkpdmukcsixdob]trjjdhlgwwkwtegkqmp -ibnaxwwqjgtgxnlax[zozdkkwbccwdbvbpf]dwuzbcgeqfepczlvwo[pmlmuysuwyudzjam]pvhpqtcigtknoqxlib[kvwfykhxumzltcxidt]hybnroedkguawhgl -xqwhbiiflggraco[uwhisdtpaprjfji]dexzbtghefojvtt[nlhtexyhufqeneytdtu]fpskbqhfhavnbkjxwn[gtxmsoydrotriljoov]labmxjlalzgybpdjm -ibxakiwqconeyudxj[mwzjwhmnlaobsdy]gvxbmnzqbrzuorla[dvbreuhggwgdtbjet]hjrvpdrakncsfejis[tstdqmetsguihzdws]ukllrzriimevvsekrkv -ztiyqybtvliidsq[mvhqxpqunpsqouvgrbx]qmhkzbqhemycwxeq[cdadaodqyhjhelanr]rtrnroumhiwdadrbe -nswbgqjuxdygjrihvn[mkznbbryojdlhwee]kccwymwlzrsilyn -sebujequsxstufe[romzdeirdhctzkmemwt]vqcobpsqzelktljh[twewiabushguyyp]mktiojirfewuoacey[tgnliawsrpkhyko]kaytwdodmxqandynomu -qvfoyofzmhctntofr[xcokguepiaisrpwewng]lwwzyewekuamxxlepz[vybjmfsierveheb]bzvvxsdlcohnpmgir -txjecoixmxyskgactb[tvgiyxcbgzkdmgb]yvjfganhyoguuygau[vztmvqrrheqkzasss]mngxndysymgybqw -ptprazbzxzrjpnrcbko[qtdvwjwftefqzaw]ajavbdsfdjghhismds[vvouytxwsxpkttqr]kobwalobjsrwmxz -ucvupuxupiasbzxsuo[hnocitmtlqgttgdr]qghjdvyrttaklumszdi[oyeqkgycqizvaok]xpnaaapzbfqdzvcqhr -vvjibkoyadzluivaen[cesqlbhxmigdxphcr]ztmuzxnzeprichmdsc[daemwvspbbljrfc]jmqbyfpmjcddlepf -ztncnhqvomvfnkhca[ohbigcgrevrnpvuwgpv]lnjucgcpghvtzlrgkh -nsdamwafqwcjnslx[upwtncktpxkvkyhd]smtcegxuoakvjrl[dhvmeqrfgnbwqtd]zwlvwesmxdcnywjdb[whrrgcaujehwqcf]ayjiiktvzvxxquszmh -vnqareestxydfvuvj[psgzifyszldodtw]zkrympmklegtsstov[gblinnqlnfqargqx]hfcchypjbzvbleabbo[xvlxasumenqxcdgzqo]zyhgaickhrgscmo -jqaahcqcjjtinevp[kkntdvvdghnkloliin]zmrsdzabbeotokuz -vnrmthshyygudsrbu[yjvauysxhjhnmqenmkd]jbjlrunbjbzvilmyqf[gnoejrqddyzsdixecs]qipibwxkrnbmdgtevfx -uoqovspbksjvndhjz[gntlvpnmkbjcbsesyk]thzecqozlhmhrpm[ebvhbuhvuyfudyeyeey]zdlhgafvupyipekqoqt -hwilsmnzpcjvpyor[pmphksrtsuqgkdqfyx]psibvhgullieqqwyd[uqesmzorfwbvwgkiu]hlxqjuuflhxlgrub -dzxxmdpesgrpwhw[ohdfatbpppptmdyia]pqxvivkjxrisnmzbrl[iilqjrtayjrvxccs]gwfohsvsvsldpwaelep -vaenounqqmpnzww[duovdncntfceyoqojlv]qttmppevxurnlzde[jhwuqoqwdxjwilrgxil]ehuvfpawjlrzmssbzkm -wwxcidipvnqzxsvhaxw[oivkplzzdeoyqlemho]qthsqnpnbraqqkeyvk[pdkqargzfikxoxwsimn]biqpfsweppknwjvuwx -yefdguujlfuicqqiq[hqlabsggdampkda]tccxpvlmetflxhnd[oqnlgkzvzbhvnzzwz]rfugmbtihisgdklb -cmapvofvmxpioycw[wsmfasgncvdkvjnodyr]dkxkldjxlpdineg[omntdlldszepbdcynah]swcjxnbotrewahi -awbucpjznymkfhjaa[avrrlftouhjbnle]atvuoxpckhvplxm -wfrfilbmvnfdjycnlsf[thxhuqnznohekfern]ndjiygqshnkfehr[jpdgoiqcdevzyrywcp]iuqxgoskimjzasbvsct -crckwgzymgpzhckbgct[euhwrvuqcknwnfwokiu]muiqtteekeqzajvnuc -tljyrckyrcnheftu[xshakjmkjvzulic]mrloxmdpqnxcjhnwh[yyqdzldmfgsnmph]lwlpnskgxbkivqku[bwyxcdoyizqjmfvmc]reyetuasijwucrgylh -zkisfuqufwbhfklf[nicopfmlcpsvwfq]nmwkhlxmquqelszgbe -cqnuuhyddzalcxc[fjmqzkljrqjbexcxxf]pbjsvyixepnkthndhb[xztvuzlknucygyvegxp]nwxzswdvaspdufotcxs[bivsecxgawosnflmfd]bvdtxxionieorvecr -txqpvnrfxykothvao[uikgxsmnyxwlobod]tddprkiwjtdcwbobzrn -qjgftnxktteviik[hsnjrychdzepxamtfop]golzdtnptijzmpo[gfgevfrczlektwaohmu]vauncttcwnozkrwc[ljvbawzsqbknkuktnn]inwckpvsipmunmpo -kqxvmryochlslekzhl[ivuyfsoefnqqtwspxtu]bytaafalzlqvjumuleu[apezlzoaspstxvknv]mnkfbppakmectmiafs -vungsqgzakhfjlbuwig[cgydynonrrgfswomgev]lkyqpvlplfsmznc[kttzkoqpeplpfaoheek]ssijcynyhenhnwvd[hleabsbwqkqqnvdd]xbbxdphvgzmnauj -rxweekbgidxrpbcxk[zvguddibzffxqcmvq]edhnueezmvxinaxyo[mqhjuhujxklirvkm]eaozfcadmhsyfpoj -rcdwnquofraczluzh[gvtnjtocgohcsiswush]gnajmbxnrzppwobfjta[dckvvzvigupevbt]veqtchjayfclaltohjl[mkwsfnvdltripnzdkwr]jhdwksbflywaaul -iltlipfzwdrsmefm[brcprzzhfwsrzbk]dlegyxlpizwtlts[fcqadgpocjjnahyqm]htwrqtzfxoeamiqgeq[utrgqiasppoxrbhhv]hwkrxhaxxtltgbuvj -ljimkpaohzhoifdaiko[dkjxnandaghzxflymm]szzkmlubraphtnokpcj[irrxpfhtabogipufkev]bjucnqsbphjhekfvco[vejyxqrtfxuxeuelvmv]muygwodxspxrrijc -inovovgduyohxdw[tbzvjivtssmlxyc]pimyxafhdeyomgeu -ivahljnswgwewyhhn[jvfdvgftpukjcny]rtisgwgamadavuw[lmwlmlrkckbundmzjvo]eqjgikocnpbjpdh[mdpfdbxenzwycoou]uelglssvxdcxlwucz -zolsnrosfihzzhu[ravlcysbjoagcvaacmk]czfdqdbrlvweyyvbq -vktqafvmirobwwhtr[iqvczcryidfihypuz]adgkyomqrwfucufmm[ecbtnwriqiiaurzkn]vtyotrwlidvraksywke -oagqrhpfnkdvvsqemp[qsjyvadkirmihtfezev]vuuantqauwqrbyzxpev[mpaqvjcfntbdcpdi]ghgstpggptgbvwnmyiz[hghmuvsvhqxvxmmnx]owoulisjbqpndzgt -yyyrtktdrrprfdtbyli[tqbcxefwdtzllez]uaixdyuensmvobo -rginebxdxtfoudqwqx[bvnzfxfxsztzqyyq]dfvdsghoihksjcoccbe -avmokgrhvdnoptv[ngynfydflwspxifoi]lcdqccyarzcasxrbue[navvkjotgujkewhrx]ogzqcdvefknpghfjssj -sshuolwwobwchug[cwcurmfcxqblopvho]ghvtsqgltvvlsahwqpt[skxuphjregpzpqm]epmegfynfypbewftism[mwtakvgutsuppqz]tvapecuvnpedscjkfs -vsqfdssjnhoineb[tmcwmioejrnbdyrq]hlclokouzhvmmywskkk -zuxeupjvtrzzlwezm[gsptwvqfzpvkevapsvq]pvjuezgybonsblmmxdv -dsyuvmvaisuqxff[vmguqxuvvtbjrrva]ivytyfdovrfmzudyzcw[kwgjymkeadjgvdvxarz]rpizkvgpobjriqutyt -rpetcixepthhnydtsx[dvivlhhlgbxftlw]ensdqrwytpwniviwh[uierkmawdkijrbrbb]ywvqqtldiulgtft -iruarpzjrxupbdovqlk[cipcsklubepettbee]jfnvwjcgypepsbnauh[ncvfofkqfotujbat]moqzftmyjreztaugkij -uqqijwordoicegmn[ihceutxbgzatiwhtd]hxqgbplciimactv -kthovdomnavxzkrtg[utmtbhgqydotlxos]rtwopdppoocytum[ptdpdrndjiboffigipy]fwxyvpdnlhjofwjtwx -vitzjdhxjjossygyje[vzysmvvgddhvkufqb]fhwstpatifhmyespsay[mrpnqgygncsiwial]cwbbaisjnqrpuzca[taqkhmlvfdelcrzbryp]kwsdxlkmoplziobgct -iwybfvkucobqwagtdf[nafgfydrpzzdujp]nzdzwcpazorvzncb[niuturhwvakdywurves]txickuysfxeaamhlv[kpiwhdphpimfnmjinua]crunehowomfdmznrc -qololsmsdenfcxmtqxo[orjyxjutzakvhok]wgcgzavspuxtiyhdds -fvzbruyrecjzobgjfnv[tfnighcrmbgeklgaq]eanwrgtehcxvxow[hrmkbicsuekiicxw]pmyfavysbfzttzncxbm -frjvccazhabvndxri[wrmbltymeeoqpqtx]hbyuxmlxfrjrzifpj -nkasezsbfuldeolo[wshypstyfliqxplkh]nsoplkbnmiagngvusr[mwpwshlkyfrxlgcofiy]ycplnfgorpssaitngop[rtplyrqezwrwqhc]houlrclmoatskoufgti -cmsmitcywtmhtimj[pevbzyuhvaqftnugc]rjaxtggjpjvayzmhx[pvfplwswzpusjzhom]jmaurmlkkbusduxd -tshzomvzzouayvevgb[esegiphlwqwlkgt]letvbhxdhuzidevee[zngibooquknjqqxnxz]dtnugmifjztkwjpqd -uuzovqhxwovqeki[ddwwgejprtbquodnj]nafunjrpotozufcf[lqyfeicklrejcwwrvxu]kfxgdnpvqdmvvitzt -syawdtcaspkeubwty[vyxykmhcofzktwfex]fmevgmpetmzurpou[bgqqdkgrojeesxj]lhnvraueoksvtjz -hkyhsguxgsejarhub[kuluosrzpmogndwe]wzqvcpdculcwgqldxm[uybwzbsgzjqfspayk]nysymudwyxdocossgu[usnahkjspekuwvgtje]gtjxtcjsdvtzwmf -jiuygraiggbzoxz[wopmhgtzdwlkyzvfhs]kquojxccygvgujcopbq -rmdqmtbvzoocsjddyj[mmwewpzkjayrxkortj]cznmpvsiqtjdpbgbbf[dfgdncqhajjrohr]kjsivnolfcccyijyd[smuudgbnrfqkxzec]zukmasqygzxrjqoz -zvhafubtbxcnggnnec[khfuhiaikrpowmg]udtuciwamjspaojuks[wlzjqwtmrfrfxmxcfd]plaqjdorfrbkkppep[exrlzahsxksdqsllkn]fooqtqpmnglrwokq -rilxjscompommcmc[qpdxzxqycqutfyj]xvoufpojhanaloymvez -crvrlgjjpprknkurjq[tuvlylfiibnpkzmi]ghncayxzzrrhwfe[atnpozkssbyznplv]elzhtwbiernezqns -yvdbhamisqligavziqh[jcfjonwpgcszajk]xdszcpfvefvmlduoo[vqszbxqazfwgrfazh]geltrpsnlfyzzxjsg[usmmfawdtvkvkcm]wqimqpbsojuimmf -fsgjpguxmrmwxeymhjr[gsunymylqpnrbmiqyi]bwqcxjzweyndcslvxx[rhtvuzqaxazgzhhwp]lqiceppxpscreytystv -zdzsidcfertfbeifye[vdttvawxhnsjirsifn]abpddikgqtsqalilwl[mgqwvkdulrgdgni]bqjuliwrgnvycgnvcr -jrrmfvdpwdborgjxw[uqsuxsointqfsbunl]qosvmfqnyadjfhrc -huekbtocejhhjud[hzglqavqagcxaaksxp]afqncrfalluiiqzfo[mdgrvbtzxdzaztpeg]lsthchkkrvofbaa -lsehhfmwrfuqzewvxkv[rjrryjrjwhgtdifux]nnhqgwmoxdcixsna[wgburhmplkpkrgmpco]hrakazqqsstcrxupvv[mhacbkzqgskhorwf]fbobhetgehykvsbmb -cjmaltrbirusgyoirp[eipxzkuhukkdcdh]iqyymukrkwitywb[dcvtitgqvetxqip]sldydwlrcdcrljhzu -oqpgfzdkcrsrazei[geqerlvxxatddmn]igakhcntksmsttyqsv -tjhfyftjaclsdwzby[oiinbkqwzmhzxeic]ehyliwwisegufbhh[sqmpgxuqhsxnzdi]whwxlqgetakchwht -ukgmtuvowisscvp[nhzgobykdniheamz]ekflzosxwmggiuuudz -sqbsxlbyunhhepfx[okuhhqbyojpkahiz]hhywggdmcojawfpvkhx -xlqohzjcztxennv[cnbtlwijpkczgrk]pwxkxivbtxzovdn[bekntreckjtfkrsihm]ouowyjrzyjbgsygj[cbirdomndbelavpb]ujdrausbmqhnretkhtw -jaowfyulkleymkdpl[yxwftdgbtfzugqnnzwr]ztmzcodybfzmfrv[sttkedpckbjaxmqvhds]fidvanwfqvpywervo[jtludguqxuwucvzcjmv]mfnoqzvgatqhvteacyp -txyjtniwndqckudby[jbemysikizywlxbv]bezhcvssxmbmzgpo -gcxfeqprbvpwtdnrxcx[kvhziidtwrxlhejxm]kxzumooacujxvuwsiui -vvzhcfuecgfvrxrnquo[oqgutuxthxlcxhpke]liqjotlxzbmsassyxrf[colshvmiwbfjansdg]vggdkkyqrjvthtvp[dmozaqtceghrabasafj]lnsoewepnlbqvibyk -keehyqsqydfzlqrqqu[obaslijmtiakxkc]wmrxgysajmjymaqpas[tqwlwdqldidsapjtzct]mjeqlhemnwupulj[xdnkrxbbtlkzeapnat]btxcxfncwhdqlhmh -qwdiosimjitfulva[dhnypfmjunifrhopd]plrzlaakgfirzcccif[strfuwthjgfazeoq]lvhimnjpbpagrozczhn -adqktintsuslnns[mtlbicyrgqgnxuhqcd]mdadfpkvbkvkaimvghc[cvqgxjplvvqbato]lbskgsbvqnvndequq -brftuxdhebezivqio[yukrabpvgetpxpylxj]ldgifnehggvkdtq[pobhasghdmctwcgl]ccevtzwnziffjhqu -ibeocesspzaammu[twfeunwtyqohdtz]kiknftbdbkwrzhrdj[ywsjzyncsuyykqgu]yqbjeqoftsblixeozlz[mmcmncavhecsxbxi]aumsmhzrbxpjqrxllit -hieqiicvqswviniteuv[ubxwceioqqhagxybrl]kikxmdnftjiqazj[oyvdrxwqbljzkjbh]mejsqgnksglqmsfrlf -zjeouhblfsglaxzz[efenlnptrfbopulk]tbdiezqxnkiwmifiyy[pylvblxazwozkdv]guaxwfuktjlovasatlc[blnlcbxxlcgddfquwgx]jkemembgzzxssliiywp -juscmzarbykdkbcf[naosptvhazhfydzz]yflhbtlxgowuvmf[bdmledxprwnfcaflpf]fvjeubkojokjcfnzoo[bmmclnpuykellsdywvh]vibjnjgmtpoyvdw -kqmrdsifaonqprpach[chzxtugxvhbjujlzgq]ffbjsynmytyajcbsyn[jsondannallzwhz]gjrnybnhyxjismip[nocashryyqnbsszebpp]pbugutcxooiznkwwim -vfziparbxeibtccl[efwcwvbtlutmoltmrr]fjwkgsaambdhwvefs[nsrvprujruqdlxrls]ivmnrtvdbkumpiio -bjweouryhlzxnkfj[uuqptwyhasahjmkirh]rrxwiqmpcbwkhzr -bgdivzqqpztnswtd[xwfurbswsweduce]osimciokvwbydgqojkk[yyjvptlwdknyxnzpr]cqiztxdhugywyclvz -ftcvabkblehqjyqtl[txwnhqhrsrnengcl]skhszkrtpljsgiylab -ackokzybncuxpku[xzpocuamnohjypcdq]dwroulahreyhkraojf -hqlijbwudkycvijqs[buaclznmftiadyidde]jxhkyqsoqbpxcjgsus[atcehpnpgwuchfzekk]rvyzujpclugrfyksmk -hnrkcioqaeeqjrpg[cowbmmovdcsubwiltd]myuwiosvtmymgfyav[yvyjgtogmgxxnawpda]saqmtvyakacfwsvtxvd -tyanupyqajrxmuk[bkxkehodeqxpclfebq]kiupgpdlxfvzydgs[rvbbrqbdsolzrgse]srmrovuaxvxvzmrmev -pjbnyjsxcwyhjzpvqkl[qtgofokbciwsszwa]bwvnbcneuvipqaaiyjv -ecxbamdgtlfpmqhi[khvmvwiorzygnitsbb]znripfwspcqgsdzosv[nfhgdavrprmveeexppv]uhzugtmfmipmaznbby -jdoggfnexvkxovwiatd[xzxovisxynejpyxhfz]ciehyiyumbbwwxrc[nozxzgzvotunvgnhhjk]umzgdkvcwauvkzr -qhdaymaijahfkqzw[mbjhxuvbksqtvxwveau]rkvgvfqsehbynbom[keygsbhockgurps]nzmhlxxwjlpjhzbhw[ujitcxihwbjrmrep]cbfpxvdzbljvbfpzsw -wiuprpjfojcowmy[vmrpruwhtzbwyciid]ntbkrodejcrwavjfqfa -ctqdkuxwiricymu[wexourbkgedaqbybfj]revrxjgaoalievfbj[qtvcolrhwgqtjesuvkw]ozphhuwwzzguldf -bqpwrkyhlysqvwxga[ghyqnatqnccegjnkgw]pdgglsmagwkwemidd[fcddsukcrksifkv]cyutddgeoqcyopmm -mxmpasrqdexjpqfapbh[rqeoslcvcwqteki]zpervmncbpfbhwaxmd[rnljbhhtgiyluaaetx]aycxgjfqyxhgeraelo[fukyvtlgjzupjjrxvt]peumsiryqvhwcsutrj -nbdnniplhgrqkrcd[thcyuekybfqraxspek]rlwhyqiavfrfglg[luswlglyiuklvbuqe]mdgjepgjbhuyqkcs -lwueejoqpguiciw[kpbyblloubmxdhk]omjurxlkfpsdwdmbl[qnifmaxwapfvglrt]vssmqdzlxyyrdgkwh[ljslsxolkkivoakh]upwkosogsrzzuej -rfqbvdzxrnrbuhvw[wzurtnrnslhoqkdoaja]vuxsxofemkrjzqkk -pqslistydhvgulggwbi[nipdejpoxqfmbeft]frepgyumygqywwycjl -excgzlqtguboybi[guywktnzbmkwqrbp]qghuyihqlgjrdbuljs[zrkzhirafcadgqnifuz]medyulldvxdtpmqifpg[lsmokycxcicnxcyfpe]cobezkjtvpuqyqu -aajcheqlcfjvktswy[lsgbzwuxqcbgicd]skvwyyeawvlzzfp -afnnxrxdhbqqixcli[msrrsiakxynnwiard]tzanbapzvxtabeuz[rbyqhswrxrofedlykg]phyilynmscckkxgbhks[enrqxrwqiotksdor]phnmohcaqxspqhv -pjyiwunebggfgpgsk[ovrxnqwfhtrjoxwi]lmkquysxzdebvarwfxu -cdztgjverhjafgemi[aogtmpdwqhazrij]dmypauxszajopbp[sdsrejzmjvpjijq]okitpugefdhpbfnzs[jyospqqhusxbhfuuzp]btfwfpiblknocxncj -djgkwjxzxrgsncwd[iuaqmffmnfklkieaq]agtkftischmbszqpo[conozrxbpdsuonpvx]mflbagusvgzybhasrlf[ntidmtstsedfdbfwost]igffrxgipzxzzyjy -ahfhhpqofpjyshcus[lrxchnknzrjtzkgt]hvtqhnuzihgxovj[wbnqnjjnzltdyvxswv]bmppxzhzgwdsckuo -ghwlmylxxuybkpmo[bkxcurwihedpwjm]ypkvoiavnzgzlkahlp[lnxohqbghwsnbeqgk]vsegowbzcrqwcsgy -whzaoswycajecyuw[nwzgcizbidljdtoull]zfyczyjiqsqxgzsjm[nfkpyfcjwjijtnb]dabgzqajwpzsczrfzrl -sitsnxvhgjjnlitqs[vvlbonwoskugqxo]bqitwdmlvnlcziltj -avgdblmcidneynp[gkjdefhfakqungkij]eztuncfdkicjhaytdzw[dcfldbgzscsumjox]okqkplzsscszdsxejso[yihmpxvcbnsofchozr]easrxwgppwzqern -cvefvhycaorfsfbmi[fkvzdrremrlrvdl]cfcjirtcmdphvfircx -wegfumofnzigbnhy[oqkrudppjpvcuvr]fzyxsxrktwkgrvyiwz[jkporwybtotanposc]exmwkvygccdurwge -iqfavtweexjxhdkz[drnsnxjziacormb]yftyjvtetmuvwew[vlrdviggcdfnribze]xzykwuzopkedwfqjxo[vnadxonxshmwhvk]mqbtnfjmhjmfdftwm -odyopnscztauzvjvbfe[zpgqzgzcqclarhkkc]lfuvvhwhtlypbfv -ogaqzpgfwlmdrjgo[abvqsomptscdejeyfg]rukgbtpqwyyvnvrdz[bcvgngjhgitweuc]bljvftlzomvgvmlkzsd[yhpnqsmblsnfgfnyv]nvnkvwwllyygxcdnef -jlbnwewczmvtoshkwk[rmtpjyqhqxturbfc]ulsjqpziwqfjccmdpgy[neunvaltjjkcxvf]opuswwcrtqbkqyq[wzpxgeaohprbhvamaf]ybxisfhszawrtgsj -mmrbaaqjvgpshmn[exjdqzgpzdalrwmtha]qrxggoccbehivaiegs[udbyzlbkpvwfkaot]vfbmvytjziptkyv -pjtbkayljttjwyztu[clbiouysqsjbyjguhe]srltvgtetxcbkud[qnuhjnuziihtvqtbeyw]iccppmvrkzyehgiv[lldvqxdqvpcrizue]vpwqjhbktcmiyed -vxqpmalvgeaxtkpv[elquojhkjsxpmks]dqvuljielvjopjcuvsx[yoklegkajhhpatv]cnfivppgdnkjzmrr[vnjebiwfefjgqzle]aqkvijxvgljbxmm -lhkkzniihzzsqxdr[gvhbztmgmlicdoasdxn]fthfehxdcnyjhdwvsx -sthxexgjpexecjzr[semwlxfagpybhblcq]ztkmocjbxsqnwfs -tsswuaezqpzyevei[nolctgupccscwsj]serolamcjmqaawea[qgjyyldemhsqivwmvtn]rlmxvchrccptrgmmbko[qtiqgvilvevjvlkxc]jjcnzdjdxycczflslq -geiglvdxwpsdtyt[isbkywwxvuzljpnv]djxvppprsgjagqtfgl[wmhnkumvdpikdjhmt]snjqvydpmjqutduh -ksqeegpqcodzekvp[htprcliyvqdgjbqv]sqykqimpyqiwktnq[bfjsisougvnyjoyha]ixghemgcvicbedylz -mwomvddjcxrdzmqplow[fznhevtpwhldwpo]ygskvziyhzxmtbcikbl[tjhieqjuukoqmixm]mgzzrsccohxzfgak -xvdiafigrvgrckwol[gttxgvtlreruvonzl]fgwyzafvtwaqdwuo -siyvzqpzfobnlgtxn[zcgxyzgysabhpvsviup]xfdpicxyxyjgxyxd -tuyintcsfdyhfxofk[abiuiwquiscebxbk]zqazrpoxqqswycjwvk[hayvaaykkacbakpom]bwwhqzhuiitdaed -ckkmzdomnglfwcbeh[avqftwjqckajjqe]fkpgyrqzygfcheoctfy -teuvnsaipkrkmuu[rtiypvevtipwuelkzxf]xqywsffobbokraw[oonkmkqovksdycu]noxwpblcqqbikpbck -bwgmejgaihdorgcqq[djldztucejcjizv]nuuzvdhlgqscyrjmab[nwcglzehbfzzvgr]aybubdihvypmvqmpfhi -gxrmeqpjnbegqjeuui[iqpcaqmpavyeeqkye]etydxarxyxculok -wakuruxdmenhmcsgt[lndpybwsvzyibmd]tfabajlzuxwwhofz[msknqgraxzpzwytjx]lfoqigitqufmhfmgwgi -gpusiwyruzmkoluea[ofbgogetujmjnqv]dzmarlipdqkgwdzwzd[uhsfvlrawossxvxyk]yeseypubhoapfgdjom -rcmnwwzrimrifziyoyg[avrikteehxhxcqhsq]yklfcrtqwaxmoepr[lahpskzjdwrjonqg]wddynujhryzkunrokho[ixwzkdpcqefelgcoabt]arjhdevhgaqcohbut -zkcxzfkwxxdtbumymqv[qgaztskshqiukhwuelq]wxzpzaxuhdtfbimub -nlgurkzredyklilaicv[mtxzdczugdhoowtp]hnhcyeygqrbqdnsc -pbbcmecbydtmjigfn[giiambqbdgbgntq]zaaqvlpkysxuvbgbo -aqyxolkflikpaxr[iqrnhzdtynkqymz]rwmgahzmvwtfebyguxh -kcxhmwgrvommccee[oqvsuahbhwioqeunkz]mhcyripmlfivqsimnpk[zptnyqihvavtlxkq]guacutltkqoixskg -ldpiuuwsszyidqxqj[tsmectapcwuyhhy]slauiehtpaocaeqyd[wbhrligadmsgznlyvd]nyvfiipvkthxjuoubc[zplkhqbtciuqnhjhiwy]olcmrcsayukgcbf -tzcpkpyrdolcerqnwu[zqvhulfxfhgaehbwf]zaekvjegdligfrsh -ghellbvwbjaummjjoss[pevgyftbjzmlsryfzv]kjdgnwfofftlxbiabir -pidtrxbnvaobubqwah[nftxjicikdapqexh]mwssisitrwjgxhk[nghedqdzfdgxaqacas]hvehmhbxzfwylzdrjf[bisktoqalmaapoomzt]lwkkhvacvuqvmsv -bdqjqlmohbjvqlson[mupepkeeoofwydse]ekylhrfsudqdcvkv[joofkljfkmpknazry]anyojhejtzfofcg[zcvpdeswtvtngyqleri]seqoyrfsqawkrudmg -lmjegqfshvauxngz[ysmejumumaurgvgrsy]xrmslpnljfmaidojz[mtvwolafkcxlwjjthy]yjqsssxayanfdrel -qmmiampdlsscnqml[ymselibefbqnqakirdw]uzxhisxyqljsdvhfe[jhjnivjgqdfyeqcea]nxbqpgyhtqzcwoptq[frlnwadwwyfnndeqv]qcbefaxmhgspalprcdo -tavfmtbizkrpnerc[kmenfsatjafincrwrlk]pbbxvydrsqnfyap -hwrkfzaovfbmrqhff[qglmybgnoytlkma]ibbbvmtqegqqxdk[gquqtiaqekcwiudebb]ozhpyabnxipgwfs[xqcajsdxhwpkofa]ssaordrnwjyvmcmjtp -pkyhiseqcvejtkbqcgf[xvgqerenvyizecof]sflyqnazxuwbyexzwyq[zppuknfnnngpwihe]hacwithomkpaveqjrs[whsspxqxxqihxrmqxvn]ifsktqmduowpuhck -xqctscaefqpvqcrm[rqbjdsxwoynqeoubwz]zycfrxbkijaedhkr[rzzbvjmogwxgcqa]hpzjokedwwmsbcrggmd -hcbohuwdyeacvgmbmea[mmpvzmjiryorskh]tydknyaqhgcxafmqj[ejadhaojfjlsfxs]duohhgjdfjffvwzcgel -ltlddqcbkkayshw[qdedbdppzuqdhfaxt]doedeeehsibaylpsnk -bywykrbttmmpyacsoo[ghicjobuumyckupnmw]wzxuueyajmgprxe -gejngdvsephfgyawm[eahzdehzhyymhcwx]qejrbkjhhplzgbehwdw -hobcaacuxkoxnutlayu[yvsylobmhtczpxdhvh]qpwhgyojuomiubmahcd[pmspsmyxaqrdvcpwnwj]ghdvfbhifxhphkseh[ntyabnyuoadseevhvpf]opibtuiwjogylqzt -bbuecmhireivvxmtw[kkvuwrudhmpqpmqr]cqrzfeasrpqapvtjqnz -uxsiwqfamsnemtcqyym[wemijyiqgxbcsvdz]tdhlutowbxpxrkrlpx -tnnlwlvfrrluuxjnvx[fgijrjghghgrkfmfb]lslknlacvseuzwy[acexgqeksduhjpf]enxevtqjetnyftgrad -wiegevfedudnajr[uryivbxbutbhfuh]zrpurmrupgeggdyc[tfykavyeulosotky]ahsieiakxnitxhaa -cdymukpgwzamxpe[ihvwjlomeozhnxq]zqlglkiyekzhkesoyui[dqdkxlczjrxgbdfqf]pdipsbuxwhibjytdb[ngoqkjeboqlsuic]efcostvlclbxvzhloan -uuavzipkjlcgutoxrbc[orpbrqapdzdsagy]hbgwsmgmyowonxftjl[wrimpmzmwyjjtnkaf]qmlpvrkqhqbdswyyvpf[lpjhsulqumdzgjxuajn]yocpoqqrpuquduay -wivyimuplkhmmkxioub[vqfixqklclmrbume]trenzswrpqljwctfat[ulkqyvjjpchvkpd]mvlwfrclcfqziho[pbmrqudqsivfemt]osmrlwtwstidtwmbmzc -owpgvzzedsxwjjdeuz[kyqifdbwfxcphnb]kyeaxxmsplabrbd[gayquqvysxjwpckzlvj]tiuxhodkebirvmdb[zhnicexwwcgbbnfd]hcxwgyjpphxocggfl -vrjvymyzflpaqfy[fokfgiaiyyzruyt]yvfrfomlsjqkvtps[mprfrwzeokyjmdetnl]znjipokvzxljjgqaw -opczfzhpovblsevqcx[twcavjnyjerbqfqvooy]tmyyybovoyqcygzzyk -gpifunuvcpqjornc[wcenyqazsxzksun]dijyypqoxxmjiyi[kdzvguquhohgsghqqko]tzknqsgldnnbotqnocj -xtnewbseisluqott[ukktnadfrptzmvmnmwe]nfevmvifmaaubdrytcb -uvwgvqvzikkvvaltpbs[darnokckfpuiwvaq]qjgglscrdhximnfg[cplqfytiupsnlwjnz]tjjkzojxijhhghoo -mwvyjvnzfbptvndlui[dvpxdnwzdssddngva]nkvlbcdcwjumrqmjuw[xgrpriwhdpyxvakfpsu]jzugamflkelhfrzswca[hvdnwrkyrvcdkep]kqyiaalprdowzeudqvt -zahhurbvayisuhkxluc[dpkhtfqcplnlwkr]moobahksmsqtmxasrw[oyxemzzmvwvxrldebja]tqnquzqoslugwcqcwtr[vibjzqdbmsmtxckkkn]ylujuamatwbexgo -ffpiprpoymeaccwoun[avnvjzwvzowgthwymt]sakvpfnqtnzdyhodzud[egijncssvgvsofu]dplbxmzfihrpopurlvn[knjefyormeaeoni]ubcbldkemxgefbnjcbj -fpyokxpcrydmqzkgr[gprmekopimtigwz]fobjyaxokhstzjsgkw[njzhtjqrhoynlzpiw]svrqxlhgpckwoat -srrcdyevzyzhxnx[bbojuevgatiabjudws]zoxxvzrngllhtrtfm[rxoiyzmzwoenbodp]keodzdiobtdfgrxzgye[akofrgfwqtqblvntv]rfyrjcwbfblulkw -kxuswiaijpaejqzoxes[cgyhiwbpjrhaacwe]uqqocaxbsotoaei[runskhbiegmjwfyjv]qgnmhdcjcbgbsztap -kvzutkvgsyiyrab[zhbqkvgbyqzgwvfpbf]nhtaiwzmvrssvxsrdz -tncgsbkllaugseepp[axryamrptnzekcb]xcvqkfuggjcfqhb[mtmzyjnvrgyuwtev]xziofjwvnbsothqzdm -hmjthvqdelrmghgnvxg[cvfmsllxyxchaglntl]ikpeldmfhjdtnvaw -sdhirfhdcxlwhxevbv[rfktrkotbfwiolxd]bhbkmmbdisqlclttbi[ueaqlmpvdaoxhezzg]baphbkfivkwpmtj -crzkarxgbgpitxjeunw[xlonohiojoepwnuhd]kalfjqpazwmwruq[erssxjpfzosbcta]exvgtqljewfuwioyq[syaeqtgrgswbgbetkzw]ofnozzjtykajqcuc -xdojuclultxptlxgci[nkmxgmiyhrrfgoshmeg]zqxcexaabvdjcaiarw -rewjiwxykozqjzneh[tczrbiawzwtndtqnew]yxrgwvnswgyxjvnot[khomcpuiavkhwjsl]ksqiuqyarwwibcssseg[dsrplcalbjojxlecjdo]falbpuscbjsdxvyn -dusvvyynezzobcrt[yrikyxqxqreoqcyyq]vkjxvnlnmleqybmgt -qzmjfdvoruomeilaejd[ksrwqvmnyiessfejo]lvhmckdfwzoxwmydxm[icmiecrnoqepcuzctl]unxwrfwxgnijdxqjc[tuwcbylgfhpaveyak]qslgbtviucbmeluf -djblesvduxlxfxp[grmuswjaheivlqvtst]yrqstsaryoqejwkd -kpyoqmyglnrmxculu[tuyuqjronsgluls]whuymvpcdxvxrimvmow -lruqeoicrisykqejy[ruqwiitwyrsithkyo]hbgqgiywqwsclcsn -pkpmmddfcezjrrs[rbzbxotrbqlnmlpidpu]aakddaqjvbbafbnk[sendmtepxbcpttn]udnifsqhogqvszi -foqjzmqhghzmymeq[isvvkjfpmvmhquoidkk]tskrbirqdtjpxolwzw -pneojhviynihvnv[meuldylhohlfwsxp]nmdwxhxuexorktj -gpnxdnxmueucaawmctx[ggcizpwllvbffytwv]riqcitchmdekosocp -kcoafhejmqsopizo[lyoqftddzxuuerafco]zrvrzbmnzcawaydwg[bhnmhrnwpzmghrprzzw]qcrnkmyfcdoymceacg -chcabwcrpxqnelguile[ckxfqhnrwlulnfgxjb]toauhcbsxmeirtlyy[cfgmasaieapbabcgdd]ijenfrqiaeiehllwpvk[ciymykejvkzxsbxy]iiyypzaxohmykgbzej -yeqhlpncjcipsmtzpi[zoidbyeatjrlgmi]rcrhombxichyykncbwh[wtduqjwbefekhnwo]kqemsisbcrcjaqzdzw -nbxvvetblqcarlcku[njrccfhdvxtarpj]rhndgwlyfzaeubc[imtcezhovdlfyixzwm]dwughoowqyazwaziea[slarywwdukqwygnhre]efzdruetqfoqqxusb -vhvbnbyluqqaqzolkrs[fbfwkawbihbzwlrhd]npfzyqkoxlgkklgxz[zboinxtlzrqbwcqo]jqhvalbjqaogtyn[razwnxfkshezamemtr]nywqcxpvmuudyqo -jubvozjfmykufhrkk[qhbaxcvcpyzbrwjlrij]itseilbvjwvzlgqjfe[lgxynowzlpqgoyrk]inolsbnzxvdmvbrvwqu[hjzfopqwsuqvqhb]wffwgmhjubihiqkpuls -rqnjadbwfosviivshb[rutsuesebrktxitgy]abukeyordcrrqvrgf -bfveiveawwoqyluxwu[trxwkfvioqzltgafma]swkyqokgtrprzzit[kuziuekaorgdgqjgi]zudaehzrjfzogiwb[fyxwwswqrbwgomriqo]sqfjrdskmdvalkhchc -pnrvpotetwyvodue[xwkxyzxflrvxdfogk]kamxypekoelgwktq -etjkovmlbwryvhv[wvubzziqtxbjvua]hmrqokvqrctugqdazz[ykobpstcxdqweotsi]eiczvmdcfjpvhdyfnci[eeklndzunbzipcqubp]tjsktxuorvbnisy -fnexznsqqbhygrm[jgnmivchcvxgssjcm]klqcaszkwyzzecve -pdmzjundpcsxbgplk[lbdsyrmgxnatuwk]nwrhpgieqrtzpktaiqw[dcxtjtkzvlxpibanjma]djszxtofdcuyfpdr[kzblikjgqfiaykr]yhiqqurlkwlrrjo -bwtgmmjbtisnzbnyedf[iniovvuewpetwsg]dgvjyrzfrqcozekvp[xsulvxvvtwcxuvbxau]vvjyodjlbbjxigdxvxv -jcanelvhybigzhplc[lhgjkwbpdlcybzgacya]uwisdadjoniyerw[kzcrorifvylivkhs]ssicvecwpkxbdwq -tuxlnjuyudvhazlxdf[oknheznyzffrtcb]joozaraxuivijskxblf -rvfdfyaemhgyeynw[hmmkdfdhadrqkxzzmsj]ugfozgghllznjhdxw[ucrgusuuqthlgxx]ipiercifxtkghbkf -jgzrilirvzcocaphnz[gyrvhettmmhxaxbmyg]ecpwkoozcgtpoac[iretjtqyscaqfqziu]wqjckfkbfoqmmjkuhqe -pswuxyynrpckrquj[wfbedboaabsgnnzzzwl]wgfrecpfkvlvjzl -zkcihebtrfmiryqkd[ybedpynfafkkrbfdm]ovrsmnhexyqblafad -pbkoczqfumwdpfu[gtcvqjuwknlrfxre]crpyxhawudbilybaomf -pnagrmxhmjftwltxh[aqlhxdwuzrvnwjwl]xhmgrrajywnizazyrdc[hxdxewvthhrwhsva]ckluhnyewiiqazzmvd -amjksgqzgmoavvxtov[ekqixufaaepczzusfga]fvlmiilpsqsgfgg[gzcyehzgpujyquhrkm]caaocajhmhqzbacvpog -hitezskizncharbzyz[nbwuldsjxkjezjq]monndtwsxuikupvi[iardznrxkorquvyvwlk]etzyolkxhyqsdirbaj -ocsxlxpsgimcvori[gawgkxlilqzeakhzds]bodnyayaioozoeg[bmaukrfdlswrnvuwy]nafolaiqfeendahms -kseklqtakbkzzhfd[ghivxwcqlgfgxeot]levjimgmcfpgqrjjic[ixwevpbqkyzthafyj]azdxqlromttwteeqep[kxyiyoxyhvgqlmvscwz]zxdujwvngqyoabmrio -elgbshsnykhiyndouao[nhumkawagmrztsamd]fwqupmyuogneywsyhub[zzcemywfdswhvjpl]ockclifwawqsyzt -hyetqdpieicmycip[ciwciijtqspvydxsdu]zjrfhyctplqvypy[hdewteddlqfaoifgy]murcplulddvzheegmgd[rooqfiqsnkjeelfjcag]pdzzjacxzdzmmgmqwu -nufvveulfkudkrvskbg[cdrvqfofoxmqwtv]jzgfbywojzvwumo[vvshcsjnhobkayk]gkwnyerwhezneuze -qhmjnzcokmkmvclhfh[ywruoexbmjwuxvrk]lswliylmniqdgybtyx[yjrzasyfroiuaeps]xevbxtsyjknqmeuv -crwelvogceorioqm[xmduhdacxyzodslgtv]wilmwenmmnwgqteftrx[zonwpkkjimmmhbrtls]vfbovjoabzwjpxd[jjxievceapgflzeldwb]onucskcmpkgsryl -ujitrvtlzcrtazmghgm[mculcmczwibnuhtunnt]izqgurxwxhwboygvmf -lespfnkqubxfoqa[exmzkeazfrfrkhzufz]xpunddczqrkxtgorc[ymsbogpyjeimnuola]kufhnwzukrdayts -mitdlhggspwferwda[fcwhldszpyfznayp]rbfzewqihtcwtjznsp -wzhbemsmffcmcswdvp[jcbuktuymokdqfjj]zyhqthqbczupmcmkhi -qulvtldmhliyflccbyg[mqggwujrznjefvjw]sduatqntzkkvgfqel[fyxdewnrtlkkils]utxmideawxrzpewmee -ggpinoooeucoxmezfi[ovisfbmebypyafknejc]ccqkrmaimxmvxhtain -cqezdujipgzaara[afkpzozyzuitollf]srmeiyjzqjruima -ivbrwakbgkrxpilylu[eewfaajedkwjbdrk]stsichtqqsksydtubf[umxwxeikoyehrou]kwddyduytdhdgdbyn -vowwatzholrusydvmdb[jarugsbvowdtznwx]oofschlksdrodakrk -oruwtttstrcvcgxz[cvidyuxfxluddzxuz]jckmrrmvolclrbam[dqptqpdwkpewhmcax]rtfmeakahrcbazlzsju -vjrkcrzvefpxgardmqb[wxmurzwunsvjaxfhik]meiaafxurfgikqg[dkoextitsnfeorgoihc]diohmorpmlhisrs[ibtzwvoovjmdpfi]oelairhwcbbltmjcjdr -miafjehtxwnfqzxg[nlovpfjpeclnmlbm]rleupmgzewtvuewypt -osoaytxzfrkcljfjv[bbpjqntkuuwpgupxsy]bgryerdaukelujvayjt[gycrjaelxuemeosc]jgdfpdoltoqnmow[yfwoyzixdzamgqweb]lvmnjywqfjfvyxhb -oiksidcbtzhhtnegqa[vdxnacjfxbcsjzqdq]ixvwmdqdaleuzjniki -ngbyqfvobuxdnjeqia[ksktvzdyzkvyvjrgkos]xwuslzgntfwrnyqrod[cxmkhhwyremunrbc]hijkgxizhlyzqfaay[ljwayjqxyrduyoebm]ancrkgmzboqtwkjah -kxcifwahsdmqasrmwi[aqzdihesmgntomgmj]jkhmcqvxqxtshprsy[wgewbxfsobokszgsivz]zlpavaqlwvauvedwf -ibhzychwgtvobvws[qaestubbbtvyylbr]ovsxlggntxnneirtot[kgqrkbiqracxbnbi]lzpfersavecdddsytb -abjcqoeeqfhvqmo[eferwxtafaxzidjzbr]qztbvxsaiyqhcsdkj -uqqngbvhyfxovmdods[zwyybohwrhprvxaaaio]cgyaactenmhiokzh -hiqqvjquvdkfcjwmo[jzrxnmbrqfhjhvppdxm]mwvibfiltxmwroeruo[fasknewgpsmftnx]aubymogtwkseupwmr[xnyevhhalilxuxqqvya]mastwtyfihocpbjngaw -aqvkyxqnjtthgkjxr[ahvjgtzfqetvqhz]vcaijasfqaygnxmdba[loyjulxsgyldkotlefn]lnzykvlsbkyuvnqb[iqjxfxdmjgyxboyzr]zbfwxpxbthtwtnjdaw -iweumcmplhykolkazmb[zgzeryniuwebpka]hsuxltmwyxogseiogl[ogacxzbrbvopihzm]ipogfmqtohqqfvowzl -hlvbzegrmbrgoepemyh[luscnqomtcxbpxjmxvx]tipsuhgnhdavsubyqha[ozroemaxbdbcpnydjqs]xqdwngpkteoyyvkq -fgpmkosjnfnltkfy[sxqzypihbntsfnryubc]oygetjhbfvozerfzw[nwvofzjfuwdzxncwvo]nvbtoxgwkmhnyox -kbqkyxwacrffvkoxmb[tqfooaoggaauopcanz]ptiakppuyxzwzpua[tefuhyaqzyeteexrsj]hkuwublifohismiqg -pdbrixpmacobfnpg[mxmgtvdlsuyhjnjxz]ghuebmnxzqfljxyutl -ichijthjvilenbfg[zeibnuadotzachqyvej]qogvchvkfeskckvmxw[plyhbwjrhhnvdumajut]xazlyayoobgkmevrpho -cbkznopiuqsssvle[gecuynehzvcmfuzcaxz]qfihmsdjfsxymvesb[jtriyipbkkpfnazcj]wbcwllfdxxdzrimwues -ntxzlslwvxztbmola[duloarwqzkzxsfag]nzrsxasndnrktih -fvvowikdydblgts[xozwhuhhngdjqnbry]hkcwbqloymkqjyzpj[xfwuoehhuljposct]ashitwoprqcooweytiw -ynbifagloxgkzlydhk[qoxltvqdpmqhawcvef]wfnbtiyjafaqfujr[crcuopstahopywinvgc]ppxsgbvevlrkdgsv -tdgutgskbatswuizuv[zpmhakbnxnkehhf]ffuohvkaxpiptot[zlykjduigarhxygukw]bucqoskhlesclyzbpd[igdjnevmqlibrugc]seyjwcizckvbncjwon -holbjgzpvhqirwrxts[lpvaadhoqjjwvijk]etjusqwbrccaqea[livhtrfodwoxnkvk]dmprijbirsnzuptikc[icjaaepybpgnorie]imtoivdxpujjmlegqn -ljywtdshrtzqzrln[lqzqgywtrpgszaigfv]vjyyvrbkjdiiminfas -xfluerhpuqsqnrq[rtxglsxbetzajmo]bktotbhryqxdqfaf[cptmsctjrifdojglh]qzpxnniqwxlbvnexlg[vooexmzwbpulnxxv]eumwdzoixhfxkoavu -xmomvhstjavjyisvhs[suremlzhaiwhikzzojb]urbiiuvmveiapcybgz[botikbmkcfsghtgtcn]jbsrxdkpxnynfibgxyw[agdmtydfehaujynym]xfpytnqyoafnuott -xjzhgefdlodsdahv[ihwwnfbwhcjdbrdixy]kmsckqifucrgpocyvc[pudtuuaebkvsrflz]qjfwaaylzyhzerjbhyn[fsnmlxncwzsdsqp]edevlblbzmwkgkfluke -qxlppzrvoymnsiyb[ybyeqxwtoberzwvcdlk]zsofrmazkapwiuxwjjn -jbdmjeyxyksaonmswm[vhxyxtashfdrzjzytoq]jpkbmclxjtprrhmaz -vxishfigjpmdwufh[oykzgieieiypyrqaxdx]etgleieyrezvbcg[scrtyttykipejzmuhy]oxnektqrkndltaixnj -jnetcyoxmhjfyfjxm[dezndcwpoghexum]xloobrzxrvanbbh[gvcaufplrrstvrf]jgdhedqsxchoorlai -enbtwxacyokhcwyhxp[ahjgrmfhavhnhqoqsfs]ahdcbzojcfgzkjfe[gtjphvcbwzsiohlha]lwaphixwqbmbqhyoccv -arwtwiiowytbbjsumh[iwdhsnllysydgbcuxw]kummpwhpyydfdaf -laidhzhbdwoezqhi[eccvqcxwasyyzqvhrw]oobigxsojqsyijmjmu[kinacswultmqsxdhw]xlildtoykeuzgzl -fbwcshbijakfapcqzj[qktwqwrlnuktxjvuvn]nbzsrphskcxzuzho[lrbnsyzvrorznoq]ewytfrszdyhcrhpcx[bmzudjktpnqxqwmblf]xtwqqocsaxoluhsh -xgnhvwkwhfbprypnak[yuwpjkfdxygltniuepa]mmbkjavsboilcvpp -hprznssbfrukcvu[mojrsfuktavnbhzty]ipdxnxmtbvsazyx -tfdicuergiqhvie[wwpqnqkyfyhuqlb]wovoujvgcwuptcqhkd[whhyzgbflhplrff]kezriqiamcvkeifegv[kcbdxrvoharumkgzufn]xypaikbmpsjqcbxrrp -tkqpijxftrvwkam[yyajdcxgzrkhkroq]qfrbvprhxlpgunqqs -fvwgqznbhbrmcaubz[lgsawqyuhadojbqwrwt]gzbvdgpwjuwqsgokqy[zpzdukphcvdqgpdoex]atanoaretkhxbyzw -fispfedprcrygxs[xqiggqkjgjhaskp]thgqnbgscmrcfqjckbw[tvueixxvxlsnaupqed]lshjncmwxgzzczjssh -fplljoayuqmjtjs[vnlhbmvowousilhym]emygvrnfsofwobaducv[flrnwxzgkghpboubuh]sdndpovsuohytnq -utkqxfkbxtoudnbh[bjatbltbacnlwzlbjk]eunawwbizxdytndqc[arhtjgntcqetkeikojq]jfooeguervzgzgudb[nhifbismjhcwqyt]xwsxwzwwvtqoadmgvoe -bxbifxmedhwkesbmjff[ncfbdgsqfejalnqyar]oifushwlnfxghktjhtq[gnapwycvocshetc]zzslupkhadbieerb -rrotstdgmwqowfmf[zlddfgpxgucuestu]dvlbhinllnkxdybha[aovlzdyhamvvcgm]dzehxcilzoxrmcyhiwb[xkeszyasnqsumpx]bnrsppzfvjhiyafpk -qgpylzwwdjxmepsc[bumaitztsvayatapvl]gotathwcrjrsknrfuk -odbkgubddtpxdsgmhvh[mbgpgqafpcrymkkdpsd]ieabelyvewiypbkjm[psowbfplvsxifqwq]szgntjujujycbfy -urqwuzkruqfgejkdoh[qxxkamiyhedlffzg]hnfntvahsaivnzmawf[mxcrmrqtgmnplma]gxcsbxvqcoxpddj -qzkfvuxmfneyrpysh[clufxjecvedwwegflp]rcxzfazrzbgogna[ogoplmljfwvizwniudc]yewvacqgzcjgdnmasw -mgweqpewhvtdjnjdbu[pecantesazignmq]upotybqiovoujemqg[ipzggdcevkbkvpyz]wqtflwovevactij[ednlhfkzrtfwpuignhd]epfijiuwnczwxdmgvzd -lavqyaejctfofhdend[enxgzalvzelvvxdt]dkrlwjpuipwnqvuv[ishvyxwuhxdxujbgkev]euytwzxkpwccexc -haibamsiwfwmdvzu[aekmrvauzoxdbtury]tfgjabbgdrwbzde -gqoyggrpzhfgrkjjw[kwhwkctzmjdpdoeey]ngurqljoormcjarv[bmvadfmdgpwpzfiiv]fkfqchwhedeymsa[etqtnxepdmolklpa]tywoaqpoowybxcoqq -vnvmbxxccmctcba[ncggihzavxxxrhb]mblrxjgtypycewg[syiizsazwqrhsllezvs]tpzocblnycaokaphz -ffpbdxvenqkihvvsi[bbukwnounmzzxody]bzfefymopdtkpdm[sjbemcyhrspadzkuwi]xlhinxfjjeajzuqjkuo[zfpeikvvdfptpxe]dhsjhnwlzlcxbkz -gulvdtkcmjewjchf[auqodvrekgvzxzyiwee]rarumiavqvnbyqu[xywssgnmbeefrqgr]lyyjmkpmqxmjbughzta[avdsmuyfdwvzrzn]qvhfqmazlactaxtxi -vvqlvlsnrxwhoxfnac[sablzmrjccqvauyjfao]avdnqlseflqxtgb[masnpoqnvjtkreifrvy]lvtoftpiotxcstvu[vohbaippdypuwpkuip]kxffhmrvrbmvhecnui -kclmgqkaprofpmdm[bhbitgjmddxhbhu]hmasnpqsttrgtmuq -tvqcqkarkyqtpvea[fjqrifichijyykq]qqtmxszpmovzfvk[xrcoyhzyxwmqwujxp]nzlgwxpkuersepyhy -zalveeaqakqjhfl[uypjekwlbcplfcasa]sasiztlswzyhvpd[weglkkwlrrvdvfd]mvsdbveypnjsymtjka[kroszrkveyammdqqool]kgmxohwwgmvcdludvdl -xbroawhwunnamvnaogo[uzdvwckcbkaahqltp]bxudkhzxrykrkffaiiq[ljfeimkibushcpclbia]wztapafqrfdpwcwpyz[xwzhahnbnaxjorpkaj]glhfrkaiizzidtmfi -cycyarwdelrstoi[rivlkfszzvyljoa]hkjtyvycydwronsgyd -mbdqighfupmzacpi[keeoafjlwzqeoaryo]vjcwhcjkjkandqir[auactffhpuwzgzm]ybkwzkxyevwrphq -cpiuxmmwrsjzbyqkfms[buipqvxsetxzsgqi]tzwpfhknlpwmtxzggc[nidtlxvnowvutuqv]qsohatjnnizngzsqxxr[klnzvuognkllhhr]clpjgdupfpanyxwjg -hhtduiwmfhibnpmhjm[emakclmaqjnvjsjyt]ntebrhiztekglpmhsrg[rgehmkrotjobrtah]gzlybshvhkoznupnhr -hyzvardyeiddsgk[vszukhazfkwqsodz]psztzqehiwcpifdlna[igstccorevbmgfae]vdapqjiijwygxap -towtxxuitgwhddsua[bydcnwqycygmimbrut]cvnvgtuiuduzjod[gpazublcnojkfnnvn]rozlfkywwjelmry[wvtxeleixyqstxjqed]vsuvzaskgyooigoczd -uywuytlehdznyxr[goerwtisqdsinimd]abuktfxdobkfqabm -rolwzkzesawhyxddo[yuuvalxthkptulugzh]tagfpsdniekrekzkt -nstbvilzeselffses[cpgyssgpjimcevp]ehfkumlscjuocclfhel -idvdfrmadfyhafvyixs[igsqckpzuelddtl]eclbbakcdyttbtse[irchopmhiqbeloiqq]lwbecblskhopzyw[yjmdufblseluvukftkv]nnawapbepipwcsfz -thqwduckwmjtxwwmj[ppnucfmtpcsawxvkago]vojtdpukjwwlnirsvle[cscyjfrxjlgxhyu]fldolxqfbxhigdom[tgacpmzitahxucqpzke]copdqvctocklhvrq -maseolhlyrjuoqdazl[klgwgcdfwhpwmnlklcx]jycbhtwurlwwsjyuubt[cuabclvzukvmoiniql]pzockwxqjbtadsspl[izzcraalbnmcopcr]cqdxcrkdnwclxcitizq -ucyccfdgxaciwhx[txuygxhekywmyuaaina]szfdjuddiopneadpot[zpjsnpjtmicknxkybi]lfirzuldnatglheyhnw[rhgqfyfxlaunabfqxl]hplszylhorbrkuy -vmgeqazfjldqcfif[fuepxyjuuzxkect]ywoxrfdxbyjomjo -qacfshruytmlwyj[jpqmllbdypmnzqoe]sdhmtuefjbrmvmeby[xkyplnmmmcrcmixkls]motyvnyucleirbnmrys[zdopkcnnuvxmhrg]feeagfdkgorsubr -knlaaiwxponscqwtqla[jxilqsyolsnanzxvqi]itqqqbrfpcexbnecnkw[bpcxykvtdbxejlcda]mxodmdxzohrturffnwf -txvqlvddwpcysvkctlu[wvuoeprflcpycbghfv]ksbpnggnitrxkua[hqyiyucnvjqsceml]uwwwbxrjvodohwznlx -oebxtpwwjtewgkwjbv[omataxkuqenxmxolwe]aiepvclknbgapqh[wywlrbzliilwwvebxbl]ljsiuvllqbjrvqzh -jznegbplekeeohnf[hegaqbzbjwdhgkouzja]msaozvrtyshcajexwen[cnleoafnzyvbvdfndha]guawhzetoxlxmjwt -nytoqgolirudokcgok[qjtvenvrstrjjlsbvzq]mwhkktxfsokxxqb[pgswnhmmgzcrgjbqcx]amhrxgwmcnykgpuzfb[dnihosgggajabkoq]jtyxfrifreihydzwjdx -bxihyluintytvypxhl[kbnizownozfekbhmsp]sjgxqgjbhoftgmbck[knoibzmlipdnfca]ofyxruebaspanxxhakl -xhrlcwziflvahls[babpaszszfgfywj]gkquumhyqvozkgubcs[gkjczyujqykeifhsylz]fhmvopfsltpzijdw -ntyxwcfpdgnsyau[eqjxtsfneseakvrf]sbzesbxxrrmpmlazhi -lwakhsvcamfxiceusua[ymczlpqkoiophom]fiybjcxhftziivsrsok[sejyfiorjpptboakf]ipsamdcnfnlhger -ncgeewwfszytkag[kizbzwnxepsvdxsbzbm]fofhxxpymrbqvcco[swphuoqvhbpghtku]hvxqclwgtxxqywhhs[ibvpkuiylqazccin]oftqdvkbzdkmycntx -yhnhzwjjsiqngmhe[jtkcipgiclbqublpfs]glxyczwidjilkqoa[ytsphdvgnawjsctty]xdofsnhnpsylvmso[pmjrjgiwhqfegydcs]ylfcipikfzvmpjn -pwlhyvxnneepoqexj[jsnwzbjxibgqnpjgdf]qndnlnzxewcrjio[hccvunupvbcyptqdihc]rfhmapmentuhoiv[kohfhnoakeglvnasojm]oggzhzybuuupwdrjrtj -eyglfycgaoqwsqqnue[woaxqinxtvrhsbjjvnk]cfnkhvorifhxedbmbmq -nrqqggalpihpjyu[dqbqopedkxhoqqnp]qguazmdjtenlvzgoemw[ccjlmsdaajwghuikrnp]xrjcyfkrrfxddnjn -wkiymdlskwyjrft[ovucvqbenolfvvu]tzymrvmekxnlptynj[dupyullbzepmmrmgwe]fnjtcvrvzstijxq[elzfqhyjdyprzfxa]uszwjwzbbzgpcavynk -jrdliqwwffvgzpu[mxoivfuwuqvtxqmbbs]tvtlqzqgwzgshkpw[hspnaspqnjvwybzfzxd]clkhutlibvxzxfrgg[yujteartlwdhzfgsn]lyfrxjqcpkcvcsnsw -gtfhmxlpptgvgwob[xlzqaoawpmmjwszqmhm]xalfbbroilfuzzqm -gqxmhinpeppmdhbdt[cpoaeltrlzmfgsipvg]iqlrhncmkmjijjh[xsbdusetrksrxjiofj]zndjqyxwvmsnrbcyrmh[qnbxczovjlrrvilks]rfpihmkwzmgxcynu -abcncmuhelkxeph[crlbybjylvbgtsk]yvnbosicedmzurqcm -fbhtialrsrrtpwcxxh[pisambikwkesdtbsj]zcdseybwrdrkxeiylg -sehxfywgpznuuypj[upswvzwnkinocjk]nabhugsxhitlhis[ilrwksgypfqgfexvuhv]torregbntatolgchv[kkimpdkcxhsxyuczj]xpfacbmnrhcxnbgwis -hldgiynbgrfjcunattg[nwfovbxygpkwmxnulm]xleqlwcajqwnncww[waoaudnttcfdktcd]yikfvdmekcexcrhsi[sntclwlhouhyjrob]wqpclaistsngwfmf -izblnsxlmqjhxvx[qpmqqzakbjpbapwtlel]vmriwjoqlrttqpoxay[ylqzxxdpycurefadv]ftcuduceaycwejp -jqjtnshmtsvokhwnpr[bxprgnaltcsqdkceygx]udqckcknpvegeryj[zvjfvligrqxnpypoerp]zhzwojzkckjwgdyu -ohxpnvtduqvsihjt[eczkrdqlgyddymrdjfj]zzqhfijxsgoisbwpd[lysfkgekxvqspagq]kemxkdqxetnkyctjp[bknjdsvchfxflsrkuum]wmxncxrwwxxxgza -xnulgysrzxheppsiril[hdxgzhscbjhkcntrmsy]vhedyohrrqclnoe[nnuxdbtlbjvaddo]xivkwdwvmkplsvfaal[omihwmflpvrshkcoci]hekqpjtrjlsaomfd -hfyusspcypxdbgzb[cxbfccrumbqqqxb]ygsuxbxdfkisqwstqp[lqctoagvchrmggtmo]dgmcjusbvlmlvkdmnpu -vmpobkctlhdwqjyb[dxeinhrldspqhgeu]ndglldouuoawkiwtask[szkthuhxdkmfqoqwwgq]zwjhzselzvirjadzvr[rholepzsidriqmlepo]yhbxhcmbkvripyusams -mzscivdohxhfkdqet[imwvpkunuzbhbaj]tohxwppjtsjykxrj[nhonsbadufgsqiysn]cogovslrrwexgzujn -pzsteeyowqmhzaqao[qsbohgqamrksizzs]vscfiltkxbxwbdlold[psofpwfkxhsxllnz]odwbidqaqpuchaew[kruwykloeqpcrjzon]famaoipldevywnouele -tuqiapyobwqwpwbqqu[ycphsbdcwbmklro]medgafihivwegukhfof -lficcecamifbjwk[sdguwtafkigjiapxagj]hmeqrhxptojctevbdbu[zvxeefaytjajdpwi]uliqtzilzcnwmbfusnm -pvyzncrszmuienoptx[bigapupzitygcxstqx]rqikselsbelyfjdm[lyqmdmfyofksmecg]wjceogefnlgelpguu -hmddytvxqrazumnnr[hpeurkbdfejhlfvg]pedwizmuhmtpdwh[efikgkrhnagpmqypzx]ltlncfegswhwcxa[bakxhwhtvxcwcxtmofk]zwjvbxyvljlfaie -oxgoszggsifsgrck[gruwptjveewmfewguku]otchieijhojsyxi -kunxbbrdhibhtlknrq[tmtsuhwakksyets]xdugxmqcstdallfqgq[tticbbqirncbjtx]knkygxawcwdhefesu[rerbfffgddyehtvl]yasblwlhikbvjidgku -qoqnwslopcpytqy[zngrksptgviifcwbw]nuislpzizqikmgn -khmctigslwdgzghkbk[veaqghpizqwjxlwcf]aymehevjgpjgwruhyc[hzgzilbhyoazljsk]jocgjmooxqxayzsa -xodvowdhvnquwtma[kvlbfwwzeuucthg]djlyemkbpudpjlnrkv[cbaqlhuwfwwfvbdewx]vsjvsxsizgwsakpx[pzyowqndqdbkdakdney]eeylqpqpuqvdyyr -cmdykdqavxgeismtlua[iwviddbtauhirfcabh]fhpsinbnwrcpxdho[tdbgrmgscvzukjl]rxupjtwbwmtgnltbjp[vgzucvscpzgjnvg]zftzsshpmizeksiz -kfzmwzmzdpxabvi[ftkotbrorpkpfxzbg]hgbrsewdgnnqhxvueya[lkjknzgrbuzjqxwqseg]oyzaqahfuqtpbzi[yflzhfxwkugpetsqli]nowgjqaquqhrlxz -ktphtjqwsitgbaii[tjwcbyfrpupwkvzrol]smlczhhekwxtlvxdfn[mqfupholnlvfhuv]mvdhzncezgunydrk -lrvdftzasxbpfgb[pglmengmgfbnzxz]hbasbstksqkkqpwkcbp -siheyyvdmjiubhlapns[xfcaevnaoexubdar]pgbougfzkmlzjqygdta -tblrafqbjhwzbwbe[iefobcqdrypwnwidvm]olrzzrqgkwiefngf[asvmlckavcwtuosgkrm]esqsgwmiyxncjjqsqp -alvaycnbqdlvvnwcnq[jwxzjzgpnzmcampkye]hepmdlzjvxhboxh -mtfkavmnrxyfzvkes[gmwvavomsyolkahey]dnqosibjkplwzjojus -gbckujjuhwnvovpfqw[qwievsrrtusgzbscuf]bnrjcovodutibjtq[fxteivdfkpixonphrog]mnumbxikkkyeositn -remzamtzlhwpndrknl[xgrbcgdvlvrcdrpi]tnzimcpmxzaxsgpu[klvglrrepqxiiewn]lozcwxnclirneaky[nevhtplqsmuhykzqxf]fgmsbwdgfwjftndzi -aybmjypdrytigyyip[zafsvprjirkniuwr]wfdyfncywtdtzezdbtm[umbxrtflhquwdofgut]lyjixlycobwpwvhfp[xoxtkyhvwqgawmike]bfqtgcxvcfwtdpl -tugswvsgbsfbiyzcm[akmlddjckugylrea]fyzltfupxnvagbshlb -lcgvlozzzzpzxeoee[zsvjydznyoadkvyxlsq]wqmgagbkerqyxjnnx[isukybwewezizpll]odqwazjphoaqhzltms[gtqeysqpwuuohdbhcnx]yqtvojobgaluizidrbn -agnxxgirnprujhsk[hagcvuqcwyhmkdqmn]zehvuytegijhnfqnk[ytlokgpipjcviulp]hsomdskdngoysnbmg[wztsneomppnewhrl]gpkauttapxhcjrsicvy -cvnowinufvrjpiqtq[kuavqbtrcelpcuasmk]poksbapbwverccds[qdddbhewvxgfoldib]mthrvrsfygbhlwlkcs[zhivcpxibufugkpigzs]qffdjnrsoigwxqhaf -kovjiaxxjvzmzvmn[cmrbwjccgphtstvaiq]onqfbpryjertymd[sgmcnqbseodopnnd]gbgealygrgjnamdq[yrjuwjfvmsmgbur]ldiztdwrwmeqrohy -tluglhveqluxpiy[wrsgxdrzuigwzfsby]bmhqmnbecjnyutpwlbk[iifejjworkzrsaj]illltueflutteej[adfixnftjenvyrigmkv]zgsqagrctomzublltjm -fhcnrceynkcnnjxj[jrevstsodmhopao]zqapczirtxrunfhl -rzmxbxurpdmzgef[agevdburkuvnsrof]rhclixqpruwxuanwxct -vxejrazzpddvobzlq[dpspaddyabqzrjgvv]elcpgozzkqjsasufcv -iaodnwpcpresylkhyy[dltvlrxbvnqslzzyvox]qownkehbhjprbzf -kqbwgctrhxwrkkedau[occltggonhshykttsrr]snshslgqtlgejanlg -jpesfmiguicqdcnkm[oawppiwdsmoidvkcre]wfifgnhqeisplngcjkr[wevtsiuznmpapke]dqgxavmudniuaml -ddewtwhdfjatjlgrt[ceurnauksrgwzondnb]znsvkdkwsimbmdxfkh -hwjwuhdokecprunbju[jhftguwujsuetdriyu]vcgpesthcnwuwpwes -cgizaalsahfzkcxab[nehrqohgkmbxiufyco]xbnclpuepsanwrwjoo[kvdifptokbtlihgx]hgynbeebmdwbkwrfbh[rlypefyljzefnft]wwevofyexvbojyc -ckxkzlpwrfhwzuep[etqgjhcmexxvaccx]qqkhjttaudjpbjboeo[gihevbqqqumfythcfm]hraqbarwvqnmvtiy[cbnfqzxyjcpmwvu]lrugefybnoiopvzi -bbmhfnwnuhvdgmoibjq[eugipbrefcqiniulz]frkuvbhbdiaoaqdcaq[ksqqrrhjltlxvet]cdjhqazjzfrphjzjr[aspkvkpmwhkzxfeic]vkhbjolvoddtaasvs -rxkbkkhnaiudojzsr[ecdvrnjjyzyqjxf]uxctotuqtvambwea -saknwxxhcybeglwr[molhqlfbvopapnuco]hbbaomsdwcfwvoi[rlvhmvffqcyftricsyb]pkeuoigxjpwfbffif -pylywhhzktocomu[sehthaaqwkyerucg]cwfmpqudeylrtavze -vmawzgbfmmsivwfqclb[fpvwdbyrfjgmidxw]btatkdonphkxtprxfsj -kspofpgsttceoft[fcqagpbfoujjulhp]fkbxvsbuwioyngydy[hnoxyyuhdviahwsf]gustmoflyrtelseo -xyiofnffruqapvtgnr[wmigiedeszezgunm]vydqpobqqrisgtt[kolobhezpsiolofxrlq]abrzbbmtlqvuhxl -enzmvjyrzypbbtmbvx[izvhoqpjgqgmmvricf]dbghstbtqgqawqjr[irvprevogenchjy]gbiwvcxncbjjvwmshsx -uavpufepuqdbjedp[itqmeflkorinwdpjwp]hlrnsxymcnxwulsmfk[bayxjuxhtpcwafadefe]srrkibtivlskepjxamu -dlwhxttrwjlxlit[atmcusmqvonodkfwqvb]ilfdsqjtjbimpaqht[zsbqjwsrgxlxbjqmulb]feblytbapctmfuao -zfzicvjnuuugutgymp[owgyvyjfhrqpuukkgok]dfkfwodxgvrdqelliaa[xaumszuhzjjsxwe]ihaxfxpxjxcbhjg -gmsgnyadjfimoemyzt[fjtprppdzhkorpqoo]eyxayeizyntiumrgk -wvdatykekdfednl[kwpjrdcfjjklpdofpq]lidlhawqalcyigapvv[ukqjuzvvxehbwzhsci]rdrfhnobcwtvivgcc -wvqxpnxpjmzfnfy[xgtkzusumupupuqvn]vmxceafgkxhnosupdkj -ypfaupbycoerlpnhvk[pjrtdmwsmsckcfongoo]bjxlfxbekwvfruvy[uccfekaoczxlyigfs]gnvkjcwikenkmvgrpdj[yrtbyzxjkmpewjpbstp]nfwcwhereraqwxu -cqxbsrqdgqudcci[olptuqqvfgunmstjc]xnppdflvdcjfviaemlm -asywjbgrfvbfnkhnc[euubbvzujqjnsxtmel]gwxqasfbyjazgqodfh -gvnexriimytwvefmo[dtuxofcgyfnaiibqx]iaaodpjwjnkbrqsmdzp[nuvnumldfhglafg]dpcqqfdrekqdfyfe -hnwaqtrqgztvegfhj[mzqkcvhmqhzwmhlkc]kytpmyhzrvtytwvfkqk -latjxjyjkwwnvyrbl[bjnilknxprpwziowcjn]zpdvccsjiuhfwrkn -nowozzvrysgsfhxd[lhgxyitirlsyljl]nodxmmwtydaqkoxvu[vgbjtbbjqgfbssytsk]gpzprrvyvseifydxz -sjihqhaecgshhhdrbto[goawszmxrrdtoxq]qvywgrnewpsordounhw[oaxydcsvrzzunbizz]nzisqsdrmmsaqwt[nmyxmrkeainaqyfe]eacdicawhfuobezyao -oyztkiwsxqcufgqk[iyxqvktohfnoymgisag]acfhjawamdhawitvjg[npflzsugezpsmunukqa]vhhxnunvyxjtehyvv -jzfmuzdlemckyiccan[rykdnvtoavzjtjxtx]vcmkcuioriltvpzzxqb[jdgqayewkwcqpkg]ulsujrvqzsmnpqgvg[lshytukyfqhnjehk]cpwbeyiudngpkrl -uruvigtkkoqkfdbqkre[wyvcwnxixwkacuu]ajvziogdmzueetqzxxx[fyevgfzreomzjbsumi]ahbhcyjbadiacwjplq[quesxyjqfbckmnt]oqehbkjyoxsyczfta -xzqfptkjpiknvkyzzt[hklpsitbnhlozgp]pkbgrwmqrbhohay[mhphptvyseydwfq]ehswmqarsalmcatb -ohahitbjjxlnkyb[umyhhgtcasbfbxqx]dxyhbvpjjatkwvpkyry -bcixbnnzlqxkisv[tapovjggqzlwlmc]vwnosivvmdcfsor[uaapwzmzarenaplcjp]jdcpazyedcdkdinrrz -kdofbgwblzpnocgpq[scfdzdrueknbdud]axnfckaaghmrpfmk -fisxkiplryvtnrvm[sypuemhvxvohsapkccc]exrrwesixcvnhzpopk[hpsilxrztuukzksyax]lixfijobrlgmonzui -zjnlscyhmjmoofha[ezglbbmqulybnvf]qvbharzbfbbustsm[tdeqjfbfxeiknfr]chpwwntytidtnnjf -qildxsfzfukzbmre[jykfpbbfelicvkqov]pyemzfzobutliokrrox[uplajddwknupdnfje]vombwrjguiukbiwozj[kcutkvgruxqqcuykn]zsbonxyerpjkfpnxchj -pdmfyadwrblhcvecezb[fhqgurbenzitepyh]xhhtisxbusntgekaps[yefgbqwocpsexwq]emmlcuwjwvluecbfo[ohehzdjljocucatf]zmgbwenmeuiftywp -xhrulprzdnbbzenux[ptzrrcmdscsuryk]ognjzqtletsyrcy[snpqabmryhyvcyztmd]lhkwhjylportbbo -xphruwdeuqibzdss[ubuaiomstyuqgcgzyn]upkpgfqmamubaqhkao[ohjojarsqpjldirf]ianntdwcgclwmyzwjh[qqeajbudidxsqfw]nenqeljkdyjucrqnsgd -xuydzitbfqwpaafru[jasqmetengbkljylhse]wkqxkjwkoipjfhkafnt[uolbyhzhmtupebneng]pcjjrczeczmoenefu -ievtjpcjrlfqwisl[pzhzabrlrdeadbtpyec]sowfrknejwbuvgs -qcuiylijqwfcqwjisqr[icjobpbxzjzuaxc]pcrdpfgwajrudfhxb[oiqtbvhfvitjvuts]ctwyepzbqlrtwuclz[smugjsqssswocjyc]lhlncivlmhmoexsrd -yqmqbdhiciqlgdmf[rywqydtlwdocdih]ofxwyqckxktvcrlxsx[rxupkwzkvwrmhuiz]znbksfkkqxephhb -bgzhbpweidflkmmjc[gxozhwikjiygyrm]vykpmxdywyfummana[mcqteiumnmmoyiwtcqw]ntczagaqoprodvhxbl -gvtyicyxseltoqfgk[eozvokbnjytodemeo]ogofokdupjyhzdgrk[fucnzhyuqkcakflcky]zfgxqfofzfdxyzetc[kdgpxyithocprbr]rpqlihcmgthswhvz -svrwqsrlntabucyssj[trbqnxxvtfiatqd]isjqyfxsoarfetrtgmm[lnwqkkgqucipvocrk]cdcsuvgwvzurnxleuus[wqjewzmcvqhhgwawyo]arzledaetbnpjmwjrl -jttgsvurypqumflcm[ccznbkqklwsxmva]ooughikefyugfvz[rzsyqmtahohpmnq]kyotvedmsjfshan[bwadbneyfitukleqbyg]oyeonratlyvtfbcrs -rpbklfvsjmisbnowf[vupfpfstcrfdxipqi]wuftflxmtftrcrb -igqcfvsqbbvpmgflu[kremgawldkinlqnr]ogcijqlgvrvbloj -ncjbiybzlsophbdemtc[zszwhtluxpobqclp]unvkyqmemvucdtwt[bzmibpkgwokausrgo]btnixophsknmjrqozwt -gxapkeestvvhodxnp[xlvglgrlzjdrpjrps]sephfhztipqaftxnqp -zalwvceeodddhqqyrk[znydhdhxhprlmip]bjijtiotyvfgyiou[odtkdhdrwuzpgwkf]kldnjprzjewdeyzmdua[wsdyljqvdmfdenajaks]zcvlwqkrytjsryab -schsgvlniqevsrjfkxw[drtzpizdeopipceke]bduaeqelcxyvykt[vhoefhavfmuhjkgooub]tzgcfhwkfuvwcif -wocmjawhtyhxksjiktg[hftunpxmlvyxauvnfj]spefcqpimqgjhnou[gmzejgwtyavnatavwju]vccngpxjmmxlruac -igqxjgofompnnrsaxoh[lmmrwzhovfloeps]loixvtpiyzagyvgq[yaiiiuvpjpuldqk]jwpjsgmvglkzuiepr -jgvoejrytatxvfqwt[hinkejefiqlrpqy]cgmvjuyjejpinjunld[qcdmwbqbqusirlxh]udhmheqsvmqmczbbofh -qffigxgklwwslnts[gwhobujjovmwfmrg]menqzjmmxrgchttltek[fwegvyhranuutxgxec]fwzgoobvkjekogpfscr -qlphzfkuyrhvkmsfxmb[unvtasxalhelbiw]gwqjfeftpkxtfiru[dhkyfsvpktyrttk]mypdaocnergxlnbodpi -pxdqzshlqhkrhzwcqkb[tudazezhnktsxxexyq]ybzclsifzrgndcaxq[ewlslzvwnqqwvljgo]nwnyptvummeraaoow -ysivygqkobbtznpxy[ydbgipznapsnkzfq]upackoodqdqmpvbgc[qnzvzwnbwrvgvwn]imcsgjzzaeltfxyhbx -hcqlfxoahajthjesrdy[nammwfgfdqnjewunwz]pdzecgfgatymrrntt -vwpdygtfuvbryipr[ehziaqbphyzzdolbfsv]rqxvfvafrauzncapu[dvqlgdgkzgpbjuihbl]sdtldsvjvvtlvjdgd -rajovnvmoxozjldjd[czqnvirgxkydoaaxr]dejvwkgmpwqvnvnzzsb[zwxifotwvljvpkxae]taoulidxuvefjqxjdu -jywqykajspyzvcw[jkqxjzfmvcrsqszgim]fncjgfxwbvfdwujhooa[otrkhmvyonynxsyap]skgdhtgcwmzixpdgmjh -wbkndoivecgnkrid[tpdmkrufmawhpijryk]untkposunbiezua[njngjktbavkmsozyy]dqotrtnnoxxejcz[nyinrkqzxnsaahwa]zpdibcyegeumjjgowz -gexzzkajyulforpnmb[mwihfmwsdpjjsnaxmme]xavowvaqybvqcqescdq[hjymwnhorqcdkoxv]myycpwmcpxinhru[koqbxfaoankdcpi]hgdktcvvxvoolccqcy -alpcsvxjoouuhjrgzo[blnjpvnbtcufzsxqn]ipijmuwbljfwuxotk[sgpwkohrsfeypqc]vqlggpiytetmkifwc -ixbszxrkuuzvvstrn[kdgfwhiapjrtiervwi]iugjmuvqljcbnmumal[ajgjfwerxsqqyrxuvob]qcdagpdvlnicajqcooo[qtuiukkwxyevxmgijtm]bgfetysdwvceqjc -pdbbmswfeutwunlcm[ywbxptxhgqpjkpeenbx]wzzaxgyiztbdftpm[lbeexhgaqvezxfef]fqktklfxugwifcfaio[ucpewlhkqnbsigioumy]cawftwrwmbnfmzmhd -xmtduxirbkbxjrqkvg[ythlqfokwjfwowrq]dguxbidgwelcrbxahi[mdumdnvbcsicvki]yhdgylmjisngrkcnbne -yzilepuvsfipivcroyu[czocwppwvwxjadgqpc]uoypwqxrpcpdzmsyyqx[mzjaguojtnjobsvpdx]vnsywqfvrnpipenwka[dtiayvtdtuyeqlddh]wpxkwbagfqncorkomi -qyebzyuerdwfocyr[cayytpduwkezuatyb]nuazweyhjemncuqpp[gwadeldyzfsvyqyk]gqjdzsuylxshtoayat -eliktfnkrxvywmvr[tlnexbwvbbdeupd]gynrdmuppfbawfcb[dqsidilgsixsudputz]odwsmpcptosjdhrp[mumunqhddegofkrpabd]bnetmxiqkwhtcsgpuui -wuozzupdubqhnbm[siwvzeelxcodzissd]niswczzlnrokkhrnd -bjxpecnvcntfbqdyqy[hjawjkugajcwmouz]ipusnakbyyxmqhyislo[xcafwiwiabdlxpaqqo]vaemogopzemmnilw -dlczcabztkrsdznjlcd[atcfirjxoipnvnoobjr]ujnimmhscetvevwpj[vnbwetjzberefmavwuy]penzvgcewibypznzpv[rqsqdxopumiqfftcb]qrotltpgkmzcndx -juqqbnfozoikxscqata[cgretlqkyynhwhmk]yiehuxyidjlzpjs[jdnlbxkxvsufsduoulo]ymrfqienfjrrgraxfh[jlopugujyekjzrfet]hqlqjkulbfsnnxyksp -epcyjxlwzmxwlulhx[pxjecldoxjwjkrndmir]baneyblyinubutjdi[cufdnjpvlwbfqbulb]dbzgyztjopciduxuo[paqntbrciorikaw]jbpsfzmzxvxlrgj -euufrqxfhnfdzlawui[zwgpectzebtpxfwbym]btexmfeuilnoqsbgmz[hvnxaanolwzkygx]hurfyrjkanhjlaz[vdmsczzhobknlhoslpg]bgitrvjaildspbz -gaweiazdfuixwqo[qedebtjxaewtracsgk]qnmuhjsbvqvcnov[aabcxwfcazxjqajv]xlhkehyvjohrqkbzyow -uqxzgyclomagldxv[amcvkpboneuscronwcs]qbeqgbmrdcdtvsc -xgkenttkfbysllows[bamxgmibkgysryjebgr]dhfiqnlocykclbofdzj -ppyfzqrjpxgouxmsduv[euokodyohaiajyvsrz]xfxsvtjasezevkjwjk -vcsgnfhhjkjssirc[kfdwqpdjaejqbfaxu]riqzqfwmwnsiqgamwm -tvxtikdqugadgbux[niaxwpplrlwrnipcnnc]tcunnqamexertrdm[xkxjepysgqqdphb]vnxvtxntrsqrfjaz[akxkeqvlxgaorhqnd]sfhwarxbzfbtftuflr -lwklfaiawghiwljxxow[oqmepnydmfkjbgkrjaj]clhguzdrfrmcoslsghh -eqtzgxqoviujmxpg[pkkbcdmlkvbcppqrm]zjzmsjmxdkaknido[sellbmhvshvqdsslyq]xuokcgfaxstavgkni -gstjodvjotzmvnm[mfvosfrnlksillaqs]riecejrjvhdrjvdl[sznhzufedvbdhbeq]msgvdfzoxeykqyx -ivwoejkryedvxpi[autbisivgebnntgixu]papdjtvhwtxgipbhes -apzalddmyxxmfysm[cdzptytpjydinlfdxa]gnjxiwepetlucfl[izgqnvcdaqkzgtpvwvk]cdxqaizjmvdnxigkmvm[cdybhclfttdchsbnyzs]xlqahfrmgnowlgba -slubhmrmovzbgdw[dehwvsngduvcfkontgs]zeiqylnomqgevvikm[oubxjfwewqtdjwacb]mqjinmndnakfemp[mccapdxlrmrevbuaas]hcjdpjgnoguztrdjgbt -vqeogkqjnfuayfpioi[rnkeynfubkpmjalnz]ybrwpzhiscwtyue[vnhkeaqwzawibjnvnos]ctmmursouxvylixiqko[voqlscgdnaelsbxcshf]azssljeollyzjjwkxin -sanarwdtnkaemdsoj[ojswyaadxpnpzcm]acjrepbjwnnpncdf -uvankqvbgxtgignh[zaimktolqipleig]mobimtizmlgqetrxkft[kooknezmesqkqisip]jdpwwsisdorcrryvyjn -lkiqyvxlouvphqf[wiibwrighxagoiod]mavajklcesvhiytvcx[ntesmbqoxkadtth]kovhcrsmmtllhai -ilzqxrlibfavovp[hrdmyejnxrlntti]yqmycbqlyitgkumdm -oslndtyjgissmwhqbo[lguvaxjavhlklnqvd]cbmjzevkakhfauq[huujtqleuzhwcbpxjf]hiitxzclsgphiembgwx[ixccjsoybxmjmufm]knmagcfohytzcoq -eutljtdlueiugunxsy[bmbgyvpiruvvuezir]vksxzmgftqglhrowpk[wphxqgxjmzhuqrwhce]giazmdryyjldglcivd[nsicphjzfpfzlhfymh]pfpeazmsdcttsutbs -tmdniznfpsrdaivxpcp[nlebmzzfjfklqixhk]sbusrwexlbpswiyslbh[tuvimwrkchmarbvl]ykhoceojfjugoim -vjkixsnkgnhzcsj[eqauuxevvcbzmlrvxk]owiikpkahbpkpuhkmns -yiomyydjxljwyxoeh[rxyahvmloktamapez]ygtodyeyjtqusou[esemeduybcbngynmzl]rxszjfhelknuyjq -hayzvqcfdjowlfeavo[mmcaawmtqthurqvmlfq]kbdpwcduhsjfbskcin[sueeedwjrdazxpae]drtfzfbefgvneiiqtsn -lfsgnugdavjvstpk[usjflghmtbzdzavzgos]vajnuirkzezjgkst[ixiusdyawuqkbnacri]yfhtwiifnoltnygk -fqvyvpipisvelyjfa[xewusykjjogfsupar]icdydlsidbisscyn[bpibwwfzoqajtnxlad]potpbswobrhcyvy -wozhxjyiybczbhbqvd[kfsajcbxdespfdewbjw]afcsihkfitjosfwxb[fngvcuammwspeglx]xizamsngscxtprjwkq -kmakicivcpvmjokl[rnsobihgweztudwrql]wytavzsniyqrdrxu -nawqmyenftpbvxo[nsztprtyzoacbxy]jiwvrmgzztoisveafzh[kgpykqugwgvfkztnnz]qqmehjutfdzzowkof -mxddcacabljlmyxmpn[zdlffviwrbhbjhl]niubaphkzsiybwkmh[ysxwkjpjhpyjmosgeo]kkhqupjsegymyxfh[sxxdsrtuwgsznnvhuy]licmdzzrtcxkgce -hkvugidmuerakcmmsn[mkmrvpqxfoghbyxr]brkgsmexzyvqztplvgo -inbjfdjjfofwckfckfo[nhjqvxeoedsfzfpwt]snlalnxxyjihecmxl[qtoxbcyxxtvuliams]bijqmocptaquusurml -wmwfxoaocwtzuhvenl[yzpbmaoazbchjxozl]oulzkybjweqqzml[ydkamvkncxomqsibme]fcuomzdfejvijxeniaf -clyxvevuyzylpdud[jmwhfhkzrzzkawp]nwcvtlwlwnbebgdz[cbnfsolnppgafml]mxhbrzrialopbbk -ekyvudgmgzgiomwt[ebcbzzamsuhycbcvc]gzmmgrqbbuvbzfebh[lyuflvjhaxkfxkv]bvnmyumtjzismbtig[nqoxegjljmzarvyowo]rldakoyzzgansfefpwr -wjhfgmicaoysnhmcer[kocbthyqjwsefyepgqh]vvzlwheralmhnixsb[adysumyfpsahmkntv]bnzgyilfgsepwvrdbdo[yqcnxfvzlpjxnvv]syedcecdzbffhmpztd -qdmvnazvvyyxqjkm[lcmgrtbttzwijqf]gjacmuqivbcttnp[uduzbmcdayazzpr]vabqjkbgwnjophdxwvr[yyljnrcxwwcehamtg]psdjpizyavaebua -fzjlpppzspuaflfwtv[dqmrdnatqlqnvowh]bevfgmojlmxmvfqb[smrcvucejxdrppkldvg]nbagvxquhrilbzi[dtbbwkaqepopjtgsgnz]zebxmxzzszbxtqeyjmd -kipuoxmzbydfycmkxcx[bfmjtzvthijzhezx]aiwnfmjhetyrdahmi -hiekvarctkixnmypau[dafmuxavuaosooos]czvsosvafizsjiouwi -epzppyfkcwcqiirpm[drxvceywherxdpnxl]pzylclelnhztrgnqb[qrmfgrtyqmlnsggg]seaeqafycqwjfccuyhv[fnwvqeftfesdvyu]djdlucfogiqnrblz -ihjtuvxjkvzqdpepjd[xzmyhwkdjooosritpw]rsvwysjoukgevdeve -wdgepzzfwonrsxprc[oefuycfwngwkrgklo]fbckfdmwzzwfiinlfhw[mjebaresrtulcvkeb]aqxnxzpnqukspcol[hpfnupcjrkswiwlgzz]xbnwmtcsqwbpkxys -nbaxkwtbtodcuecg[xqoetzqgjhxmuvfvnoa]edvwhehydqhhfjm[xyepeppmsepsaixyisi]txxbbqwefwuffdztlnc -aqeknneydrvnameefot[dduhtgzqtjyggmr]ausnandgijmikvgd[jjvsfofhypkfrrc]rgzmkiqggfaesoznlxl[przqmabciaxkcunhy]cnntseafxmnjldcp -rxilrztnhgzclsgy[yaxsuppphljrtcxev]mqyqgjopdetsxzmutjk[adyfostrkvhuajndjaw]ikumnitoxctaqcpop -ntotlcdwgtsgotovhyj[wgduvgtqijgobem]hhdytbkiplykiejg[sntkfbyrzgguijtwmm]mpxnepfkhssujwhegbq[sxpsxodobizsvppqptl]uqlqlsopbfmgliw -wbyugpjhymzlgbl[zdoddxxbnxqimlo]tyaobecgkbvrmgajpga[asriovkglwqiukcxtjk]nvjqkrzxwicfzdr[vzqasgjrafilljt]eobbqeenineqwps -xbtwnvkwrlnwseaids[znlftryxezmidoc]suigxfrnxfzeudpi[ahlshriqmozkpiogtc]zpjiwsbdawhjynju -drjfebkgnrcuqyzpezw[hnweqviwyjtfrwpu]popubobnviqwkqfv[plaxjplhmhjqjmqjsh]idacejabrvhfteelbiu[hhxwpwgvjcncpjcovv]tqyykiwalnnkoniju -fwdnjlvptzmxpwvsli[eidmcurldxszfvvhjf]bshskptweuzuqtjym[dpwmmspdxpiqidrfz]bulnlyngfaybqfinqn -khvidctisgemoswq[vzknkycuuvznnjkzay]rvzkmucboqomxkmtuvv -ymfxlhojyjfqvctzue[sihfpembvmdtdda]wezkljquqtkcyiar -cgzdjkbnmhptcggqib[autoeqiibhxdief]zapmbimuvhywdtsbtm -gilwnvmvdyftcdmvaql[esmtawtmepovyih]quztpmdplotzlszav -sfsncarxehtgmutj[aqauaojoqabkguvan]olgokvyhpfjzyqgvbcy[fsfdkbxhstvxlkzb]ozwgbzlhrocqpjoseq -shzexlixgxazcobmdvz[bvrebdcpytgplvii]gxdgzyoqpmkqznz[wuywofxihsgxgpcksgh]lwqsslamcrmkobn -pkjlltvbsjnfarycgf[gwkayyieahfowbrgr]ccgyjvjbdeoilsznvbi[njniljtubngiuwlil]kosrulvapzdufvq -clhvakestwquwywsohs[ubwecsjptinhzngw]dvjcvukpkdrgpbeua[svetegijnnbtetpgfu]nfejtethkqavpol -vksryzexymetdykenw[etxzvunetbovrwttr]pnmwnldqzmxzjldnmh[vnskreneiwajgmd]rwbeletsldocxguy[agccpaxhrlfokpt]wembexaqbprlrzg -wrxyiatlpvvcuroguv[hfcsmxesvpwfgtpqip]jbspeicucxtbnti -gbxyskaitzeogoej[drokshekgcpxpgktoi]ivxtocmlrugoguf -sfzpstesdmegcuhn[drrpxmsfpcjvqerjb]jqcvoeifgceremgz[chsbisfayixexqer]qyhonslazxrkagpp -bfufgciknfkthfbr[tlfmuebscorrclekjfx]offqunmqlcetebpov[bsbmhnbmmqmdbpnt]knkjsvpmffjqvtqpk[bryxvufxbsocwnd]hkxplkqhsymumxarn -ftafmqgtmaazvmstfq[qxsvdxplpesqzqg]yrbkrhtzaqtygxjheuo -xqgmldfvsmitjzhbr[yrwujpzkzksxdbthk]jblnpmdcljgadym -ijtilnlhxlkhoaftet[rgzfrfsilxhwgpzx]gmdwwndlvtvvtdimd[wyghkhzahfwpaknrxiy]ekpkylqvvxypaszcozp[hjdwslazthbzhdimne]xuptxflgcjgdajfgqa -ceklxvygwnkfrqvwd[qxjqndmhxzvhicvcf]lvrzumjuaawtgviue[xdvdtoulmeaaiiuqa]xveikrwzicxctyy -pdvdkirojjubchc[iylcutkspnuquwdc]uzbtxemzazuwottv[sojezpwrsstkdwkses]laokggzzeaobwfus -ibuowtqicxqiifze[emohxvujvolopghkrgw]secpljnouzblzup[xvpvnqvnsgsnmhwdpbn]ykpvwjlhtpdjlflxvye -botbhhrfjqjqwdgmeu[itwjgbhzrqnnagvy]pzexftzhniligeyd[egtdkuktihxgmdd]cumzxbfgryzedtsc -dgvuwphikpupaovhovx[nbwxxhepxfzlxcoma]vypmvuopklupuzlk[plkvxscxriyzeln]sopaaxvckgcbiahm[gpafvifmxvjouczus]uyqhgsdxkcylwle -gufjlajgktlwahsa[kwtpvwbvjzpmpbstiyj]nqkkgajutaofdauzmfq[zihotkwlyixmfsp]fezlipznjthttsiwpj -lqriaqvyvawemnogd[gyqqrvivtuxxbzf]xqrrsgnxbpmjsgqqr[zfwpyfwojhemhmyoajq]pyninwzcjzypmygy[qzftysfhztknzjo]zyybzurfxiolsik -iojvqxazkhdwzed[jnnntfrduoxnyqpeszj]dpeducyducrsuwa[rnfiudvklwbdbho]lklubgxkqldqalvh[ogbeiwjdaeuwjyz]cvhoaaenmeuovocvog -kxtwtkvaixeisgzjky[cnzhhsipmfawaqzc]gjpptvjnwmbqqbuum[qryazcieexjwwsvfi]cysiabvuldrkvsxqgu[koflanzstuwaebjih]krzursoabnpundffqs -bzqcnugxfeixhnvk[sjyuxwjdceauputr]tcjsgbmvjklijlowud[mdmuqbpupxhndvfcd]ypgdbaxwopztyqelfis[bvpphfvdscmfbhynf]vjaytjezersopuqa -sceyeinwgkcccgn[sgxwelfgqimdwzlbj]uvyuazuplvkhpndc[etahwkowloxlylnp]hletqjpvxzicdrs[kyrfwcyoudjlueqrvr]kdqsjyoajsfenmrol -atkckckrgntchlets[tyebmdckmayofez]hryglgphkgeoswe[jeamxrrzxgyzvmuh]vcvejocdlauybbz[lnnricpcvqztoumc]uggeimsqrjnppskl -rutaemkjlwrslmsp[jwwgmphxqlggydlsh]xdudpbdjfqtcgrw -lwddwkagigyjsht[zpizzqoqkcbqmdqfqp]vbvigihfyemwjqusdh[kqgxbnysneqgxdwzkpp]issqguyhzmttxofz -zzxsolnnbmerygtvvk[bhfexiwvaohrbqbadi]zdsieuxicwijamvo -lbfovxmrghyzhfdybb[whedwghlrxnjtvqelzp]oezlanrknbaxtmo[jtrlurnbhmuymfwx]puvsiaizbjtqnot[rssajpiwyftzhoacoqh]ihmzohwlncqrfrjpbpn -mflsnlcufwvqbhye[lslradskdqrueaxvoez]iyrdzgwbghbrctrmdt[bqgxpsiwleisnru]sjwifvnufaaedueaag -rcdjaebyojixvatc[bjybjvqonbvdtyjwet]rnatoqmpxauyiezad[ltcfporqmmavmsjgmrb]sdiogziluykhmgcjf[bkkhyuslxlarrqbqe]zzsdsepgilymdpnhw -jikhvuzivjikuxkmlus[vsgrhafeosvtphzg]bjhxequjxbqorsnhx[pvkgxrttjofimfuq]cmrxlinhwqxhrkrdzpk[xugunnrtpxbnemj]hapjbouhnfydllttkdt -xsvwiruapkldajmkyx[iohclbiotvabvkhkngm]qfvbpipvniprtqjj[ehcphknxkybflhn]ackdoidsuczifwx[bdbekqnxcwwskgxp]ofvzsecshsgbqll -rnpjfqpbnpfqtlpkc[itzrqowsquwryisqywl]mrkjwermsejxwqubxwi[plxkhpuflnhspjficnt]djldgtkuzafchfwar[auijeassmbtfdsd]etfcwmifwixeffrtpco -nkqwqvkikgnmwcnos[nmvtwkyhwtwyrrupx]emdniphxpavkede -tkcdryrjllweves[pqdjnylpftbbktemtkl]qlykuckixcfhwuczikv -cfjwosfrfjwgwognyjc[jiwoynoxdngalmreoq]otqvhbkwlkpqatkx[wwgwguxuzwlorap]rjuopkpuaftnkdeg -icgtjqangadcebdax[wyosawgqnexwsdqq]ulyhqvrzrqhibudyu -mrrdimungjnszyr[quzeqzycxcsamewykb]vqrhnvflewxwzvxwxg -aciggfsvhpeaemh[xhizavbtwzpsxdkgzdl]dbqpkvkmrbwjcle -ctxwfkazxjvguatxus[hkcjonilmmvovjawir]ruwyywhbhkrheofbpr[qeknvkabxrdgfxgrp]hymknrdlgolmqrpklal[qbkzigpdxfcgnfhdrqr]hrutorkgyzxlqlujnv -ocyqsefzuzizjllui[ttpjltsmxnkavfbviwn]ccfanejrzrghpnb[ehkgwatoncpnwfpjc]qkwynkumqgvxuslirgg[vrnprgoivxrsqlpbmke]jdygjgsfkbhrbfc -necmpldghpppjggvw[vtantcichlsjgrzdxlo]bihypdunzshlhxktuk[iusfpqesheojjdmk]ycztqgqrqsuifzgnqvw[oyjhytgpicigpcf]ewrixdzorbmmxgywf -tsddziihnzqushtoeg[ldqhzxrgtfkcrhecrm]nnesvhwbrujwmon -rdapxiunwuijmxrqf[qvekjcwvibpucemj]uidzbyozcfnpempx -fdvouzrhnlgyemqqqa[rosijdvpwbgnxzzr]moxykttwbfixxvflpje[daadlshdcnrwftzxpjj]pgpphzgfkeapstad[rptqkhjmanvnfuj]drurgqqilijigaa -dcdcoboftwhtitlto[qdqpbbobdncixqwhmn]cdjrukqmcdbzwji -fsmzzqlggnjqunemec[oxrxnckqpvilfinnolv]mgpmmemxrkuonag[wsoiyculboqjnux]urwswywdpuesxaq -gpughkygfkxahewxsip[licxlfgczxcqejs]idnuezcmwhwgryjare -shoehgaydkpbxwshf[ksbdsdldhfsxjipf]ubrrcyykdsgnywhojya[hfjwtuughentmddwd]wjpsomayxantmltuoep -srpgizgochbueqgg[qeqltfdohredaspdbmy]cexowllqgvorkapnkc[kfivkiksqxospfw]naiqwxlkjowysnh -patacqalyfmxulxxtkw[hyxkhrfewkpafeel]thgckmswuwcjgcuepp[lsfmmxuvmiyyzzxu]yiktaounkhxoqzm -maeefdbswszxotz[sdfwswrwotoblvzk]bqmhwlxmzvjnorn[phhhipunsmqfmormtk]aasvyeqeffypmcop -fhpaqlgiumuampggbha[tktjydzyzgbpqosq]dpqodhygfzmbfku -iotcaohleclcmtwp[zirjcaznbsuwrbbspl]vdyhcyoroztlltnsubz[nmnaakmudmmobxzk]xjxybbzqfoibovwhr[tpzyhrmupmrfoeufsv]nfvtlfdnynqiwrmnmt -bsadpcmsvgfxbpskka[bqcswpjvfijomiajzjv]zjzfrshleucdcwpf[ipqvielmzuykgbs]rsvzmpmpfahujfofx -fvryaokhaacjqgah[epbqswhzewpvaip]cuveezfvkvejvvaizr[hlhatamayfeqllu]ixwqbzzaekbgxkmhzaz -reyvoyklzltgudphp[oxjgegadnwxleogg]ljmtypolhtjwpvs -cbihaubuoteffoyu[svxjexmihzibcqb]jzdqjhmjgugqyur -krpfvdsywmrzxbusjl[juomxpbfboxgvkm]brhpobarqecdmqkiwy -wsbwcjnpzputekmilg[qhdrjrdtwqqaqsymipv]fyrpxnpnbowlhwkcwd[wcxmrmmzlznnrel]oamqtpijleztiuknf -mmjzxbxoyrxkyvdtss[cikixrlteokbezfi]urjcocznnivoqkf[wzqgjmuuvuniccrj]eiarnnhreduakcv -honratmzckbtooiwan[epebkioukueaexbb]xyakukoiqfmtdhvxf -auczawuragikjbyg[xqvricdlkrsbnmjqymq]uwinnxrbwluaanvjyvz -rrpjxhttogyefupw[cidavmfspeeooolb]ucfrrurpkeqltglk[ulptzlfrcvniduqkc]bytebcgtpqkknxpbh -ateymyqwgrjfwemgg[xppbfkjrlnizskzttbw]genvojuvqaudosfm[psnzsxmpjtdbznh]kljgvgkdvezzljte[ovfuojewcuvcqrfdzsk]kmbgrfpjzllvrbmpimu -mrvctdetjidibveb[msvevesuydbqwrytbh]yiliwznzilsslmachk[mqyuthyalilcmdpxz]ctawteeyyrsbncp -xhqazvqcraogaog[efbpamcmboregjesn]vinozerwxjyrytyd[vmzmjnevhaiidnhiuw]nvzsnlixrdzmzvtgfy[veacynylxxfkeep]syokzdwmkkhirrz -swavkosetgudxoshj[fvzlrzpjhrbnbqsccn]hlvbbqalpdfefmaxdse[ekisavmzzlowfwcmqp]hutgwyxxcqjdiso[vraskyhzrfjitpxakqa]rcljjityeqogidyb -hidnzkzjrekzkkqqpj[qvvuzioihfbxhglu]nzlgputvbrvwrchwhzc[rimjeexwqbdnsdn]tfzbpsuttxirwszy -wiubbpcsjjmtbnd[thcllhnafhmdojqr]viplkejozrbrwacv -jaywbjoscfdifdfalf[lvouibjhzbkxdqd]mcxggciwqqirwcyps[ztiybfroldnlieeg]vwnzbrghyfatjsxsvfl[jenhflndcjmgdojv]uyxvsnfigbtgaemccz -uutahwebslojhtl[affybmhohxqavah]xocumtcofvavgdgl[xlypyhazihrgfwllp]ptfnqjlzbaccyoaawi -akdzebybusompcsooz[xgymxdecspvdvkgit]dtnhtzkelcazovecig -jqajvhvbrkrynxg[yekfvwkborakrkfl]bovxzhceonjclmgecgy -ilythgztqwpxktjrpf[igwywudlvdqpqbu]hxmvjverypjvjtk -dbkmmuymxedkowpcws[kxtthcqfurgkuxxx]vkypnrqtmhlsqogt[rtixamexlrydluvxe]nbehtyxipwgvefctyaf[cxtipjkxixrgawvomc]ssvdpknocgugwjxpzpf -fidyxymrgwqpntyg[loqqjfrzmidkxskyfsa]mqilmzklkzhzedf[mitpmedchdhhzxdqpl]roerrhbijrjwmsm[quhrsmqqujwufnm]layxublhkfpoykadvcr -njsjelrfstonstmhq[crcgsmvxndyvyfsjku]yvyrpgjnuimkxcutgvh[gwmbqumupsdfrusp]sbedcqptxzhsohroth[wudivolpxauvxvxbpqk]bnfygsxxzqwxumonnm -ivtobvcmwywqtjkfa[tcfyhhgftbsswpnvbtv]bkuulyhtihhqcckjo[lgnkduoojrzyjhby]uwkeujommiprdopgche -mzrhrvpuyolqlku[rlofuuumtasfuknrasa]tfhglvunxtkafazyehj[hrnjrlpyjntwosogwti]ixtpihfavwqkjnlipmm -jzhfwqxoqsgnrnex[ccrtrnroigtbvrnjeji]bbhfsodufjqhjvplii[mcubmtdgwttmmnazhpt]hovifldmlnbzrwqicaz -hcchhpmerpjppsj[wftljcxoqwtoclz]xihvvfjfhefdkeip[abdthspjojqvwxx]fhffpflinospcczm -vupulseekbaiaoempu[zupmjydxyobqbfmy]xkyopqxvogwcpuwnud[orgnovcpbpqecljkaq]sdvcakqwdmgydeeup -wruccyxbyiexpnka[iirsbfvggokpwli]gztvpqcsckeaiqofwf[zdloxqdlcazkhkppz]jydaafpuoznegyif -lwxqnbbzjlckuji[bzxykmlhlgjosvs]fdocjjmtlhlghzvj[snveavqbuhnzqktmyur]xcoabwwqxexqzakbrh[iqkdvngcdtlhlhudqk]edydfxflcnpzrcjsppt -eokcsyiozfqhcbzffj[uiczyrevovzcgvu]mniuhovkpklhedhx[gbyzowvpnxpemkcrccc]avfhgxxldgtjxuy -rxjbmcovdnxoxrjter[ijiplhrlromkesgs]xwtfawphuvrjimntwvs -uuwjtmgqskgrxrlzt[nqzvntwfmxeptqylma]gbahtqxvunohprsd[strhrrwmxsuoiuvi]nhamfjzlocoufnwbgu[osdxgghdsdkbqcpj]ywmalngfjbjymkz -vsmcjtzwfubhlop[ttbkmxwjonmuscwi]ikjuxrmqhqldtfzqa -oqhkopaodmimgikwcg[biimzvsoczaxfdy]bkcbjbcusyhdpfo[vfnzlymbwetzhbcxz]zyntiiipnkmsjjemxq -hzaeznnipwioicdfa[lperfrgxekbntipyf]mnerflshwywujfsp[nrkcmayjxnxbhuvo]mdxovxksmxlwvkbrdf -cuqqyiwojnwvbybcps[bujmpcuovhebtztm]bektaixvzjpofzb[egiiqzxqdlfwoukjyiw]nqkjlpwevuxeognpnq -ryxoyvavwharlbwzeq[rphqbmnaiykgafsftjs]ijrqxkvnqersvvryz[mevoiitcztvfztorohn]hkchrvkqswjpyay[staoxhiuifnbmxuytlc]fuawdkujedmkpeto -caowivzceqsclbyp[grpcqqthiebrabqwhxv]bzmazhewqmbuhjokm -uhrtxyxnakvjydnroc[fhnjxathwyyxszmo]zzukeuqdhxravrs[zqcltmosvkqcekap]gjartckwucksqzcn[smddsrvnfxqjxya]gkumdkzqxcqxfyhm -ldzhaqlkbxfagur[qvlstlwnkzbmxlxw]reflsfhdsosjaaesps[qajtodlxlfrbdlj]bxytsckpxumuoklw -ghjjrxtnytqatjfxwt[opmvopscrillueslb]zsxtxstrwnyzolxk[lyeeidvaghynwkckr]shhkellgnhsuekrzoc -vpliqrfetzttovx[nkmmjlsskjhnyxh]ayockmlevegaseq[auzorvghfdfuuajnt]poknhujvpctqrrycfun -vzgpmpjvlzbhzhlexp[zheyfmgekvhjsnmosaq]krmficowypbxwbztrn[rvoedtkjlfpxtaot]rxwejzlarsgdlayv -jfrznpvhlbchvre[obxfauzcchgnzksp]fgimlwasdrgqvquis[ewaqnfexmitmuxhqnp]graisawghismkouwfv -nqmcashwuluyxaxcw[fdqovhbtwijgklubmon]dgxewefrjkhrylq[maeguvhvptbgmjdwhxb]dkdmdobhsbyforzmqr -huwexxqnjlofulknxz[qnbpzxlpdlsqrti]sbmmwvryxqsrfzpm[ucizjfqroaflnixzbpr]ndztjtaeahzmkyords -mwlrbdybkjhgorutus[bmbedqpcsxwkganh]ttwjrjrvxsikepdbvgs[qycnjzrbeiiplxarls]atrevpowofauioaof[nlhyhaoljptrowlmyo]hmeaxvwasyaszlgq -tqsmjetgtzmxfgakjqs[cbnxrpnckgcndpcwiae]uavavaewuucokfrm[viufzfvvuiuuehyxcw]nkskrloinkwsoukw -roximfsrbnzyzjmn[bqugwcdliqyzyaqiupv]rpdidncsfgexyncbg[amzmtmqwzipkjfy]fqnscfsjmxjlpoccvfd[bpebfxoinyaqsgjpb]dykidfsbcykdobqe -rcmbmjwgmwathepxunw[uoieoiytmrywrjevift]ourmrqqatqnwmrisyu[bxodgsozbekrcuwf]gkaigbulsjxysdiawg[kczakejsrndvzdirs]ggjgbhegtgijrdz -xtksmozdsgsclsxrfh[afxjsmsjpuqnomb]onqkiyrogyrkykxjr[bhvnrdaenimevcx]snufewjwvfqkafjjzn[cquvjkzxpbfbghmnpwi]wjbdkkloxxgsgnmriw -doruvpwqkvibnww[uslnnvqcrwjlexech]cshujlmmujfjdtjw[pkbasqruzspzipwrqke]yypbzzqwoasgldn -aoxxznvrxfhzwyyq[byxxvystyyrlzvl]jnilbnasrzvgbbhrl -wvtujbbebuyuazangzc[moooepbzqolouuyxij]vhqrubkyyuypknfh[gvfucxhufyyjefei]axvrkaeaqlxxfip[fiazyighxscxhiwydc]acvifmzzltvluos -yzyfibzwjuddaoxc[gpjgkmckxctlttgcdcm]rmjohduchcituck[noozqqxrakiadwu]mipigxbhlbtngtpcpz -zipobscyynjrecng[jeekozoaoyuuqmroisx]tgffoyomlggbyjnnv[mcfybdsenqhygjo]dnzrpghyroqbcje[aoapyvfyscqfzhihddf]vplszbvbycwxqrhb -gcoyyfxpuufglqfsczx[ebjwlqjgtgkqdeike]xtuuxrrbgiwhwqdcyw -mdwjuxoulckloxfujkj[omieaeznetsnkeoroh]ggnwbuenkgeujmap[ghrtxfonaxyhfogpjub]ptyopzxhctssbwlpwy[xmpglsqcnihwzgbgm]yqmqddmugnlrbnqkgci -xeayvddumafiomemh[euwluehznzxvpmzbz]fxcevhwksvwhrvzid[maotzdveeldpyetguj]cixjfwlbbbrrqmnoklo -larctxbpbdnbpqyyz[vzooyuwrgpgtjtq]sgizsbcjteinyxto[jbqzsxejwwgrpcgzwrj]bpwcfwyglhtuxqmy -zbxohuvlboydqvqhhkd[wgcjvlrppivpnxifvk]kmpdiwdtpmrctyhy[pprsqaqxunduprjnjxx]zfbqlbdpmcgfwenem -ghcjhgkmyfejmua[mqsuukbcdvjmdnz]ixxelnebxjrtrdwzlkd[ikojyewznghqksregl]tkthqugytcsdudoggp -hdfwyjganjbjhbjvswz[bfaxlkjfrkakeedg]zrkxyzbozmchfqgz -inmdmdyssqhykuhn[vbjasprzyxaphygdg]ucbbhyvlsjjdqri -zdyejivfbywyaaqljp[sxmtwgwmwbqelhsg]jesgfubnghtsagcu[tofvxzmzzsnywhbx]ibnbzcdhusdiqhgika[sipfigjsngidlzxxneq]bljavpomkpqzrsuuo -uahcmotfanpvzru[opmqbnngxtudnuyc]lsvafzhwwwmoagl[kzpffwsffxozirgyz]lsbjnbzflbiprwuvurf -rzietxnbixgvzxnmzlj[iygcirkrgwwsgpcidzr]bfrwgfeyyatmalyjsl[dweehclvlbefvlcp]qurpnzinmyweipshzs[lgbfgdjhddmtvbzxu]ppxtzzkiizoqqguct -zfsvifntrvbjgdcuc[jjwqwhifqbxeqkbigcl]fmyuetebsksddti[hmopwdnxvmqwqflr]jidndiejmzoutjpkdm -qwnlstjkluchubgkttm[yyndjrkhfqrxuyglebo]xdltobqidrkstozk[shmmslerstluurc]fxkrzqnfjoalxcmssq[bjenpehkwbxpktb]eaallvedtajrnupomva -zxqdqrztephcpieqdi[rigecfyegojksvjmya]rgygzpdzmpvogeurni[odgdyrqmqgrcmhfcu]ggdgejoiritcrdxxu -ezhzkozgllmnompn[sqyilkceizeygqkwot]pdkuklrqdgtgoqap[yvadgqlkffoklshvf]hkgwcnlbadpbiuzvkaz[oozjtyzsxujalkwoo]dhntuiangtulscbzg -zvwmdxzivmtzpkmhnp[qduttqlbrhetmuj]vmykluzepgxxilmn[qgswpbooccvoxlg]ujndjzfubkxmvvdib[yrneuetnuktitut]vvwnzxosnenywomkyj -phuncbfvyiwxfour[oauntpjxaqvwvqn]liffvpoxrbljogpcwvw -usabjelvalpgdyiyn[hywbrqfeqwkizwnxf]ebpcgxloqmzflbeag[dxifrjggqwzokner]ndwzylxxlkdcpbk[kfergfdezgbceby]uscylihvxfbetfnog -afgmwhqdwessspzx[ssbmbckihwjmiaw]zbbiktbhykmehed -hforuldqhrolhqsm[gofgjhapikxnhhdn]xgdarfanlnonwdielb[hvntptxixclnlqphvq]hvvdpsmvsveyaiubt[hiiscphavjogadmj]bbfjdjeecrhhrspxdpq -djtyronibzvtixf[yvofthnckundxfe]eccattkkitxyotbziy[afdaacfefrerytfh]cquizrjfjtqgjozagid[xkbcgazeolbliwp]hukcarrfnjctdycpfb -egwoebxchfxxlrr[hxugiprrlfwmknw]cpmfgzxzakyhumd[evzzvvtjwwzwzywvk]lwcfpjlcgrbjszjvf -hktuhumsttqsgfltrdv[rctkgluikouomerrv]jblnggtkdhveufixx -ejjzogefxwuyadzthjb[ibrhegtzukygkfnziwt]utcbeamzzfkbrmqonlu[yofpkwiuewvtbswaet]zxkgoommtfxezcfcweb -wbauuixpbtjnuos[ozwhlzidaubnfiuiqa]nlkdtbovsytnvjz[ztfjpnzvymrefnt]nixbxdoogrxdvuxbxbr -xadpfckydqkmbvbj[vwdzgyfbjlyslafrp]mbozdmkfztxwailiuv[uttdatknprbzvjvucxh]cqcbkumzxiaqweqfiry -bsdbnkvvlwpezlhc[cdzdiuewblcmciggdgp]halpvjdbnpbdrnkz[ikoyxulwagjnwego]twyvbkffqxasqbomi[ajwtpvliyyssqjex]cfbqtoqqlggpufbfx -qoqtovwkavyaqbkwmd[vxuqdoobfxtanlwd]zklibywcjpksseelw[roqxvvoifjmxnarqvt]zeijltexwykdvpd -obkgwgtfxwjfrepg[slekjheburvgrunuaxf]cnhsvevmitpuwokwee -flulgpwvsikwhpzpza[pmlcfhtmvuiyoidfbfh]czcxxurdakbxizbbfb[blpwjusbzbdwugwbcv]vltmmzttxuhooid[hlbpbqjpqyclebkye]hgozvhgdplllxiio -oupstawbevsasbhv[ddvybaqnhfckfvdgabz]nooqiufueyoflccqzc[jyljuydjddholsx]bbejlommzienlhz[mpbmppjwfqrgucxdqxx]sjohlscgjoprsqt -augjtgfyoatluixgc[atdsbsouunywohfnk]dpghgakdvfscbapsm[nkodybopavlbeikalqj]myhpkcbsbkbjfgj -whzlsgvuspnzdunurbg[cypfmgrkqjeppudbdy]civtfkixnmrkqmchhg[ypyakrsygkyvmfmmyf]blihjslfkbrysntsl -xeyyjiqvduxcflt[xiqxiqeepbpkkydtzxs]vbpbdsaivyavnfwj[rduzjulshqiluheud]inliammiyxregzbsrkt -txvixsvhvmxxsomvo[hgdskyjskapgvyiqzsz]shvhmfrbpxbndsx[plvytalszauhmpkr]jyujmokrvxwmanzbxbi[mefmngrdhatojkpplcv]dttxfesvavgpkbtpri -pproajkxqwedocrc[muhbyboayoghprmbtxs]odroemzznotffsaxsmg[ykfnecchdltzosnyby]nozuvokzntxrnitq -rqimalibychumvzdq[siqhwfjimixscjmne]hkvxsavgjvpzkyay[nzbxnmxgmyuwcywvd]qkuzrfifsyvonaalxu -rymadifucrlickzorqr[phxxuxpffvnjgofl]zqfbhfmzbvhbmask -gzuklpopfcjdrxoekz[lwviuuoyojzggqjs]cyacdnvkgqqafcyprae[iyazavdiashvzwpgip]sztafbunqsyjtpz[fkwjsbllccbrrdpa]dijejdfyzqycvrdkl -nhmayligrdtlvyeo[laulduejrclodvnaoh]frxoepqtmqdzwwupiy -exzcpmjdjiagpvsvin[aontczoixbznfwsvss]hdlmrrdtbumlfvril[gcuizdwjbzyhttw]apadljkbcsylwgekv -pujkeovpnvnleypqz[ecxuhbtnrlnzojsxs]eyolbkoatzbwvnvwxlx -oefowwmlhqytnxaec[rdbjjilbmiazndcycr]dvjwgldyxfrzicw[fxpbshhafqifvyju]ygagsxtxwnsphgzqrpv -lhbebfasigqbhndgsux[drchunjaqzkcmefjys]nzloazwftxoemnmifox[gjpmyydbftxggnggadd]onlcnitfjniiekbiaz[swjdwdaikyykupgyg]ltwxeordcvjfarrhx -ukvzfltucnovohjidr[apslrphaneessxbpdx]cxrovjkruohahxshazw -xnsrwrjioindnxhxrrn[mvuraryghmwxppnlp]mconcxeyryuvfqcoy -opafehetqedyikso[vjnjwsjlbiknomzuu]pjurldelcuxkdlhehm -kvpcbopojkvzykdhm[ldleeqmztdnrohjm]vejwyvzvekairyhc -yrbrakwltaduyge[qwvsxbxwiretxirlsbt]hdnwansdelcvxptiou[uhibherodkibtww]aphfcrfnpewbrblyme[lfwjpxyosiappsd]rshmipxgjvorazj -tsymbomuywfpmdul[wgulyfhhwodplfi]xixmazxgewasngsv -ktywwprbuvuhmnpwfoa[fcuicnujrweusdoe]fuarbahbvkhqjibcfp -snhkrkibygzndryeblm[pykdztwnxrawqbevu]wwiwrwfcwtirdkjh -xhomjlsunzjzgkxc[qyxzsooayiqnuzljj]jftgbnqtumwipywdfrp -mhfgzwlocsrhbfkdbud[kwtnglxzzdwqcfw]ezvrdgdyjjqfwuv[abznvdwgiisyqjxvu]khcfgchqbgwflioa[upibqontzrahabnpi]tgjaagwvmqewmfyer -yfptdfhnebzhgpzism[tglibrfrnpfmydwbea]mmoqveuvvenorhnrw -ljztcdworsemcoe[yloilpxuumxdzzxl]dyawqaacdnjlttcz[dxyytbozmlibkocr]dxpindavjlezzpogz -bwkhzerttqexrgoea[ubnuzbvktcxsxednmu]zqjpbtbzdcfmidopdy[malphrsrebpeeuw]vwdlaafkntcaqmwjqc[abciktgfeaiptay]yqksuqwsuqtckkoyh -filqrpdsqqfgkcu[obiciozcvbatglnx]sjzgtjuddnazrzfcju[svrswvhpfraptqsxolt]nfcphmwaudhrnxkzc[ysohuzukkfqlskgkd]nynxljuswasofiaarc -desdobciyiqsycj[wzvqcbwfbneahei]svofzhyvvsrwasvvg[igvhymbudpcrdgjwv]qtyrjtghnbbtekl -fygnlyiuxapyciwwnbw[fhwxcrwprlaoiybnkbe]fxvtiehvhfgfwtsdfh[mreawqbzyvkbcnkyftm]rryknthocegscrdtbcw[ktbeedxfulszfogwnqi]kqwtzaemzwmsloi -zxroedxtywemimrje[fvzlxeqgczajhimr]lrhvziwtgglifto[buxquosscraxroklx]pryldzimioibwliygt[yvmeeklmyokbgexl]oqezpvcwnctcbskefas -dcowzgprrgvczwfx[zminxdmdflugwkkkk]vfoltgijbqlhjdohr -vtrfdkwipegmqbwrvo[kshaxjtaiuyicufl]zfkbjdxhihqmtjco -djidszgreaxdweqjk[rdjzkbmqtyolitmqhf]plltubpvwojnccsygfy[mewadohjaliobsdwezu]vmrkkqgbtfmwemn[erlreifagjhqavlxxh]yplrasxtqcyowlci -ctautcpnnufupce[qtydhgcjjqofrfay]lfahmjfjyppehyp[qzaxqkpopvwzqofe]rkcqkjpgptshvoucer[qmczzorygyrwbxiji]zljzfavjmwawfrfr -mwmkedorswoukdumznq[hdujfmdkyiznceknql]wgvbskjuuwmwrsvca -sdvjnkxypkzbwaam[jrjyjxcfvipcsfv]hqpkybfiuthhszpey[cxzhyjyccoulowr]bwjcdjlwidvcfkguaud -wfvvroenfriclccedd[aqkoeakjbakjprhnj]ytucldefderfpqaibsn[gjukmqtaxbygrygukiy]xfreqhtftbfsvsjstda -gmqthnogaadlkycgrv[qrgjpxucfcnthziuqmc]fqlchcfytukeoho -muwfuurxmlzrcgij[ifojpmgnfufvhbmmeu]ezcruchallsnspos[bwlnhfxtqvwcdjo]lnfuojduqnrbdyk[jhfihfozzosipwsyk]akukjehglqpancmiy -ultbxqkpivdepjvze[flhbwrxncynirgxwt]twqbnqiaivfwlqorpa -izvobuuojtimkzlsak[moodohlaudrwsto]cxjybpccizkmeau[dqaajcusqoaatpbojuh]pxlzqhwqdgetmjcm[jmjesiihxrtbmgwkcck]ywajslefzjxwyfivv -ymymmfpvyiyegjw[auyhltgyvzodazgd]twjkvzwomymmrhfthwc -romqbwenzvevhyq[ewpxvrduvqewryaoct]wxgowmsdxrxjnyj[obazseiipwfmbyxhkdv]gjalmcoqrquvdnmzacu[abzkksqdcduhkizuzxs]uzuazfdegdfqjmmr -frvysxhaafihjpza[uuwayzhynhgliyxcc]vdcjfobjuqddqibjef[iusgoufujvqkfjt]cejktzeuphymtswrxj[nthrscqmjniokzsq]tnsfuflhwdkvsrlm -rrybzahzqjlsnrf[aexlsirbdpwkrfhms]ftuaymthroqwnjlhwv[gugocacufksbdyqsfwn]ptivpdoxkvpbwaohlfr -ikdnaifadlcqtyfpq[ftwtatuewtwyxevw]klpnngjlhfuuwykwbqh -jcjepxytivozlscfk[pdosptbukdrtforgvxk]wdghlnuxqjdaztviyiz[mqtajavotnicuxco]vovuvrvnwoedhflabai -yaiokdeleeowglfd[qzhtllekpxcjvig]ohtsvsylelaafkxk -qkopuespenokczipnz[qmncizyvbxioknj]piygfwazneqkamiq[oebzwpkixhbywqc]tglnlkwhricqqzzbkuo[azpshyiwubdevjojg]fqlqjwtirppkilhplu -wpjdzojjjgthuvhs[ttvkvkootolwcilow]lvilrilboatpxwa -sqcunkrlvqeapsseomh[hcaleossxxtjalzts]dwokbxvvtiocokk[ziimvyrfcpcagbchp]lqsdomcpacsejdzcxw[tpekrtncgabhvirc]nqguzphabzalcgqjbmw -lchsqkntfaymwss[glcnjoqtmlubbldwxb]repxhlvahfruswno -gvwpylwrbvedenl[bsexdkrwujurnrhirju]eskvbigiwdmjthvhrw -uumyugkrepjyfna[clcqpswhmttsgtrnh]wnfqshojhbnuvkblcjh -hcwvxdxtuptlajr[svvedookmmgybok]dgfqpjqcewcjwqcw[rtkptmdbzfeqcyiha]xjnmaukpdrlznfxvfl[phdpcpgmzzlbeplqeyp]xfxopckbwdpteui -mxlmvngjychkbdad[nprwbbiggpyhrgjnox]kkkrpnnokeecsxwtfp[mscljzerlkqzmxsghg]mvwiwebrwurrppqw -bdgrunylqufybegh[hwkqigrllagcnatuzqe]tfooqltcwxznzoaot[hvdskwgtazfkqlbbbk]zlqphymjvcvgybaxo[uvougcsxvyieite]lryismkbwdzxmprwjmu -mtrggduulofkvbdmqj[oijictmaujkaxedjfm]kvriyuoautahkfmt -ljywcelytwxtjojhn[iopmxuupcuvfcgubem]alcwlvcmjgwoksp -ybgcqoheatckeypwgq[szypqmipvcfzxbl]obblmhvzjoiinqd[kvoyilelwmylaezhow]fforcawucbchzbjlrmu -txgcosxcdgywyfhgjm[etzfxsiksioqtrir]czbkwziihsrtlceuaj[ksksgvozuazlcgqcy]tcottzfkvhsmrsyvf -iggzhhbedhayxftelth[qznllaqmnrogfmdtbx]ualmvsfjwntzbzd -dfeuwphubioymbzuwo[tucongmmrqerhidwq]tjzrtrfhgixyspdsl[tygroajgdzxudheh]oumnugqbzgyilbrth[ejcdurppfugoluctx]rtxzchnbmwvfewg -kyzwhtfybawdrjkvoyl[fzrhzpdsmtmmmvuu]fgbiqggdekddtlpzvzh -irtlqtjyzstyynjfjt[zrlqdodytcoqczaib]brhvezqcuycqmta[uaofbaluqnucifngqd]eeprilhhysftrhp[zmdzijhtuxhysuaye]bqokznpdffiubikgf -nsrehcsbptmpdeskqi[rpcpoctimqyccgnpnfp]peakqjqlahqkqfgoc[irckfbpvcdodsmwm]oxnqnxhwmwflazjv -iuanxnzepawwipojp[bzoxbyrugitmuiutg]wtsagitdstugmsssbc[dvxwzoncffczplwcaw]gifhatzuqdvuwnupmja[wncssuyvhyawbmfpbdv]faluhtnnnvuiwbbudh -fpedlxzxifcuqmvxm[vrfcejeyfkhegliplkr]giqaenxejvscrlxbg[qctzkslosctnoamy]qyjmeunfiiuoxsid[xpbjwjejckcavehej]txgqklgnzqdtimmiqwc -iwkrzpmhsunofgrddx[ecssnqrcjyhmsfh]yrmuqswzgcbxnaa -lacpahmmufjghzen[zkbpbownspfqxnclzk]yjnyyjnabyhsrggji -vgxbpddjqotuvzbakan[vnagjxrcehlhbxwdw]kxuenaclhrihntgwjq[bgqywyrrhjzjqdnu]eirujssxedivdmvlsby -tsqxgzovbjzlwpcbv[rgaywjaothmsswcdrtp]owwnjohtsgegsgtah -xzxejmuyfhjmgoxfl[hyafuepnewepjpy]lbdbsoxevfzdpnwpfk -moucalsxxvhjiyoceol[gwxofnqdrtxzusk]qjosxisditclyvucbm -bjgdyrlrhtkbqrjohwj[gcmcelqjvjadxqnj]tlupekhzidsrscrf[oqadjqqatohbjwxrneo]ykhccsunlyamcmmk -vgihvcltopalggrjzsv[hmrksbhlxuzvtbnuss]yqpcbwauqeduyse[oojtsldylgtokmdwsy]intpovuqazkybvjim[qbqspjlovnizurecdj]fkxluehqgdogxdofnq -mhwhttcwzcntsbufi[afretswhwxhwkptb]srrajfoeahmhecarmu[wgjragqlbpfbfpd]epytkbjxmblfnkwhlhe -dgpphmjzkoobitcjyoo[nzkzbsfktzftpmgwdcd]nbezurwvzkhwskfq -epuokjzxtxphttxtkz[xcyaposdqcfkcxhncz]hcupnojktsvxrfwlyv -xfoshshomwdgssxla[uhshvhbfofuhdsqk]zbzynuiyfagqpemuplr -hycladrjbjuyieejeg[ajsfbpoakutelvhdak]hjejfrmmzslupsepozu -ksputfunecibpffwovl[xteycruesicuhzai]sqpunyzatnromjeq[xlzamstzzisboayh]gzlnqcjacsbkkmgzi[aonbwutxuesczgwnr]aflrcbdkkgoyumfakb -gjgmaueywnbqdvgf[tpheftnkpnlyujv]tvnqzdugoyjybxfpx[lnhefqkhesyicqqgvai]dvdgtlsayhtscupgikg[fyjgjzcrucldwdd]ohlycgvvdatuyvduhuo -emkefdmyurledfdd[dxzytfxcsdxgjcwxjzb]rqwwzvnosuhkcplv -fpmhvozxaaxsyxcpx[yohzimahvewgvzucn]ztkenzkvcryyrmo[drnglpsvnlefqhx]clawabytpjiwgqflfbv[xvqqglnkzkxlevq]dhpydxfqbclvcjtdcn -itvuciuufdkcgdqgo[mgwnpeydayczlvjegm]jyrwfakomakilgvhd[mslududkqwtcsojaosn]dssdnwxzapuchnxz -twopcscmaiqhzsepel[qhydrqfqwvjjvinlq]tfmaoxgmccymtrbecjk[zkuwqiccdgoubccjoc]pepwccwqlxzlvuhb -dingttjebuuxtxrxt[jmgffmivzzxvgvefk]bqxyaoqiukfungsvu[sidxinaokekzqpqz]hekuuswyvznavhuvk[lnmhqeaujpofmdzub]vcufrufbmgwvdwksqn -mlgkvlqtkpwzcjbrr[yzhdcawedycuwdw]ncjgthabbqmeuji -oqybrhgapxiiaxihexa[gerjxleappelousidd]dblyflqmoarwpne[enariawxfzzpeqdvj]lgjzpkhkrumhvap[rtcetzkiztcmyyjzs]adjuxkqsxrlyjgf -hqxmuovloocgcgjlajv[hjbhghstuvarcwhfy]wldxggmqrrhiwdc -yelxlqwqeiqqwwaitp[uservmlohjixnqtl]cocskteueenenkfmy[ehpleyhokmlzslrdlh]lyvwccjeqrqiofplw[pcsjxogpwmbhrpvvn]ncmxjsoxflyiderh -znmujbypnozpjpkqii[iydnrowiwhgazihmxxp]lvehdleutcqbwwan -lympkckqyhgbaumc[oodkeqjyhckceptyqui]ejkkqbitfscazcx -sxvzcdelbmcqawvour[jgrjmuzvknqddwawl]cfdxxgxsviiyckx -nrsjamicxprsigw[iywcxzvebsemowpdmn]tbmisagklgwliuuin[ztbbbdtyfonwumpl]cjmddkvsaxzaszisyy -tllvdxtvmesnmauwk[qaomhmguwvmsjbwrwz]gvzyhjymfhmheexe -jqiffwykdbqbfcz[nzzfstvzsrtshctbwt]uazcksxgiyuwlkbde[nvsnfriumhwznjfdual]beqjfgyanriagjl[mkwaqdkmtnrzfpszb]mrqgyvqvyqabnugoc -kyvjsbdoorblnmy[wxackciwbnwvsggfoxe]pbufyorljghrayitwnf[orktaokqgpeenjyk]xdldvupmoyqwylb[aljdjuvxqagigdbti]erzojwkjcoxvuztbqw -zuceocflmwjxczrua[gpdqtptmhzmrumm]lvmswwevpotdyrrztzl[pkzxcpcqxpbfmznn]zoaxhfddhvfzxmdreww[roilsmnfdmogsvyyr]inqfvvkesrzgzwsnwya -lihowzmdtujxkokt[czwvzrilryxqxqm]appqwnbyvtxjysxkh[wpjuzvceldxgvsx]hkyptytryliycwhpbkk -ccyquivxwnsmzvurzl[gatwkzfmiuzvlxqqyy]twruqhcerhppziydvey -kfmpvuwkfbczuahpr[uhtwcsydtbjjfcyu]mltkvudoyovjipwmptv -yzuinluayrwqgezu[qbeujtuehlcqhbz]qwvclzkjxuficbgqv[qrzlculckkjhunba]gemnanesaovxzxatvm -ytnrkypitsppgols[boldlbadecdiaeyp]miwxcsnjabbmlfz[nmfvanenygvwqmgpiei]dqwnubvfbwzdptj[ormimocwondmsyrk]eptdchejhezxzpqimj -bpvimxocqygiyfak[kocimiojschpxlmlbh]oeohxkrlnaramquwz[mvodjkrtgwsyshboxo]jmxqxvydlieugen[qsqvwfzcowdvxzeflfz]eoysyaomzucvprpm -uhanxfxnxmoedczj[pjqlsouqdhqhforcuk]wgqlbagmjmtimaewh[qlnvfdicashjzjjmmwe]wrtbmpniixypmei[hnikhifbzacymvga]cueedmtiokuuauro -rmwtcdtidmhhqvlooj[ibfeikfmamtpxld]tvqxdwcislwdijaa[znpzxccexnnkerzseb]cvyteeonwbckvkmw -xtrkdnwsvlqfpzb[fyqeealbxbpjxohdssv]eomkcxpzhdzzchmg[rszbjedcqvxmotecne]arebcunvopesercpsif -wpmgxfiikbeczkih[cjfseyjqbnprrzrc]vmofgvrwxiitjsy[cdbplfeqqrpvyoguuqp]gicntinbexxdcom[bhrrykkursqvyepyy]lhpnuchjkxczxxvqp -qnaldysjxpygshfd[ggbsrjqdcbppktpfk]rfapyzecbxeoluhop[njlupwxmsxpopefrwl]xhmjoasimqrdlgjwm -acajjiclnscuxdsyxv[axykpgkepnjhrhfgqvr]slbbdyluiqetchbrhrm -ryolywtcfhaxzpu[cihbqzqvoqwayjwqtx]cpnraqtbqozlcrvoxn[ippcsfxvbyrodbacgmg]gfmqhdjmgnfisex -etevnoklfebubfa[kjvpcomfcdacfhthi]nfqsxiilqrwqianlsex[ugqfrpggyrmumjf]utvcyluzwmzjygnta -tvqkpekrujjfpzlot[kgoaglxyitdkwjmf]mlihujxyrtwfmzup -ktqkqvqxohypotivf[nsytklzqsdqgtjsrved]beidsrlrqlaaykv[bhalrlzjhvbdtjcmig]awjesirwjnmfjdslc -axgwliaxadkosbsp[hpschybkdbrmhmm]sslipdgrubjiifxzze[sptnagunoyiasvcunvg]fywdxjoeyzvwrpinmf -rhpxrkwvbmiuoks[ynxkvorcjpyldmigt]juvdfreyownzxciopxa -qlmnvnzbswfkadrm[gvgyozcjgthimuxze]ewpsviwopsrqszjq[odmqbtcagnixpgasn]cywfvmbtfcixzjmyue[ekxllezjdqxkqfxkflf]smxhvcoojkrwvuiv -mrjroyadyadcyppfliq[xunpwmmutvwiewlkyye]ppcjwembftkaakdig[fycllhoijmljdas]ghnbcqzccvagpgplb[eafwmpftuwwwoln]qbxjdgsbyahqkxqzrlv -fzfcqlltfzjujqeym[jeaiiecptdpgfsfccuc]sfsekysmcjtdxjc -jjynfbiotihgcbrojww[vrxthptqnzbjegjxzru]yethaiycpixaqfb[bplbbjoveuznxlgvooa]izorgiwsvfgporxo[lnktkblkgpenjuqu]hsizqsxbuadccikdw -qgqbnxfvfobowmipa[pgiycstlgkcvsbi]nuvfvhbouoykamjuttp -evroxuhzulkndbn[lfllzavhyovpvvcvg]kihcrzllseowjwezs[vpvpwqtlbykudupl]qrmhrwziizlifhb -zgnewkpulzskmghubbx[matncbjczcjofajeilk]gimvlsfgxcdovxelxsu -zgznxyobzrrgfnipxlx[gsazrixylwsicyquamn]isxlagxgkbtgrbjknn[qxjewpiicycnpta]tghqdldoiwdennnuha[wpwsawddkuxonmxv]bmkekmujdpmibjrg -geeoheswegiuwrrmii[hbthbiwayyxkftmbayn]olgnlfwlixhqjgjvgsr -crxkwxwfcdjitekzrdm[duvbsycafjsvivy]ysrnkudiueyakhpydv[totferyeflbkxuz]nyrvffrgktfpmwsmaig -shfruolertwzhwvfv[oaeslwnysponjvpne]lzvqqieleintnev[jdhnbbkdwzksbijpsle]svtrwqftbwtkzzixrlf[wzxzoplqpcybbhhfz]klsezcnzpvgvbxqeedp -rodljmmftzgdnxxcufa[jgqmtuwqkermnrimyb]uouynscrkxdkjhrz[hpihpdzqgzcmawkdsw]dlvcgdmdmupcmuduu[xyjvfzjaypcbbeettvr]pnqhcmdgguswinpxmqo -yrcxqglagiyyhpt[fudlgwwllpsimkfp]esvhuezhtkwulzmut -qwiwjsxdiblovdjx[evezbqlggluydkth]xtoftegxpmgjsgn[dygxbbfgcnrlaebugya]jvcmiigduerloizkyzq[oyfqcvstibjtqcknk]sdykrdksunkdurm -mlublposwxvdmcasb[mmvoctlqinqyogj]lblnmvdegbddxjuuij[vlkyfhcwrywyksv]epprdwoppwnazhbfxs -xidpschespoxuwka[lifyliiagwhtynahwr]mophvutwbflkblhzp[ngfdfvwwlfuyujsy]pqgdfdrrwonjcsxyb[txlrkdplwmwanoxhveq]sirdziimdysnzdrzt -khglmzmqqlgtsoyuyk[ckwowqtfatmitmx]cqsnmpgwitnlycvr[hcjwrehoqrluifbx]dvorwhvznwutwctl -lsjtzcpwlhruhcyvu[ppankbohskraacy]xriyjykeufmypvpcg[khfkqffqnnzsskbvi]exldjyjnsnxqgfxg -cwilddndcerivvgcot[pwnjzedgzbwjhwdngiv]budzscutbkzehgi[swgapyqpuwuqitke]aihrettehkbulnndniz[ladvxuqplmfxnwm]zovkncitewbtnxao -nwkbypvbwxrhjccd[tzjkzmgvioaqorgsan]bghmwniqqnnugulkcq[devmzttwdxjayueapxz]pigrhvuthflwfvyghl -zxoysnouzggrhhygrn[wvovlnwttrpgnub]tflqcvvfrhwiikpfp[fmvlpmktaybiodqon]sawjgpmqugnvancar -sfhshdpjhpscqgmcx[elzcuconpnmipksf]qebfhzrzjddpkrwy[mtpfmfwynqlzlcavdjx]olgxbalbprtdnjl -ribazjlrsqqorxkipi[rkwdafpcbgzcvveipl]jtutooefoewtkwcolek[pddkdpvzyumbkuci]qyeuvqqxiqrwuzygf -eobvoofynuxzuaudo[icwrahzvyvejahwlbq]ewwnptijkewsppx[bmqxtgqmosyeyhcbsvv]ojsamjjroupnfxbygrm[yqqusonrkvfmwpiwo]nueolsbydgeyemas -vdmbxyiptwawwgfxzh[kmxqzdwjfyspqkptz]hkkuurdkmfzivckdwp[ncwldxetviygsqga]oxlfsqrbntyltzp -gewjydarttmsjtqn[zxbhrkxlalwtmmrgfag]ouqpvnvhrcsyaepju -iogmaqbbnpknpihgdzr[xddekzhpwasgjya]qvqeqqyfgmcjqlljhn[yqwhbjjgtlspllovxu]yzvhuxwuqjnqqwu[mnqqonpvybsaxob]emyjayuxxbvtumvsc -ompsdhuyibxinkeelcw[vcyphnznqaeqzcdm]iqpgmmktiakqfpiejnm -ciowlwsiatdaewieita[sjaasprpfvlolpah]bpeqtpttkceukaef[rprweenazfnwtmfqh]wedhtjlhyntjrqw[hyrqbnvfdzilazmclcl]cnzbapdwalrxcbd -duvtrfezztrbcbrpkwm[vtrqvfcxuueqcpbx]xmjukrhgfutvtcyd[ptqlpgejdqamrwxxbl]aavkmmqbqdkxyuwpllb[cvtooqdwzcluidljfni]pohomwwnjxhohmv -ieozeqgyrtjpfix[opyearfnbegqcgjqve]ljeerzciyhyvukdifu -awjmnojyjmqatcnnr[hdggsjlyjznqadyuwg]gvkbbwfvbtwwfjjnpa -dvtdsunzfozfzmgbost[cvhhdpznusqmedy]ayllrpvroikxhxetks -jyyboehdjvkufzixpf[ijsadnufldjduipx]zmcubrihovbjtdych[vtmkafgmqunhknoqttz]amdwppzqbnylhsi -gblfvnsmtqowxewqrzx[kzyxibskmbrkunl]nqajypwcmviecsn[fvewudrwzvqashspitb]docgbflbdpnxxtin -evhfjidivoswuxhsbd[wmxbybthkqklvtfekms]xnnifuivlakbrvkfaau[upixryknmsroqfh]tfaezdhmvigabvwfgt -dvdsnwpipghloop[diwimibgyehecqflqtd]tnfzbffdhkvhfsbhq[rtmprhoebqdxppae]gczergujhbzsgdxupd[ezswzkaawaqhjcdgfl]jgwotzkgibphpas -oyuvlfvippqkkfxsgsi[jkfszneoxbhkxlorzz]rmotcrnupuzltlqurcv -olonicnsustzovmd[kkmgnznlwjgwkkytz]usukziqukpwigcfvxw[uveqyxukqkusxuz]aqojtdccmpwlluelsyf[clqnppgmfzwrtlfh]obgkzmtyhlcounaf -bgntejhmisbzfrblik[nitcxhpegfmqugmlw]rcwxgxofqbishzhq[jyzbrgwyikdrbof]gdxdwgpsfmmqejfyodp -suumjpqhafxvgmgdokb[lmpsinjodlukkfk]jhehvjrbweyoeivfzt[ricjsiwyhcomnsgltrs]iysygfjrdfebsny[irlxudmuuykkcxj]wndlninlcnixabgs -xusauuaaldibtqcyn[hvjidaemmzaurmyyk]qxooscxoynakekchbj -xilzzdiyoqrwzcnwklx[jzmgqccfobvufhdfgha]lzkfzklxafmroamh[xxdzjoeflrhqibidync]kuodqrpntknogybhh -zfogxhqdfspdmvxtuwp[fshligclkdavscty]tkvaozljxenzeoj[txujxbzywfgqkyfrjh]fwwjvdiaceuyumeqscq -iqqislvjgveszvnb[qbfceykxhcelnwes]mgbeubhjgaydsrrps -unvvlzfszuuztae[ytbzbzacrvxlksvk]aeaoeugpmkydbixbmv[nzznffshspwmlkqig]hwamlnoeyfmzhrxmbi -eyrqyerdzuptlwfz[pgehfansstewngd]vdlfglsqchelite -irwhlxxczsizolo[mgrotoelpfspnben]xuboaosbbqvskeooh -mvvsstnbgtaripcmiv[lqhlubezzcqsqoh]ofqbajkawszexqw[pytqrosnsskcgmno]ceyhqvutvgwawrao -aehuceoazqppxdvj[fekwbrgjolkkssozjr]ovwtwkvvxtwlatlhc[anrzzudeipqtlgvtibj]djkyozdjetkxaxrg -qdkosvyshtjamlw[nvupkgnksmlfyivlaqz]vzjxmxzwetvndab[rjtknjbarestnsqar]emeeqkvpkwwwbpbyho[fxsxkmlskjyvniynt]yxdwuxqranfmwae -mpkajmbuiqyysjiqxg[gmhxmogelodamttt]aboupdcqcaggrmjwo[uqmzyshqeruzquxxez]agzfrbsajxlgzgfueb[dxxqiqrjkpgalcp]qcqyeyosztojwikdqo -cwzcxuvjuongdoellki[pqzhljdqxosuhdgqc]qqxxrckatnjwvmdjvty[qdlnrwhhbeldxrirock]kzsfmkvvjexhibpjfpv -xqxcttuxwhriomnnarc[hrkxvrjviqxxeih]ofnkwkzmwkwfbflu[bsjloysawmfoigzrsa]kjajcjknclhkjofvh[jtocrkwufebomaervq]hawuelpfzimwdnxens -axhzhgcgbqdeauomnjz[hbuvuiuidkykmvbd]yjddakntyygztrc[mgxbjwjbkzwnkybcgch]orbyhhpqxylsrzu[mygxsbzjoicfneimx]jddqvyyavgguqlqk -sstrdkfdyahmpmolvuh[nuhocbdkubnidqy]fnhfqdyorbtzefo -youjjtvznztbjozve[vcsiywlpdylxwpg]saiwvtogtdayorhni[bcbwjvcnlvrcqbeexf]cxmaphpnniedclqd[ilghtvdoebmgoykzmjc]gqxcmtfqougbpixu -jypsrripwfsirlizywh[qwqvrrfaltcifzgrzk]urwxtgxsivdxexc[hxqqrmnggugvdgdcle]sirkwolflgudrrwfvnr -jczbvdpvkmrklaxdh[iqwzvnjtjhmulvo]amkhoscjxrxkvtrlm[nlvnfnszosucrhvafm]dpkerwgcehqnmxmny[xabxqyrisiuhudad]egbjvaumucthookv -shephwsolmshfqhuslh[iqeoxejhscbjknjkgk]ytigxjcdexjgptz[mdcfmxfkyxnaaoixuv]ltysxdcxashhzrhfzcg[jrjzihjbmjzwwikgrj]zkrlixaauhydpmvpggc -hdwtqxvelsuakiujcgb[vrzoeqcoqwpdvdxrly]fieebtoboyeztrohbz[unoqhtonsyzptmpgo]bxsxkyquwwdwyhpxcan -wbxdrndbjpmgdewnt[hnmfgladivxjjrhgx]hhwhdeyhnhtngzasnm[eanqualmsluacqejow]wtycyvqujeitvrvtkhk[vfabcjjiloownkmsa]xqjgahkglpsjfcryzv -psxpjyoleoctcjgpwvw[qkiussudbvamcbw]hbauvxvnrwhyupg[jbuclksbbwmdnddkn]phqrldjcwlixcghiau -oeiqnisrrknnuqczk[qhtdnexhjbgdaplymaj]fqqywiecdftfcpfnkrd[lvlesddgirngtuo]mfvvfvlufkoqwpwl[hljsgiuexvjatvztcp]ixguvozijkebslzjaco -dktnilosvtkmvltdwd[vznigqxsgvlquhbquk]uinsbypzarhkgsgce -ljjdiiuiikwufjnnvjm[xjbujiikgaghrijcbsc]escofoimfyedoist[ltrrqmdcekykivhaz]xdiijidhpxdgqbtxue -lfwumqctskgwsfvhl[sgtnklskhazwypsys]bvjxbzrabgfrvyvyv[rlityjbenmcoigrfmfh]wczyjwqulaqxapozcnz[uqbunpfwhfrvgqcozw]ktvibesxhbrooqt -ammvknbggljpkwpr[vnrtrxiwcitskywiw]ubyickjafcfifgupssy[cbkzhebhjtdbsgct]cgefqdgpdpcjlzrz -wzpaqedqkmltsuij[jjuasmpwngjrynzettu]dtmgfvwtyxdfqce[usljscrncmnvrbb]tnevcveidnyskzs[ttmnmxqodycaikjio]qfhvrqvqpgjhkaaicj -apdywyijusgxzfj[sgbhrwbwywwisyg]ssiiosnfconncgiy -grownnednjxvuew[iniatygttcdaelocols]iyzwgdboxuadbrbooe[tojrecocburpdzi]oelyopkilwnsejur -hfdpohrtqqyfntpfk[trpnstnxymqupxjri]lheljryczqxgvqip -iielceqagqfksuqpzr[ollobpkbzanfxcjuhrz]jnxizyaoygzbzciu -njpftdmpmkjwcngeot[mocqjgcycgznvcqjv]aixpwfggjyqyemoz[fmklzletfvqdyvvg]mznoxpgwowvjjmus[prrehzdyfwwuxvhl]hqppujbqaizlzvv -vbjenrifdqsyzlwga[wmjenjnqufhqohvgc]uhrzouilmqjnjigwpa -vwooqueyzrusban[gjwcwiagfwpvrct]vfqlgxbhucjhvobi[bkbtechiapvschnh]vjzryzyisyzyzewdy -udumujkujngtkcfv[klinhdudyghspdsga]gxavvcsxqxvaziqrmsm[htseffbehxafyhoars]ghilivgeuuzjlmih[vtjpcrmvldjluqdazun]mebwzbxywmrfhet -cwkfdzyxoayxukcgdv[wamyytyfmfaucrko]dchdvtpdkeonmdqc -zklwcknfrvlblaamoo[ndrnobufquyjknl]dnxgeqvqwezfwky -zbqgtpvsqcteltrs[uwrmlyjkcidsfdpx]cgaobtbuuntwyuhxmjx -lbbyafbvhsilwmjivv[fkftqvaahnrokuhu]dvgaejsxgjuwiemu[yqopsyejqtvmlfxm]gzuulybydsrzhigldh -ficlcqjefsddeds[kfkmusacvnqualtppxh]drbsbqefpdoossbkyng[uvpyqnoidjnssjobt]gsheeufqtzrdsil[jbvevjzeugpmopo]nrgxwajuatycddzwr -xnhrhgadoziectoigmf[jwudbvxzwdfuubhjlt]lupnypmntyrvwqzlb[vvfvttkizuxshnhhw]lfdrjokdrbrcldjfs[wawjpqzozodmnmah]vdbjaoofkmhkjbphx -fsymutmdbqyguwut[qvxhywjtposhjgwuhxg]ftwhtxqxeicsrlfye -fglgkrjwulmkxbzolgn[vurpqcvuydmympiyofl]nbzudjasxeknjid -nbtrkgsywnudokk[vurfuvkjdvnsukh]vkmqsmcrotppqorkah -iqccpqvhiesnaohkhao[xykqfbmojjnscqhdv]aqlxkvudzlrncmpy -dtlwnznjqsixssrsaii[vkikcmtsepgtyqhica]ovcpoaucnwravbozsg -nobwzchgrycgkxc[tqoxhzxeorivdtdkde]ctdtkwzsvuxfgjtjg -zsknnbedctklyuxngn[jjzvkixpfmskcagh]fkvhsfuckghltyqk[hmygppkjpcdicxw]mnurqampwwoiiynr[jbkvqeqrhnksizlssff]xhkxiwlzgvjdfakjg -gqbxrvghncjdllxtge[bjuwjsvewzvrgcujf]tkrdrbempmwqujk[pmbtbgbrgzpxeoqsxw]nfvaaumgpjysgtvk -clfcvnwzcbfaqaj[prmpnpjwklodeukzznp]zukpytpqzgmlbvidv[qhfrkjlsbsqufgnet]pfhfcxzeiowmgiyksj -vogrpuzrevmatdbqqx[qolpybjnetsxcqfcvbc]ixxogojluwsdsldl[bztslfanuylwdld]xanhrzxetowrgift -dqrkbymiudzhkgf[spvsqvyntikovrefqc]bzltachhfylbrzl[znefllzixypjdkmfcxn]mtpikjxqsppxlal[oeyhdcnpxvhawqbmkzy]nxhshzdshsiercr -xmgedfiblpeazvgkss[cwbtqqjoaqbrgbptah]clzsinbtqsrkudymf -puwqcxmsuxnmneuzrhj[dbljkganxzmjvtxgr]ekmomoccimbpbieaf[khezmkkqdwkouzb]cpkfuyzfdfxhhhuhk -thfdbnkmqrektilpc[weshzvpsyofygysio]bffomelkkwvfsdxa[owhidyrjieeietzn]kmeqgnvyclngrcgquc[ieikyuuoliuiczq]nnqhogvlhwqipvpiao -zsdcvcbtwlzlzlmteky[nrqtpxoefofrjeaf]myjmnezlzkfcpmik -afyxnybelqewnebaai[ddjgeajpzswwdrg]qfwfqryofesysiuznz[ouajwvymsxmxzvgdx]ryuvawdhfmfvikye[kuovduidpcdyepuoq]didoelcmjebmytdyke -oopihddimztsopfcia[udmncuvhkvvbcmxzey]fpehwxjiczzhqcxxi[onmizmkoyhadrxpsemf]htycdbotvmomguwbttt[gjsdzuveiuvudbyakzw]ramxommwjmpkihl -bwlccfsaovlozdqpsv[dniiqfcldfhjiex]cdzbfrecwehrluxzprd[xpyzvlqwekcyglksq]dncoqoaakpgnbagf -uxoopzavjdqdkaz[exsbnpbaeuvusypih]qgojfhbprpoavcbxysa -mailxensjcsuodzpd[ftitdguigzeundytyp]fgoitzvujhkjynr[hnpcvussglqshxn]debsveizfcuroqrm[yeageekyjhilfwr]ozgpzusfpbyanxnzuak -vxjnjaguqlrwoxlhfbq[zlqpitkigwihrikvr]dysutdfrbljdzjgcw[eslbaxzslwoxscpgoy]sudodfmlfyuczzf[vsthktidtghtmazbip]jfyoxxiaowptvosevi -lgxmivlggzfdpductjg[qxgoioxsurcwayndy]uwlgoodqsjoxsjqqln -qognhfgzowjikeqz[nkwezojneylzwfdm]omduvysmcovvpvse[bwxvkzoqsykfils]jwgfmwxajhmggos -pvuwgxmpcrqknzpbkg[qbpmfthtmbkmljnsqs]zmplrxnulurhzvijupv[tgsommhtbbujbjpf]qaxqxdxmpqwduwwxpgg -lzlrgghqmetsmcxd[fjffxsqjqctkxnw]zlzlpvksrpnatxmh -ayirfkbsdyssjjpqmi[vpkvhbtreetyxstwcqp]rjbuxsgsrlqrdnpyg -ukqefgljywjmlce[nqjcndjjdwohtizoed]njfgjjqkdenohbwqm -kdwzhrslryuexdgbcr[hmbcvmrrmbsvyaii]bqprdkrgdlwjvoiyb[mqbaokwptkfmxzqr]wcauinrezkhduhcktrd -hbtuzqvyldtvwgyumzw[dibedlwdcjyfngungt]towfeyxyxixyxee[libuilcfsdkejjl]wzzxfhwcgawuhskreyh -oxjkoqahhqqcxcoxksg[bouywtiajyfmanxcx]xgqpjxtkaejvmqckkuf -prhqbaccndsoscdm[cuayhbnfywztddbvww]psgyhytgosopvbbp -dxdtcskiowtdomepjp[islofsowtuyqvcqwb]pjhyaudkqxxlwfoo -vdatepedgnvgpah[jbooucwxtveomnpmyx]ixgsuidbemgmahtlt -oncdjplunkvqphbyb[uvivlundxhdiwjncfq]dvhypguriulrangqwr -vipebvitwbccsnahjhu[kpwtbwddwqgyhnkjsv]acfaqhywmwbkmgh[nryplosnxtbkpwxtkfp]njzhnytzwlprvfcv -csvlzvkinldedsxt[dbxoceaaismltmspg]yomriudrxzmlbbbm[qilkpyxcxlvtfzqmw]rhwekeawwpyngqxzc[akqljrphobjicoco]utlunpkuptawrtfcccv -acfepkrkhnviixe[cvksybusnhacmfoy]tmqqmgfdharutrqvdpm -hjehtfbextjkaxilhaw[qvavsivlumfavaafhqz]ahdjvprlhlmuneewyxi[rzeuqtjkiuacirxsw]ucmfkrotfprypzuyqe[rutydtgtkppegdgjn]hmvzjyquxtydoujq -ntosjqtunrqfoboek[aogjyqyzxpdgopkpbx]sdvftoxtcjefotm[jivgsxjogxklwkhm]cahcjmgzepqebtn -omkznbrlrodmtmnhwsu[ysoinknpnzrjqkf]ybiqtlzoiohtldgoaud[fbzfiajeahzmiplcih]qimubctnnrmtwro -drdygweayxraomiblsc[oglpuxzweqpofwi]mbipxabkjqcdscltkh[axbvkumlaforzbqy]ircpsgstqyzpwnv -jefmuplsptisjqguywe[lkgtuysseapteszy]wzcehypttzjhjfp[nkwvzebjrydcwfkqne]tnmaxtrhvwvdnrhpxne -elfqfvbjutssktxpdo[paguttthfghhyktkjjy]wkpqdurcibsvviqfqpu -suzpbjqdiebctwhb[gwnbzgajwrorqcx]qoqdgemwbkdpsqgjds[qgozargzosdgbgo]hbsmqrwnlqsdans[vhppwpwwamtuurulc]ylczevsobuxtdhvyg -qfixarbnawmgjcga[dhgdmxcpwpvycmwl]mkqfghairqabhmokxk -srjvnnbutjaeikkbsd[flieajbdmghmuzp]ieimmehrnixqjynp[rjxiepmrhwrmrpi]yfrfmlgakaehvqm[hucfgczbwdpxxuhk]bvgmehildjqbjdu -qcmjtgmmgybxhde[fvpxdzdmzkhxdzjfkf]qfnaclxnryinmvpgr[pcsmctnmmrpxtfgi]oszbhmhynpzqvtxso[qhpljywydqpnksmwzdi]yqwxnvgcwsdwuluiouo -vhvuumgtzbrbgazpo[epktoekzvomswsqq]bbkntocwjpaxaoc[rnlzbqxqcuyltjxepz]iaelcpyexpoqavcbepy[azyksbvkvgmgimw]kvknvptkveiacqnzll -pkkcmeinlwpoupwpu[qtoyfabmibfrubvepwx]atgpzcehuidgikzn -srwntduyxjkpivzkgvl[hmenzrmnnisxgodof]lpuawirahbvibfki[gazzozitxhvxixvc]knbuydfpbjzupju[emzrzykcaeukvec]grtwlnuzmqivnvknug -vzlbpuiceftddittp[srespcesbfprkwuku]bslyxxcynfqywwu -icolypvmrgrhuvj[fgpeakrskxaljnakz]bqxravyjmdodsvhf[cjyehkcrdetiknsttv]dhoghrdxmmzxbjtbql -nowswrulawbgqkmcee[qsktncayiihoxiu]wtsjxnvcxdriviyn[tebqonpavhbfnwxvjc]tvpwgpgrozhtqtiy[lhagntjbctcsdejajh]aedpfftlvvtmaqneaxd -phiopnkoxulhkaddkxv[ueqfevwkcjwpcmsfspz]zkcoexersqysbtqdpc[nmcsonrswjxvdtuk]xdrsvfxrrdrfdbny -aosrkxvljnapvnux[ldzgwtxmjbynmlp]yrxxllppgosniqv[prtvqenfqapocxdrlst]gypcighnnppaytp[azueqhhtymzpujx]lsgvwvvgctkiyvlc -rketxmupdbmrircajep[xfmnkumekemjnwki]zurvxfxnrrvkmkrhbxh[lsrwyjtfjairiuwbaw]dyvmozkzkcvmunw -crxtvtdwdxejpebbv[xthcfmihpjqbhrvqfkd]hztqefpqdtgyhfzqsi[nlaeacaqscestvv]ylbteskdlwjfwru[morvntwyebnmswguff]othonakykxxajuj -zclhqcnlmxsurcrqaty[stohpulyrzcbabnydyp]veajkekzuxjmecdzym[ysujzinvkawzoqi]hfkcorxooelnfididyu -oejzfesyaxeittrdh[yziovimnkfkadiplm]arzmtikoiveyvlsdkwd -wvdwkqqmnretidj[smwnemzwzqhclpkud]yzguktkwahnuabs[bbyhgwmhhbpbwij]qstxwyfjjagyqvdaexg[nkerjbdjlikfgdv]qortpkyhpqvvebjdzw -apdkznwjfxwdrsm[fddlqepbyrbrfgmyeiy]fvymcxblcjkcvpcyup[szsfswjdzmcabwuz]hmutpmhknvwrlwbvs[vpfcztrelzjnqzq]gqbpttcrakuedsp -sujqaghlxszzfxf[jqybozaufdtanwa]rthiqanlennnowvdkm[elvfekcowitcout]ntjaqinnbwtqsctwrz[axpnqwfjmkocafoeadn]aplpjbnhkrcrbebmo -hzkbvadkdojwmdmdxq[ohmqkaainyaufipcso]zojzxelggufdascjz[zlxncckagxntpzqa]kindyikavjkmhopcnek -yjcsnegfsmmnfce[ueladqjdaqflfas]wcifctlledgnvodtlzw[zqswolvsfhpyrcivk]vemkuyjebqxyahb[ydjhmgjxmruwwmq]cufuqsyyytlgbpwrj -jkkrynqxqlgxukyfv[fugivxklerausdl]shcuiixkbmzymoxv[thtakgbdzvjsjsera]lmpwzqhthoottxvp -ncmijtczixmeyfuhspt[ixlxgrsyxrebpupt]sdoinvpfizdezpc[xckbxvncmseucrzjo]rzxfgqlionzaeocj -xmqnycsovydhyaqiv[iuvymmaguzbrtgs]zhvxodssnpnhajwzy -rqqzaaswdepcnnmqfif[pzkyyjprisjybnnjcq]kqpjhykszghcripq[vgdhuqujrkqljuc]qhtxqkqygazsvuh -qynvobsdeutfrvb[fddgwzhlhryauxzb]etznfbueibykerqfugr[rviezfaehsvigssm]nwhvctxhqvfdmgqe -ihonnjncwrkvglabk[pnjachlnpyonivmjtc]uoxellmcbixrdsisuhb[nkwsdmhisjdqurn]bowvauofupqfmxf[liiytxrcuwwnimdurys]acluoarkxopwppv -ipqsfckjkqxkxyuvxje[arswyomsnfueuwmcbev]mmlwwcviicdmllylq[jnqpolrlwmmccsd]nfobgtdlxveuuldt[uebjwwikiebtttgqss]ikdxnjdmzbrpqqvw -zhjywcsrtcadzdrby[ynasiklerbnlgidest]xhzwkwypktpkqgfyh[fuuxtaekwjpobdjfvdh]jcsrxmtbrqkerkrc -osahjtbzrqukvphpe[guutbgosbfkaurvuf]baiwluaouikebnlgf[cgssqcbscupvvadpbt]lxwmvxorsfcaorccxp[jcqzcrfdkncuoqj]gbgdolqdrauivfnsyti -vvqcdtcodesyomh[efjjzleahiejvczmsd]naeosnsaltqgjrk -yucpovujdwslgdczxzo[fbnfueoeatnphvv]gwegeafilsbwgor -thfmmzylspbxupt[asfhmdmkqwnqppnmu]awoxkgkgtrkdjzz -ghbifboivgelqxkfeo[gtpozhzqfntyyoodc]yjqcvpimanwiunamfh[aglylsuuakjkmqx]edfukuqcchtbhtblcf -qzonwqxjkpwqier[qmrnrkkwruteiijirkf]xhnrnahamaegfla[fzshmzjiczdyzqhwx]acjlrknukkbewao[afpeaepzoljqxcwvs]dlvdxhsoljmqgmvzf -mzibkpddgkilmcwcshm[sgpxutpcqniuckl]kqiwkwdgydpnjcj[exyhorurvawneziiy]njznkaphsmgisqyujms -xgzabblockmothpuxc[mhiwwhtpmtbxowbnp]aucpfqmnquiggenklcx -rnhfshqrlxczmrcz[agxxpteadztvdfeo]zogmjfpebldprrmqg[zppblhkevlkqlyie]mgovaojjsutbwtpzsm -kjgtqizmvuqerhb[dmhtzazyzqwjhpn]knmrbytrwrcsonmshb[oiazannnreojooa]hkhackgpdqgyqsgnb -orhnenfhsjyibqacq[tznvydkguvcwayiwmi]hejujxsitqcaabjwskl[qhpfmxgjdfgtgmy]ahilwlhjkfytezctsj[ewxepeeisacexgtc]paxwwhhpaukgjnafuwl -mhmfziehhppfqoocvju[hmfnlywpplffsxwzg]bkhkauhasnuoglve[oytxewvmknoqchvy]fyodxbpsytyeltnfsl[wojcbkfsswlcuqcz]izcrkyxzjclhkfuv -slabudcjhktddar[cvkvaakjffjjovgus]ahgxzdctihvboiarn -degyynefmxidnbw[zcfgkvupltxmbhroi]dbnaezqekcegyki[tjrnhpsmfftiscppybi]qgyifwlhvccshdiqfx -sxszfjmiathxoqnxg[smizlxpwmelqjlf]etoglecoddmflqma[hsggyxsxkhhshucgtnw]oqzadjxenphyexaqrb -kqwjndajvawmwxs[fskyhhktkilzwjtkt]ufpvkdnhygmuzfsfiso -iqdscwzpnnwehtqmwrd[fqbmsfrezrkhqcw]gqkpkiqhtrjpusoefg -bhwbuaqjofxcbuxrqub[aaanhuielrhxhlzscv]fkgimzkootysfzwcan[svktoznaqxkkibhigju]fmqhtjgxbrovymq -pjybsukpzvvyouum[rzeunjnideaseer]ltquzytuezonpowuhdn[wzwlbeegsgtwpzo]hqivrviswwfsdmpgnz[fhabjemewetsjrjhy]lgbwcozirgljoudhng -ampiucjqxwrzbdtcjnr[ufubjvykdfixyzqq]mcxabdvjzhohlcmcu[xihctxapmjpmrev]mggwuizzzxymhypmcw -pprbxhbjbnlqecvmu[ewuffgnuylwmrcvkbku]bntyrptthpmexiakh[lswyqkuxrfzokacp]rvkhcgbfnjivaagp[mnpbbcgrakjlmdqt]bujykhlbutiiqyke -xtcidzkptvkjakxl[kwjzzydtkvjmqdz]httbqtbiyxwryblrfd[cyjwthdmalqkqvso]knfncfebbbueoqze[zuruluaalfysbnmf]vodfiptptwqpnllvbdf -wtjthnkscjzzqrbpc[eirytrqekucxajz]ghycghnyntrthzkechc[eiylrukgxsqpetjfnv]xuiymnuzydlawjygi -rjrldatkdhvzvgcux[iuhectextisybzvz]vycerefkzhnmdyg -lqftkkvpvepilrmyty[uptcsbeqtmcljaziisb]himkwiqkrogoyhjpru[wxocqzrdgaclbeefd]mtytxwskqznxgpfex[whqbcssppfhqedhv]cbtiuzgbvptcticlbcg -pbotpqbiqdjzsmpbki[zqcshqinikcszjm]xjxijypculvuoavvg[nltkubwokrppvzifi]dmedgmkonytjzzk[obonilwwerhchueuf]mlfqiwmaicuecljj -exlndpqjplyfdbmvlji[fzzvnaszvmpwpdcovj]ymothxghgfddmzqtglj[wyfqyqwrhanponsr]ydpntagauckmdqpjb[icumanaybbefssdjnqz]owhsbdpufodsqezginf -ukfirftsouqdsgbgmht[nrkpwksebkijlha]zfkumnifusjysuzt -uyzxwkcgjfsekdhktx[qhgrmuyjmfmunghm]mgjbupndudwultdnnt[oczntpgnyanxxgdqx]oryrlqkmroilyca[xbevednhpnvzzwmrorm]bdozfrabvamfxae -toqvrteazudmppbrxct[cyiebroauwofshvceeo]fhoxdufwnvmlwhhp[xykvdatsfccxlfmn]zpqqflqttorrmjs -ltkcveeqyawjrryerqa[zxoihtpkswzjrhnbvz]cfpirvnjowhsnnbehd -gdiyzvnydjwhfzrimq[lvieihnyxtdrgrbs]kpotvolpjgjtfiqf[koloumkhoyktylql]cxgmdumzkygpppqe[aywuzxkrvrevgnnihh]uplcpitzxbcqkmfgsy -tskqojnfadpujfxym[xomwfoclpvyejczgyy]lkmawlhwgnpccotaetj[fvhbgpqqvasfykn]xfxmjfyoygcsbxl[ldveqjhkzxczzgxhbxh]tfpibohzhgrythjgqor -xkduagbswofivadpo[mxlqngyjwbqfsszj]xoxngqbxwsttknmtcyk -zvmlodxbacmwvdti[itdxiimzuvluomfxq]ymrkoyojdnsjqvl[dihqibcaznldgoteyx]thrrpohvatzogxrz -soetmauqgsswblf[hlkchnarzzrgjawosj]zsghpkoexwcujpakaou[wvfxggiskbpgntosh]zbohdymojoxhndfr[qhyzatgvedhoibktw]iggjhmravyoswvu -mwjmmmeiclpjmvishbx[dbmbrjcjcmbnqxq]mvhzexhgdmmnduc[yiccjcrvmzjvygs]uyvqfjmiyccasgzlz -dsfwjqahjoozkpei[olrrkslvxvijsyopa]jmzojmvqtzvkhaxukkv -kudhszsgsrenjqcrbp[ipvxqnbradyxoline]srcnihnhywqlietbgqv -eklfpuufieqqdfrgouk[ycxgdyairggpehtkim]sdfhxncpiqxguzlqw[ysjhhepmruqaegxp]wklvpveoxxfyizmf -apdypwjfmxhjgojtb[zojzoufhucunvjr]zjpuqiciaujfbjta[wlusnbuvcffrnac]ecaccicpvcmbomsvf -wenmnejyihmxaxdqwqw[rckytszqrgaxmjpbqh]pngxudjgdtbshebyv -ieyarudhbjrrevfodgm[grmjubbiqdodhae]mhzexlzijmzpltsxjfa -byfyxjxqlcpjxbpd[pdqkhutluqjoelb]pberlwpeqxmovie[zkholwknvgbfxcyymye]askmwovcktpqhcg -ccjcygsnanyvdss[frpxggwvfjuugdysypg]tuqczwtmobkusalqusm[ignjrlsysasfmzasa]nfpomrlygzjyylhvypi[lahpgasntfymdoub]rlvsrtudkvhtwhycf -omuyrkrubieiduzegr[gcigoszvylmdrlrc]jtlrlsgqxiqtciehh -hqeghunlieoqhetnh[unjtmdurovonejpsjtq]xtatdniykzzxpufps[ysaytzqvcxkvimhql]tyfkttaoythcttexrp -ciyuspkrywyyplmlro[myfyzvlzntivldrquq]eighmudngyiwlsme[eukgbrmtghntxpacth]pmvxbxswfexsnkxmm -gdbeqewbrhyfbfpeti[yvyiclmkwzelbqi]sktocytuvyvpcia -gnfkqxrtauwnkhfoyc[msfhopavdyhpvpttg]ewuyaxehxbyziwmxd[iyqrfiudsalpmpk]smpmubdejyevdggead -rqvcsivlxhfyboxj[flvvsnglektzosreb]yrfdzdgvkzgrxqoyv[rygmqeiccgtqqmni]frypfnzvhkzvlabrr -idyqowifirnwhkk[vloivxhtkdzjrbuuzmi]beozwodgehayklyr[cptxwcsgsapmprrp]hfrdeefhyehwwvghgdq[prcadfsulvamytpsfo]tyodjlxziwyqtqmi -tdwoqxlhhaqkdmv[cxayaazioswycmwj]pkenayaygxyrtqrqugi -vtqeqlrohgalpwrqig[bewbjgeryrvhzwetm]hpccsjcgunkysntpwp[yefsyqedopuhssgo]jjkkuwoyvhzzcmdlvv[uqczrglqumshdhkdkut]dlfilxdlomkvtjhv -fezgzsmmxdvhtmy[rrmbxexyopsrhxag]ezltorfyxclstzhp -ytcnqprainktcjei[phwarjaicrgistkt]qdtijjhbywixrie[llwwjrzrxhaqhie]ufaezqgmmdhhzjzrza -uyvaorvuqwbbexmafbj[tnpwadyyakeawtdextg]tiqechjccyyczpvbf[vaqfvvcbrowtjxyu]oqswjgtolyixytoj[ismczyxhizrzbbpscus]rtlaqgqrcxpjgmih -jzamkswiztvnelaqnqb[iptcqxmvbgyaeiwob]xnhehagwcwdgsvpomgt[jsasqvgectyfdja]dgjdtjlzbkyyckvy[fobafodakfhhiem]thozlpiakivgzzvemu -owfgxupnufaiuovcesw[jeskiymcmexnjbxrbp]obganlgvlqdczqrvwad -chsvqakwmnabitpotyv[eqeyowfftbjxdkpyf]cflqouimlafrxuqvh[vgjbvqafqyzexrzhr]mnywvcxtgsaifufkcu[rtjuztroxgmpkbnim]xsqyofncdrvdpin -kufzqdykjclolpveo[fopvuhisayecxlainzx]wvrhymidhtoldhb[vylhmdjqsdhokif]megnkxywjthliwepc -cqjpttuijfdzott[wubeiefulpuuhweqv]cqxbaudhnmrvrigogf -hkzaqueemmhessqjq[xofafbaefryhwyzzuoc]yyzaekuutvjrwnhonpk -zsgyhvutvjmrgnmar[kbxkhssdsmefafntsr]ocjxtkpqmugcvkopvsu[dsdwezhcblqssurfmlx]veiioiyfnncyfrdwyv -nsqgaufitxefakffd[brdfctppxqczvlohw]ntxmfmrsajxuqmo[pbalhistyzwnbfs]inapnupdvnwtlvvu -krtwywfktmbdobnq[msnsspogynsnwdb]efcftgrjdyygncnqdks -rrasplhwovftrffuw[txyylwsjezcxalx]voncsevbgofoiiolvk[axcouuspjtfzsekglc]qoutiffuqnorbpnlp -etyvjsjqwelcdzpnjxm[eetihszvjrmccshr]uskafocfyjorzhdx -rqfzvsuredndurz[ebgtddsixmgsugd]ilczpjzsukpyekhobu[eeciaduigoflustith]ohmscfdomzprzjncno -jjjarldpnxgwvlxve[yjoqlmnvtslexafgvbd]yngfttqfsebrcwtctf[bwevtymxqlrpqqaage]wdcaqtgkvmzesrjex[svnkfzogwcsyfxoxh]hvrsvxcpdxqmlfhb -ldwuplbjkimdskui[flisuphwbiqphsddaxk]eelzsgjnvecwedneyb -busmmdpbgxvdiytw[kwlhqlohknjgwfh]xgmkafonkyzffqtj -ngtpdikbtooilycy[dwpneelecozfzwwseg]kwkwssbtktxenqbnyfs[lekbaoqzpvjbnuvq]vhlbuorxxxxztocuiq[rscjyzvyznunxnun]jhipkmizwfpoxeuktk -leghszcprzadwpwlakv[cauvyhahnjycqgmslqr]pisyfnajcsrgnvkhcmj[ozrbuuodecumxzbsr]gtqbofuoteafyjk[sodglraziyxhcpm]lbzccqgejtsczvj -aiqnofheehbiqxqlg[wojpqldgrsrkqqpywb]dyxygexggvertuktz[iolnpmkijfefcsebi]okwjyjatnoyvlhe[zbfipzfoszigysxpwu]jitbvwjmknigdnlt -tvxhyndcnfrobfrdvo[vwbjbbozwjpolbmlkwd]kzsgbhkshipoxtfp[sylshvahmztsbngdl]emwcmnpjzydlvvknrhn[aarrocnhsmnzqgozo]uswudvvjntlhqjc -adbrrsdjlpyizfgvuc[qoimvkfjruwpheezeuk]gyjjepfgjpnyajypq -xgkzhzjlkwacqnihyns[bmprkvdabnasxzqzwg]hxwyywhnuntidvpg[mvqpemdfnvvdlpul]ttqocuncdebtomizabo -zztkzvwguaggryld[fgkabjmksknxlfhzpc]iysntrtaaweknzbxemc -ocwsupvhvpcgwehx[vnmhfmgubwbhhrmkp]hqpkkwxwwefzojltpph[bvsvcgwsztazzzjoxi]iasiueagvwjgmcugh -tkxywinosybkrutpu[eluxrinxkarduffy]brxgvdsoguiggjfemb[paaawmhcmdxneql]qtvmkmlldspsheyac -vzcnrbtoegbsuglk[rqhhdwpschucsvlnq]hzjzijxkcoxpwhi[glryptoeiosdosoj]fhduvpzlbptbehtt[yigihwrodvsulsrsh]numkgigkznkushjc -oexrobvxlwbqkrigz[nnbfhaheuublajo]pvlstoxdjdlbroezlbj[ykvlcsvqstxycpp]rxxgokhffgyioltc -cstzrhymnqxwtwpnvh[dzbyzhzvaooswlkdrof]dzxgsohzaxvkiwho -hftmeaqbiiefqtwklr[bmqfhgvsfrywauxq]brzoeoncrvljpjqxpjd -vbnuypzeryxltunvcb[ldnuxdvgfcbbysibhop]ejgwhaxwgnnbfide[okhykghpvystpufnxqr]umdmoixuvfqgecr[rkwsaizjzxjgmmftw]czzteyolfgwkrnkxid -nvflxkucsnbsltnp[iqhnmiyolnoxjzjzjvl]ctdsnjzjaflstsy -glmwwqvembkbsnvs[skbkkvnoycklltrnyrd]irlewhaeagdiojbr -gmzbjlrhyoqkiyrb[nezqwphjfpghjubnw]lflopkhihhamygznxv[zuecanynqmvceqxyy]kddyqjerkeuhuamjxcu -kwneigdpqhtznqaide[ncindqlugpdagtfzf]ctutcducslvhztsii -vhjlncnrshwikfm[amlxjsoevzrlkgoxnml]lztearcwiosrcmhfi[gkdbcfroyrgwylu]mwhzhimfdrflqqihaq -wlswesjcluvzurgrnul[iehnkjghqwvennpj]znqbjbnszpnklctx[pkxxihelrhfkiqizi]dlmwkrxyjxaumvtlbc[icgjedlkxpjwmauu]cpbstqjtdebbywkf -yxjwddyrzrzhqrarheo[dcayrrmkvazrzzlpqh]gkvbwuimfochtndis -cmqdgywvwqpfkixkga[zkcmkmqoxmpzued]iaerrfcfhcaidkkvwvm -uhwbwhbgkrzntdxrw[pchhzpiwclaasygyqn]oalmglktkidoijgyg[yugfmrxigwwqldfsfb]otdsjvxzdlsdhnyk -ctjuabhainyjydm[axxsgakjkreoeifx]qaphofrkpiflusbeecj -hdfthabpjjuxgoh[zskhkbvmwkfmqct]vmqfixzmyefzvza -wnihepbftegtdrtndsc[wtmfxwvxzxorhbj]oqlfpicrqpjgvmo[zyvhvkalgcwwjucnxq]ppatiiiatwbpyiwjr -ojaqpoarskgzmtrj[blfchukdercwzqa]anfsoaopkutqfqltry -ofijvkbfofbyadh[xmlicvxwtnufzpn]jetnmprdolywrbmjes -fosypykuipsqxaud[tbfwtcrdgvidqsg]tvmvfhrepppxxwme[qpmrvterftfxchiv]flnooydpykdzrtfck[omhwxcdomygkbaeqrfg]cwztbmysqwpqfuig -lvojllusjibvayrr[izfttqfhjethscsrghs]egzyjonmwdatznvzjw[mfxjaelqslyvkaqir]ckbkobhykxhocczot[oezwabicsuchjia]ivolkjcvilnlsdnk -acytktosnzjatmwue[medgjpfpvbiqgld]rjsbxcwqhrrklyfuu[xclxdxjcgjwkervy]mspnrnsznpccgcke[ptntxmnzdrorgoexbsg]bovvgignwezlpgoy -wdefvabtqsgstwhdxm[otahaybdinlnszsaan]xgjagsgrnziuqxjasw -cqkpuofhsousjfnlfxu[syvkhshtiyisqmrdp]vtvtzgdxigpsxcpdkt -qwagfdeyxorxoaphzt[kijseqropygskgre]tnpsgfihigocogn -nvppsgsgegzthtmpt[dsjjswqmzkoqtihud]toeoabpfknrnwqxk[hgyvhoktbvmdvwauue]pniilifxxtotvypye -noijjdbzbeowhtut[tlfprbqoqtftqnjjs]fwqyyfzzbzjeykhoje -rewfvmohscszlog[dwgnxketzlgefgf]fmvoxbzpxywaicq -pvtakzfeeithcogo[mbktbqqelkzddsmn]nuydimwmhdyhrls -qfzdrtjoipdlwkd[fsymmkclzvcdvqexr]yrhwcyjdzgwhmuijhth[zgturekjlobpmcje]eywzpwpfahsrwpwl[bgyprfkbmyaixrqj]fvhhmcltucokvqba -vbpnikyhvhqnemdo[lnyocyrozyteoxalil]phhqtzpbgpzrusr[yygaktzkmithtegl]cskivnspoecsaoi -obaxlisumjgehbkpea[ehzysfspgzssttpebuy]vwceybunjzvlqevd -fpanvbmzhlkcazo[wfnkxffkzmxnslov]gtifhhnlnnxkeaolr[pwkmfvowikzjctrje]anfzfrtlihlyutaq[vbujdswyelmwoudg]lckbqqgkglpkfnhu -ubsustsojocdyjv[obkxihfxtkbaeusurk]zmlqtgokothiokq -fpgjwchgmuuwpzquwf[xtluejeypvgynbsdgip]nyztcugwqufjpakuxkb[yanyavbmpeqlalnk]tknqteuqrnnorhcm[eshuljurljirasr]supqastijujykowxxhz -solyplfhwchyjtchjuk[wuwirpjuevkxulrs]axqqiqzteislutclbzo -oktlpryceitvhqqjqxq[ufupbpapoxovifhqp]xgrwutvfooowfaxs[yxoxzdoqyhxsiwcxrgm]swmalhlzrknfxgnamr -kmmguldgktbolgarsp[lxrqjtqbuhuthezfcfm]nhyafiyealodqrmagqq -jfowosecwpywmrwka[rlvhxlrwehljixaggho]tadphuxhvtyxkgvyru[kdwmctblkvpkral]ufydjpceosbxpcy[qkiwffygsjragvq]zlvqihgbbhdojkgjgj -fjnehklshlckrcdhxk[umipduxaengqrizo]obuxhxbrybwifedma -dzeftgulomkuwyrrm[aphjorxpuphqsqmp]nnslfcfiblaexsbftwi -eypbooqqyvqucqvyys[rcijvtatnyzpafpqhwi]jrpwrlhuiihzfwt -zikyfwsyxwrtrgdkjh[netvaemiverwhfctosi]xwdoncumksuzsryj -jxtpnxhjudmsotudd[lgvfscyjpngmela]wumifhvbwbmmticp[dvxmvcccimvvcrvpist]czyqdmwoqjgnfvjuxul -fvmjytywcfdqfmfvj[nhufehmupvzkcrtewz]hyxlzunwnjccnnphrsg[hrfqmrewnweuyulb]hmqxiwaqfebkvxhv -peqyzkuviznbwojhtys[svfilvdawzpmtygynd]fpfggygzketpcrrqx -ttcupspyysrbukznk[rpewzuewspsqthbqb]yszbsclsnmbgoazsfl -vwoufilgfhpaqfxt[dmlwugzgaywwzqb]rkwtuggupfsffridmux -faibpioziimdefafugx[unrfywlgqlxqmwtxrb]owzarstubtqbwwjlh -mvgbokjnhpcnsgcpm[vznublzcbsgzahkjprq]qdhqdlpftbetdzckvs -dgpkamepjkfizyaknmw[ctdimkbvwctjqcbl]euwsfdqpvfkrxuwr -rjcdwjzbrqqqqljqj[vsrppwgvlsokgpn]rxpddxouefplfnctudb -lhbnntitpjdtprbd[cctbkujpuoegzrijpus]xbkzdntmvzbzfxljvt[brlovkywclhnnoyrz]rhixzndklgudnxkr -byahaivirlqxulwdoe[otyasqivnfuwxmpn]vzsqfapigdecsmaqd -myozxxksdnucpxq[jgpjjngigboxsoy]tidzlszxsdbqxba[lctczcenpuntfjnf]hzdlcamkehorgpz -uoylyvyljpnzqimzgh[umieqlmcsmhnnxle]zvxwqjbaemhtoexyzr[gjyxtenkxacukadvhfh]kwagkgvaqklyfurjnar -rqzfgsolwpyfzeg[fqbhyjayacblhmm]egufazwxlncxundcyyw -eexntdgtjwjtizhlc[havetzocjnmfnpgzl]rmeusmuumcpbzodie[efuqzkuscnrbxwef]ehxrajahcfdggjyq -ozakiysvzkycefw[dcjsobqhxqyxnvwz]yuoszalpobgzxqk -pterhsdeyetokcbtzn[cdooadgsexdxfzjmo]xdxrkcynckoeirmjnlj[matsfmymdliwcqlqf]llnuahmiztvbbpise[egvzoittbupbbqrvd]bantcrmtkbvvbxi -tqpfhtrunndzpsd[zjzqvvckxscqzavcig]zquncdjejdyzegvcm[sxxdynlbdymictrfspg]smgkjimutkedknlppsa -byjykuzyigqofolpgf[cybrboapdfgimjwjm]oczicilrowczdlcy[tyaduotkhfvyatb]iklhgcjvfdyypdrdbz[dqkfqaadlcnxfofsvw]syuiaqaemufewlijxk -flbmovywhikcuedd[xyzunixgypmuhyj]loihlyylswpxtenh[jadvlnlzdpmoghiir]xbiwlfkwxtthlimngnl[vgtvhphgxfsshkgkb]vttcixaajhdcjnqx -xxxluypjxxutqoozzn[gufawigbmnhtmwhcgry]yaldvqcedheoocj -seczijwqqpigqcchnz[snihttcoqeotvsvxtsh]zzgbjkslldiespjeejy[dxpgxigvppgnnddyd]hcwgvtogqdyllyhkqj[hbkamssyyusrgbg]dnnseuhlwkwnycktlu -xeupsswdnrpzqvl[tmaszjcshsavymzuog]svjeaxmdkgbimlv -dktkcbqwdeomyrp[fqaiihosklfctvufhw]kscgwrylrgbrxjzogj[hqvwmstcpchcqkowtxp]xfooorpnwwfrqstxft[zclwozroattjxczqx]uwnclgxymympirm -yohglmwqjxpcgozvfc[ojnlrvpzwcwgnfbvf]uwjufnumsvqwxpg[wrfczzmahjdxdzhifs]psipfjeacaysvubcqqb[paeelhpmpjlvbal]buinqeedxmiijkxpcpk -ficdlwimcpzelkxcb[kyizgumxqprpckyyh]lcwwypjwqbzhtozovh -bycnifysnrtdseez[xombfbujijpsrccccl]tbvuubyduxnascxjkds[gteskflapsthkzigcet]otggllmgcgfgqloehf -wvrrowjovflnwpjhhrj[dqfmznuqmmttqtdqnp]wevjmhhfmorcrvxvw[cnjtxcdcketvdidcbu]icghhdkudxptbdcdhik -wquydkoyevtyfwqyimg[bhbhiqnxwfrcvqcsdq]hvcjbihyziwvmqr[phnejggzeulkkbdxb]uzpvcrhqhfkdkwvxcku[piqegxvplepyfjff]xqgfyfmlqqgcsnngmli -aiufvoznehafclsi[ynuiezokzxlhzsnlnmw]buhvbbmikiczqjlfhg[qfqcudscoobzjdwfyu]dcqxfcrpnhywlcabobo[piypuleecpciydz]xiendyljklimrwaexac -bmcenbqijebgornj[kskdxdmdlojqtjtw]kqpwfyitjbkfubsh -wjivpitbdiigvkhfpjf[ijhxqgwkoctfiyf]ezeuczihdpeegpnppj[rdcsrurelstudtzqv]afvyxjglfxybwff -rypyyznanxetdychyd[srdvpypvsmzquaeec]qzehxnsvvccjqbjres -disgynuubaeuiwg[qhmjwkqbmmjhjze]zgunyyctwtucdho[xljnbisahxahllyiob]astxdjwqultlphiijvh[zmhdobafwbzdndlrm]hwcwvfxwjynbaxidj -cdhvflnylxmmlsgo[oollmpblrqislxgmvvp]nivfytkylfpufcdxun[bocnmaazerwhgtzt]txxystvwvrsyoym[iafzkvskmhqjdtk]pgdgojbemypqbkofwf -sjtahdwpdhuosbqyss[lopwkbhedbpxtcw]bvtrmrjxtncfnrw -tdofrfbhpawcjokb[ynloiqgijuwanfekxsz]fdpwynqofzqumlrelfr[orxakqzzdjfnzlgywae]udzboibfngqztfguv -huwdaehvnyhbowsp[kbskeavlxslbvco]sekeunfcfnrsjqgqpcd[xrfzxupwqfrobegw]ndphbckizbunwqmykse[qyoqnkrhdydzuir]romctjjzwxjbxyqm -eyutpqnxiqygxwt[wxsiplbaidmlgph]vhlavtrefmbfpdfbju[owuuvbqjuailmgynkqa]setuzkegazwdjyzskty[oaqtnegjwglqnyw]pyizfgyjbebfacjexkh -bxpzupefyifcfhkv[fyllboalhcmvoctf]bvfifvthhaovzixpx[vtppcxdmlfbfgvgolil]gtyweatzcejbwtse[prplzrovjaeczsyxc]jkylsdulnhfilbsqh -eedtujnpvzzzdpgfrm[uopptnavfamhccc]qdnckczikmbwkxfmst -hzpjojvdukrnakxzkdv[gychyosqibeedkj]efhirtkgyzjnrqn[egmuiotfolnlyjg]nbleytvfmuvypkpabt -xadnnqlykhisnky[hvfudohkwpthdtyxe]xumogpuzbvdpbnapcw[gaavnafcpfbycdpvz]xlgtfefhzyskqazl -ohnpejtztddevoitaw[hoixesaghtpruyayyzu]ksyuxpootryqgsfctcx[yoazsorvwpkcrjqq]allrvqctxxhldwwzil[rxxioewpnqttrzaevnw]tjgvhfbpninpzwvxtl -qhapfqjbpzieybx[iobyolfvekomzeelsd]ygcprxtqzmwotja[pheachmbpziycyhykp]yhlmlzbdngqpvfcjt -egcxwspabytsgsbam[hewsugjwdvnywgjhrsb]gbxbpxonzzllmmkags[jylmvbwwjvmvkkgvusd]fxckijyjjwfrmlzp[eiohquiromkekgsbp]bpimyywlklqwdpfasc -iypuotjzbcsafzclwb[mudgawqgospvlepaexc]bsqftdoatnacbnpqk[bxaxwphnmcxlptaz]yhbsqduzzzkviyxmv[cfeyjhtefuxjqndg]rknngkyxrldxnqxfil -epqhofdmbeblgqjcpan[tuffplppwdkoimwbu]yiyfzqemymmtzevrvtb[vzuuiqvvudpedkbdgq]qzkbzuuvgzujipvh[etjfbbzkhkhvlslkjg]sqkdjmgjilbpvmr -cukbhochuhppwcuwwh[ziuieaxmtjrcovi]egmfefvbqztrinknvh[tcrdwnuqobusvhhhuw]llwltqrtuzujeuatp -uegokkxxfybcozva[hwnrfpsyzbclsubdc]kxssypkvfyghukcsted[uvtzwttuxxztqwwyjx]lhlyeezyttvgxgtz -vgriivdekqhhyzgmc[lkzxlushgdqezkwkbv]aqtzbkzcfxrkuwkw[aeubxxnhyhlolauhnu]qphfpphyptbmbvcyutk[xscabrjhmsfredzulrm]torgsvodiuuxkgcp -blygklicgpngtpgcldl[melaiuchcudinutcx]fldhqlhwyjqhgthjsrb[qnvfdzzszgaedjqky]amhauyjuhdistfgbipm[irrhdtrtvlhanuhfb]cszydrvyiahzwegkdiv -yrncnxrkuamoung[vteffidkspotxmwhna]lohvncugddeuevq[ueuixhkoouhzzfucs]xgwgddhczhiovgacg -gowzwidadczncgofqsa[gzkezmlagbaetlf]oochwgecelkuokyunem[slzawxgblqhorfpezd]chugkzdgaukccbeoi[apmckbkkvlblsel]tokgjnxyppksnep -zyqnagblhgoyiqihy[oisqkkmqfxdtvfx]qrpxcdxvmtlqbgvm[rsoqvutimhujjhbwaf]xtdayhoscopmejfxz[sqcpfrehprvngyagm]ecwgbravfceaajqg -nntkrxodbypdodgtj[lnlglurkrynztgae]twtxdcskknbsbinlnnu -meztofjunuxbkfx[cthbsibrfgxjyjawtv]ujhnboyhpoyjprrheg[qmjwvltvyjgntydrmeb]dsbnlksebapwyfrtr[aoyswieertsyvbfijuw]wfzftnldrfdpnmnn -aanwuubqnptyoryyrw[izbhposjoffhknmia]pmpudrwiwouwspqnozk[sojpnvluazibqcqkw]veawduaoceyxmzwbgd -aenjhairjysyrfylli[ksygiscororwmpcbpl]mdggayipjsxxfhz[zrovsdxuwyxjjbfm]vpmedxtfdporoono[zfnnenxocrbtapmnezl]odykztbwvuvlngxkwm -aetllelassgaxxhspd[knioznfojvtrwjtnvfj]zmdmmmgudgcrchsuufw[qowcvxqgjaoptskz]qyrfhavolkmidaul -gkevcmsegjotmpa[yjvykufplocymkaq]yhewirtmatswhjud -kaerzsgqzwhdrlzk[fgmfnhjaylhdvepgdr]smkwpurhnnhaqccuho[cznwafhuvozqolaruqx]ktiyadiryeclynr -qnfeguqpvoiadeipxs[tuodvfpmqdlndroq]ruumxxencwatfiv[otgvbhlyuhtbtyfews]swsjtpcysedmpsgwao -mpxuvhlsahhdmtwlhz[saxrupcdkcfpmpvzk]rctxchvmeqnqsxqizr[isqtziiuucctgioof]vdlchnruvtuupzvukfx -czxihwpinbwjaatnmx[quuiszmtsnqdsugbr]fhhhwhvrnenwekmyi[phwhrltyjkmdffqyu]woxrbiznmygdqbptf -qwqniztrmqkkiyg[yvknzntvwmikawjlgh]izdzijciztugcknoi[mqpjeordqprhefbbsdj]rtwjvqdagpycdsxtd -pyslrefucxvqpgtnfd[guaqdwpjlwhfmmyzxln]unlgsygdedtpfrpz[uxytlfxsaeouxxdpdb]ufpwpasnaiqyqnex[kiulyoykitwlllexti]cvxikzspuywpgaud -rbzuremuvpunjopiw[evldkwtjsfwgvdl]unsafmnksqehiore[ipvgyeheeuobibga]ohwjoehyibiihubwuo -zlxdszmzwikrjfjfh[rmzbjspugrnhysidi]impguvxjhbhtirmdihz[wlpaqqnimsearxzka]fftirrvfdqzoyusjucj -yvzxaecltitusbcfqv[witiggtqtgarfrq]bhnbijcfbhoqpojeuqw -peyeydbwowzleyebpqs[abxvydhobwmlksefjy]hntuuskjfvsfwnmh -gxdajcawzfzzhjbzpxm[nxdsexkhsbaviwzw]kojsiljoybqxuvi[razmescyfxecbmzc]fdayjgkrzsmzngiszt[sdqgfgolavfqmuzqag]uzbbbcwcizcmhntiom -gssllxegqicytbgko[imezntkypaaclprdo]hojadqftyszdiohirac[wcpiroednqmsrywvxsh]gkfmxwfuaykpwmdukm -iwdziuryoqkhqzukcbq[qdoppjrevjmjuod]jewewfyupjnuydkn[ysbuocvxflmhbdhlb]ggjdqbzqfekjbbf[ubywismzabwewsrl]fufmyromzqrxtxsijkl -tbmlgasrsqjxwto[mvoqzbghnwpunzvxu]wxnwrrzdalxjlflva -hlalpnzdmwlhuwewel[uqawlldafxwhejwbxj]vkktsmliwswarsq[isoseemfosjusoo]bjbjwogehxaqhasloxq[oktpqmpxmsnvbnsubz]ekgpiztxkkuvpszb -xfxkkivnffdwrqecja[lvgeafomwyqhlfd]uyvvthewoyqjyoo[dcoayhnhnhakcuv]sfucrodbqeqcqhpmc -iqfduwigwfxgkhbge[qojiewaocberonshm]toxtpcpkallieefn[swenxuejqehdfutw]oaiceeyuhhzpazuyaiw[gqbyuetdmvtttffowv]neqopgkvwqemnrmauc -bbwxyipchypnmsk[lefobpxeokqvfglny]rwdgvzdupkxjhppcqp[onrpulkcgonndkfq]eegboakcdoqrmdgfta -yxeegoeubfjhijn[pmdjdggehnbtvfqkdk]ofdoklopgeznrvssgdc[jidbyndormgpitjsl]ucucnufigpzjuuxdq[phajlefstzyysdkdrh]vziqmjzpeeqnqholz -pnlllqydepsbgkrhm[ltoscinqrrvkdyusds]qwwtxmmexgsfqgoh[uucslmiboquvlso]xmbeigfpdmodrodwbp -jatdtuzlcxvgwpryf[dvyuqxhxkurrpblehq]vowbsishfgkjtvicd[krvikdxyqlwdjjnd]mujppmtqzmeviflf[ihqppwgfywzrqyx]aobhudzykvgwwhirfiy -thmdermwtxojztany[xcohmubhlagpuew]lnlsiczemaohvjhhknx[spnegzrtgilojpnoxs]spnvmefqqzpdfzset -jccjsrpjiyokryde[gfwdanjjnbycygt]iqiuzghicmveelbxp[tzugzompmkteyydyeb]bkvntycebtvjlgour -rzskdzdoxsdqinbmjlv[fnwbduvtemtogsfi]oayebzmwazggkoo -hzpsgtucyxemkvmfxy[duxikzpqdgcmkbl]bluegvpkqmjiyzibglc[qruyknjgybyboyvmrsk]pqyrdevwrpeatgkyo -uubdyuzvtcfrrdl[stntntweakppdrbqk]yoiwxzsdefzihdnilx[vvvsontntjvgcvanni]sqdbtjoziwfolwbby -tdpetsinuufpbezbgpt[hpklzrbaryhnibm]ucetauqranqexnfdstk[sadfrrjazeweeec]jaozzdmvmylzatlon[gyrmfjwewarvlpsh]wfojorkgrvraihwpaf -sarrhlzjldgzhyuvefm[braqtukjacxtcbrgtx]rpfporiksxcacot[zezcjaonoyzxnbgd]jmrjkrugljonkzb -hclqtamrzmzkhhwcd[hcxqnplterhqgbude]kduskujldxotldizi[ashjjijtmbppyhgxo]ozdvjfhxmojeqagmoa[dppzupkveblwydh]qonltaesyzvczgyng -urvfscylyvpyvpqwl[akngblyladvcuwa]pauygcletxnisgriad[ovsqsgvuccmdzqcwn]jjugrvjyydebzrjghae -ohvihbfwdsvpzohtu[qsxghcyyscnxwgnspni]kxlgrkvsbjeomgckk -gzywjgljugwxnrv[mssfmontfbahkya]gfmnxglcggnbrpvuxv[poejydksxougrcw]tiqmbdmjniaqnqgptk -hillvlrgjsewmjkoha[iighatessfoqwexqdc]iqwztbnauifcazihogj[xgovsowyvdafqch]qfjgljkcgkdmrnlrrmv[hnjcrfgkftyitryole]muemrwwikauccsregut -vmdrttktgqkyovr[myycrednrrhozjdhiog]qrrfvxcqpthdfcls[nipthbalwkyqrmqy]xaprggoudqizdkqu -ofmohzqodnueziyemx[njkghrspckzhduwsrg]fxxnmxloclzfmlkebpl -naurkqfrkpbbfkmbe[cpttgjergcoemawxjtl]cdkngakkemsmtgtwyzn -xtwigprawkooqitoy[dzapkodeyqhkixy]zrtxkzjqgqeuagdie[vnieacbchbgexzaf]ezbpshpznqosvuk[mcmcfwuzlyodiqez]bojvjhtatwvmxsxhkbs -muiyjlnqtepriyly[cnrfxiwdlkrqsarpc]hdlysxsdtpqxquhnz -clmaeawlvsluxfrhl[rayxcpbervctzew]syqcakahftovtzcdl -ljjlywtzejfslouih[hmsyjqsqljnppyv]bxdissuzzauueguk[xhyiqeotzpbtzsrd]wapoxmkfmxhbykdv -duvdnbsaqzqemzc[kfefbyefuptincfaw]jhuvhgdqrnjwmlfrmr[niprevfcbwagwvewhj]hdhrwocbqysjstefldo[uelmkdqczcnlmaefjms]bwszcueianjsjhiywwh -yrfewhgpkihnhct[pxzsdirhdakahwdxteq]ygayoyiuikakdqo -wjrmypbsxqajzbtwl[pvltruknhkznchej]ypobvzyforzyiihvzq -pdchmvgzmxaspkcwkpp[kekolrkqgqcekeitv]xwpjbdcxgoelowm[wxdhdpqotthaeay]ovvuawitaqelckg -fcqvgochyglldipl[ryndsmjdhqvikwnexf]smwbuebgfzzmfftrdck[ynaegesquznhgmisvri]hwbktncquitjaqs -hcbbiznmlcfgdfjtgc[xqnepuustubktgck]jspcsloqtblxprd[mudjqeoagjqcfato]vgguzyxablhnrlye[rvzjejrpykdzzqcpgmc]okcylioamjhremephbh -ihlcdgalqwvznxl[afsqmxduvmdjftmrjeq]ekvaovqjvajxfdutwhv[zolonpiqednbtfpsrh]vurkbqdeglqdsml[jivoaiwnfpbgbzzc]neycassstykebswqao -bsgrhhzfgwsgzowrbj[mvkzjwkxsuwxnioolfq]yobngzosyzkmgrphxc -edoabezjjyzijqbgxup[lcxkqejwnnslgykokx]wihvmpynxyyhaysxvrq -wmbgvnekkdivugwirt[yuioeaoerarbpcmbwk]bdlohxkfgdbthtxlc[zqpipkuumpyyioewz]xssqnavbegcidoenex[xvcirztjwasastitiy]mmcxttawlbzdztesk -fmfwtjsguazrodvdy[uuzglafbhjlwujwr]rjttgtqakbrloqs -mjtlntwhjqjoxsbhk[adswsdpwqnvqtuj]uwzfdezklxcvhvhb[rzmgufbrcamkvsl]imtazflkqvdgqvfthc[pvktfhdynocqbhqb]qjtlmgsjspdfgoazn -hfeiexxrkdehqttaam[uinfvckvhatgmlblj]rhksgzqfcizyqqx[ofgjnqhqhveobpzva]qaxdjvvaibeenyuzpzl[ktwkynazrcnewdnb]yzmotgipaelgbsahicf -djhinybbfbbvidnyest[zougucdzxpenqpoi]vvxbocdotanwdrjks -poulgwkphlvqfjplgw[enhvwdoftxrnowdy]jfepitixnyjgvvl -agbtjztsonrgwzivf[igqgvjqttujviljk]pmqphqrfzfdiinxhy[hjpgkjjwxgfsiki]fqgfwrylhecwcoowxsi[fygonoznhkmzcjcpm]nwouwxzbpqmsxnfhedh -fnukiqycmrzcije[optroggxrsbsokabplj]vlepcfzbmvrqptyx -pdteouejbrhsicugggj[dipcyddhrktybch]rsynpfyiklwyhvlzoxz -yuxxurstojjfnoft[obornuhvvdtcyzj]kivbosojivpliva[twgyjecwqsxjmgi]hbphkpnfffzpbwjgf -iuauoxmsalkxobrgb[blehxxupivauaxkahxf]torbqoddhsksgtnps -sjgwxpuwloyujust[psqoquaifhrgmah]vpaddscloldhahh[hditsfewhihijrpf]ofjdasdbjvfrwefs -arpvdepqyadnevyphg[kbpdnghrphvogmn]wrzcskupnydzepdmxkp[beeaeyelchimtyrq]yppeqczzpjsntfytp[aofegesxpscjbehmcr]wkhyeeykbgemqgcynxs -ouluccjlcbcurdpkzg[flulmqooipvjzhip]qkxrrgvodksuivbspr -zfmcvmwchidwtgjmpoh[ecthaqwuytzvxcfk]pwvwrbzdjqdtxlq[fwbcqsvdosnolronvef]sbroultaoabvbtvh[ziihpfydzrkdqsz]uydoxylhbdlicydahf -wyvxswplnabvdoeshds[zhrpmmoiilsleemryd]pgkwuzialwbqkiw -ehkebgpllhheumhf[pfovxzqmiqoxdmywhc]qpzsvhisrjgjfqnliw -bzizropqhokoukoxz[ahvweuhqlrysrwu]sdmyzgqcevcixtomzch -kfyocamgrbgzslp[bclztdzvmbyetlgjk]llzxtjeauatwnnpkrvp[pxshjlevsleipkfkmf]xblovddfkfhviqulap[zhqfznscbngsaej]rjfncwzuuqwowdhfk -biaunelzsqaxohte[zyqygmhjmwigxsfi]lmdfmblocglcxaszya -ngxgqwjnobiygnm[jnhtcpyfpwpwkxapib]lyhgjgvcuwgbxgxwn[rovvgibkfcahiyn]dyojmojklujquiqfsj -tqdbdrqgfyumjwktbg[weesraucasfagyailb]ilhskphxtzaqesynmi[stfgxrouxicascniwpo]yfkxnhvrwkielncq -twgbfgwbpygvbfnyy[xhwmhyacxxleyadli]wffogpkjkmysxzlmpuv[qnjizoqydldcwubtux]askyjzovxsalrrgo -yunqqhjmfpqqycv[vamwyuzotttqgdzgj]lmuivwjmlbeqkay -qhquozlhiohsyzwv[utxfaionxyjgcnpulf]nkmfgjxfobxmrydyic -wehhwiznslzkyncnkc[dzxeftrnxfhrwprllke]imknddjnfrzanslzdz[dfqldjhkxhowubxs]ojzmgmludytadwespep -rbkqkcqoxrfczfwte[poemreldxewfaif]vehqkzgxcwmvocban[ffpechryektpzbdaivy]emfkcgsqpqkqxiitol -eidbkaxexnexudiembn[xyiztwlbqvoavomnlwv]rrfwfdixzpzvwkhwlw[kjinrqheqjsynha]pilasnmhghvvgaxor[nrgzhlsetahyskduscq]uazoholzvqjdaovgjr -ynlcechniybypvzubo[fupezmnrswguyjysfj]ckmilshpttvobgoux[hybhkdzvvhelhyvoynm]amrybybroexntrlcmvy -qpmlcmgstzjfincjh[axvarrnhwnkyucrz]wbbpucxtqbdjxsug[tutypessbhpshlyt]wwlkakvsggtbzcz[rypxpzrrmmohyowkja]aeuhylvosccpatslhp -hrdlnpgexbirsepd[waphktwkfccnylxg]hgukjgxutuzfovpazhx[jzgspycuftkivlpx]bhfazqqagtfpljr -ciyqjrkwqlwtuhh[lknvhwchhuntllyvjb]ontiepkrlphiydhyir[pdcojzrccoatarrqj]rwmyqonvfiexmbnjy[nhknsnxkwatatfhwa]qzlqiiovmuukmwypy -tjxbenxjlgozxrtqdp[fqimqatlktqjwjdzuoc]fedjvxnqivqaxkvcw[lskccrwcsxulkabzp]orszzlxhimwlzfawjw -yufbensvlqaxthui[vplidvdhajkxfkledbz]uposqezqxglywtlxgg -wacgjknueqomqccqnkf[erdhexyxtcmmvhums]bnywbavxkfzbqwlppv[bwdbqoqfxejqnsgjd]eafoepuyabzlznxw[etyfwvldfchsrdsjyec]apzomripffavakswd -conwdmtawpjnzrjlkrs[lfssaruafijkmgdp]izwehdqwarvfgxi[stkwrpsrwwucxlrpvd]sucqudlqvvklrfdgac[gelbgtycawlilemxamk]zmdjppqtsdlqfbhmm -ufwwjiajxhcorfa[hrdobejvqrdojftlnj]vamxyyehcgnupky -eonddfixsvjssautqun[kktlnrsxhmhwisd]drpflrvwelqqmdrcleu[vefzppqxcrtevyv]yeayirahatkufcjvax -gipuuaoxlxfkqld[kytubcrnjxvhdxjto]kwpqrvvtjopyigmq[urijeznvkopxtgkd]infdbnklnolvaqwwvo -bdqprkxthvsgqlp[qtcbdifrlnjdpxrb]xqmtwugptmssrivqb[zlkwptpsqnljxxod]esxomobcnfjuxxdmsmc[tifraqareavetzrpw]dlpsxjssqzyqwhd -ylwhvgowletbcqjgr[tnhoxqhrnytlbnwifx]pyzwjmotosezztkqd[ejfcslurfhiompqindp]kvbfdwfmwkiswfm -bqlhxpzchtvwcqc[jhpqckkyntskugvua]ylakfwmlerklrxq[wjrmeexzlljednrxho]rdobmdgxkucmdrk -ehtqwbiyigxjvkp[qujbspkhxogjrzskfm]qebesubhovwonqudy -sjqrkysnnbgtkhwe[ibgrjvqztrkknsr]mnbkbbxvfhsihzkbsqz[hxxhvxonqzrgcant]kbkvnbphoymseakbxjf[yjkdvhsscxggtyyk]tofzfukarcsahrmvs -ndepmgjnsgfsttp[rgrcqahcpnsyknjkd]uablhivltavxssnx[uwjmrokgisrjukeoh]wollclyotaektyjg[tzbziofnztlojbros]qvbgoapfzbecqwjsq -lspiukvizecamzh[vgaxbxgipyodtbxb]qpnkwuqxsgnihgd -khdzfhioeykvnvxuhic[lhfxiidbrwldhvfav]rwxsfwhshazzaxvk -coaljuoxfhvirzhedxp[femqrflktuakhveiiye]iabhkrebiawlktxmbr[pzvgzzcfzhswxitunrj]kqpbmoluwjetvhdcr[tyqdtrnkdmvdpuf]skrdeadiylehnbiyvws -qimxmesehwdrqskwitd[nvgxgwksihjcplpl]bxnyyafyzxludvyehd[hswtrhxmggpcpcvew]cucgudrfxfbietibgv -moiyvifvvucewfqu[wuzvazqcictmsbtq]nktfnkfjbsejorafo[vfreizeqljwshfafwdx]xrtbsdzcfkdmskiiuwj -kchuwlbokzivzlzvib[izbibinxysyjrvtapis]vugjoxtigdmbdqjn -xbclcahcqnbzwpvshao[qkamrpzzmssylpxb]tjsufvzaorutvdu -hraytavipeznkuoi[jmllyjddfakuxwfsx]ofoxhbhnucmiztrtcji[vebzprplbxwqnzllu]peaegqqeqbjikxff[jxzebruqgpoqmklz]liakpsmvutnpufovqlq -omtbdjlfagkxdlntz[mhwuaqvyldixapgoaec]aghmtjapinrxlvem -kbvvqlrdswbturvx[qpkrbbaxhpljnhlytou]xsogoxibyznqcpqgygn -orqcxbycauryvjxq[ijorpddboqkyznnnm]rvildjpthqvtdrzcq -hvttzyckbqjbyfdn[lzeulxlidymszjl]wbbmixifmqzkvypqola -eizqnqqixewedcvcit[ohtuntptfbovbsnl]uuswevyvyulevsfnw[etmfugdbznyzikdtx]euprxmmhcrdoefvfjg -pvxjhbwdlshqkth[gwmtamzhtucvbkmwacs]uyephbahzeptqmif -zitdlkpouvntzndz[iluwraejfdnwafe]fuevzmqlsflfcht[suumoqktussjsze]dawzltubgawnahpd -krskxctpuowviqiqxu[xunkhvqyyqiqhyx]rcdhdjoqrutobnjpimv -frsjlbcvuwydaobhii[bdatbysbolkcpzcxoyf]lwsfakbmjilithjrls[fhozecjhruquesmkca]oorqtbaamburjorhy[occzlzfhekgspeep]lilnnsqheytwakzah -ragajrztetigfkm[egetcjedsnrseahrxr]cblhtdmtcnoaank[fzhqephlcyygbwt]uyqlhhlhmnfyfcts -nklzxesmrrdlzyakdk[pfexuhulnvbmndvyat]xjvspjnesqugmkngn[vmzvdrheaknqmzyrc]xfncycggjiaqvirfvnn[aqeinzmbaijlafd]pjojbnvismokshrs -urteecaminrqiohs[rskgnsdfpksfznqpphc]yaxixbacbtysdrnwixf -ibvmhqpmnpzmghdtdpo[djdzntakacvezlr]jtdoweayvyiaskblc[qhwimwixemjmqsu]rzekezftftlqqovnq[hzeyrnhbrrducxz]ceiqewhcqqmqluro -joqwthpcrccoovxrvq[qjlcrltwaxkjenbbql]ovebjdqfnfkomjpswn[qhwrxhvbaattcrkvff]nmytfcchpqktagojhtf -jeeuutsrxjlqegcdlrm[chrtabpzdcoetzoopc]axdhgbwmwhhlrvc -djcujdyidkcgwygy[zfpuoobkfdetgiifrpf]uxzlkhxzqgiuyvuc[gboovijloiwizfuuye]wimticbreszjcpsls -ylpbdnvjaavulnhg[novahskycjcruokxbrc]gzsmxnvpupgxwhx -qdarjsoimlwxduyp[nghlzeghibocgcbhqb]vuoixghxxsxftuztlxs -ikdnbajyzpzbtzjdey[fiygpvlyluerdjvcdc]hheswtvpmtvjochdsih[kmjnhhmbpokaxsrf]byzdcdlvgyorjvkujyl[ttxlhbnifbfgmvs]onytmkodkklacgel -rcpgwlbaskiorvxhgsb[xikxwyiageqvilea]rhkkzuqtuxbhuygcxya[prteqotsqfyypus]mpdedamsijgmdktn[ptlcxgtlxfnvychnwe]mdjujbmrytfbzpslad -edjzqlaktolcrbwboup[bvmtkmfmidimoohq]kpsgyntrgidclnq[ohqjnvirkjlmztem]smtywugfaobbpvmzj[aksdrqczxftjrzuylmm]ffyrsvfwtqlmwbw -rkgutyhaonmyick[udryocpupaohqhrmmsk]lmusznhxbkbagotha -ebtiyamyxtfcakoku[tfggedpatfzjvirou]iwbguywvekoline -vjyzycrsfycfrookru[iszkkyvwngsskic]bnnqauaqcfxctnyofoi[tlegfofrqiuqlgkld]biryppugzufezftpjra -neipbfcjvrnrmpijwhq[eppjsmrnolpscnfowe]crsmezklwmkbysajb -quwdpyfsllgkwtj[ercxwsjcfkbpohokuc]isdjfklflnudrjetf[fuxsclqmfyplxxvao]xflfujjqnglxzxlxz -vfxrgmnvontljaodk[pwtwiqibbceehlnhf]lwzkbshrmagzhwqyq -ecfthornfevsngitzhb[pblbvztbbsbsxxuwec]jtjnnhwkekrgjanoxbe[osbstvuwyjietzx]xiordmxphcsjnzfnrwe -tcnlllsrvzoxupp[ficwiahpzqtauuk]whxfguillhkpxitoqq[ovsdwbddmfojvkqrxb]bfagfcimddodrtb[lghczsmdqufswoayezk]ctkmauzrnhgotbibbb -qahnaxgypnpjftgu[bghbgwqxwfnfrcybzd]qinmtddfxbpkhqnna[rheeshzhyxfbcfxkd]awwsrosrkyfqcvtx -siffwvlfljwbcndns[cawuqwatfhgwsphjn]twfwwneebgzxmqyrhbr[awxuvozbhlohuaxim]dykizkumcmmnwiwdx[dikxuxtmacvaxiwih]mscklmepmcgjemwtvv -nwnwxbeggraucwj[ygdjhwgskclfginltdy]ngfxeqsonadvobrnwne -ceulusceecbvzesfpia[etyucdrmmbsstudbfo]jjzwvaqsiovrgro[msadpldzcxurzije]mjrrrqwmyqxpdgmp -aiwctbwfathsnst[ymcmlyeojcaokgf]hchdxsyquapjjgncfq[adzpesdwzpvcksioys]rbfqvkxsicnkphd -hnbounecoxhinavuro[tdytxmzudgjmyxmm]fovpxazijvtvirqfrup[qbfsslqkpyioabrzhlz]htlcbtysbfxurnuqgs[nybjnpqgugmtfculk]zxdfwtbtbvhxyrtcodd -ecszlqenzswzeujn[aymhmhqkvzbuabtr]qasueshfbfducoit -bmvypnceplfbhhsko[eypvaebyvggpcmzum]ycwgnjvrjmdrkiao[hdkledypozrgbkexls]isuydppzigzqtfo[onvsgjzwozxcvgkukez]uhjisxtizfjiaebue -ljvtminczzipicxg[eqfvilzenlbztef]hpdptelqvvscyfqjbk -kofmsmvngqzdobeg[atcxvdptaufgfpec]rbyvvgagylqgryjmdz -qrqirixxxpivzyxidp[vanhxwefpeffrphvwm]awiajngjmxhscxctxt[hnmowanymdizdow]lqjbxcvbswqatxyp -baeknzdxlkxorrfi[tiqhvwvqoyavllfk]uqqdkslrjsueklu -usgfgiqvoudfsdyov[unqciexsmnreobavmoq]kcboezrfdmoqrgg -xrqjdugnwddstnr[gbnpzkldpjyfady]edvtrvipwheribydmaq[mwzdiuqdstogfjy]owanzbjqvaqgsgf -oumjseobbaxvipit[ukwqpfaqohsabpd]twomizennyccksgi[hszmrfksmdcycyda]connwmiollbtvgh -skyizttcnisqncq[lcxdhawnbdbcptj]ocvhdptvtfnwqcdmjff[sqbbfcaufseolqwcjt]xlnlzmuciirvedlni -nwlhzupppktailtktkb[bzdpulmwswdaqrv]kncfgfqmxoohevsxfp[vgabgahytpqzalhap]bbubtzxxzeysqyqp[nhpmkotpzfifrfpmk]fruxnzwuvonfoxc -yedymyfylbzvjfwst[woezxcgsurflqnrmvt]qsiblcwatgywwbktdmh -gnbeeaxxlvupyacdpl[dhgikxwvtnhllqs]dzsbgvmgvhcbygjkxz[qmayyikkpsqdoukt]kdfbifunpwlbhsh[qrqskqnysxtloxs]zudxossasajrdeanct -rhftgsygepdspzqbewd[lcmdbukbzwdesfroixj]oblwwxyfconxmhefjow[fvutwgcvuaemgzqanrz]xtiuegikggcimaobg[uhqwmtpowirexexim]txoyjvcawbfxprxf -viebpcquqeagmuavf[kxfkxsoijrjklkgtahh]gdxrwirjrvzjcykax -uptdisvspkluwgzkti[omvlmaxnyxyzwuian]pmieocovsvpfcveurx -ejmnzzuuduhzoze[xrdlxozvhgiofrc]sxtycslunhjmvejtkd[pakbfwkagujukiybe]adudpcxmlamtkwak -lqyqdhuldmtwbvydji[okhzffzbmlvqiko]wdcicvzpzkaowwqnztt -imnhospjiqsxihx[utoykmsvdetrkdxvzti]zgdfvtmfjggwyjef -lwsirsmcseswkfxh[izotdhmoodsvpsp]jivuksxahorpwcgxnn[plncjtzvyamfyxzst]nnpdtmoozfzuemdcenb -puavooykfwvhwzmkglt[xutftanpuhgsdznc]rvzdveoxydbctczqu[hetpqpdgohitmgtgyp]koiwybsyijhmmqxesqk -puivygxavmlrxwkst[qvtxsgezqcquyae]brdptsxbxnobkvcqclm[ibxfeuecufosgtzhxg]vziaqziqriftdfrpnll[bjfubyvxxrbsjbqvi]nnlbiuncvdtnnarm -tlzooyjugzfsomi[robsmcwkpeprtatddr]taktjvhztdlygkj[vbjvzeeznvmamus]sformulcgeirdihntt -zbcyicsjcmpicotmt[tbrfctpfnqspmvnv]edzcoymhzfqwbuyuyu[jhauxxgwnguurrviws]rfkagjqfdvhjiavoxtf[zdejarfvfodyslh]pzjedvtgzwflpduq -dhbhmlhsizoeldofqs[qcypvphfozxibpjdo]idntecorhucvlufrwu[naoixcxuqlgsytnt]ehsyusyugbmahyrn[djtckrolqitsztwtuq]urantneyeodhvorgsx -cnsrdanbfjubsdd[nwynwjxiyygvgdlx]gyyuqjjvumvquvzib -otivcdfzmsjivefwujc[yiveblxrayrkmfjwd]mbwaroznwihbnbmjp -fwanqgdmtlsezhtvat[bhxmmztvspchqvhovae]cnjyjntrcijkmnjwnlp[rziosbsufkiamqmqnmt]mvxhzoxxibbkezhzlks[hfessxjoefqfbgxhc]kdgmlomxtdfgdgku -ygxiiehdqiqtqjzj[cwbddmmlczrgdgpibge]tartaeajmndarksakye[qnurjchyeijxcsdpc]uguxoncwdrojsyszsib[mlwwasmjacumzfqr]sguglzsozcdjzlooexl -ytyzugjtaxtnwxkns[aclewmcdbbbwyyu]hlfhrgrigvwsdmdethb[osohbeuazmmffxyeq]ygmbsfwcmyqowdvh[pqpwyutdqwwunfqt]ppkundibovmqwjwyll -vcrftmfliijtpaqsoy[zcpypxlyshsruwbclj]mnwgypyvzdxnnie -fmfdmvxkdupjadbxh[tauggdjujfbeogtsgzs]pygzoyudakrlrlba -ysxiybmwpoygkyle[xaaughrlqulsertp]iukezabalczvwieegzj[wlycqpkbqptraajl]mjevizxosnolkxnfwxc[veialybabbpytrf]tpgpqighdqgphcwoysw -cnxnptbcjhgrxrtremt[tjguyerqizvuobq]honeukqpcsoiapswdgs[hcroutdslvvzypfklj]owxcxqehkqqyeflgi -ypgeqbggpntconrgr[fmsyjvaninmkfqekne]ykrmyjpfwlhnsvgehop[gvltviftpcixosamy]xlsyzevtwaokuvneo[nbfcynlfsbmmweiml]nxuzmhrwlucgvfy -zagsvkbkhcrkvnukl[pyfiiavqjgonrarga]antgzbmtohtndzgf[gkvovvdgppcnyjifrc]lxdhpometcwlkofze[fpxwacqdussynpwd]mymrmftjovoqtkuae -xrtjipuirgczdlrrlnu[xdczaqvzsfgavmzq]luocuzuztdgsyxbcy[agpcmbiyqxfntvnmzn]atjschwzmauidumzxru[gvmmftvwtfsvudtd]vhmononuocptbuvorau -fzozmcmcymohndlq[rnrgxsywctnmxxd]unfjafhfgeexfykym[xnldroqvnecyhhcwel]wagagwcqljxduzebjeb -efvejswssxdrqggx[iqwwyhgngmwzwsw]dlkdcjxurmpsoceomp[scbledaqpgsgynjo]rsdxazcyjgcubfxlbb -rlkrgjrxefztgtho[tphpsircgzsauqfew]ridnbmerksozxzwx[lcqwhfgiihdzgtgudp]whskzgdpjubkztb -qbtcopfgkbhzhhglhh[ostebaqylyggiyfptkw]bbuaatfqlpxstpgwg[nydgrdgyazzfwlagrz]fiiddplgxeyyntyeb -bogowskdtwkyhtdpzw[uxvrferconwfnnj]eukencoekwwahhefvs[xtrpjeahwpxbwgogfmh]axqvtgibzojnfcku[zhkpmdtwlogmypeqc]jzqywlhocshrdrlgd -rdmpdlidbkplejoikjc[iqzadghltpndooanzp]ltizdvolnhagtlvr[rqcrkoaqwfwjpsrj]rtlcwqisvkznpvrjrbi -ndbtkvzkgjsuyfibsn[gbfhvruiotbnbtvuxaa]xihrrhcnbnowthpdge -vxtgjsiuodbsuhg[updgogkqrntiedefvh]xwgrhmgmpzsxyen[tbhogopfepprmtewkm]fmrtnudhysikudz[rrdmqrctpwlcykzr]lpbvstnhcmvnfcpngja -eoaqeiqpsqdqkdvia[pdyuqgwuhxfiukmpvw]wsjyvdabhrdsxij[puikfklqhrmvfrwomu]zvbbuuromxgpnmpviw[fvfilnspmeoxozaba]yaouxfprxpkvkit -qpaksrcracxnyuozqc[evqvzzqomyzwufkvxx]vmbkqqkzjskcxbmbbp[alqaapbcvzuxchmaa]pzxrooiyfqprfaucxue -jmjvvyxljzznmaarmau[piytxuyakxaropkfnfb]txaaoeuvlqiwynhqlt -yrgxyekmldicpvo[wqcvsbptigcqvzoet]jjwvbjbshgmwttac[ymvjkuxxoojchqomnj]tsapoddljyrehrxrke[ajspkmvbrzxrxlpzw]hwymrguaqnefpsza -dmlshfvkrzncuuoo[fddyurlzqbpqdidtkrs]kcewmacglikdszapy[fltgxlltlvysvylrl]rgovwrvccixdullrof[bqkrpxjupbbrdnahf]ebmiiwmxkutltuxwrds -lzklscqfbovjmjbo[rhwheqhkaseohohelh]msyobgeiybsbyucus -olbjozztfeowxftbsx[oefyqpxsebyfawerwwb]uyfpnsvujqenwouagc -hwhbihujnzgayah[euifzicfxexpxir]lpgjmexgfyseevwjpqo[nniwslmnmrgybuelwb]khkudtujoigkyyjipu -okiwsdqqwbijptpjzl[ktibxjcdrjvsgxzlgg]cimquzswgbhabcf[gictypilnrboctfwls]oiofteanmgnauid -hdwokqbmfofrujxvf[gcrxxfsxmycedcfr]xwcmtasmlcvfmezvtk -gcxgyjgbqhtcqznfuoh[yitqnwqdcpkgwzayq]oqbiabducwietmxira[kuxdaeohprtnmpfniab]wddlljbeofkomijydzt -gnxobceomvkecom[oedsyavphnrvulwlqfk]klkcrpigniietqecrc -bgzhntrrxvjvhyqhf[tnyvbggtjvjfgratfo]hltqszvzgcutrdcvddq -sgzcemtrlzdjijht[wtvzogdoomtmhxcwckm]nmvftmtbucjnczm[hkqmnugntbrrsphbmn]yfvwwzebdqjkryhm[ydcjwepsqqrwnhkpup]tyssdovqgkhvvstvd -buhlborygnuuklh[haftitnpydnilqbqabe]gemzbfstwlhejmjoox[awjrajspxybgdkbl]nrkncxgvjhuwukw -suckcafpmeixlavp[ehmqotytcsxzagjq]vfwmytywcapfwlljl -vblctxriewmbbpxo[xsgdnvmcmfnuejlrtz]iltofzajbcezlpy[wnfixwfqqgseisa]buystfqzokvletbzv[woumxjkmiqqstnt]ciarbpnsahayntnv -cjsgiueunqlisps[zurvijydsqsdtktm]xhlpspwgqlwqfvx -bobcmszgphpejiwlwdm[wwjrxebfctqobojw]hyrcpguihwihhpmr -jlyvxnexbisiiwyjjf[pxpqjtfgwysrewmrv]xcfaninzgmdidqswt[spnysxcfdiwijvfqitl]wigmjtxvsmwlquxew -qqtluuthgrubwpqzr[kgebpbdpqekehnnuyuh]onnyuyxeqstunzueapk -sizavpqzmcfexfocoxn[dwcfbufvxxousaeah]hymczucocssffcj -ldupymvmttlywlxbbs[vsttjksdhwfdxclitx]hfvkvgmtmaxtifvo -tbgqiatbujypfbjha[catabtthtrydcjbt]aujolgbocqymyeqfr[apsuwlktuaukokmldw]qllsjhthoqdlpykgwz -zqtpkzchpnnmyzygsaf[zuokmkcncefsioenp]ynympbineurlgzkdys[nhrjzpmbwhwcsuowx]hzawgwukxrerbljm -navcmnriavzmexm[xdvtpfcjdxlbsyenvtx]byqzubujbhvpwfcme -kookhqsmbrpgpsbctfp[wlbmttbadvipoyrojd]cqmhhdfaunlqkre[gqmltgpxfyljdyo]zvzerdpqmktqmezf[npidrfvvtdeqgzhojn]hzehtqonmwoahdakvve -tanngpmswmpddgfpph[egmymqydmigpnpr]bymycsueiolsfyfey -uddmrzbeefaxbulsm[ieevtshivgygbvsiwpd]lbxhzadyduakugey[sqywcrjzoxbbgadoqne]xngapfdfzbwcrkd[gurtymibbzvsbxtpypw]elpexxrljomuxnybuxk -diqvdzizaoprrpzrovy[cbayiwiifklhjkw]somecbyhptpmhjvkrba[gczcezgzlsyowteraem]xkjkakyvwxbgmybzj[htxdiogfsahudae]hhbdrescqujtyeyo -kzrqpxxtetqkqqfxild[tenlubsvlvxwjgokm]zxfixurqybohvhfa -pjhbxnktknirbwjp[arlmosnekoqwtpysn]hexsbuespjgsrzbvpf[vaacxsepjnqxegwqq]owuxuohhzxqnoqepvha -pumaevegtbjlzsijtf[cjpsnszjnvoexufcgxy]dxngvevsnjzsbuask -azhhrcrptkuqsvxa[hwxldisbvxutspea]tiqwqugkmslokmixx[wzqlcgyfzacbyoguk]klpprvhtplelelsmx -dumehssexnwcppac[gucpccbmtrdgoee]zpcpjjuztjtgxxhzroz[iizviarbucshvccj]xlypepsxxhxphttgc -deujoayipwnugheu[nnyjneomcvpfrvfu]sfspbwylbnzbyqh[innsmlncnbxrbfuhu]tldwbficslnxpkzlrtw[kyfmnucfyrwlvbb]wedvxsifdxaysaw -lcvkjzckpkeyzyjgtwy[osncmhyofupofwscd]rysnhkmiqoqulyu[lqwjsxrgpkpkgxnvhf]ftmywmwfpckoadd -pixbxvhtlxjxzpm[nvmqocftgaxxgejke]npibmenishbqrxtavc[jzceumsoxcyqbfv]qcdqqbwcueyyqptc[egixgueerjonkmigr]teecwbxvwhgavdfjxi -vhtgslxovrpmlojcyiu[pngyxboltgfaskge]eawigmpxrezdxtau[osjcsdhppmqtqxixkg]gkxhhsphrnkjyxgmp[khnpkxghpkaxnvgxqe]zpedrsevlishcdbd -ixnbejxsfmcjmqh[pagzggnbjxxwktstf]hcjdsogfetpzoucuxg[gsnpjjdmrqzojcozi]csxsgebagjjgxqjx -mekdjtrwhgafduvnmwn[aaphpbnxrwwkhzxn]jqzcqvefysuegreqcw -wbpogjbyzelmxqeaazu[djdqdlmpfmezzehvjl]qdquppvgjweftqvph[equcifktaceuqwoakk]uxemheczqpboerwq -objhlxsujoqunmhip[bxpjvcdqedgvqrv]rvycwulyrrllbrxlbty -ckxcgnosnlskecyq[lcbisjdelotgldlea]edcebpmpxvvgktuxq[pewmfvnkiiulfehy]electgrfvkbxiic[emqhtmrsqfbebmykzv]jfdpefifxcptpfzvovc -leyueicungygchlce[fbclcyopnajqvxey]jcwvhehawbpflgddtn[xlozeiujqbiinjlvrt]ljmnnzlebbjbccao -mblrhofhihdiotvy[nfatavuoewnlsvc]gtuqdhyxielngaci -eyzlvgyolwwobcg[vaeslqvdrjthzho]zdakaychskakuufan -ukqgdhxdohzgrdfc[vfxeqopkydlzdehao]cormknsmtbidhgml[ceialgwruscjsapfc]erjsjeuxzxjokxct -szronkojjdgnfzkpqzq[xpzmblnarrtycgglkw]cixtddybdschdshenjl[gflkqtgzlxeesrfvx]erpfhhlwbsdasjljnqh -crndgetyvbvxhujqtu[svhcpjoxbaacvpqf]ohhkqbbwhtbcatwopz[nzfqzdbjhixrtpw]dpyfzrpxayfoglzji[aynmktzgxtegbucrw]igvfejgptghxddj -efswwtohurobgbpvlhr[sbgfgmsrjsrjblwr]xkswzbsgmboecxc[odmohossczkqjwtrdi]gvdjrovgilpgrdgt -qihgnzozzcedhgivz[wfzerbwlgrjbwolsz]ehnxlqolcgghtdfkeus[isyrflbjdelvbgz]eblyrmmkbobefzo[baowrnzmyctfmoylu]bzhtmcwxpcqhubyws -tjgkgtykbfdogfa[tixjoqenpxjbetz]oybvzsgugsucpvid[qukesagikwrrpuesq]xodwkyngdrxadgqz[sigwgfluzksbqqpvueq]rlgcptipyfrgihzn -tbilszajwwosrhs[rewcahkzssatddmv]wtusvesduewjvissr[efusbpnhwnrdjwgjthd]dunuqtpzocqwyqbysak -spvqcisucqxihmincf[csjfurernawvtia]vzarehconlkvnhbpsaa[mttsrsqoluowbizxrbk]pewqfgipuxqzsfj[qznswrhnuvmmqtbq]mbjqscwfpmkejjowy -eqeycwhpzzryclb[mvthqzizihyfvtdgon]maeannxtfakrfmg[xlxbqdqlglfspvyqrx]chjokbtqngjjsidqdyf[nnmqygvepumttyp]zipyquwulqtblevg -etutgnamoiukjadrf[phwftwicxcpgdegzkr]lafqcmydwbvsxlegc -kbwfmffiylhmwisrb[wvoulhoyvagzmgxmp]heupruovkypjtzkilqm -hjgmjhzizaeqewp[fepsjuqdjujbjpnooe]rnovsbmzwqtukgy -rlxvqkugtcovejm[vqlkivalxqfohnwz]afmwxjnymstqmem[ynyidmrgyujdkmjq]cliodisdvotckoatva[ysfxjtwokboitvhi]xfxomfghbnfnkobval -oxsmqxhljzdjqtx[eavkvuusdpcbrlwmr]kkpbxnnmuqigfvbrf[qrfzadqfcladouu]irmuceccvwsazcydh[kvkeafmibmbgpjoc]kgmkohjtzjqnfwxkv -hvvzujphepxjyypzp[isabpxdneywzpzr]rjbcrfhnidqlywbgvxf -ezfeilvlhanyhfvd[wgbqirhrycdzzbu]wpwvyghpwpfykgdt[drvcvbpndcvrcirig]qzcdvhfcxqdxubat -hjkktoruvvqmuauitf[dmygsosigufbzkm]rjbwsccifhzyhqk -zazrvwupbrzlepfcc[nzlsrlgeovdbndxwqv]yhjwjlnravqgraen -fqjubgphparanlll[avwevtaigfdxgjet]mgftlttzuhaqlvwqn[cnxupkaxahrlnjelty]yqgaieunjkxlhrha[xexqcuvkacjayozydc]blhjzcfcoyiozuajqxw -nacvyqozsyqgnvkvw[urqhhtybjqfpqqcrex]pxfufqzfghzxinnnlq[vbxhmpntjgivfgzgmq]vgsmxbkpphhjvzqdirx[mrnmmtbamdhoved]zziaxsjdqjfvqzq -hdrdsknkwrtejdgeqg[wbvycsdyecvuclhi]owhsjsujsqjachyh -jwfxtraepnpxwmziud[qhwoewcswwusdqcvfh]czaiemhwpbkflzqi[yntelahhkwcytedvpe]kpkuxgqygwicxoh[vuifmbkhbycxqiv]cfyzggvhpveafhduk -ngiytctkauehibctccr[coszigxgcttxzoqrhvn]hfrpsylypetiwrggzg[xwnfgwaxrjabzmsqquj]gxdqtprloqdojdthh -rhhicddiuxdobco[ihkmummwydkeoqp]seubufqphohblrkn -sgslfpeleveakroo[kgpoljsrrcfwlwyzb]zeacrfqqaortgdv[yoipuknesgpwoscvguw]ubrzxeqpijxuflgsgpt[allsdtgmdlnupofjb]brnjhlzxmijpicty -vbcaptabloujxkqwnsc[iujlwsczjefkoewao]yqwmtuetinhedenovhm -fcswktnxobrvovrjg[qsaxxwxgrenkdcpfvx]bmivhngglvcwxwgjz -nhmxhadaretplflb[eaaitxsycuqarue]zzdsqhjjnebzptm[znupjbepvjzujwj]djueiauiobywmclemio -lzgmurmbxidxqofgvy[nhpkiprmeusixtqhfid]zlpmcgmvjfsqhddfzu -aziympesgvakqhltci[qdofqedxvlvpyqat]txvwrspujxyuqsn -ezewtaywtinlcbrn[idtmhvforhdxgcdy]ohpcvnchsamehoewc -ayzzozmdklbhitpd[xwlznwdbvtciozoykoy]ainwvvxkreuvsgdatbm -kvacickhqbjjwkk[fryxetyntagtppzorb]gkqgbqhjykyewipbcj[zdaanxpihogooeeqby]lxdkkpostipynvh -nzngguddxyeihkkyt[wamdyvzgrnofprps]znzgitnmvvvrrzsb -vnbogcvphumewlx[cboxtlpwdmfbtfegkai]zlxznqxwahbghxz -stwxjgiqglghaaot[gdxpnepcgstafgt]psljddrwgewawdc[snbjvfbagexsbpyh]wqqhsxerdjilgln[jyqcqbxxikzmrguo]sophymnkilydvivcdk -kihnifnjfzhvlinqrqi[bcgxtjpdyxtgejzrdi]avzbrcqlbmaadrrvazb[ntmnrjhiklfwujlg]pifpvzbirqokamrmd[rbanfbdlrtmtkxca]udilckezqvrehkz -liradbqjmqeaifibll[yrfnryjrscfrxgazpzc]vxmlibidbmcwgoygn[ojkunzztsdudqhma]dvmtamzfaanvyivxqrq[yqypfcmwnezorcnbzy]wytsaklpzfftqat -fhaxbfjherqxbzbrtg[nabthakgwjarjsfhj]iokwyfrrjtwulhwi -asundudwctdvninxpag[opdvadcnjnbxptahj]scynlgwnmzdtmudu[bupcfcyqmmcwsqfffb]rjargbcgxvonfgjco -zwzcwjnudozdektxh[wesqhjkthgohlufhrf]mwqrvudkqiysxokugz[lcjiemidwqbdnohpd]psvhnbkuptpjicdmb[vfoerfpkymcjmhzicwm]pwykcpzewskfmho -zbhxhhqfeurqurm[buuctguwokorlkfq]extdceaqdkokhdaxzqj -qcrnmtdrftlnyciul[qvtjesglscjradq]tcoobnfosubnnrps[qafsnrpijrnjkemz]urgzkcxptagwndzug[olhgasghsicjvswx]higdtidzwjfzlfkmxbf -ymvlttwormrtliwoy[wrcafamahrcipugxxgy]mjzzpdkuowbrbqtmr -swwktdvpgkbbntq[jujwbyzbmzktmpag]uinhisqwpyszittfqe -qrlfgtcrpyanzwfeuhl[sstllbrafqeobsocmsc]gmfmnisxdoqqctof -znfoqfwiwmxdiixycul[tsxegdjmxscgpfllqvi]fhwwrpconfwceqv[gqpboszvyuduzehsun]hmydskzdmmifotkn[jurqmnkixknhmwj]vcjomeocgzfhftqq -wukfxspnkhedqdbtfti[cjcrwokxqxfqbvfatie]eaohmttcidinhxqtcu -usgxfhglhuknqauzic[jlhntqhcyjuoywthv]hbskrwccmtzgyby[pijipgraqquvxhso]hehkqohxirecivlxnvo[lawgvpbmozisammvpcx]vuchsyinsehynzm -dgnciyptfimtrbmfbcd[tedeoxadobgoobffh]iucidwknmfofwia[bbtbzcwjwiphlcruw]ukwczycabezutqdcc -huxitbsdoqaffnlyxyn[vzcnvdddtezaeymzrr]bmovgbcqswsdmjacezx[jjdtfpukrwhiafcy]fwlhrymiaolokojdkx[ftqdrarkfhfbelc]yfonqpoegjmmxkwhz -ldedcblvfbdacsy[rksxibwzdatluua]agxedenvctglzyvpu[qkwulxegyokwljso]akjfktolnkzwsnn[lfhdwjomyhroqkkzk]mtkhpnffxrrwipsrqet -ajwscynjeiagnubeew[ftyzkgsmsevmdkpyv]ufeszcwnhqpwsep[rinrtwoninoxbqvlgy]mzacylokxrhxtbyut -rdlragvdebqlteu[kitphkhhnrssleu]chisqrsnofxmmbegi -sjzglwvefnntfgofuax[htbkuezcjsfgohzynlp]wquzxtqerwxlperau[kqnbhymijqtvtzxbra]tcwbvbockcilgvn -bdqyqodloytjtcylu[xgwgnadrhxshcyhd]qshqmfdqpzbruygmmzc -pnwkymgknqqdwzmymmh[vcnetknxxjvihfrlvq]cujdvtwltkpkzwkc[owjyboqcsymigajgish]bdklpwzslsjvadacm[mmimdikciuetfjeece]dxwoxjenzguercr -vxgoxslogbrjaxbjg[qyyckvarfyidktepi]odfkcgodqdusnjs -nmumnqunfnuhvtucy[voatnmasscuvwjth]grckxjhdzzoqtpgwm[qwmgudaltzavyrchqy]bmxedeqkwkgoqyrmlx[uqzdpkjekjgfvlnfwh]tpsfewpellmljsakhea -dvvwqujegsgarow[rkjpzfvtrtlpcdlc]kvpqbvyshmoemkhvq[hzbtnbzhmgaufkfvwh]ipdgirduhpdkhcwzfid[jmxetzvqbkrhkices]yzrxhfcakriippr -xyijrstjowvehnp[ylbnnbclmipxjtxtbb]dtynyczfzgqozpa[rmontkapaesmlvuasig]qmuqzwqsoipzutdwz -bdwyvvnsxojfzifhkr[mfdopzhxfakffhoudpz]vqnrhwzqbahbztlynpi -hymeoolncfmkblqrd[ifbyrijjwxsjvmhql]vgybqqlmoilegcrcp -arqsuxhcivbxfiuf[jfqqzwkamooqvyj]awbpyjrtunzulggzmh[iipnlkhwzzmzcdi]ktvdnpdmzmkrqavxsxy[dnoqbxknjvouymfz]brcemvbpovqjdvps -sxhcuagminkkyodlma[zkcpbofatowxfdddhv]iydjxsbzyvvptmrivf[thuzxghsyyrkqbjozw]zicredtdvmavltqgeg -qgvauvsmewyfypvgx[bkzpxdkwztxbpak]ghwmldmcmotjcmun -ivnbdeggumwedodrru[ejwxagdnszmvpyxtsfv]eaabhawecgtctegy -nylnblglukusyetuly[annmbyywmkzxoxcubb]fwslxffcquyfzezst[exsgjgeufpzlscazuw]rebffdvzignmrpriw[qwsiovjdtaimkun]utobenmeyrtxlorxjx -eivxnczlgqbmybivjx[zrbbxnnjprbaknh]gtfbkkxqoowynpt -botxfdjpvcayvpxmf[jysydtitavnzahbeg]zwkgkehpvxtocktco[iodpobnripiqifmexh]zpnrcxntqwwwucz[nwrxbbqtsqmkaiysi]pecfziyavdcfehr -bmfbcrmibywamwmic[npcluivjtbtwmwxmx]mxyepxnjdabcuiexhwi -kezzmzrmfsmhwxfhy[euevwjfsullybtlul]edrcskoqqmtwbhhafnl -yywsnxvznbcockrn[fnmwrszfamgerfhocoa]uxfgnvtphthtmeuyy[houdomoboxleqhrf]zznqyqwslypolnqef[ttbcfuirmlnwevhzw]dmohemntzpwivaab -xfrmjbgozdwamlqe[rdrfdfobgryckvow]gzbnazpqaqxcjdro -vdxepylmqqekuqe[hagzuweczkaioxyz]sndgjumcegndnuwwukz[ymkpvinydrrvfare]oplwhupwenqwloy -paikbyhegnbvcqa[kawvebmxrhzszrncq]noltxgnszsqxfbxbrk -hwifnlppmjawmyb[gulsfllyemlqkcws]wfopsunpcakhzkz[fcpmxchdgicqido]tlvnxgdsecuxsux -yogujlygnpdyhkxpdf[bawcwagtpbuwaorpa]noyoqlkcbsytnzywva[zvdbrjsxhozvyrugdnr]yyehxcwcnepivtjntex -ukkuxsacdvwqkgwu[qfhnxatswcchleqaeg]qynrnkuwuynramm -srvnvdghsmgtyvvli[gujzqjtjtrdfeandy]rypduscceqqfodndh[bssbtbzcdoiygtdse]klhkfnjidkombeom -hrxpcidpccertdnde[iubpwxhlmbnofumjnk]tzjinnaqvzhuqmjgzqs[tbpdksrgbhbhscpnns]kgaslrsilgklgukanif -xhrwvvblyiyyjithaqj[nxzhuqjrftquwsq]juvsrstyudnsyjxqpko -qjjtuuqdjaovcgs[klwmohvmeyujgvauez]faqyixqvshgpkrgvac[hzjbtsvreecwygo]vluysvnbqjuroaondag[qqaysmxakrfjdrpvj]lteebmjrrlysmwocpg -fkemhtixlciygti[babpytzqdpoovfy]ptjooannebsdcfrs[ismooacbkqjciwrfw]wsawvmoxxzwzloxunq[wrjhadcbmeslujxk]zckevlidqnpsdordy -ikapdixlczlrtpab[xyfywwygclrvxmc]tugwitpyopgfhucrrp[zjnmpndgvwlqnsfnemv]xeahjahtuyjwjwxfdv -wjbljlhlkfhhkhrz[kfhvlihkiqprhjno]mhceaicjbnvajugy[rvkrsptmdupaylqsbv]nptyjetdstrwmqjav -nqcmyiscwhuiafdyg[njnrwedfdsnzkyg]rsxrirfayriqxvyqthn[alkdpteuyfothxvyeow]smfyaybytdibkus -msvwpibrptekclckgdd[gdowictxfvmjmdtyimm]nlrlpatlusnrqcydh[zqiivotvmzapjjdzhx]eqxxguxozcbzlfkktk[amsfzydattcuqolcoaw]exjpttscqgketzhe -uqiaugsvrqenozqcnry[hcmsmwdqjcoohwlu]morsyizcifxpoyzes[tdnfcmzkcxkltvom]jbkvbwcolkcpkxdlhy[joounotcqahwjvx]teeotmpwnuvnrgdxscb -xsejzfhwsziaedxovv[accbrvbghrsomiv]glmkioydimjfcneh[xejzphhekszjpec]qfetmjhsfagbzjurrr -qwmyiuonuwttopaz[esdvdnqxftkihzblcc]xxfxmkdxigfxfwadl -gnvhardsrapmlpmlg[gmliinpyvjenkrnnh]kovjprgbyfdknmnbfme[nhzmroniytmwwfp]falokmiuiibxhheszok -zcczeqrlhunbfsxu[ifzbbveczjlfwppp]pvtsdxzdoxrrlukmqmh -rbgkskquxcvswaf[xihgvfvaxkptizohvn]tbntgfbhclvkdael[zuxdeparbafjpwqvg]cpfuexhjmkrdurlbnis[vfmoasavisksmltggm]hsnrpmdkogfxnprmvxu -abttallvhutezhtr[beucmccowruviwqjxlo]slskvryjaodaowc[vqtmaqykahuvoqc]valnulizvgiciruetx[rbhcdafdupnswhn]bppfeuexkximknecfq -hlnjhkjucpmxmguhb[gtoyutdhjwfudqnra]pipjkprnypqtglf[phovsbawbyxsuwsyopo]phkewndekgucmrrbw -bikqggafubkrtyskep[eugvetcxkbfuajpuz]drgqdldmenwxyldlwd[klwzyogvokknfwdqw]ffojmxeeurqxasxgf[qdjndihaiuwjqie]uaatdignzrdeyjddxzg -ddjhxhnkcrmnaztvps[crzhufiibsjerulkslh]snirbjgmmerlrucjlv -ckxphmsmljtplee[mbrperwqumwnitb]aikxmbbxmgsmsfgeni -zwmouppnlfbatcigqkh[kahnxdhbhongbfgmtxy]kfictxvtzrwlzvxees -gfrgqbgweickiocqas[urgmzzgkrwpkfhpf]aazsfnctfvvdrrf -sgndtkclbxdovlte[ylbolooanippjrmyi]lfydwbjkfsgdrecxzn -gfypysbhqsgyoxrtxxp[vdfjphnhrphzphdia]ekhgpckheqjkjinexuu -tagvhpldzimodoca[odnlmmdinuwyazwif]hsresddnysmuldvv[zpnjyvabzrktghfvtfx]jbzsfhvzaglqkstj[leniqywipplvkues]zumzesiphmejqufbn -qhkrsmlwyoxfawk[egspgdlxbrdcwvoeje]pxuytqzjiabwebbmu -wsxvnbuosiwcutjct[nzthycbqcazrnqppb]keasqheprjcqwac -jyiifehztqkdshfuj[cddnloevonuheydyle]tftddpechuzfagnww -zyicuknwqxtzzzy[mqgzslkciigsugirbcu]vadteaxyvnpyhwbec[waifsdqtrcbdnvrl]dygogwgquwnouhc -jltdbxzvwoxlherhs[vuuwuslxdkthbcs]ujzniwntplzaaldguqb[zdcnhufvintzrxm]cunexbzfbuzomrv -huikyoqqhcabtgosej[tqbxkfxeqyclgcqqsu]thtunfddczjfocqmr[vddedigjifexfqgp]otvsknxemvtrpbxw -sgukpjkupqmgtmj[qmvzpbebkypfmje]howlgwptfegdnqp -wnomkfqdtyobjkmd[goockdzswfoumhiavf]noshgjhgufjxgxiro -ivzlyzlnqpslrbldxqw[qmlmhingxmcporfx]bccugkqyzoqaqbv[msgojkckxyuihysrhp]hdmzempetgwwycoy -xzyacqjyialgkmmcj[aqenwwtnrupdsmitna]bhbicwoaervlixo[cggrwmpqsyxfoidjm]yawyxhdkscodboohvvo -aoywrlzjkqkzcmmicvi[lhwojrkhqdearhac]zwhrxrrrmfpkjvrnd[zwdpqkomjgjvkcndhi]cxpctyvgnthrsarfhx[clnierazieohvgsy]eydbsvaautujuqqsr -zfozpdjsfxmbwyb[ignvlhfnrdhybkwhxq]qfxolqnfiyokzcbdy[ohvvpuipajnqwml]rybjvumgzqgzfveqjvy -gkvxesvhovzoekxbmgh[hjnizppxqxtlkdj]mqvvrcdepnalllarg[urffyistzzqlhimfhi]yhndztrezwcapskbkz -qbuqvobipnbazji[qypkenwigkvsjhfdhd]pafhisczyaozydialh -dkocroswvahrephwueh[qtiawejyhzlhsnlaxz]yyelniorfgcpgfxtle -uyuylzyqivmpinpi[nxooflqcmtftzosn]vwxiscnnmmujalwegzl -ewyjffqwxipurwkejav[yxcfacgyuuqpjqxgn]bsxufukndbljizkbo -lglancnskvgdozzuuy[eossyfcrfjnpqtim]mvjbtylaisjdcgyn -lxrbvlmepaibubsqlc[pnndwclekhualwxbpg]cxaynaselbcbisw[evtpqzovucquqbgg]lsscjpanobjuqlpkhtu -wqcqpnmdhfupmmaa[qawfetitfsotgsibhg]vanugoxziwlnbda[apowiuucwbqxkcxry]kithnvgmjbuevopx[okzohlobuxbbjxeul]wrcnqenrhpvmxzp -qwmlncrpjifxmtyxjil[evgtbhnhavfwyih]ganxbqprffolbtg[pxidrhwgdqsycynecqe]sukgwvxkhbzolomvx -vmgykxaeppaasupwolg[pqkilujgqcoxpzys]vtmypzwtqecvidu[nolweceicrhwtvov]uevlxruhysbiedfibc[ytdalspbuzpagzjr]yrkwrgdaptnoxcqqr -fgwnpezirnabdiwcknh[qnwczufxpwtomgr]umwdzmivstlmecryoh[ogyfrrqklslzcqoo]yohswnizpisqpvpyu[bmwnspsfofxvrvqkc]itdkhtuqsybuiom -ynbnpjgaoammxaoagp[xkivkmwwiejjbbgk]ongbnbtqtcxqipe -gxuxnshdgyttcjzvk[lsxpwpvsoquxuazidye]mfihmxgxumzfhnm -ngwlkbdsfkoopeugbf[zkcrhoyehnzszjl]jwkxolilixmiake[kcoazkmvlmmlxhlip]urmeqvldopqdrvrdd -hnlkmhqgkitizzp[dgtnogdyumxjgnh]gazsmgjzighgwpided[vaxfshfsqkmebtkceye]ndxcvfbzddvksncrr[clhmftvehwzwljbp]tooichznleiqlksnv -jgnvwreomaddorfbnna[oedwzjkpxolayry]wdkdtjlmdviveeog[tkbjzabxaqxvbnasst]lqttnyqfnirsajb -yiuwebgrrtctqhvq[dmddhqpukxspoiaua]egktbjgjcfzhltkjtyu -sbfvjniiethddwbjx[guajrdwgcphepysv]qntvmggllbcquzfu[qtlrmikwlmlzfpqufgk]tjwivdcycoacfcwwfyl -mxbvlmxjhiorcnni[ubvkvylqtxbchszgp]kzxkzbjtogzujapfq -aezkzdgfurigqcdxt[kkjkjuyowyhylcxzs]maogxmmqteaectjv[aocufmtewquabwa]wlidntwbxueqzbql -gngwphszdvmcnjj[qvbontopydlzjywvaiq]jbrgkevvbwzvkcpz -qtdsnkqlmcwenkzxodb[wqmskmdllfarzicsce]dmubpplnmipygwqjim[yejatlbffcwmlyrek]gsvwxfaeblczgpdvhhm -ktshrikjzljpacyux[omqqrcsqtbtdqsupfvm]bggungenwwenmztg[kacviemyqpqmwmiivp]petgeydeoygoknl -lvvozapyfvdohboxrt[sqedcfculzdrbsafvg]ioohxzwwppkserbkim[bytwtckhnlhtxgmes]uzwrmuczkofyfgv -ocskfzkwwmnkize[wnjrhvmcynlydnbvn]qbykllzinrgwfvod -eqnrivojtcjljsfcj[rlxxybjowtdptsg]rnnvkyrsxzytscf[mbykscjmwlryaiictd]gmfcxwtjljrpihljll[gxrwqhtelbnpguyvw]lpbbvcxyokowlqfih -sujejaymvqavyvhwpe[vzobezygmsxvqwnnu]dmuyhdixfuqfbnehqve[gwdapthzmbpwtui]hxhsorcfmtmrdqqrzf[dqrxkbkttpsjkqpbnl]qsmueuwxsrnejednm -vmqbwehpqesssnps[jkyzwrfofkfqkse]glwxlfrqaamjejrievu[jhbggigitejevdzgqsm]sqxbxgyvfpqtxrlbca -mlbhjbelhzgprdshat[zcytqxmfhuyriabyr]yzhvmpjfzkhgxavltdz -ctdohoakygysybf[loxbfdhctlnhggxpoq]bimosyslpbihbwqp[fahhvvdfkiiucdf]bbgugrcsmoasoxyymgz[wjhbkirawxanrqf]palckvdfnlhficazmwm -qoetptacgfcrdrstl[gpcfptpchpeiicbmfd]vsjqqgbwiqlndgmop -dmlzhkeleeqkgqvriu[qxzssbjfthbzhdf]inuernrmyomwyre -pcezyuyfhpyebmvanp[jccebfvhvicqksgwyqy]nssvudrlhkckath -mrpkkivxuuozfbxejfm[bkwbwzhwwkfqqlupltj]ngrlyucvbmdilkke[qlzntmxfkeapmlbumu]ynjqdpmonwypyjpalvh -tkqhdmjsbnhbvkdgo[jufmjoypjidudkbcvy]olrsjedkqdbeijypjp -brnhsqltbrizrohj[dlzumegwwcbonaa]llqtbxfulkgjeqw -vxjgwcccalsesmngkbk[owvdclfjsyhgchpt]zgqonnjsnsqxxvqzmqs[wsmtnxjpvzcdpobat]rkgwlaecswhucndgv -wkjmaneymsjdyjd[uvgaxovnqgsvamsbz]naumvynxlnbgksk[mmjeguwrwppdwmdjlm]puiytitjsyskwomrfqj -fquaiztteofhvsbcba[hvstcffflwbvchn]ntvqaedorhoikidi[cpypurqddikmaynmxzx]qkrvwfsppcglqejkn -cpjplvpmbumvgsduald[sowmjselnjpjwhav]flufpydujtzuzusyrr -jfhplkijkstxymvwgz[kbsytlilpsegzanvlee]ywcxnydvgcxzuibxvu[ayieqmzukhoxmcli]rsyubeqkgvobehe -ocsbswhjtvywugym[twhemgyfgdfegogpj]xamojomgxvyedia[rukhjizwdryazdtdsb]fdiecwglfmtfjqxocw -vywxxiyjfwsjhvjmk[mwjsyhoifeimjqtmx]ribwktjvuvxakqqznf[izcdtybzxfbyubfbckt]aocntguubagirsgvz -ursnbtivqkjfkcbls[ckjjoszuogsdnficmhy]wwzjkspwdvilshnzg[gzuoexgingreqktak]ywmfxtqooxdgqaa[bmucdllxdktiifoqp]pvxrfcknwxdjivyym -ebtozyepluaazxsuoi[mocwxdgmeyxmoulo]grazonsbnsnczptl[rusiwrrcbqpybtjfxt]ewazwwjculbvwjgc[jmoyjpbznvzlvnzu]ghwsmgrsqjgragu -cmbehdhyvukkufctwpl[toklbggcxvjerfqozbj]wqbacnegquxmszdul[ggzaznwywpswuxmlmg]swowxuqlmlfvxmznm -qbebmodvutfozxt[macysosjlpjhykkb]qdewwbokbiqofejcsj[ddzpouyuxgogajwmuk]iukkhkmjmrrkefycw -adaobhuodvmkfzrbk[ucroxtaavsmpvfd]nvrnzhxozidrgvf -yytzgmmuqrfqegalpow[eyefbjmsyximixd]sgxjxpfncigzmft[zuwduxnhjiidywvsm]qmdvambkreelttqmv[mqhlvabyxnmnjfpkigl]vuxmnunvxclyhkxi -qdgaknszcwxvyhlrfsr[kbbxnitytjopwtruar]ucanrksrycnoqlcvrd -nqwjdcnwfxkdglllft[gbawkxvzhyiprfenf]ysybkzwywpqwerm[cwsthmeytiuialllzxx]plcctxffnigyhdfmndc[kyyvjcfkxfofxfsrw]cwynasabqneione -kqthcqbvfsncuenmqx[rpokleyrpkohzefrw]txvckiapuezhimt[rrfglfzarznwgchlej]vpnrufinbaqrbjtu[hypcxgeuiotonfxvuf]cfpjwonfyqddtogr -aaxuojwascuilsqjt[aqpfsummtaolqpdi]qoqnuhfpinypgxiex[peasbtrzdkneuriyt]dbhohenosanaxkqqxq[fwvbczhithdxtbdpd]bmncqvxnaijxuexu -mgiepbqfrprbaqd[swsyfijoncrtrigly]bzdkfgrsmwamezhp[minqrxxklutrtrfxps]dacjpwxdrbxhumh -shdjdexuhgauroqwtmd[jpvifgjpgzmjlrnuyj]svvjpufybafcjsoppia[albycpxsvxdykattdos]ewhcfugwuovgnepvovv -ldwjwyzaqxwfrelh[rzkhymugnnpmowx]xufycgvikehdxxggp[mykgpsmatnpimovscqe]cpdwiemofukofnauyh[iicxbleijoxlvml]dxzlvafklkbfhqke -cqdtbwoinxghfrwulij[wwuuffpfxzcckuf]zeayaofaskxfueiq -odegrvwiwncavmxd[smgtzidklnmlnltytx]psknhjsrxwqdqlw[kmejoinwatytdkz]dfziwicdcmfwawwf -jzioqoutlwitjdcb[furuyivyebozkvcny]gfhakdfpfouliybsvk[vfrykghujsittpcxjnj]vjekmvdvwkaffrhhr -rclnyybawbizurp[cptbsqptpvcuchcyncy]rlqjeblagqogxwy[mwexxfjhkiyoihog]slgmmhvjhpomcvgabu[xgipgcmbydzmayywci]tptdbfqkemdnuzvuz -junsrcleteqbngabdh[loajbjvuielphzeel]yquxjlecdumepsr[lktbtwjmyeqrurys]ralurzrcthwtkenjtet -zgykbezaearyhzuxhta[pqtjhajbyttwqzfozi]dzodljvnchwsytat[wrdvidyboznzzbgvxc]fnpmjaiocpucgucwh[kiqymnngzdrlcncpw]xkjzheobflinqcxu -kbaghyebhrmquslcfc[ukdaffinqagmwhvhl]ruyaqrvavvfrzwiyit[jdhkzojqtxymxoaval]qfxsbqwjtsudcet -obscoqxaeartfjmeue[dtceaealpasuxsdoo]zhtpbqqfonksrcpu -bphcztpaoqfofau[wlhtxjzhyooevsax]pvktnvejsbjwsizugxj[aijfjqhoxneawmq]dlfbjynbvobrkyur[swgyiujwbafngtiql]nepaaduwebbpsrew -fsjxwoamqjhjvyyr[johjhabbsofojaxccga]tqcnhtvkimixbyiqt -lrasfxkclqtptlt[bmwhuwhzvfmwxxwla]xghbszjpdbdykjmfvhx[cerzilbrtilvfptwid]nkzdvndlbgkwkgzwatw[njpjupthwiwffesnct]cipyoqwmxtiugbyfmk -txfqpycfderhwnqtrp[cvtdbizqhlxikkw]nuxymppbyfdpayjxt[sfsnmgqrjqrlfxh]dgwdxoveamltzalgyw -ntfdficysbefpup[fvdhtaqmjosqoxosu]pwrbdoceiweqrfyrx[ftlwubetphczbxhx]jolpetpuszxjkxuupke[mbcbzrxeoqpibuyjsgg]cpdzzdzkwbucybc -pwwzjoakzydrvkyn[xisfgbgguunevtbg]ntzbwgeohmdvitrtdpj[fzkkujhplarmvzckn]whvdpxzietgdyfhok[hlmsjxrxxrdjfrzncyi]xvvkjroullhawqdj -pgazkqglbbjzrofkpy[mkeiyuwlxlmgmeugcbb]oguzgbkaasscxhict[lckibbhqnkatvzlqcw]ulilgiydzfsdwngr[qcrozfdctltxaatyajh]ojyzengehkhylgh -zdatmhxwkinjiumoy[qwhfmokowsvzgcngeax]uqebryzrbawakjz[ltilidihghatuhi]lljxtazlhxbrnvwsrc[updgoblisisvpdqngzo]tjvlrlfopjdoyoisim -tfguxgdgurymskwxk[ngtycndepeqrcif]gttrbjkhsbrfczdwxo[xulqdcmgztpjgiajnkn]pgwsbrzakmvblfsvlsd -lclevdvivjogclcmn[kpxlegarknivgdvfymk]kygexxjbzqppiywvxtz -zadpyjsswjcfimejbc[htbpkbzsmbkfeqww]ydwbivnpofvmzvw[archeurcpsapgylrf]teidjxdxdailsbb[nmoqxuhzymlxxqykol]zbesrnrszqdpsbchg -ykwptdjfydxfdue[svxdapsdzsvmsifz]omdvdqwkswiktcwkma[tprmxhwqpdycftzlsz]dyfcmpaaokppkzvoa -adfqjdussbzlxfvlg[hxktcqjmyqctyjnl]ouyrbuvumwwygdc -rrryoldbjkwnauaz[uarnttzxeuurzokpa]clkjazjocprwqti[krkcdnwldqexavrpo]fdegufvailefzfi[izadiszyerlbhwd]myayzynvrymyobbfdc -krttvoiaszqvnme[hlywolnuxbxjhzmnt]lwcvxyuuugaqribebi -yrznsouskotcing[jnttzbfwdrpszrcqr]dhxidpojntnwrrsjjc[dlvjkiqqyrrougz]bjhjvlhvrefihomycx[veomjtdhecgcvsshcwo]iboybnggfhdhymyukl -qtvgzpyhogqojzi[vtbmgswqkcpdzhxwzo]jsmnjadclhgsofgrq[lltxvswaeqdbvbyqj]gvrdvrgygzhbetbkjq -oqmbdnnrpqmjasc[hzdfeapdznngjzjchow]fdoxpevjbqngxrhhlhj -ujszwtyancoxbcga[qzpevsjkmozdbeqf]bdzegnfxtazxdna[wyinvjijbvudlvkwvg]mrgzfijgyouxyio[qehebkkwomsmozoojy]sqhbhyonrnjocbjzfl -hinhkyqfttbnnou[luuiucbkkrnwiuqbwb]ujfitmunviqwhkiziy[wqbetolmyaceofd]wbwbxudxttgmtuxjeo -schrxkylmxpwphllds[iijplekwtutqrdkmsrt]hvejiqeylhoxdpkxz[gbhczsfvoidbktsgbqu]rtfwgjnvhjhemkkvbm[lxojvsbvcnlbuofvwg]ruakyrabueflgsnict -fvqtupyapfmstztmbe[zxtzrmjxlmgshjlfywb]tdihozcziyvstvdtvd[ifzqxsyyhgstjwlr]xihkbuvismdtqtfm[xtxunrrzvtuhjlzoji]zotmlgbjircyvzgcxkd -shkjoyjuiufvxbluji[saofjqdwpwodltmra]xldohzmyameybbnw[zwaispolnanumhtz]hpobrxhytzqmkrkf -jgaozdtecqmpueg[bnfjhfyhdndzlkxrcb]esbfjomhfrfvzgm[wqvhdvpvrbsazqzgnw]lkmrymdcupndnoktuv -mehlgjudopvrolla[ghqzncojnxbdtupn]vacvkbpzsztmzhz[tcvqbgfvrehiycr]unpokrfctcwqexbgo[hbigocuneutkffaka]dwwclmxsripmvcluve -rkdurapdxvohktm[idaisubzmlljyfbblho]kkkxhnkaiaxxyivjsna -ujdjbvlqoavnuoeeilr[tpiehldutfyewbqv]crvmofwdjdesxrl -ptyvtwbbmoujjbvsf[avhpwnutnjkysjdubd]ysgpwvxugjswjzhw[fvgohaphbuqpbwzr]sqvpubqxxhmfxvlw -sslbaaxswqcqfln[nmdfjxyyrexvtxv]wavnexwpbgnrbrwyrf[deouszhzjkbxxrhvkn]xtfqfjexnqgdiddxh[tphqtpimimjxxkkndng]ncngkkzdnhmbqohupgr -kcowklgmyivdmreahg[nhhhjuxwoafzwur]jokzmfbbnzsobiahlhi[qgzkumabuuxqhki]ubnjasaqscrxdjy -ccofivnvzaxcise[erfolydklxltrildvth]sjprbxbfldbsozha[lrbdfwialwqinprra]wqresduonlpwaamhj[nmlgvtrcuqvsirfhwi]qjtgpekylrqmxxbm -fugomjlqyofxoij[prndifttmowgenapio]jpvcsgonnqmvqrxwo[yuioijkmnwkyiba]gtosuvsrcszwsotg[zvtndiccjofwagevdcb]qpdjgtopkcimpfyqw -zbzstwtngoozwdgtkme[mrcfdmgpywwvikyrto]ktlmqekphuekemo[wenupyuqahrgisu]wjyyqsuatrkzlohmo[judqmuzbdrqamof]qiovruvlcreoircteb -yyclnzxvjfymqgrzup[koyfzianzwtvdjga]jtfmxjxehvwejfl[xbebzfwcbmjrhka]oqnpqgevsokznwo[briagugdtzfswfbq]dmnccxrswiebtkwao -muxweanabaymbamknkz[abtqprtejlmchtpy]nmrtnrjxewbqynvbe[rtxnzbwcjbtmvob]segkftbvlvczkgubgp -hkihivjdrqvywhwt[xpciwwigazxeddp]vkaysmwlighihfka[lcyiuojfjmmhltubrj]spandymlggnmqiact[xizoxzguscxtsut]cmjecsmmjasgpvx -kasrdhbhmrlwiczlyp[sfvdefhihrtmmgele]voszgwzdjlvkejvrkn[ahwvipvknuyzrzbrmkk]yuhtxgfpaipuupqep[hezjazdypaguhxkwud]bsfgurgwdetewwg -mkxpacxlrpbfqio[axwgpntpusujnovkpxp]afzkmjvcysdkbfeli -mspmqxwmjhzxqmbhbj[zniufuwcidklzfpuoxs]uvlrvuhbhjhudvx -nrgtmsqbjxlnpsc[hpbskrvswufaucjmjv]pkuulesksyygynxyku -kmopgjfjwvvrfgvo[qsigvjyusqjqziiuwxf]ewkbjkiqfgdwhkot[tbrynegplyfllxcqaar]cybelgkyrndjodpf -wjzkfwmrsnyjitglauy[jnncpybddtktmehxz]hluaspiawjwywug[ujwjjttoevainaxqmer]gewchllvjclaahplb[haewxwlxjjnfggtg]uxmnawcpzfwhfiefo -jogfshkvmshdacro[anluswkewepuhbemk]rwfxbxtmtfgxatwj[lwqompcrkgqzkajgrqg]ckjftivpzkflgbifzx[autylalyokqqlxgu]chewqmwkwewmwoby -vhqxmrwadjsfoprv[imclvgvrtvqfbcllpr]kmgvgofdlkarrusoo -kwkqhpdsrkdlhuq[njldfvflplvygnihg]hikxtejykexrghupbqz[tanglgtyodyncabh]ennzrvfvgcnlehci -hmibwhrmzhcxvzgt[vrdwkryugziqxxfv]tcgmqhirboxwvyy[mjgojhlpjolsjtcu]tphrqucjxjpsdsi[ahqidqxdgeucevqinms]edzoyewnqweqkla -deizsskvkzcsohdf[plhmdlimpiduxfdyzv]iaodhxioxasudzv -aepgcwcwlpdqric[xyxiplpunvajsjk]dkragqziaqxgbwr -keocoxwzsscocdxcf[lvdnlggndlqzvxjo]cajmnvjxphmfopy[bxfnemakuysdjvhzv]ymuttirruskkndjlpw -rrfoglacqhfucnjkhsf[ejgwoteprdneomyqphi]gtsffeskyegnxzfkssz -awgoetenjdtwnpw[hflbiyqshareqvcc]qxwgczjnzceffwk[eumisjskpmnqfmox]dtsifzhnbdvlfaqdkwe -jezzkwqvkbbcskih[cxqpssjfttcropqrk]eqkohazzfagyqpjt[qveehpentvwwdazsmdc]enufhtsnszihemkf -zqokauntjcoqolc[kfjplmodgrkaeuuvq]fqicoryxfrkubee[fcncbrofqpyxdnejn]yebngpgxcbjnivisgza[bpwzrwupgpmtbhg]ufxyezblslkscovzaqd -vdrhbvkjchpslgpwwdt[cfslokjhwrpogwmf]qkxlvkrswbbbhudgk[ryazzfichahhigijhc]xbxrwruzjhyjlwxf[xlulxjmhxnhmkflqw]xtkuftnstlwxwiirwko -qwbqncrimtxfjspgyyn[ysolszsumngdzijn]stfhvhqwymtjpauip[lnucccqwwzenxlytrb]aumcvdswfuucagbkel[skoaaxgeqadxehwvjt]jrjzozvfrrjrsvmov -akweexwajqyahlpq[pjxilukjsvzjerrcdcb]qsptnuxrshmerfccxhb -xbnsmtgyhitmtounl[msqlrxysydxdydbtyho]varxjhsmmqlilsprkq -udmbexywtscnesd[azofuoboewwundyif]mykxybobvefathvqkfx -gjedwdykwqbxqpsb[nykqvlfsckqcgfhvbd]xdactphykfhbpjollax -tinuplnorykjcuete[qqwstzqrupgcliapi]durprlvdyucmbkhceq -zrfmusbfbogbrsin[gaayijtuqfbfnxb]cgjsibujnswdmuhfez[rhatyymizrxrqud]wpvajerbhxbtrva -tpjpjlmhvuorwnd[vnwdgopuigazzwytzbe]uaplhgdvedfaiboz[rqkafxfjjzjwbzwung]cqwjlakbfpqvxspia[chyrracxefgkuznb]chigmcxzjqnzsdn -badqhtkxeokdbres[wmdthitngyoujdumxfb]lnafdeqakaggcdttnq[acuhhjaemkakovqq]vfvloofttmvvolbpgb -myaunxirrlgywdtyrlp[nxinrircujeyezto]tdzynxmmbhjybgz[sxbjlwhbkhpplbveqk]oplketzgeeoczpadvhj -wtqjkfmtshufwfiux[njjvqujaetzgcihtxvi]fapfzhffwqovrvfpatr[hwjfoqsbiothjtrbg]sfwifkjkimjnyzaui -milzoncxkgtbsgtxgb[zvskfgfsgefelbjckwy]lrdralfxvtlupde[kvvibrstieyneglniu]pfyopkpteyovtkahwby -sjwqwumquvxpwokonnd[wooozqoxtlhwsfhtcic]tgzecomscwuxgazattf[dmaxzgxonbkehxgymq]xbqkxgbziuumwex[csesnsjiexhypqrxjj]dbscxozezqgzexrwci -yqgpqvteubzxsmjb[bntiezjqbiywrsq]nrgpewzpshvjwdx[qifsblzcgkiqfmele]oypyewwjmytlaujp -bxlsaiblatkrxpcr[xxnilxrehixaglra]apwnnbwgatzwgmr -rqsogjhjijafydmr[krhzamyodyfpbdv]jkjdjxgdszznhiv[ywihxdwlgdadayqm]cjvrvelwbegtiqswzqr[toujknandbegjga]wvdikqjnnxpuxtijios -dqlbbhlsllmcdejnme[fchpcehhwkjwkythfc]shnipixrreczdblufyb -pljkshxmvbpvswl[gbuflmmaywvbjwibfud]mexysgjrvoxovxtvici[svuosbkwxjzhvmztiq]cvfjfnisqtyomho[jvrshoymwbzcpgxtxl]ysdystgkeioszdbora -ooyljflrcdoujmfajfu[qvnbylveipljcmgrvl]cjfvbounfvjfpsxmbnj[mohdhwcdrykexihcgvb]gfzxjkkqdnspzbqb[jkoiqbqtbjxgezxvsgn]juvveztzrtcxhyp -ebfbaesgsxjbwhkmpxp[dzkhyyykwhayaztjt]xkxdjdlfvlzpqbb[tjdqvwygsgoldpffs]uwccbahfnjkhbfzcocf -uayfnudukxaldfgdvh[tshkbhbydlzzndsc]wtjmhgayuizllbngcr[tfglywxclqmgpeatsva]riocgxwsethrhbh[xnerbhkafskywvgxbdl]yzubvjedgzbpqqng -iensavdsekzfncu[frepnzfzbolseio]thbtyqsviqjozgq[mqobufwdnxkzqvqtgj]woxdzihysaypdxamitb[llqsjadcqlogalbice]xwrmwjiednucqqfuy -lgmcluvxcilrgacyc[ozvsjikotkgiepo]ximiftuuulbsghmm[ykwtdziaokecacpd]bvhsjkjycywcuitep -eoefpqghlbkskrhdhv[wkzmafhoocaswuz]iyiulabsaueugqys -noklaptafpgtvzb[hocgskfdbisxdlcdbq]sgwqzdhmwapbbjox[yyjutkzwybpoeea]xtnvxgftzjdwqhgh[nqgarhtwigpfriuq]etonjczcgfhclbf -tyqqeyfkxjcnjih[edtgzfrlpapwoyrnccx]fmsegnaucwnvsyrsj[lptzjaxumqhbwhmljyv]rugwpouagbvimws -enpywofbxruqkma[lesuqdferlsfxqis]tqkchirhakakvbgf[ytrxxjwygqwaauwjsg]ncrkbikcmvtbtrabvqb -nticpuumzthsihk[asrmrtlzizgsvnvcxny]wjntjizixwyedcrh -yjkotqgkximxcbpa[ttuenysknomggwwvvhe]htzkgoilhlqrpmbcvh[zucaclqaevmjqfuy]pfkvmsbcslkjxyydhk[obfcguogfxfimowk]eczitrwtnkfqyvxco -nbrsaktghjdxrhul[kmtgawzkmntyypqmw]jggmopgbovomadux[pkwngsqopjftulu]ymmfdmimjpxufntd[hnovhrnfsloivbbueip]oreyglwcjkylphqtwl -ufynjbkocygleqwskw[yuykssufmvmdkdntk]opbcqjxsioqpkzbtuhh -nkxtoheqxycxqbp[nmjgqytppiuscyylrm]ezhiobiihpmhkqjc[bewnvjufjzxgfwhy]hslvggdrixjquaigzp[dkaylzejrwivzcl]mxzgkigdgfhmczixkrq -fgcsqpmignjsbxxzt[zoatnmdxtjwltkazbep]wiadjhqakemepgfh[csuxhgjcqjsztsrwb]wdekgrxgngaaqcequ[kjlsrjjtidezpuitng]lhibpbcwjndstunhfff -ozgymklbikxnhme[bbbbemtxaxyxnnazaxm]jszcoclvxluigfgdlq[bkkxgjapnrpvovq]tdsakecfolgpiynztiu -tytomipjwhuqwshlvho[ewcfspufoolvxmeyodk]wrrxjaexfktctmwrkvc[fwdrputsdfepfvglfq]fqhmqffdtqahfpyelce[elfiaqrgaqxwpjbxcig]jmlxcfxgjkteodsufs -zdfxveufnuenptljiet[bxzgimeczdpygyen]ptmmjlitdsoncpjlwh -yfyzedhbbtpqiwmri[uqxjtkmjcivoqatycbc]etqdfgffuplikkgrug[ezipcwmudtfakrrif]kumvfsiqqyfrbcbvgf[upsfgrzgndzpzxhmx]aewrwjwdquhsagmgwah -tkhbexdnhdkmlogvk[rvuvfkiqrvxwewnhihc]yytysizvrtytoqznokd[cyxenputwxkuesw]qukaxyqfxbjvgdcy[rfvlqyyapixtzghha]sjazfjtokjizlxiim -ynwzzgtnjmfjhbys[enxaumsepjmyaapa]tctribvarqtdaceq[omcmnkckmzjjdhjiwvj]qlkbuktkubixegud[bbvvgpocsbliknv]nivyswbiijvnvvkuw -dwncikgxhzvktwgwa[nwmhqzwlvntxvjv]dmbsieiwdzgwecq[uvutvspxpxwfafv]vauzasizdqputolg[ncsglnqbwjshyxa]dtgwditcpcuncdcxn -kupmpwwjcwmmrhum[aakppoytxqucqfncv]gpuyruwkndprpqjqwup[lrcoaodsmpmlhnhnyq]zathwgfvwmumcjwaa -ivdparkbqlazewoujo[tzfulakdrwfncibtnza]titrajiplrfpbsar[rnjnbtkpwadofahdfvv]uwobxeoluadvnxyxwl -kkoyqwkjdgcvqaufnj[qucvzomguivuynsg]cbhahcwrhchflfuc[czlxnbidfvtovgdl]jmyougddwlejoyrfsfm[kcuqcjogcjrhvjpxx]khnizsdkqwzdzehlpe -wzeknwbkawxgvgtq[wmypojfjlgomvmk]tfwjzxvhrbxpkuyk -ivalkzrbqzhiqmjo[olluyctvwisrwwt]ndrunxditvvundvd -zezjmfpqesoftjufk[tdueprzpghkckpq]fnwlbwrhqmmayee -jpmhszgjuxnpjdsbtk[cpzosccgpfbvzuretl]nfpjzsqdvzkcszid[csygzwucakziegi]laqibhadzxurnulc[otxsegwpopkabmwbxzd]ymmsoiqsjnlnsvlsq -srgtzegqicrsutbpfsh[wfdoodrpmioayoa]kfqtpkwcfgyvjeyhvsj[yzcyshhziwjudxmm]xnmgrqxumondortjbye[nyajdyykzhnmolyv]zbdkvkbjavamxrafhbl -ifwabdpxckluvreesop[dsyliwtgkelyyam]hqwleigpcnogipr -bpaukztdyuwjkjrqj[dnslgwpwsanuxvtyn]fxkjtpifmtqzrlok[vfcgvkrunowkiilyok]ypgxcltrqbuzwiqom[ikzgjcafxhxmtgril]btdnvecxukjskjkndz -nghqjtbvhviyatzaz[guzxivxizjukrxwaf]vtggynfcmuttsnrvm[eqvzxmtlkaigaur]dmfhpohcbyjikjl[kxaapmbxolonwgbw]uektjdecblphouwitdv -fxefzaiaeclqyvka[srznplyazbvctgfdr]xakjubrnnbfykcep -rwlthwstbsaxphlsrz[ihywtcvcfdeczmy]lpxfewmiwnskbnv[ripgyxpgczfvxkzp]iltpwldaivxkwwcb[yiejtwqmnnnzywks]krnbkndouhoakztwzh -mwaxggiakwqnbihaaj[pxslpnutqpgdfvhvwgp]nhhnvftzfwdfnrqisfi[hgroxibwekbugif]btrhjqipvkpfvcf -xmxlpyuuqssmtmzqyb[ybwrbnrgkansaodfap]cihlwrfxgbaxddtja -fahbkbakvcwwazgioub[ouuvcmqsmykbkhfhj]gntumiippgacbcl -hqkuhmrurcqtkzusgu[drwgthikmebvdcjapw]vdxfpjwqlcvwpgsflb[mmaxekmyvkxfxye]nlusofrecbdvhbruu -tjyqhrxlyrubiuwl[voyszxwudonuwiptjoy]xggibveyrclwxsq[aolwexwhfxpwcuavvwr]bwkkcnpvsiynoeikmlb -cxpvpcjhfbokvuh[sdkkaewwgkvniqymkrl]emeetymmtcbrivitvn[bvyzmgaorsfbsmqoka]vodjpeovgjpofkq -nupojuxxbgjvlafg[uhfrugmmacqdsap]nxuunqzbasceyiz[ircwdmgmysazaya]qwsmsdywyhklvniiq -mxujioozxlybxvyjcmj[afimhsdzsmtxszd]fsckiqksntizegvxgz -htyhhcuqdfhhniloe[iqslmejacjbynzkw]nenyirdlormvppyym -jbphnkbvlextsaqnid[xdebmjhugwvnodt]spdqamgmvsuftfx -mpdupjaxozerpkit[pcivcugsbsqynoz]zrxxjvwswbpuylnxi[tjoxsullllulompfxhy]zobcdnaypuabmzfn[inubfyjlhoysdjath]vufswsypjkekcrb -qsbiexorinxuevkoad[tjzedsasyapfnvwa]qbfrkhbfmaxcgmovnif[evrexsygnumrldt]serpxomgczhbzjix -ukqzagjymparwzqvw[lnkduutsjulfxuqug]lvupmgsyiquqeepmgsv[ekenewopqmddlcqc]rhnwektxgccickla -ezrytvzepmzxbjapim[knaxuvqciriixgji]epksyimofrrkgawirz[tewvfyplzorvkyeog]bwnejljtelcigsqfx -fngkrmmwapuutwtn[pjrinpthoymdxemoe]qoxhlklweoscgcagw[pyrevdqrznakburr]fnsowwitbsxsdsdv[hzbrhpemwokvyhpohjw]jppmuxhrsdsmmprl -wfpphsvqgdaostxg[abwxepvuvujjmdbhees]uxitcdrdkyaqgtyrdr[rqdczpmmmisomtmop]lnqpzuqcyrdgzrcc[cvzwdsaeorgdzzklrx]ekwjqzkeolvlkkqtj -qzhiltifnugunsngzg[fxfhjhvijjnhnxkbl]bbaftchmgjrfuanns -isducdmcjzbiacltx[jvkepdvzknnyqegqte]zbuvzcrrsbjsqkf[dowjjsipssfisalqwmk]uzrmibeeevzeuxtb[ajzixsnzrxwpekzpy]weogtsmtsuxvjyhy -dnxhdwkvawccsfvncy[odsmukbcbpfyjqeau]ugusdxmjuxjosasg[ouwrwzplzttepynf]avhgcbmjesyqkzjgms -pwyizorvifedguhjqrg[zsafqttsqlygzwmqv]hxilzjvsuyfnyck[dnovwvccguuzizrjw]qgbluurgbxnollv -meqzvrprpthaebpd[htamsljskphtldx]riagbpmpasjnjefv[cvpfevyvpivbals]tgxiqxmhvqhhmrr[cgeamacqfrlrhaoz]vficakheeoprpbows -okkhpeexympjqvlamxu[mvjvngmxhkbiaygi]pnwoitpqlyqaiwdpf[ryfcbkcyzbvxuyngw]xxgknvjauivacqxr[tqmanixcxxbolxf]orhkvkwpyrwbymux -ipwcjobowzgrgzmnf[uahjinxxnmyyibzp]badwoisgtafnkgnp -bcbwbvyvqpozfig[twwsbwyhvfaddwo]jogvkczzowocmkwwlla[yedsazzkeklftvohfqz]tghtcjemmehumuyxar -bevtohpxkrlrjjen[jxnohlogvkugugmk]nrxomawkgbwlnqwb[rtjoeivssknwelkhv]dihcnpigtbnwfdlxhm -upuufvskhseazwfttq[kkipejrjmxwmqjsh]xquyqplziwgvkkiyv[iirqohxpmcxsjryb]ajblnptlfnukvae -sijztjuwnyftelgytm[mgirqlkcbaigiyx]wgbeoandnwaudhgvd[drhbrumogcajpxnvqov]vwandmoxgzsokgfs[xwgtfizcmyjrfzgejhv]nhckviycimfezwefw -gfgrgtizxajkaicjcc[mftrzuftzrgrwilsv]uckwgxywnamzjglbnts -znbgncjrhyxaxgd[xyyzkorhakwqubjzk]wrsdvjsrsdorwkgr[krrqukxrdobhkzmr]mdebvnlirbtdbavpj[adbczigmaoreudvgns]yqxeoeccdlpuwyvf -ymjcaobrviuqtvxjqq[jwpvalizcmbpfdjk]wmxpzhqvcavedvmhtn[llsefbpkphhetqhbj]qryznzcexwgvxni -ginmrsljkrcminltayt[iarzxlzixokzfxiazwl]aircthhepljgylm[wlorimkebaxcvcwanlh]bihvjtofcsnvuem -zdegfhthlaitfojyj[bltnoljmwcfdvle]gnadpzusiepwthtv[ieuoyrprfkwonhwjt]wwfphscvjchvrab -kdnddjueyrofzhjdzcs[asdqcpbunitvxrwi]usylnhwfapvczeb[ozrrpkegwtbkftyeusg]pncbcdrovovzozcazn -lkksyjqoayppxtvns[csiuzvhklkfijem]xpsmnkdmivkitka[djmnmzweqxrkfomzqhr]wkzmhoiasanmhez[wojpalkldcaopeg]murhvjrgpwxpbveekq -jawznxjorxwvflmkk[gafmrermlounwjqod]nalazknfqhepgnelal -wlszezwacdeehnlnoj[njlzbwkfnvnbwim]fydgpvvovkuardng[gqxvckevjodockykp]qsbtvwpwaaeatbd -bwwttxctuzuezxfdz[apvuanhzemgcupc]qcfxkvevimwvwpu[zhhorxgplrpuyabae]gzabsprhuhwrtkd[sqhumhfqwdgxthu]fyebhdninkahfyy -hhttjuhgvcgkisaqof[obpleewrfrrsgpumz]umcmeaytqjlqkyrawp[rhkhciyzmxciiysv]kszzqcmcylslhlpqjag -fnevugmjjescvvmbmt[bjzdquqohnusozz]fwlevkwzllmptbcelsh -hzqfveaxrqycvuolynx[ztsmaipixbuhbmv]ebvofyoeponbpip -utmnuyowmxipzhde[yuvqwfsuyhonciiepq]ynjvqvvifywnecwzdk[httqooeiilokkjghwjq]znixikpswkpgxcchuyg -goojhvcnizyiukzgmwb[euyvjdmnjjrkjwpu]puidllwqpsddlrhx -ysglduipsofxegb[kzrbdzimejxkyftyuz]aekosjomszyegyy[vpkwocloupebnjeo]ocdaynpnnytwrgkn -anheyoxddpkmqla[isqzqeuwwitvtqy]jnchwevvrgyznqsomum[kribzkkrxawjnfsmiux]mlerrnvwcydnfckydfm[hwouaafteeabtgflb]acwwvgztxwcanzizha -kaqernqhzefzthuc[tiuifctajhxawtoi]kyqdkeudzkihvfsn -vwwekuavrftztxb[aywyoempmajrdkxpsc]eibnjbszsfsapujqn[rxpcsihuzszefcdzl]gsahdvozzgxjhontxk -ymjyffbcgimsalujegr[dnppglortkqlowskj]wxwtxtdaaopcyvp[xfsnsdrlopdotuqx]sprrvphwennltlddiw -lguyxqxdnirprljpkec[gevtjwbiofgesdwil]phnydixjjjcprpxlpj -mgjnnftohavesepu[slwhvezajhvdukghl]hdhtlheqzqqrsqmfqyz -iapqmjgrjnecxylopbo[pnbvgmbhbcmcnpsf]opurzpqoyxdxfkud -efuoofbuyjoaqjd[achnmlslfvovmgt]xcuyvikslsewgqlx[gjxolnhgqhhglojjqhy]iarxidejlgphqwaei -uxpcurtzqgpgtzkvp[mibqtgwackcedfri]otnnsgolldyzdpbew[tmgiijgjuvjykwahml]xxgjgzmnicxmywdubrb[hwhcgbzhuoankdubft]rxqzywfyuliatahn -uhmufcxuptehmuf[sygthxldinztzudvs]bdxukzqaxeavvrbqmuz[wovugtpgwisttusjlet]tpfbcndafwhdnolv -kwknefvhmzbtjezkh[zcvncbptzekirhqo]qvgnyfkmrnxlgxzjjxl[twxzjkybjlrpurfmufa]lclhwuylibekjjxc -mspxottklkidvlomd[rhiachlbqgpdhfnxyc]ekkxgijnueonlkpfkm[dnwcjiihmpjqtmb]dkknlqniolowydd[dyqofryhvgracxeuivp]pbsgttbtgksqqevytrb -pjvdfpsdlampeztecfq[lpqshzeegwiouas]nwxqaoryigyvbby[iiddsczjoxentwv]weexunkmtaaufurjz[meywmosucyrxzlgxi]huqfmfpxdmcmqfk -abbhujqyoaphnruaih[yidrkxgrxeoarph]fvryghhzqrobkbsck[dnokdwmkbktlfoihxl]ttptfiadsswiwsfbvf -djwqivpbexyvdquh[qmmdydhjbmunyjixviv]nradabzesdavhasjbjs[lsabjblhocebvyhfee]hwbyvnzltgezasg -maxofygcnygnwefsb[gdfccusdbseqsqfwva]cxdmwhnjitaazhjftn[kcratndpffdnbopd]wocybndplnotqgctr[ymceqbtulsezvftsi]eggtzhqojksdjapnv -lzihlroqvmeohnun[wskcytlimfagjyd]tnehibbupupuhepqz[hschjdjtzbvavum]zstmglsltkovvckpmqr -syzoikkgzplleoaz[ccpsffhupzpuhjcw]kaswkcoyhlrayhikme[qnjnztjupvbwyns]ggmkqikeziailzpuv[ugqgbpunztgvsxsp]mntxaumliefzkpnia -dxnkgspqhyejogxstsk[jfgckouqypxttst]axtisjbtaviwafh -baxazxlkzlyzvbdvtlc[yhegkwrrluxcnaahyl]nyegiipdjrnjobyjp[ulhbizabyukfvhmdg]hgmxctzxzewckasi[fuvwuolxkcfdkmtcngk]xvmvoydeiuaeawcz -bkomgyefwkmwwpsayb[rozknmkljogphrqywyo]vlpasefojmrzbpox[epogjnrjrntbcnzha]okfkagkfyagcszueu[gjpfnuvnazbnqylfm]busunenasatqeieestf -dwlbzijjdujfhotvj[swplsznswlgnaud]bgedlfxgjbwxekq -ffjhdorivdezjdb[tqkfrzxthlxadqstmqe]ttmrscyvbrresartqnh[rfztsxgbedcdecgv]qxcsxdqhshsqtjtl -zwosebsoogknldkh[mkcucbphbvnaqyxjope]aibznttouadentsy[xfucuvnlnchuawcapcq]jqherkgzqodpzydtgu -xondkuknycfwyenkceu[ugjlxueqtcyhyhni]bbofydvkhtjgxxnyrc[gpnwoarvjltzyhhe]qebolgjnwnstokco -cygilweroxmbmbmx[hopxissehjarmezawol]exywzaffjuhehvmbm -nbndomwcaauiluzbg[qjxqxhccqsvtkwm]oazwbouchccdhtrbnbv[vetwfilwgnxxxrhxar]mrbcnwlpciwpizkxj -xuabbxdwkutpsogcfea[tgetfqpgstsxrokcemk]cbftstsldgcqbxf[vwjejomptmifhdulc]ejeroshnazbwjjzofbe diff --git a/advent08.hs b/advent08.hs deleted file mode 100644 index 7def6d1..0000000 --- a/advent08.hs +++ /dev/null @@ -1,150 +0,0 @@ -module Main(main) where - -import Data.Array.IArray -import Text.Parsec --- import Control.Applicative -import Control.Applicative ((<$), (<*), (*>), (<*>), pure, liftA) -import Control.Monad (liftM, ap) - --- Row 1 is top, column 1 is left -type Position = (Int, Int) -type Screen = Array Position Bool - -data Direction = Row | Column deriving (Show) -data Command = Rect Int Int | Rotate Direction Int Int deriving (Show) - -data ScState a = ScState (Screen -> (Screen, a)) - -mkScreen :: Int -> Int -> Screen -mkScreen w h = array ((0, 0), (h - 1, w - 1)) - [((i, j), False) | i <- [0..(h-1)], j <- [0..(w-1)]] - -showScreen :: Screen -> String -showScreen screen = unlines [showRow r | r <- [minRow..maxRow]] - where ((minRow, minCol), (maxRow, maxCol)) = bounds screen - showCell True = '*' - showCell False = ' ' - showRow r = [showCell (screen!(r, c)) | c <- [minCol..maxCol]] - -countLights :: Screen -> Int -countLights screen = length $ filter (id) $ elems screen - -screen0 :: Screen -screen0 = mkScreen 50 6 - - -main :: IO () -main = do - text <- readFile "advent08.txt" - let instrs = successfulParse $ parseCommands text - part1 instrs - part2 instrs - -part1 :: [Command] -> IO () -part1 commands = - print $ countLights $ (extractScreen . doCommands) commands - -part2 :: [Command] -> IO () -part2 commands = - putStrLn $ showScreen $ (extractScreen . doCommands) commands - - -instance Functor ScState where - fmap = liftM - -instance Applicative ScState where - pure = return - (<*>) = ap - -instance Monad ScState where - return x = ScState (\screen -> (screen, x)) - - (ScState st) >>= f - = ScState (\screen -> let - (newScreen, y) = st screen - (ScState transformer) = f y - in - transformer newScreen) - -doCommands :: [Command] -> ScState (Int) -doCommands [] = return 0 -doCommands (i:is) = - do doCommand i - doCommands is - return 0 - -doCommand :: Command -> ScState Int -doCommand i = ScState (execute i) - -execute :: Command -> (Screen -> (Screen, Int)) -execute (Rect w h) screen = (rect screen w h, 0) -execute (Rotate Column c n) screen = (rotateColumn screen c n, 0) -execute (Rotate Row r n) screen = (rotateRow screen r n, 0) - -extractScreen :: ScState Int -> Screen -extractScreen (ScState st) = fst (st screen0) - - - -parseCommands :: String -> Either ParseError [Command] -parseCommands input = parse commandFile "(unknown)" input - -commandFile = commandLine `endBy` newline -commandLine = (try rectCommand) <|> rotateCommand - -rectCommand = - do string "rect" - spaces - w <- (many1 digit) - char 'x' - h <- (many1 digit) - return (Rect (read w) (read h)) - -rotateCommand = - do string "rotate" - spaces - direction <- (string "row" <|> string "column") - spaces - string "x=" <|> string "y=" - index <- (many1 digit) - spaces - string "by" - spaces - distance <- (many1 digit) - return (buildCommand direction index distance) - -buildCommand "row" i d = Rotate Row (read i) (read d) -buildCommand "column" i d = Rotate Column (read i) (read d) - -successfulParse :: Either ParseError [a] -> [a] -successfulParse (Left _) = [] -successfulParse (Right a) = a - - - - -rect :: Screen -> Int -> Int -> Screen -rect screen w h = screen // newBits - where newBits = [((i, j), True) | i <- [0..(h-1)], j <- [0..(w-1)]] - -rotateColumn :: Screen -> Int -> Int -> Screen -rotateColumn screen column givenShift = screen // newCells - where - ((minRow, minCol), (maxRow, maxCol)) = bounds screen - colLength = 1 + maxRow - minRow - shift = givenShift `mod` colLength - offset = colLength - shift - column0 = [screen!(r, column) | r <- [minRow..maxRow]] - newColumn = (drop offset column0) ++ (take offset column0) - newCells = [((r, column), cell) | (r, cell) <- zip [minRow..maxRow] newColumn] - -rotateRow :: Screen -> Int -> Int -> Screen -rotateRow screen row givenShift = screen // newCells - where - ((minRow, minCol), (maxRow, maxCol)) = bounds screen - rowLength = 1 + maxCol - minCol - shift = givenShift `mod` rowLength - offset = rowLength - shift - row0 = [screen!(row, c) | c <- [minCol..maxCol]] - newRow = (drop offset row0) ++ (take offset row0) - newCells = [((row, c), cell) | (c, cell) <- zip [minCol..maxCol] newRow] diff --git a/advent08.txt b/advent08.txt deleted file mode 100644 index e6aa6a1..0000000 --- a/advent08.txt +++ /dev/null @@ -1,193 +0,0 @@ -rect 1x1 -rotate row y=0 by 5 -rect 1x1 -rotate row y=0 by 5 -rect 1x1 -rotate row y=0 by 5 -rect 1x1 -rotate row y=0 by 5 -rect 1x1 -rotate row y=0 by 2 -rect 1x1 -rotate row y=0 by 2 -rect 1x1 -rotate row y=0 by 3 -rect 1x1 -rotate row y=0 by 3 -rect 2x1 -rotate row y=0 by 2 -rect 1x1 -rotate row y=0 by 3 -rect 2x1 -rotate row y=0 by 2 -rect 1x1 -rotate row y=0 by 3 -rect 2x1 -rotate row y=0 by 5 -rect 4x1 -rotate row y=0 by 5 -rotate column x=0 by 1 -rect 4x1 -rotate row y=0 by 10 -rotate column x=5 by 2 -rotate column x=0 by 1 -rect 9x1 -rotate row y=2 by 5 -rotate row y=0 by 5 -rotate column x=0 by 1 -rect 4x1 -rotate row y=2 by 5 -rotate row y=0 by 5 -rotate column x=0 by 1 -rect 4x1 -rotate column x=40 by 1 -rotate column x=27 by 1 -rotate column x=22 by 1 -rotate column x=17 by 1 -rotate column x=12 by 1 -rotate column x=7 by 1 -rotate column x=2 by 1 -rotate row y=2 by 5 -rotate row y=1 by 3 -rotate row y=0 by 5 -rect 1x3 -rotate row y=2 by 10 -rotate row y=1 by 7 -rotate row y=0 by 2 -rotate column x=3 by 2 -rotate column x=2 by 1 -rotate column x=0 by 1 -rect 4x1 -rotate row y=2 by 5 -rotate row y=1 by 3 -rotate row y=0 by 3 -rect 1x3 -rotate column x=45 by 1 -rotate row y=2 by 7 -rotate row y=1 by 10 -rotate row y=0 by 2 -rotate column x=3 by 1 -rotate column x=2 by 2 -rotate column x=0 by 1 -rect 4x1 -rotate row y=2 by 13 -rotate row y=0 by 5 -rotate column x=3 by 1 -rotate column x=0 by 1 -rect 4x1 -rotate row y=3 by 10 -rotate row y=2 by 10 -rotate row y=0 by 5 -rotate column x=3 by 1 -rotate column x=2 by 1 -rotate column x=0 by 1 -rect 4x1 -rotate row y=3 by 8 -rotate row y=0 by 5 -rotate column x=3 by 1 -rotate column x=2 by 1 -rotate column x=0 by 1 -rect 4x1 -rotate row y=3 by 17 -rotate row y=2 by 20 -rotate row y=0 by 15 -rotate column x=13 by 1 -rotate column x=12 by 3 -rotate column x=10 by 1 -rotate column x=8 by 1 -rotate column x=7 by 2 -rotate column x=6 by 1 -rotate column x=5 by 1 -rotate column x=3 by 1 -rotate column x=2 by 2 -rotate column x=0 by 1 -rect 14x1 -rotate row y=1 by 47 -rotate column x=9 by 1 -rotate column x=4 by 1 -rotate row y=3 by 3 -rotate row y=2 by 10 -rotate row y=1 by 8 -rotate row y=0 by 5 -rotate column x=2 by 2 -rotate column x=0 by 2 -rect 3x2 -rotate row y=3 by 12 -rotate row y=2 by 10 -rotate row y=0 by 10 -rotate column x=8 by 1 -rotate column x=7 by 3 -rotate column x=5 by 1 -rotate column x=3 by 1 -rotate column x=2 by 1 -rotate column x=1 by 1 -rotate column x=0 by 1 -rect 9x1 -rotate row y=0 by 20 -rotate column x=46 by 1 -rotate row y=4 by 17 -rotate row y=3 by 10 -rotate row y=2 by 10 -rotate row y=1 by 5 -rotate column x=8 by 1 -rotate column x=7 by 1 -rotate column x=6 by 1 -rotate column x=5 by 1 -rotate column x=3 by 1 -rotate column x=2 by 2 -rotate column x=1 by 1 -rotate column x=0 by 1 -rect 9x1 -rotate column x=32 by 4 -rotate row y=4 by 33 -rotate row y=3 by 5 -rotate row y=2 by 15 -rotate row y=0 by 15 -rotate column x=13 by 1 -rotate column x=12 by 3 -rotate column x=10 by 1 -rotate column x=8 by 1 -rotate column x=7 by 2 -rotate column x=6 by 1 -rotate column x=5 by 1 -rotate column x=3 by 1 -rotate column x=2 by 1 -rotate column x=1 by 1 -rotate column x=0 by 1 -rect 14x1 -rotate column x=39 by 3 -rotate column x=35 by 4 -rotate column x=20 by 4 -rotate column x=19 by 3 -rotate column x=10 by 4 -rotate column x=9 by 3 -rotate column x=8 by 3 -rotate column x=5 by 4 -rotate column x=4 by 3 -rotate row y=5 by 5 -rotate row y=4 by 5 -rotate row y=3 by 33 -rotate row y=1 by 30 -rotate column x=48 by 1 -rotate column x=47 by 5 -rotate column x=46 by 5 -rotate column x=45 by 1 -rotate column x=43 by 1 -rotate column x=38 by 3 -rotate column x=37 by 3 -rotate column x=36 by 5 -rotate column x=35 by 1 -rotate column x=33 by 1 -rotate column x=32 by 5 -rotate column x=31 by 5 -rotate column x=30 by 1 -rotate column x=23 by 4 -rotate column x=22 by 3 -rotate column x=21 by 3 -rotate column x=20 by 1 -rotate column x=12 by 2 -rotate column x=11 by 2 -rotate column x=3 by 5 -rotate column x=2 by 5 -rotate column x=1 by 3 -rotate column x=0 by 4 diff --git a/advent09.hs b/advent09.hs deleted file mode 100644 index a68ce82..0000000 --- a/advent09.hs +++ /dev/null @@ -1,57 +0,0 @@ -module Main(main) where - -import Data.List.Split (splitOn) -import Data.Char (isSpace) - -type Chunk = (Int, String) - -main :: IO () -main = do - textL <- readFile "advent09.txt" - let text = filter (not . isSpace) textL - part1 text - part2 text - -part1 :: String -> IO () -part1 text = do - print $ cLength $ decompress text - -part2 :: String -> IO () -part2 text = do - print $ cLength $ decompress2 text - - -decompress :: String -> [Chunk] -decompress text = - if not (null msuf) - then (1, pre):(num, chunk):drest - else [(1, pre)] - where - (pre, msuf) = span ('(' /= ) text - (marker, suf) = span (')' /= ) msuf - ln = splitOn "x" (tail marker) - len = read (ln!!0) :: Int - num = read (ln!!1) :: Int - (chunk, remainder) = splitAt len (tail suf) - drest = decompress remainder - -decompress2 :: String -> [Chunk] -decompress2 text = - if not (null msuf) - then [(1, pre)] ++ mulDchunks ++ drest - else [(1, pre)] - where - (pre, msuf) = span ('(' /= ) text - (marker, suf) = span (')' /= ) msuf - ln = splitOn "x" (tail marker) - len = read (ln!!0) :: Int - num = read (ln!!1) :: Int - (chunk, remainder) = splitAt len (tail suf) - dchunks = decompress2 chunk - mulDchunks = [(dl * num, ds) | (dl, ds) <- dchunks] - drest = decompress2 remainder - -cLength :: [Chunk] -> Int -cLength = sum . map (clen) - where clen (n, t) = n * (length t) - diff --git a/advent09.txt b/advent09.txt deleted file mode 100644 index 3ccde78..0000000 --- a/advent09.txt +++ /dev/null @@ -1 +0,0 @@ -ORNXNQJQ(151x7)(5x9)OFIXU(27x3)(21x9)VDCYQELDJQUAFZUHFZVSU(34x15)(12x10)SEDIUUVFPEKY(3x9)NHR(1x11)I(15x6)(9x13)CMNDUYGYR(40x6)(4x7)RMNG(25x8)XPDSEYNCWFQFAKUMITWMBLMIK(7x11)(1x10)N(109x1)(101x15)(28x15)DYKYFCKDLFYAIHXSOAZKTPCPBUTX(18x13)SOZMWOSIQHVNMRZYYM(1x4)W(11x2)AJPKYMFRDJZ(11x11)SYIQBGHBNJL(26x9)(20x7)XLNTFHRYHLOYBBGMRPDH(269x4)(2x9)ZG(79x7)(24x3)UBTEBZLPYEDFINUQEQZUSXWY(3x5)IUH(15x10)LDDUEEJAWVGNRYA(3x5)FAO(6x3)ORDEIO(47x2)(1x10)J(2x13)DW(1x8)V(19x14)IJAAZPPGBZPFERJGOYI(103x9)(60x11)GKYOEUBZWAFDXEGWMPXZEOAQCUFCTJCXROPMNEFMJUWGBOUZRAXKRNHTBXHM(15x15)BTYXPHOQZXSBUVT(9x8)JQLNIDKMH(9x5)(4x4)BQRL(4207x15)(1464x12)(305x10)(159x14)(71x12)(24x14)(9x1)UJXIVHSUD(4x15)MAWK(26x15)(19x15)YFYDUJPUZQCKGVPOXKD(2x1)HN(2x6)GH(20x14)INJNODCLPWICQFIERROI(3x11)JUA(31x14)IUDVEHRATPGIEGELRDOZMBKZQFONCBD(130x14)(28x15)(22x7)(5x11)PHVKR(5x10)KVTDO(88x12)(8x12)POLKYDEX(27x8)(9x14)APMRPIHKQ(6x11)QTLLQU(1x4)R(29x3)(4x8)WBRL(2x15)JU(1x6)Y(1x2)U(1143x9)(364x14)(262x7)(6x9)EEJMXK(100x12)(5x1)RXXSO(5x2)VTESR(6x2)SXXSZL(49x1)OFIFQJKSCOXPXTHVWCUJVQMDBQELBLDYRKIGKHOEWRFNXNRLF(9x1)XRUFFMDVM(29x5)(3x8)VPW(6x3)WWFWRC(5x7)XMJEJ(46x9)ZBWGRECVBOPHVFQYBPOBHTPOMTYQGVZKQMKYEHCJYSNRQY(50x1)(10x5)SFPYPPQKDO(27x10)DNMTTNUGOQNAQLRBKDLNRVGRMLJ(23x12)(10x7)LCQWCIMTSV(1x12)X(15x9)JMJMKCIELUBETER(38x7)KWZVVWPBHKSBWMQWBJKCRHLIEHZSQBRAEOBRHE(130x13)(123x7)(75x10)(9x2)NUSXXITCS(11x2)JWHCFBJNEYD(10x1)QJNBNHNNDF(5x5)RWBYJ(11x10)GRRSDLTEZAW(35x9)EYHPPDLIWUITRPLKHXFBCUIQZZMYCDKWPNX(326x11)(130x1)(76x9)(9x10)TBCYBWJLT(4x8)HTQB(35x8)FUCOLJQAFSWAYTACMFRACVWDLZYRGSUMZAY(5x15)ZWHCN(17x14)CRUBDKGWUQCGGAIOS(10x7)(4x12)RWFL(3x9)TFR(27x13)(1x7)R(2x14)VY(8x2)DZMFRMGO(94x11)(61x15)(1x14)O(25x14)IKECWOPRWQBVRNEDQXWFMVBOI(15x10)QVTWMBNCISLOBJR(20x1)FIVILFBNIPNRXAWXGAMJ(32x8)LNPRYYKSLCXOEXFWZKAXERCQKDACFNYA(10x1)(4x14)WRAN(292x2)(168x7)(10x8)HQSTVLQCNK(89x4)(9x11)XCBGNGENA(22x5)BLUEARYFSAVBWTDGVHYWZP(21x12)KGRSTMCVPYJXIJWXVXREW(12x5)NKTUQMXCLFNL(17x10)UPUPBQDSHOXKHLGCR(10x12)ALIFHIZXQV(10x1)KEFBFHAOCG(100x2)(9x4)(4x9)MKGZ(80x5)(20x3)DQCKBWWUZDJICWUESBKY(14x9)EFXIDIWRKZTVUM(6x15)JRDKSE(2x14)AA(9x9)MJFTTZMTW(5x3)VLDNV(411x4)(397x1)(390x8)(46x4)(18x7)BLBFCJNGQWPSJGPOVU(16x7)(10x2)FFZWESCTXC(6x3)EUNIDH(56x14)(28x5)(2x8)CJ(2x1)EA(9x9)FLKGEMFED(10x9)OLOMVPKTRZ(1x5)R(202x5)(88x9)(6x3)VRZHGK(20x12)KKZGPZHKVMLDUKNRPDLL(7x2)CBDBTRO(3x15)XPR(23x3)EHEWCFLEUPCSTSISPKGXIMK(32x5)(16x12)KENYBOSVRILLLTVM(3x14)DYH(19x4)(7x8)FGHRXWB(1x15)E(39x8)(9x11)XRLWASPXI(17x10)RNFIHAQMBBELSLNCT(49x1)(36x4)(18x2)QKRMYMDFPSVDXUXXCH(7x3)SBFHWUF(2x6)BD(2x6)HN(1047x3)(450x2)(10x4)YQQDOELWCI(48x15)(25x7)(8x5)KUKZDUYU(7x6)(2x1)KQ(1x4)K(6x3)INDERJ(284x5)(92x7)(86x4)(13x1)PSVECPHBPYEPJ(3x15)JEY(35x8)RCTZOHPJAICRPRVAYZZLUKRZPOOPFCBCPAQ(4x9)TETC(2x11)ZV(179x5)(95x6)(8x9)HUGVMXOT(9x10)MFDYGPUWF(12x2)PSBNZPCWSANA(6x1)GICWEI(32x9)JCBCGJIMZTQUSVQDRHWMSYJYUHJIVYIV(71x13)(15x3)SXTGVVIWXDWZTZO(9x2)RASQPEQUN(7x10)TPHSDTV(7x15)EPAHSDZ(5x6)BIOZT(7x4)KYMJLYA(69x11)(63x5)(3x9)XSS(37x9)HTZKRPESNZRIWPGWAPHBOIOWAWFHWMIXWYQQC(7x6)(2x1)FA(273x3)(245x12)(39x9)(8x13)WCKBPVRZ(18x10)(11x10)VHBAIPPIWXD(2x3)XD(1x11)Q(6x15)WCPPQC(167x1)(23x15)DYHQGULKPISILTRIXNEJZAV(65x12)(2x9)FZ(14x9)WWCTYVLVAOZDAG(15x11)CZYGTNAELLIRKYW(10x6)IEXFBJJCLQ(42x4)(9x14)XRPJHVVME(6x8)XAVNCD(10x9)IBVGVWIFUD(11x7)(6x6)LSMIRR(14x4)LFACCTXVWLEDWE(287x5)(280x2)(273x1)(7x14)(1x15)U(109x12)(7x1)TPNMYVS(46x8)TWTINTRPDOQKPDPZNKXIVISRQTZODBXMSPPZKCQFAYCJCS(5x11)AKNKA(18x14)DKSKSQUAUTPZPNHIWP(4x7)DOMY(56x3)(6x6)JBJORX(7x11)IDJWUCZ(26x1)XMRHHVJEZBAIOCBKTLKEWRQHWR(46x3)(6x8)JDOJMU(5x6)ELYWH(1x1)M(1x13)Y(7x9)XRTOLWT(22x11)PXZRLOPHTRSXFEGYCCCKOZ(1x6)I(4x11)OPMW(2x11)ET(1244x13)(8x9)(3x8)ABP(1x13)B(188x1)(6x9)(1x5)H(161x8)(115x15)(15x6)(4x8)YQCB(1x1)L(73x9)(2x15)GX(25x4)NTANLQJGDHTCOIRAFZAKXQHVB(1x3)R(10x5)VDXVAGTAGQ(7x3)NKCTQVK(3x9)RRQ(1x15)C(31x15)(1x2)G(19x2)OAUAOISPSPTMKOGJEAV(4x1)DQTV(229x5)(2x4)EP(124x5)(117x6)(109x14)(16x14)UDUBGHIWRGGHYVJU(2x1)DG(7x14)XZCOKGR(4x15)XDVD(49x10)HIHUJRXURZHGHWJMFTGUQUBGCJVLZSGLDIANTUIKYZWXHMAZY(84x14)(6x15)IEUICQ(13x5)HXIRLHFWXDSIB(2x13)XU(39x4)(25x10)(11x14)MWHAQQMPPVR(1x13)R(2x9)UL(786x5)(38x10)(1x12)S(25x9)RRXFLAJRHOUZPDTBWKIZHUNGA(471x12)(54x8)(34x14)VJZSILTGZWMCZLOJSZHTQVVAZSPWHAKVFO(8x3)XCYTBHDX(221x9)(60x1)(1x2)M(17x13)PIRWGCEZQNSPPUBHK(23x10)YJEVBSPQYKPLPDOSCEHYSSA(78x12)(2x6)YY(21x5)TMWGVWVOZDOFGCFEZJRJR(32x5)ENWXNGFHIYQHCBWQEDTMBOWQKJIHAZHY(1x1)E(18x9)(2x1)OD(5x11)GGATR(32x11)(13x9)VZVAFSADAUIGI(8x2)JOUUXRCU(1x11)I(8x7)(3x8)PCV(75x3)(46x4)(28x9)PJXDTVYIRKASKJMXDIGAXSQPMPWK(6x11)SUYPHC(4x13)CBMV(8x7)QAUWLDLP(83x8)(19x7)DDNWFTSHJSTPWECIXWZ(6x5)EQWGSJ(1x5)O(20x6)(13x10)MNFVFUCESZDMF(9x15)(4x3)JZSU(7x12)(2x9)UZ(228x2)(220x15)(49x2)(1x10)C(5x9)TCPJZ(6x7)FJSPSS(4x14)FYQF(5x15)XBWKH(75x10)(5x15)KTHBO(12x5)LLZEFONZKCBI(28x5)RGMNFEEHBHZJKTMPVEPHIOJUXOMB(7x9)YWTZNCT(60x14)(3x10)DAN(15x6)BHOSLMFSEQKOGEX(1x4)D(17x11)SULIDVKKLXIWAJXRK(2x7)PX(4x1)TKPO(9x8)QFXUEZUGP(2331x2)(2323x8)(202x13)(10x13)(4x14)GFSR(178x4)(101x11)(21x9)(5x9)SWRRL(6x8)TYXYPJ(68x5)(4x10)QMJZ(19x15)APBTUGYPJQFQODZRNAC(5x13)YIVAO(14x14)QHWPZNQSRZJIEC(63x2)(32x10)(5x4)EVMQL(15x12)SAOYGPDXFSDOBTB(6x8)(1x5)C(7x13)MILUDKF(144x5)(3x8)PLQ(129x7)(27x3)(7x13)QLVZTAJ(9x4)JNLNRKPXA(4x13)EEXX(17x9)(11x9)SYQBWQASJPK(57x8)(29x8)(15x11)CFVXGJKXAAKNRRT(1x15)A(1x4)C(10x5)EFFLNXDEVJ(664x6)(357x6)(82x8)(7x12)LPCKKIX(55x10)(6x4)KXJNIR(2x4)IH(5x6)VIUMV(11x10)TCNXEQRMQJZ(4x7)DREZ(2x8)IV(119x7)(21x13)RHDEMDBNRPLOTSZRKZSHA(47x2)(22x2)ZADHZNUARPTFHKEXJKCWXY(7x6)OACRTYP(1x15)P(31x10)(5x4)VSWJT(7x1)IGAMFHI(4x3)GOCU(26x5)(19x13)(12x15)WGYBKVRPMWJT(15x7)IFUICWKGGCLHCOO(83x12)(62x8)(20x10)TJBGZCIWVKOROYITLBUA(7x11)UDSMGLK(6x3)FWPTWW(6x4)JECWEE(9x13)CUQMJOFWT(292x11)(68x14)(61x13)(28x10)ZRYXMSXXTLGDYHOVDRDVOCFJTCXJ(20x7)HZCFVXJATHXTNPHWFSIS(65x4)(11x6)BETMULBEIND(3x11)VLU(25x5)UYRFOHJXRRSJXEFEOPROCVNOA(3x4)GQJ(95x8)(81x11)(30x12)FXPGOAGXMVWAMAKJTQKJEUZNGCKDXU(10x5)YFDYGXCFTD(10x5)USWAFQFFSA(6x10)ZFVKMB(2x8)SF(16x8)MZPGUBATXFXXJOJS(17x4)AJTTIOULZONRGGMLK(448x2)(28x11)(22x2)(8x13)(3x1)TMQ(2x13)IP(5x6)AJJXN(290x1)(109x10)(5x12)CUMMS(7x7)UEWYDSN(59x12)(2x12)FP(26x3)LWFPYEPAANDDLIOJQBYCRRQYRT(1x2)O(7x10)RXDHAJH(14x6)(9x6)PQLSJTFAO(124x4)(56x12)(12x10)DOOJHOYDOTLM(10x7)VKUFQDGCPT(6x9)ONBPUY(5x5)CMPUW(5x13)WWWWM(16x9)TOPYYTZBFGFAXYBO(14x15)(8x10)FPVBQPNJ(1x15)O(18x1)UTQYAKMVOBJZDLTOVO(12x3)YHILDGGCGZXZ(20x7)(13x15)RVSYRCEYESCUC(73x10)(21x5)(15x4)EHQBVPUAJWTOZKA(22x12)FIWIHPWFDOJTMAXRCKCJZE(11x5)(5x15)PDHSQ(828x13)(1x8)P(161x8)(154x4)(11x3)DAFIIEMOBYZ(6x1)EGJWXU(107x7)(13x2)SRTDQRBOGITPI(6x2)VWSTKU(23x5)GJXMEBCGSIYQNMFLISIUFTB(1x2)D(36x8)GKPPJHVMOOTOCTUHRGVVQUKNHRCZNINYLJGB(6x11)EFSGDL(327x12)(6x2)QAAXCM(5x9)YVLGN(86x1)(10x1)SVFCLDTQEO(2x4)OA(17x15)OAEGSJHUTEFJXDOTD(7x7)HGXVBHJ(20x15)(2x6)XQ(8x5)KDXCQOFM(90x11)(14x15)(9x9)DTJSQPKYW(25x7)(12x11)SYLBSZEMQSQA(1x3)S(11x2)(5x13)KWHSE(4x7)MFSC(7x6)(1x12)F(110x2)(10x1)UIIOJNJJJI(88x8)(10x10)PQCUFWXHMC(15x12)OVVASAWDIIOZYIT(17x3)NLLLZIVNOIVEHGXDP(19x11)CDJEUHEPCUEYVLGYLTJ(311x11)(165x1)(16x7)MUMPDQFLGFEGIYLU(9x11)(3x11)FNP(1x14)U(60x4)(4x7)KDWX(4x1)LKMS(27x11)MIELWFKZJUSUYBARAGTJAZIBEDH(3x1)LDI(48x15)(10x15)DUUYAIZHKY(5x8)KEMNC(14x10)HZTAHRSCICOTIR(4x13)AUNU(45x2)FRDBNRZYFZLCAIEVZWSAIMLGBCDSBHXFPWRPYJRQHNWUZ(28x8)TCHELUEWWRHMIGBKEUCWBTIEVNCB(37x10)(30x11)(6x9)PLWKRH(2x3)PL(7x2)MAFSJHV(6697x8)(172x15)(164x10)(1x9)N(151x2)(7x2)MOYJQSA(24x4)BSZRAIBTDPFAAHQWOWDJJRCW(34x10)(2x15)QB(1x1)T(4x3)ALVX(6x7)SQFSKZ(2x11)JX(54x2)(47x14)(6x12)HOALAK(28x10)DGCVKLTWNKGAGRGSWPVEUGRDAGWA(2577x12)(88x14)(82x9)(48x2)(41x11)(4x5)KAVK(15x4)LCMPETDQZUWBRCL(6x9)CFZJGS(7x15)PGVNKAY(9x12)(4x4)NHID(827x3)(259x9)(153x12)(27x11)(21x4)PQNSUYEFBRAAVCJFJPPGZ(13x4)(7x10)NNSUBSG(70x11)LOGUFNQNLSWWQXBPQIWNJIEDRFUCRCUAVANHFGDEMQZRGSITBSBLZXVWJGXPPDZEXZQCEU(7x10)DTIEEXA(4x13)DDNZ(44x13)(37x14)(8x14)NIJOMVGP(17x1)MDXVVVWIZSXMSGJMC(4x4)ARFY(31x11)(10x14)RVZUREXEUI(1x7)M(3x5)LXC(170x5)(114x3)(83x3)(19x10)UUCHMGESOOTJCTEJVRM(3x5)ZCP(2x10)IU(25x6)TNLNLUTXNPNDWMXGVVGIPVWJL(4x12)JAAA(13x1)UFQFFPMZGZNNN(1x1)V(27x5)EDPBYCEAMMWAIPWUZODVDAWPWIJ(10x1)(4x10)VJHN(73x13)(66x12)(5x1)TAFQR(11x5)(6x8)ATBQTY(5x8)KZYJI(23x1)(17x3)VSDOKMWKSGRRIRXWF(297x5)(11x6)HTGQDOGJQSJ(49x13)(43x1)(8x5)ULVVUCJI(6x11)JAITVW(12x3)ISRQLAPACLXU(25x2)(19x7)(13x2)SRBHDIAPWUMER(51x9)(45x1)(8x9)ADOZRIJD(13x15)JXWDDHBYCJKMO(6x10)SKLMKL(129x8)(111x2)(5x10)ATJGD(22x6)OLATWNGTXFJMTWCJQAQDDA(19x1)WLYAFVAKQECTNXJRBVH(20x11)DDWDXGQEZBKJBDJBAKJB(14x5)TIZKGCXPPUBGSJ(5x14)SEHYY(1410x15)(148x5)(24x2)FHQUELWXQDUWLIBTXEPSQTJQ(111x3)(40x13)(6x7)ZAWWAD(2x15)GI(3x6)XJY(7x14)SCZWIKT(10x1)WMCTELCITD(15x12)(2x8)OD(3x3)IKM(12x2)(7x4)BEEDJSC(2x15)SZ(303x5)(89x2)(70x4)(3x7)ATQ(9x4)WSWYIUPAG(12x8)KDWAUNHURPWB(3x15)ESP(15x7)DANNZUDKDFXXSBO(7x12)VUNUHBI(1x8)M(180x9)(66x1)(20x12)MOUJOXCMCZUPVKVXPKUB(27x5)QHNMIHMVJVBBVCDGHPYOWRHTCLT(1x8)Q(22x13)ADGXYCQHWNAGCLWNPXBPIX(73x9)(1x11)J(27x14)ANTTYLYVSVWEAPXPGRRVWVINHFM(7x10)ZDBZWVE(3x12)ISL(5x4)YDXBZ(9x14)XBPBWAQTR(407x3)(186x1)(36x10)(1x2)W(23x13)DBNCARJKKIAWVQVKNOIPSJO(57x2)(6x9)VKZMPB(3x2)JIZ(22x2)AQWQZQOKXLPZSJTNBJKCXL(4x12)OAOJ(8x8)(2x10)PT(29x3)BKPFZBRCXVJUJJHVOIMJELFFHHBUR(26x5)WUACSRCIRADIQKCXKEESRJNWKU(10x9)RBSMRSUWMK(177x3)(1x10)Q(28x8)(5x5)PQQGD(6x13)LAGOEK(1x5)C(71x13)(16x12)IIAWONMLGHMCHWIH(19x11)KEYESARBBXHWWQWPQVC(1x11)A(9x12)LMADFIHXJ(6x5)MZVRQU(40x12)TOSAJVXJHKVWJKLTVBIUKKESOFCKFOPSXHYCMDXQ(8x15)XGHEISVJ(68x5)(62x3)(4x7)OOWZ(7x15)QNNVWUX(5x10)GSLOA(14x8)(1x8)B(3x3)HJL(3x11)EIK(450x6)(101x9)(30x8)(2x5)MM(17x8)GHTHOCTDDQAYBUVWP(59x8)(1x5)R(3x11)HYR(21x2)STLZXNENUFTGYWNQJHFUK(10x10)NGMEAWPFBI(28x3)LNDWFXKPRAOWKJHWZZIYLJLOOBKK(110x6)(14x2)SALGMMEIINEJOU(40x7)(4x13)AIMA(5x12)GSAFV(13x7)CSLJJRZIBBUMF(21x1)(15x9)THPSZDCPWASRUYR(2x5)EE(5x7)XDUPK(13x10)(7x13)SFWIYYQ(163x10)(26x15)(13x9)HQJQXZQCIHSAE(1x15)K(4x15)FMWB(9x12)SQVQTEWMD(41x3)(13x1)EEYHHJQCDSYRO(9x2)YCDDFHWTG(3x9)LGW(51x12)(7x14)OITBFQF(8x13)FZVMIWUM(9x8)XTZCNFOTE(4x15)KTHY(221x10)(213x14)(32x3)(26x3)GEUNPCYFYLTFFXOKWXFBDYLBMK(77x1)(41x14)(7x11)XBMCCZD(21x11)KFOJGBJCEHPTKBLUSTERX(10x4)IZWNLBDABA(8x3)IVDWYIMO(50x9)(6x5)(1x1)H(4x8)VDKE(2x5)QE(17x3)(11x7)KGYMJEMQVWS(9x4)EVWJYLBBQ(16x8)XZDDQZQPCOLVIYGD(3001x2)(724x14)(235x12)(227x11)(25x5)(1x10)N(3x4)QSO(5x3)XPKCV(24x8)(11x10)XXOIOGOKIOD(1x8)B(88x4)(1x12)I(10x6)CEIKKPKUJG(1x11)Y(6x8)QAYNKJ(41x7)BGKQCYZZGRQGCNXSGYHAXMWIJOPDKLMAQRKGFRBML(66x9)(14x12)YTKTEIISOWYZWB(3x13)UDK(12x2)PXDYSSCHAFSE(2x2)DA(6x1)UZSORT(309x1)(107x1)(81x11)(23x4)UHLCPASWMUWBQPYJSUHUFEO(5x1)NTMAV(26x7)JDNTOBRNEUELJIISZGKNRYSBRE(4x10)FVKZ(13x8)SBNXXTKLMDHII(138x4)(62x12)(55x12)OMRRSQWFPEAXAXHFHHQBWGCESBLWZBVYEQQKYRGILBNJJCAOXFHDIXU(19x13)(4x5)CVBF(5x9)EBLEV(15x1)(9x13)BATHCHMGP(16x1)BGSXRPQUKQJYDIPV(44x3)(8x1)(3x1)EWQ(7x12)JJIVUYJ(12x7)XJSYYYTSZBHD(7x14)EDHTGLH(144x13)(130x4)(12x7)(6x14)CYDLYL(43x2)(4x10)DOTG(4x8)ELJI(6x6)QGMRSQ(1x4)K(2x9)GS(40x2)(11x10)CDHAMRCSTVC(8x11)WMZDTRTD(2x14)XS(11x4)IXUNDJVBLSO(2x3)CH(7x7)(2x5)NF(1015x9)(204x1)(20x10)GPKSBZZRRZGMFICXNMIX(141x9)(24x9)NXNCFLIWVVVQNVKDRUTQYNJB(3x8)AXD(33x6)MDGPOLEPZEUNBDWGBSAFRPEMTKUXIJDRA(33x11)(2x15)PY(5x1)XYUAI(9x14)UPOUZTFRQ(17x10)YAMBZLTZMBSRFZOUK(5x10)NXKJE(11x15)GNJTBTSXLTN(299x9)(29x1)(22x10)(5x13)FSAYZ(5x14)MWJOX(178x9)(79x14)(21x12)WXTCOEECSKHDITBOAAVSF(6x15)INXWKB(8x11)NTSEQSMQ(19x1)UTQUQGUDXSFROLQWKVZ(76x6)(3x2)QOL(10x15)UIGYPYAWRR(7x7)JEELSVH(13x12)RUBSHAXAWQGYF(12x12)PGQUXPKEKXRN(4x15)BQEB(8x4)(3x1)AVE(59x15)(11x11)QGBFDCZTADF(22x8)(7x7)RJEZNHA(4x11)MMJN(8x7)(3x7)GNT(174x1)(166x12)(17x2)ZDOBQSATWXMNNJDCV(17x13)(10x14)CATNORVTYK(95x10)(9x5)LROSBZBVM(29x2)ZQBDHDVQJGZTGKDBOSHXOCVXYOSKC(22x11)FXLGIAQRSIJQCGUQPFJXFM(3x8)HSE(3x11)JVV(11x2)(6x7)YCATPH(206x5)(133x6)(31x8)(8x5)YTYSRRBZ(4x13)UYBY(3x6)SJW(32x4)ZCNRDWQGEMLBOCMJMCAJJVJPLIQXSTSG(52x3)(12x10)ENCLYDJSGEYW(13x15)EXRYDALLRZKCF(8x1)RIVKPAAB(8x14)GUSBQGHU(46x2)(1x5)P(34x8)(16x3)GDVLVDXNKOCDWQJI(6x15)YGGNZJ(98x6)(91x10)(11x5)RVKZVECGFPV(8x12)(3x7)URB(54x1)(11x12)JPMMFXPJPMQ(5x1)ZKRGP(19x13)ZJIYXFENCFNAFOEFUNL(1225x12)(534x15)(214x13)(64x15)(5x7)PZQBH(25x10)XSZONMJVANCJZOJPAAEJSRYGT(16x5)PQPCLAYGZUDSQKTZ(83x8)(40x6)ZKUMBQGMGPGEAKSJHFSIPNWEKXZEHBJUUSCVWYMY(10x5)CMXYJOWZZN(6x1)WPARZQ(4x14)FAYY(16x1)(1x11)E(3x12)MLF(25x11)(3x8)BRT(10x14)OGKXRSWWPD(4x1)VFBM(227x12)(150x2)(25x10)YFBSVADMLPNYAIXAPMBRZPTCO(8x14)PKGEMLYV(50x10)DKUPPNRQKKWAJIQCFKGQVRSXTUWPVNQZESPGLNQWMVMAOCORMP(9x6)HVKQYKZAH(26x10)RQQPTHCFQFHIBMEATIAVVKWDWG(57x9)(8x10)QVILTCPK(36x13)LUDTUSNBRJNJCTXOFFMWIMAMWBKXHMMENNSW(2x7)ZQ(62x5)(25x8)(5x15)GCZUZ(9x1)JPDRQMLTB(24x13)YTTGOHFCVHRRGLESEARVNFPQ(178x5)(42x2)(21x15)(8x5)RPZICSEL(3x4)YIL(8x13)(2x11)GF(84x11)(70x2)(7x5)MWWDPMK(7x11)TEYJOFJ(31x1)TWNBXEDRILLPRUGJDBIVBFYNVHGLUED(3x8)VDU(3x9)YYV(7x4)(1x12)L(21x1)(1x4)M(1x8)J(4x3)XJGN(491x9)(148x8)(36x3)(2x9)MG(13x11)EDWPZURXZWLML(4x1)VRBX(31x11)(14x8)KBLQBMRGRGKHCT(5x14)PRDLH(3x8)CQB(32x15)(10x15)RLWBNSAEHH(3x3)HPB(2x2)PA(15x2)TKPIZXDBJJMAZDR(133x8)(1x6)B(83x8)(13x10)WNSKNXUSTCDKE(4x8)NMAW(6x6)EJRNHD(4x14)MLJN(27x5)ZQBFSJWECOPVETZPGXQJPPDQZEL(22x1)(16x1)ZSEPLZISVDFRGRJB(4x13)YRXG(39x2)(33x7)(16x9)HMRXYWRBVITBVWTG(6x2)LCYRSW(123x13)(31x12)WVTWWQZUYGBJOSPKLUQTAGWXXURUDLI(34x10)(7x5)ZTTMEQS(2x8)YX(9x13)ROIYTCKSX(28x13)(3x9)WPV(13x14)PQHWCFNXKFFOH(3x15)EUZ(14x7)(8x15)UHHVOLEJ(914x15)(782x12)(448x5)(118x6)(26x12)(4x12)BLTT(10x2)REYZXYJJFQ(39x8)(8x6)XEWKRGZT(3x8)ECB(5x9)GOBWQ(3x2)KKM(34x7)(18x11)QSQRCJXLCKUYJBPSWG(4x9)XOSJ(34x5)CIABSNSBNQQKAARJOOETKSXJIPOFQOMAPK(24x13)(3x7)ADL(10x3)RVSLAIXAJJ(67x7)(52x9)(3x2)AJH(3x6)OGK(4x9)SQFL(1x1)T(14x14)BQZZXEWSTOKEUA(3x13)HBM(171x14)(25x9)YKLMFOEYQHSODISORNEKDIGVY(12x6)(6x13)OFJBKW(53x7)(21x11)GINJQDIXMAWRHIHJLXFIP(19x8)SVTFKYTLPWYEWWFIUPB(16x12)(2x1)PB(4x8)TMWZ(33x15)(5x3)QBMUH(10x5)UHNESLDFMY(2x4)WW(9x2)(4x7)QTKW(94x10)(47x10)UUVWDQXOXQUFEROVLOZRXIHEPHTWRPSGHLNSYGNIVHEDQGV(34x3)(21x4)(7x9)IMCZEIB(4x2)TNMA(2x9)DM(192x6)(2x7)ZF(2x3)VU(6x13)DODXJG(158x15)(1x4)K(42x12)(2x8)RM(4x6)YMIM(5x2)BXKIG(10x1)ZWQMIAOBEY(78x8)(7x1)XHAETJV(28x1)QPKULGVENLMJWWEHOROJEESLKYTA(3x5)XMZ(18x1)FZBLVDOKGEZKOBICEO(13x9)MWICPPUEWVWKH(7x10)KVNGSWM(116x10)(26x3)(20x8)(8x12)SSVBYWJX(1x9)H(77x14)(12x3)OWHWKICESREK(1x11)D(46x3)(11x5)(5x15)ORJRA(1x13)K(16x3)XRJXBYVIUITRPPYRRNHU diff --git a/advent10-test.txt b/advent10-test.txt deleted file mode 100644 index e9ad2b4..0000000 --- a/advent10-test.txt +++ /dev/null @@ -1,6 +0,0 @@ -value 5 goes to bot 2 -bot 2 gives low to bot 1 and high to bot 0 -value 3 goes to bot 1 -bot 1 gives low to output 1 and high to bot 0 -bot 0 gives low to output 2 and high to output 0 -value 2 goes to bot 2 diff --git a/advent10.hs b/advent10.hs deleted file mode 100644 index 7097c7a..0000000 --- a/advent10.hs +++ /dev/null @@ -1,218 +0,0 @@ -import Text.Parsec hiding (State) --- import Control.Applicative ((<$), (<*), (*>), (<*>), liftA) --- import Data.List (partition, union, intersect, tails) -import Data.Text (pack, unpack, toTitle) -import Control.Monad.State.Lazy -import Data.List (partition, findIndices, sort, find) - -data Destination = Bot | Output deriving (Show, Read, Eq) --- Rule bot low-destination high-destination --- Gift bot value -data Instruction = Rule { ruleId :: Int - , lowDestType :: Destination - , lowDestId :: Int - , highDestType :: Destination - , highDestId :: Int - } | - Gift { giftId :: Int - , value :: Int - } - deriving (Show) - --- bod id [item1, item2] -data Place = Place { placeId :: Int - , placeType :: Destination - , items :: [Int]} - deriving (Show) - --- delivery by bot of low-value and high-value -data Event = Delivery { deliveryId :: Int - , lowDelivery :: Int - , highDelivery :: Int - } | - Update { updateId :: Int - , updateType :: Destination - , updateItem :: Int - } deriving (Show) - -type Factory = ([Place], [Instruction], [Event]) --- data FactorySt History = FactorySt (Factory -> (Factory, History)) - -emptyFactory :: Factory -emptyFactory = ([], [], []) - -main :: IO () -main = do - text <- readFile "advent10.txt" - let instructions = successfulParse $ parseIfile text - part1 instructions - part2 instructions - - -part1 :: [Instruction] -> IO () -part1 instructions = - do let (_, _, events) = snd $ runState (runFactory instructions) emptyFactory - -- let (places, instructions, events) = snd finalFactory - print $ findDelivery events 17 61 - -part2 :: [Instruction] -> IO () -part2 instructions = - do let (places, _, _) = snd $ runState (runFactory instructions) emptyFactory - let outs = findOutputs places [0, 1, 2] - let product = foldl1 (*) $ concatMap (items) outs - print $ product - - -findDelivery :: [Event] -> Int -> Int -> Maybe Event -findDelivery events lowItem highItem = find (delivery) events - where delivery Update {} = False - delivery Delivery {deliveryId = bot, lowDelivery = l, highDelivery = h} - | l == lowItem && h == highItem = True - | otherwise = False - -findOutputs :: [Place] -> [Int] -> [Place] -findOutputs outputs ids = filter (interesting) outputs - where interesting Place {placeId = p, placeType = t, items = i} - | (p `elem` ids) && t == Output = True - | otherwise = False - - -runFactory :: [Instruction] -> State Factory () -runFactory instructions = do - addInstructions instructions - runInstructions instructions - - - -instructionFile = instructionLine `endBy` newline -instructionLine = ruleL <|> giftL - - -ruleL = - do (string "bot" >> spaces) - bot <- many1 digit - (spaces >> string "gives low to" >> spaces) - lowDestType <- (string "output" <|> string "bot") - spaces - lowDest <- many1 digit - (spaces >> string "and high to" >> spaces) - highDestType <- (string "output" <|> string "bot") - spaces - highDest <- many1 digit - let rule = Rule (read bot) - (read $ unpack $ toTitle $ pack lowDestType) - (read lowDest) - (read $ unpack $ toTitle $ pack highDestType) - (read highDest) - return rule - -giftL = - do (string "value" >> spaces) - value <- many1 digit - (spaces >> string "goes to bot" >> spaces) - bot <- many1 digit - let gift = Gift (read bot) (read value) - return gift - - -parseIfile :: String -> Either ParseError [Instruction] -parseIfile input = parse instructionFile "(unknown)" input - -parseIline :: String -> Either ParseError Instruction -parseIline input = parse instructionLine "(unknown)" input - -successfulParse :: Either ParseError [a] -> [a] -successfulParse (Left _) = [] -successfulParse (Right a) = a - - - - -addInstructions :: [Instruction] -> State Factory () -addInstructions [] = return () -addInstructions (i:is) = do - addInstruction i - addInstructions is - - -addInstruction :: Instruction -> State Factory () -addInstruction r@(Rule {lowDestType = ld, lowDestId = li, - highDestType = hd, highDestId = hi}) = - do (places, rules, history) <- get - put (places, r:rules, history) - addPlace (Place {placeType = ld, placeId = li, items = []}) - addPlace (Place {placeType = hd, placeId = hi, items = []}) -addInstruction Gift {giftId = g} = - do addPlace (Place {placeType = Bot, placeId = g, items = []}) - - -addPlace :: Place -> State Factory () -addPlace place = - do (places, rules, history) <- get - if not $ placeElem place places - then put ((place:places), rules, history) - else return () - - -runInstructions :: [Instruction] -> State Factory () -runInstructions [] = return () -runInstructions (i:is) = - do runInstruction i - runInstructions is - - -runInstruction :: Instruction -> State Factory () -runInstruction Rule {} = return () -runInstruction g@(Gift {}) = - do updatePlace (giftId g) Bot (value g) - propogateUpdates - -updatePlace :: Int -> Destination -> Int -> State Factory () -updatePlace b d i = - do (places, instructions, events) <- get - let (place0s, otherPlaces) = partition (samePlace (Place {placeId = b, placeType = d, items = []})) places - let place = head place0s - let place' = place {items = i:(items place)} - let update = Update {updateId = b, updateType = d, updateItem = i} - put (place':otherPlaces, instructions, update:events) - - -propogateUpdates :: State Factory () -propogateUpdates = - do (places, instructions, events) <- get - let (fullBots, otherPlaces) = fullRobots places - if (not . null) fullBots - then do let fullBot = head fullBots - let maybeRule = findRule instructions (placeId fullBot) - case maybeRule of - Nothing -> propogateUpdates - Just rule -> do let small:large:_ = sort $ items fullBot - let emptyBot = fullBot {items = []} - let delivery = Delivery { deliveryId = placeId fullBot - , lowDelivery = small - , highDelivery = large - } - put (emptyBot:(tail fullBots) ++ otherPlaces, - instructions, - delivery:events) - updatePlace (lowDestId rule) (lowDestType rule) small - updatePlace (highDestId rule) (highDestType rule) large - propogateUpdates - else return () - - -placeElem :: Place -> [Place] -> Bool -placeElem place places = (not . null) $ findIndices (samePlace place) places - -samePlace :: Place -> Place -> Bool -samePlace p1 p2 = (placeId p1 == placeId p2) && (placeType p1 == placeType p2) - -fullRobots :: [Place] -> ([Place], [Place]) -fullRobots places = partition (\p -> placeType p == Bot && length (items p) >= 2) places - -findRule :: [Instruction] -> Int -> Maybe Instruction -findRule instructions bot = find ruleForBot instructions - where ruleForBot Gift {} = False - ruleForBot Rule {ruleId = b} - | b == bot = True - | otherwise = False diff --git a/advent10.txt b/advent10.txt deleted file mode 100644 index bcede34..0000000 --- a/advent10.txt +++ /dev/null @@ -1,231 +0,0 @@ -bot 123 gives low to bot 191 and high to bot 162 -bot 191 gives low to output 9 and high to bot 192 -bot 182 gives low to bot 175 and high to bot 196 -bot 113 gives low to bot 172 and high to bot 94 -bot 78 gives low to bot 37 and high to bot 25 -bot 187 gives low to bot 125 and high to bot 45 -bot 71 gives low to bot 108 and high to bot 61 -bot 154 gives low to bot 2 and high to bot 64 -bot 142 gives low to bot 110 and high to bot 163 -bot 109 gives low to output 0 and high to bot 43 -bot 198 gives low to bot 101 and high to bot 52 -bot 138 gives low to bot 9 and high to bot 47 -value 5 goes to bot 189 -bot 179 gives low to bot 176 and high to bot 14 -bot 115 gives low to bot 82 and high to bot 181 -bot 101 gives low to bot 90 and high to bot 5 -bot 9 gives low to output 5 and high to bot 149 -bot 181 gives low to bot 0 and high to bot 27 -bot 119 gives low to bot 207 and high to bot 65 -bot 202 gives low to bot 69 and high to bot 154 -bot 100 gives low to bot 206 and high to bot 169 -bot 72 gives low to bot 205 and high to bot 12 -bot 146 gives low to bot 8 and high to bot 106 -bot 58 gives low to bot 180 and high to bot 123 -value 37 goes to bot 1 -value 61 goes to bot 144 -bot 205 gives low to bot 169 and high to bot 3 -bot 91 gives low to bot 76 and high to bot 84 -bot 93 gives low to bot 122 and high to bot 100 -bot 76 gives low to bot 147 and high to bot 89 -bot 102 gives low to bot 11 and high to bot 23 -bot 43 gives low to output 11 and high to output 12 -bot 128 gives low to bot 15 and high to bot 85 -bot 137 gives low to bot 112 and high to bot 2 -bot 88 gives low to bot 103 and high to bot 55 -bot 162 gives low to bot 192 and high to bot 141 -bot 183 gives low to bot 49 and high to bot 81 -bot 127 gives low to bot 113 and high to bot 207 -value 11 goes to bot 165 -bot 28 gives low to bot 62 and high to bot 42 -bot 95 gives low to bot 42 and high to bot 32 -bot 50 gives low to bot 160 and high to bot 194 -bot 68 gives low to bot 133 and high to bot 142 -bot 20 gives low to bot 208 and high to bot 203 -bot 178 gives low to bot 182 and high to bot 54 -bot 120 gives low to bot 102 and high to bot 99 -bot 131 gives low to bot 67 and high to bot 83 -bot 21 gives low to bot 111 and high to bot 69 -bot 27 gives low to bot 46 and high to bot 193 -bot 98 gives low to bot 63 and high to bot 22 -value 13 goes to bot 7 -bot 121 gives low to bot 155 and high to bot 146 -bot 41 gives low to bot 153 and high to bot 53 -bot 75 gives low to bot 100 and high to bot 205 -value 43 goes to bot 4 -bot 206 gives low to bot 151 and high to bot 77 -bot 0 gives low to bot 95 and high to bot 46 -bot 208 gives low to output 14 and high to bot 126 -bot 40 gives low to bot 187 and high to bot 184 -bot 184 gives low to bot 45 and high to bot 124 -bot 60 gives low to bot 188 and high to bot 202 -value 67 goes to bot 198 -bot 145 gives low to bot 22 and high to bot 108 -bot 197 gives low to bot 195 and high to bot 190 -bot 203 gives low to bot 126 and high to bot 51 -bot 87 gives low to bot 51 and high to bot 179 -bot 64 gives low to bot 128 and high to bot 85 -bot 1 gives low to bot 198 and high to bot 173 -bot 29 gives low to bot 71 and high to bot 168 -bot 47 gives low to bot 149 and high to bot 113 -bot 165 gives low to bot 80 and high to bot 135 -bot 112 gives low to bot 162 and high to bot 174 -bot 149 gives low to output 1 and high to bot 172 -value 41 goes to bot 80 -bot 5 gives low to bot 136 and high to bot 62 -bot 143 gives low to bot 97 and high to bot 41 -bot 86 gives low to bot 145 and high to bot 71 -value 59 goes to bot 147 -bot 57 gives low to bot 30 and high to bot 188 -bot 36 gives low to bot 150 and high to bot 30 -bot 135 gives low to bot 44 and high to bot 117 -bot 134 gives low to bot 16 and high to bot 35 -bot 167 gives low to bot 28 and high to bot 95 -bot 22 gives low to bot 127 and high to bot 119 -bot 26 gives low to bot 81 and high to bot 16 -bot 33 gives low to bot 6 and high to bot 78 -bot 171 gives low to bot 186 and high to bot 17 -bot 16 gives low to bot 96 and high to bot 33 -bot 118 gives low to bot 117 and high to bot 56 -bot 199 gives low to bot 98 and high to bot 145 -bot 188 gives low to bot 21 and high to bot 202 -value 29 goes to bot 164 -bot 169 gives low to bot 77 and high to bot 140 -bot 96 gives low to bot 181 and high to bot 6 -value 71 goes to bot 201 -bot 194 gives low to bot 87 and high to bot 150 -bot 160 gives low to bot 203 and high to bot 87 -bot 15 gives low to bot 158 and high to bot 105 -bot 42 gives low to bot 166 and high to bot 39 -bot 133 gives low to bot 54 and high to bot 110 -value 47 goes to bot 13 -bot 31 gives low to output 8 and high to bot 9 -bot 159 gives low to bot 74 and high to bot 155 -bot 157 gives low to bot 12 and high to bot 187 -bot 176 gives low to bot 139 and high to bot 58 -bot 35 gives low to bot 33 and high to bot 78 -bot 90 gives low to bot 148 and high to bot 136 -bot 122 gives low to bot 70 and high to bot 206 -bot 114 gives low to bot 72 and high to bot 157 -bot 55 gives low to bot 40 and high to bot 184 -bot 37 gives low to bot 193 and high to bot 25 -value 31 goes to bot 13 -bot 107 gives low to bot 99 and high to bot 93 -bot 14 gives low to bot 58 and high to bot 38 -bot 77 gives low to bot 86 and high to bot 29 -bot 116 gives low to bot 79 and high to bot 170 -bot 23 gives low to bot 132 and high to bot 70 -bot 148 gives low to bot 144 and high to bot 120 -bot 195 gives low to bot 170 and high to bot 185 -bot 185 gives low to bot 138 and high to bot 63 -bot 62 gives low to bot 107 and high to bot 166 -bot 174 gives low to bot 141 and high to bot 128 -bot 7 gives low to bot 91 and high to bot 11 -bot 3 gives low to bot 140 and high to bot 34 -bot 12 gives low to bot 3 and high to bot 125 -value 7 goes to bot 148 -bot 70 gives low to bot 161 and high to bot 151 -bot 89 gives low to bot 116 and high to bot 195 -bot 108 gives low to bot 119 and high to bot 204 -bot 201 gives low to bot 1 and high to bot 104 -bot 18 gives low to output 15 and high to bot 208 -bot 66 gives low to bot 177 and high to bot 130 -bot 189 gives low to bot 165 and high to bot 177 -bot 48 gives low to output 13 and high to bot 18 -bot 186 gives low to bot 189 and high to bot 66 -bot 82 gives low to bot 167 and high to bot 0 -bot 92 gives low to bot 201 and high to bot 49 -bot 144 gives low to bot 7 and high to bot 102 -bot 97 gives low to bot 146 and high to bot 153 -bot 104 gives low to bot 173 and high to bot 82 -bot 74 gives low to bot 83 and high to bot 50 -bot 49 gives low to bot 104 and high to bot 115 -bot 172 gives low to output 20 and high to bot 48 -bot 163 gives low to bot 41 and high to bot 53 -bot 117 gives low to bot 26 and high to bot 134 -bot 168 gives low to bot 61 and high to bot 182 -bot 65 gives low to bot 131 and high to bot 74 -bot 180 gives low to output 6 and high to bot 191 -bot 126 gives low to output 19 and high to bot 19 -value 19 goes to bot 186 -bot 166 gives low to bot 93 and high to bot 75 -bot 193 gives low to bot 59 and high to bot 88 -bot 81 gives low to bot 115 and high to bot 96 -bot 207 gives low to bot 94 and high to bot 131 -bot 130 gives low to bot 118 and high to bot 56 -bot 153 gives low to bot 106 and high to bot 152 -value 17 goes to bot 92 -bot 110 gives low to bot 143 and high to bot 163 -bot 192 gives low to output 7 and high to bot 129 -bot 156 gives low to bot 10 and high to bot 68 -bot 83 gives low to bot 20 and high to bot 160 -bot 2 gives low to bot 174 and high to bot 64 -value 23 goes to bot 91 -bot 10 gives low to bot 178 and high to bot 133 -bot 103 gives low to bot 157 and high to bot 40 -bot 61 gives low to bot 204 and high to bot 175 -bot 63 gives low to bot 47 and high to bot 127 -bot 105 gives low to bot 200 and high to bot 24 -bot 79 gives low to output 10 and high to bot 31 -bot 73 gives low to bot 168 and high to bot 178 -bot 19 gives low to output 2 and high to bot 139 -bot 125 gives low to bot 34 and high to bot 156 -bot 56 gives low to bot 134 and high to bot 35 -bot 44 gives low to bot 183 and high to bot 26 -bot 4 gives low to output 3 and high to bot 79 -bot 155 gives low to bot 50 and high to bot 8 -value 73 goes to bot 101 -bot 38 gives low to bot 123 and high to bot 112 -bot 151 gives low to bot 199 and high to bot 86 -bot 17 gives low to bot 66 and high to bot 130 -bot 13 gives low to bot 171 and high to bot 17 -bot 190 gives low to bot 185 and high to bot 98 -bot 161 gives low to bot 190 and high to bot 199 -bot 139 gives low to output 16 and high to bot 180 -bot 99 gives low to bot 23 and high to bot 122 -bot 53 gives low to bot 152 and high to bot 60 -bot 94 gives low to bot 48 and high to bot 67 -bot 132 gives low to bot 197 and high to bot 161 -bot 150 gives low to bot 179 and high to bot 209 -bot 173 gives low to bot 52 and high to bot 167 -bot 45 gives low to bot 156 and high to bot 124 -bot 30 gives low to bot 209 and high to bot 21 -bot 67 gives low to bot 18 and high to bot 20 -bot 84 gives low to bot 89 and high to bot 197 -bot 8 gives low to bot 194 and high to bot 36 -bot 59 gives low to bot 114 and high to bot 103 -bot 209 gives low to bot 14 and high to bot 111 -value 53 goes to bot 76 -bot 69 gives low to bot 137 and high to bot 154 -bot 46 gives low to bot 32 and high to bot 59 -bot 111 gives low to bot 38 and high to bot 137 -bot 196 gives low to bot 121 and high to bot 97 -bot 52 gives low to bot 5 and high to bot 28 -bot 11 gives low to bot 84 and high to bot 132 -bot 204 gives low to bot 65 and high to bot 159 -bot 164 gives low to bot 92 and high to bot 183 -bot 24 gives low to bot 109 and high to bot 43 -value 2 goes to bot 171 -bot 51 gives low to bot 19 and high to bot 176 -bot 136 gives low to bot 120 and high to bot 107 -bot 147 gives low to bot 4 and high to bot 116 -bot 25 gives low to bot 88 and high to bot 55 -bot 129 gives low to output 18 and high to bot 158 -bot 152 gives low to bot 57 and high to bot 60 -bot 39 gives low to bot 75 and high to bot 72 -bot 124 gives low to bot 68 and high to bot 142 -bot 141 gives low to bot 129 and high to bot 15 -bot 85 gives low to bot 105 and high to bot 24 -value 3 goes to bot 90 -bot 80 gives low to bot 164 and high to bot 44 -bot 54 gives low to bot 196 and high to bot 143 -bot 34 gives low to bot 73 and high to bot 10 -bot 175 gives low to bot 159 and high to bot 121 -bot 32 gives low to bot 39 and high to bot 114 -bot 140 gives low to bot 29 and high to bot 73 -bot 200 gives low to output 17 and high to bot 109 -bot 106 gives low to bot 36 and high to bot 57 -bot 177 gives low to bot 135 and high to bot 118 -bot 170 gives low to bot 31 and high to bot 138 -bot 158 gives low to output 4 and high to bot 200 -bot 6 gives low to bot 27 and high to bot 37 diff --git a/advent11.hs b/advent11.hs deleted file mode 100644 index 33bfe3c..0000000 --- a/advent11.hs +++ /dev/null @@ -1,135 +0,0 @@ -import Data.List (subsequences, (\\), sort, sortBy) -import Data.Ord (comparing) - -data Item = Generator String | Microchip String deriving (Show, Eq) -type Floor = [Item] -data Building = Building Int [Floor] deriving (Show, Eq) - -instance Ord Item where - compare (Generator a) (Generator b) = compare a b - compare (Microchip a) (Microchip b) = compare a b - compare (Generator _) (Microchip _) = LT - compare (Microchip _) (Generator _) = GT - -instance Ord Building where - compare b1 b2 = comparing estimateCost b1 b2 - -building1 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium", Generator "ruthenium", - Microchip "ruthenium", Generator "cobalt", Microchip "cobalt"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - -building2 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium", Generator "ruthenium", - Microchip "ruthenium", Generator "cobalt", Microchip "cobalt", - Generator "elerium", Microchip "elerium", - Generator "dilithium", Microchip "dilithium"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - - -buildingTest = Building 0 [ - sort([Microchip "hydrogen", Microchip "lithium"]), - [Generator "hydrogen"], - [Generator "lithium"], - []] - -main :: IO () -main = do - part1 - part2 - - -part1 :: IO () --- part1 = print $ length $ init $ extractJust $ hillClimb [[buildingTest]] [] -part1 = print $ length $ init $ extractJust $ hillClimb [[building1]] [] --- part1 = print $ length $ init $ extractJust $ aStar [[building1]] [] - -part2 :: IO () -part2 = print $ length $ init $ extractJust $ hillClimb [[building2]] [] - - -extractJust :: Maybe [a] -> [a] -extractJust Nothing = [] -extractJust (Just x) = x - -hillClimb :: [[Building]] -> [Building] -> Maybe [Building] -hillClimb [] _ = Nothing -hillClimb (currentTrail:trails) closed = - if isGoal (head currentTrail) then Just currentTrail - else hillClimb newAgenda ((head currentTrail): closed) - where newAgenda = - sortBy (\t1 t2 -> (head t1) `compare` (head t2)) $ - trails ++ (candidates currentTrail closed) - -aStar :: [[Building]] -> [Building] -> Maybe [Building] -aStar [] _ = Nothing -aStar (currentTrail:trails) closed = - if isGoal (head currentTrail) then Just currentTrail - else aStar newAgenda ((head currentTrail): closed) - where newAgenda = - sortBy (\t1 t2 -> (trailCost t1) `compare` (trailCost t2)) $ - trails ++ (candidates currentTrail closed) - trailCost t = estimateCost (head t) + length t - 1 - - -candidates :: [Building] -> [Building] -> [[Building]] -candidates currentTrail closed = newCandidates - where - (candidate:trail) = currentTrail - succs = legalSuccessors $ successors candidate - nonloops = (succs \\ trail) \\ closed - newCandidates = map (\n -> n:candidate:trail) nonloops - -isGoal :: Building -> Bool -isGoal (Building f floors) = - f+1 == height && (all (null) $ take f floors) - where height = length floors - -isLegal :: Building -> Bool -isLegal (Building f floors) = - null floor - || - not (any (isGenerator) floor) - || - any (safePair) pairs - where floor = floors!!f - pairs = [(i, j) | i <- floor, j <- floor, isGenerator i] - safePair (Generator e, Microchip f) = e == f - safePair (Generator _, Generator _) = False - -isGenerator :: Item -> Bool -isGenerator (Generator _) = True -isGenerator (Microchip _) = False - -successors :: Building -> [Building] -successors (Building f floors) = [updateBuilding f floors nf is | nf <- nextFloors, is <- items] - where - floor = floors!!f - items = filter (\is -> length is == 1 || length is == 2) $ subsequences floor - nextFloors = if f == 0 then [1] - else if f+1 == length floors then [f-1] - else [f+1, f-1] - -legalSuccessors :: [Building] -> [Building] -legalSuccessors = filter (isLegal) - -updateBuilding :: Int -> [Floor] -> Int -> [Item] -> Building -updateBuilding oldF oldFloors newF items = Building newF newFloors - where newFloors = map (updateFloor) $ zip [0..] oldFloors - updateFloor (f, fl) - | f == oldF = sort $ fl \\ items - | f == newF = sort $ items ++ fl - | otherwise = fl - -estimateCost :: Building -> Int -estimateCost (Building _ floors) = - sum $ map (\(c, f) -> c * length f) $ zip [0..] $ reverse floors - diff --git a/advent11a.hs b/advent11a.hs deleted file mode 100644 index 6eb5156..0000000 --- a/advent11a.hs +++ /dev/null @@ -1,162 +0,0 @@ --- Using the idea of canonical representation of buildings from --- https://andars.github.io/aoc_day11.html by Andrew Foote, --- plus my extension of represening the pairs as an integer. - --- This version is A* search, using a list for the agenda. - -import Data.List (subsequences, (\\), sort, sortOn, nub, findIndices) -import Data.Ord (comparing) -import Data.Char (isDigit) - -data Item = Generator String | Microchip String deriving (Show, Eq) -type Floor = [Item] -data Building = Building Int [Floor] deriving (Show, Eq) -data CBuilding = CBuilding Int Integer deriving (Show, Eq) -data Agendum = Agendum {current :: Building, trail :: [CBuilding], cost :: Int} - -instance Ord Item where - compare (Generator a) (Generator b) = compare a b - compare (Microchip a) (Microchip b) = compare a b - compare (Generator _) (Microchip _) = LT - compare (Microchip _) (Generator _) = GT - -instance Ord Building where - compare b1 b2 = comparing estimateCost b1 b2 - -building1 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium", Generator "ruthenium", - Microchip "ruthenium", Generator "cobalt", Microchip "cobalt"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - -building0 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - -building2 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium", Generator "ruthenium", - Microchip "ruthenium", Generator "cobalt", Microchip "cobalt", - Generator "elerium", Microchip "elerium", - Generator "dilithium", Microchip "dilithium"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - - -buildingTest = Building 0 [ - sort([Microchip "hydrogen", Microchip "lithium"]), - [Generator "hydrogen"], - [Generator "lithium"], - []] - -canonical :: Building -> CBuilding -canonical (Building f floors) = CBuilding f (read $ filter (isDigit) $ show $ sort pairs) - where names = nub $ map (\(Generator n) -> n) $ filter (isGenerator) $ concat floors - floorOf (Generator g) = head (findIndices - (\fl -> (Generator g) `elem` fl) - floors) - floorOf (Microchip g) = head (findIndices - (\fl -> (Microchip g) `elem` fl) - floors) - pairs = foldl (\ps n -> (floorOf (Generator n), floorOf (Microchip n)):ps) [] names - - - -main :: IO () -main = do - part1 - part2 - - -part1 :: IO () -part1 = print $ length $ trail $ aStar (initAgenda building1) [] - -part2 :: IO () -part2 = print $ length $ trail $aStar (initAgenda building2) [] - -initAgenda :: Building -> [Agendum] -initAgenda b = [Agendum {current = b, trail=[], cost = estimateCost b}] - - -aStar :: [Agendum] -> [CBuilding] -> Agendum -aStar [] _ = Agendum {current=buildingTest, trail=[], cost=0} -aStar (currentAgendum:agenda) closed = - if isGoal reached then currentAgendum - else if creached `elem` closed - then aStar agenda closed - else aStar newAgenda (creached:closed) - where - reached = current currentAgendum - creached = canonical reached - newAgenda = - sortOn (cost) $ - agenda ++ (candidates currentAgendum closed) - - -candidates :: Agendum -> [CBuilding] -> [Agendum] -candidates agendum closed = newCandidates - where - candidate = current agendum - previous = trail agendum - succs = legalSuccessors $ successors candidate - excludable = previous ++ closed - nonloops = filter (\s -> not $ (canonical s) `elem` excludable) succs - newCandidates = map (\n -> makeAgendum n) nonloops - makeAgendum new = Agendum {current = new, - trail = (canonical candidate):previous, - cost = estimateCost new + length previous + 1} - -isGoal :: Building -> Bool -isGoal (Building f floors) = - f+1 == height && (all (null) $ take f floors) - where height = length floors - -isLegal :: Building -> Bool -isLegal (Building f floors) = - null floor - || - not (any (isGenerator) floor) - || - any (safePair) pairs - where floor = floors!!f - pairs = [(i, j) | i <- floor, j <- floor, isGenerator i] - safePair (Generator e, Microchip f) = e == f - safePair (Generator _, Generator _) = False - -isGenerator :: Item -> Bool -isGenerator (Generator _) = True -isGenerator (Microchip _) = False - -successors :: Building -> [Building] -successors (Building f floors) = [updateBuilding f floors nf is | nf <- nextFloors, is <- items] - where - floor = floors!!f - items = filter (\is -> length is == 1 || length is == 2) $ subsequences floor - nextFloors = if f == 0 then [1] - else if f+1 == length floors then [f-1] - else [f+1, f-1] - -legalSuccessors :: [Building] -> [Building] -legalSuccessors = filter (isLegal) - -updateBuilding :: Int -> [Floor] -> Int -> [Item] -> Building -updateBuilding oldF oldFloors newF items = Building newF newFloors - where newFloors = map (updateFloor) $ zip [0..] oldFloors - updateFloor (f, fl) - | f == oldF = sort $ fl \\ items - | f == newF = sort $ items ++ fl - | otherwise = fl - -estimateCost :: Building -> Int -estimateCost (Building _ floors) = - sum $ map (\(c, f) -> c * length f) $ zip [0..] $ reverse floors - diff --git a/advent11h.hs b/advent11h.hs deleted file mode 100644 index ae6e566..0000000 --- a/advent11h.hs +++ /dev/null @@ -1,161 +0,0 @@ --- Using the idea of canonical representation of buildings from --- https://andars.github.io/aoc_day11.html by Andrew Foote, --- plus my extension of represening the pairs as an integer. - --- This version is hillclimbing search, using a list for the agenda. - -import Data.List (subsequences, (\\), sort, sortOn, nub, findIndices) -import Data.Ord (comparing) -import Data.Char (isDigit) - -data Item = Generator String | Microchip String deriving (Show, Eq) -type Floor = [Item] -data Building = Building Int [Floor] deriving (Show, Eq) -data CBuilding = CBuilding Int Integer deriving (Show, Eq) -data Agendum = Agendum {current :: Building, trail :: [CBuilding], cost :: Int} - -instance Ord Item where - compare (Generator a) (Generator b) = compare a b - compare (Microchip a) (Microchip b) = compare a b - compare (Generator _) (Microchip _) = LT - compare (Microchip _) (Generator _) = GT - -instance Ord Building where - compare b1 b2 = comparing estimateCost b1 b2 - -building1 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium", Generator "ruthenium", - Microchip "ruthenium", Generator "cobalt", Microchip "cobalt"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - -building0 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - -building2 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium", Generator "ruthenium", - Microchip "ruthenium", Generator "cobalt", Microchip "cobalt", - Generator "elerium", Microchip "elerium", - Generator "dilithium", Microchip "dilithium"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - - -buildingTest = Building 0 [ - sort([Microchip "hydrogen", Microchip "lithium"]), - [Generator "hydrogen"], - [Generator "lithium"], - []] - -canonical :: Building -> CBuilding -canonical (Building f floors) = CBuilding f (read $ filter (isDigit) $ show $ sort pairs) - where names = nub $ map (\(Generator n) -> n) $ filter (isGenerator) $ concat floors - floorOf (Generator g) = head (findIndices - (\fl -> (Generator g) `elem` fl) - floors) - floorOf (Microchip g) = head (findIndices - (\fl -> (Microchip g) `elem` fl) - floors) - pairs = foldl (\ps n -> (floorOf (Generator n), floorOf (Microchip n)):ps) [] names - - - -main :: IO () -main = do - part1 - part2 - - -part1 :: IO () -part1 = print $ length $ trail $ hillClimb (initAgenda building1) [] - -part2 :: IO () -part2 = print $ length $ trail $ hillClimb (initAgenda building2) [] - -initAgenda :: Building -> [Agendum] -initAgenda b = [Agendum {current = b, trail=[], cost = estimateCost b}] - -hillClimb :: [Agendum] -> [CBuilding] -> Agendum -hillClimb [] _ = Agendum {current=buildingTest, trail=[], cost=0} -hillClimb (currentAgendum:agenda) closed = - if isGoal reached then currentAgendum - else if creached `elem` closed - then hillClimb agenda closed - else hillClimb newAgenda (creached:closed) - where - reached = current currentAgendum - creached = canonical reached - newAgenda = - sortOn (cost) $ - agenda ++ (candidates currentAgendum closed) - - -candidates :: Agendum -> [CBuilding] -> [Agendum] -candidates agendum closed = newCandidates - where - candidate = current agendum - previous = trail agendum - succs = legalSuccessors $ successors candidate - excludable = previous ++ closed - nonloops = filter (\s -> not $ (canonical s) `elem` excludable) succs - newCandidates = map (\n -> makeAgendum n) nonloops - makeAgendum new = Agendum {current = new, - trail = (canonical candidate):previous, - cost = estimateCost new} - -isGoal :: Building -> Bool -isGoal (Building f floors) = - f+1 == height && (all (null) $ take f floors) - where height = length floors - -isLegal :: Building -> Bool -isLegal (Building f floors) = - null floor - || - not (any (isGenerator) floor) - || - any (safePair) pairs - where floor = floors!!f - pairs = [(i, j) | i <- floor, j <- floor, isGenerator i] - safePair (Generator e, Microchip f) = e == f - safePair (Generator _, Generator _) = False - -isGenerator :: Item -> Bool -isGenerator (Generator _) = True -isGenerator (Microchip _) = False - -successors :: Building -> [Building] -successors (Building f floors) = [updateBuilding f floors nf is | nf <- nextFloors, is <- items] - where - floor = floors!!f - items = filter (\is -> length is == 1 || length is == 2) $ subsequences floor - nextFloors = if f == 0 then [1] - else if f+1 == length floors then [f-1] - else [f+1, f-1] - -legalSuccessors :: [Building] -> [Building] -legalSuccessors = filter (isLegal) - -updateBuilding :: Int -> [Floor] -> Int -> [Item] -> Building -updateBuilding oldF oldFloors newF items = Building newF newFloors - where newFloors = map (updateFloor) $ zip [0..] oldFloors - updateFloor (f, fl) - | f == oldF = sort $ fl \\ items - | f == newF = sort $ items ++ fl - | otherwise = fl - -estimateCost :: Building -> Int -estimateCost (Building _ floors) = - sum $ map (\(c, f) -> c * length f) $ zip [0..] $ reverse floors - diff --git a/advent11p.hs b/advent11p.hs deleted file mode 100644 index cdcf030..0000000 --- a/advent11p.hs +++ /dev/null @@ -1,164 +0,0 @@ --- Using the idea of canonical representation of buildings from --- https://andars.github.io/aoc_day11.html by Andrew Foote, --- plus my extension of represening the pairs as an integer. - --- This version is A* search, using a priority queue for the agenda. - -import Data.List (subsequences, (\\), sort, sortOn, nub, findIndices) -import Data.Ord (comparing) -import Data.Char (isDigit) -import Data.Maybe (fromMaybe) -import qualified Data.PQueue.Prio.Min as P - -data Item = Generator String | Microchip String deriving (Show, Eq) -type Floor = [Item] -data Building = Building Int [Floor] deriving (Show, Eq) -data CBuilding = CBuilding Int Integer deriving (Show, Eq) -data Agendum = Agendum {current :: Building, trail :: [CBuilding], cost :: Int} -type Agenda = P.MinPQueue Int Agendum - -instance Ord Item where - compare (Generator a) (Generator b) = compare a b - compare (Microchip a) (Microchip b) = compare a b - compare (Generator _) (Microchip _) = LT - compare (Microchip _) (Generator _) = GT - -instance Ord Building where - compare b1 b2 = comparing estimateCost b1 b2 - -building1 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium", Generator "ruthenium", - Microchip "ruthenium", Generator "cobalt", Microchip "cobalt"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - -building0 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - -building2 = Building 0 [ - (sort [Generator "polonium", Generator "thulium", - Microchip "thulium", Generator "promethium", Generator "ruthenium", - Microchip "ruthenium", Generator "cobalt", Microchip "cobalt", - Generator "elerium", Microchip "elerium", - Generator "dilithium", Microchip "dilithium"]), - (sort [Microchip "polonium", Microchip "promethium"]), - [], - [] - ] - - -buildingTest = Building 0 [ - sort([Microchip "hydrogen", Microchip "lithium"]), - [Generator "hydrogen"], - [Generator "lithium"], - []] - -canonical :: Building -> CBuilding -canonical (Building f floors) = CBuilding f (read $ filter (isDigit) $ show $ sort pairs) - where names = nub $ map (\(Generator n) -> n) $ filter (isGenerator) $ concat floors - floorOf (Generator g) = head (findIndices - (\fl -> (Generator g) `elem` fl) - floors) - floorOf (Microchip g) = head (findIndices - (\fl -> (Microchip g) `elem` fl) - floors) - pairs = foldl (\ps n -> (floorOf (Generator n), floorOf (Microchip n)):ps) [] names - - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ length $ trail $ fromMaybe (snd $ P.findMin $ initAgenda buildingTest) $ aStar (initAgenda building1) [] - -part2 :: IO () -part2 = print $ length $ trail $ fromMaybe (snd $ P.findMin $ initAgenda buildingTest) $ aStar (initAgenda building2) [] - -initAgenda :: Building -> Agenda -initAgenda b = P.singleton (estimateCost b) Agendum {current = b, trail=[], cost = estimateCost b} - - -aStar :: Agenda -> [CBuilding] -> Maybe Agendum --- aStar [] _ = Agendum {current=buildingTest, trail=[], cost=0} -aStar agenda closed - | P.null agenda = Nothing - | otherwise = - if isGoal reached then Just currentAgendum - else if creached `elem` closed - then aStar (P.deleteMin agenda) closed - else aStar newAgenda (creached:closed) - where - (_, currentAgendum) = P.findMin agenda - reached = current currentAgendum - creached = canonical reached - newAgenda = P.union (P.deleteMin agenda) - (P.fromList $ candidates currentAgendum closed) - - -candidates :: Agendum -> [CBuilding] -> [(Int, Agendum)] -candidates agendum closed = newCandidates - where - candidate = current agendum - previous = trail agendum - succs = legalSuccessors $ successors candidate - nonloops = filter (\s -> not $ (canonical s) `elem` closed) succs - newCandidates = map (\a -> (cost a, a)) $ map (\n -> makeAgendum n) nonloops - makeAgendum new = Agendum {current = new, - trail = (canonical candidate):previous, - cost = estimateCost new + length previous + 1} - -isGoal :: Building -> Bool -isGoal (Building f floors) = - f+1 == height && (all (null) $ take f floors) - where height = length floors - -isLegal :: Building -> Bool -isLegal (Building f floors) = - null floor - || - not (any (isGenerator) floor) - || - any (safePair) pairs - where floor = floors!!f - pairs = [(i, j) | i <- floor, j <- floor, isGenerator i] - safePair (Generator e, Microchip f) = e == f - safePair (Generator _, Generator _) = False - -isGenerator :: Item -> Bool -isGenerator (Generator _) = True -isGenerator (Microchip _) = False - -successors :: Building -> [Building] -successors (Building f floors) = [updateBuilding f floors nf is | nf <- nextFloors, is <- items] - where - floor = floors!!f - items = filter (\is -> length is == 1 || length is == 2) $ subsequences floor - nextFloors = if f == 0 then [1] - else if f+1 == length floors then [f-1] - else [f+1, f-1] - -legalSuccessors :: [Building] -> [Building] -legalSuccessors = filter (isLegal) - -updateBuilding :: Int -> [Floor] -> Int -> [Item] -> Building -updateBuilding oldF oldFloors newF items = Building newF newFloors - where newFloors = map (updateFloor) $ zip [0..] oldFloors - updateFloor (f, fl) - | f == oldF = sort $ fl \\ items - | f == newF = sort $ items ++ fl - | otherwise = fl - -estimateCost :: Building -> Int -estimateCost (Building _ floors) = - sum $ map (\(c, f) -> c * length f) $ zip [0..] $ reverse floors - diff --git a/advent12.hs b/advent12.hs deleted file mode 100644 index 21ed32d..0000000 --- a/advent12.hs +++ /dev/null @@ -1,133 +0,0 @@ -import Text.Parsec hiding (State) -import Text.ParserCombinators.Parsec.Number -import Control.Applicative ((<$), (<*), (*>), (<*>), liftA) -import Data.List (partition, union, intersect, tails) -import Data.Char (isDigit) -import Control.Monad.State.Lazy - -data Location = Literal Int | Register Char deriving (Show) -data Instruction = Cpy Location Location | - Inc Location | - Dec Location | - Jnz Location Int - deriving (Show) - -data Machine = Machine { a :: Int - , b :: Int - , c :: Int - , d :: Int - , pc :: Int - , instructions :: [Instruction]} - deriving (Show) - -emptyMachine :: Machine -emptyMachine = Machine {a=0, b=0, c=0, d=0, pc=0, instructions=[]} - -main :: IO () -main = do - text <- readFile "advent12.txt" - let instructions = successfulParse $ parseIfile text - part1 instructions - part2 instructions - - -part1 :: [Instruction] -> IO () -part1 instrs = - do let m0 = emptyMachine {instructions=instrs} - let mf = snd $ runState runMachine m0 - print (a mf) - -part2 :: [Instruction] -> IO () -part2 instrs = - do let m0 = emptyMachine {instructions=instrs, c=1} - let mf = snd $ runState runMachine m0 - print (a mf) - - - -runMachine :: State Machine () -runMachine = - do m <- get - if (pc m) >= (length $ instructions m) - then return () - else do executeStep - runMachine - -executeStep :: State Machine () -executeStep = - do m <- get - let i = (instructions m)!!(pc m) - put (executeInstruction i m) - -executeInstruction :: Instruction -> Machine -> Machine -executeInstruction (Inc (Register r)) m = m' {pc=pc1} - where pc1 = (pc m) + 1 - v = evaluate m (Register r) - m' = writeValue m (Register r) (v+1) -executeInstruction (Dec (Register r)) m = m' {pc=pc1} - where pc1 = (pc m) + 1 - v = evaluate m (Register r) - m' = writeValue m (Register r) (v-1) -executeInstruction (Cpy s d) m = m' {pc=pc1} - where pc1 = (pc m) + 1 - v = evaluate m s - m' = writeValue m d v -executeInstruction (Jnz s d) m - | v == 0 = m {pc=pc1} - | otherwise = m {pc=pcj} - where pc1 = (pc m) + 1 - pcj = (pc m) + d - v = evaluate m s - - -evaluate :: Machine -> Location -> Int -evaluate _ (Literal i) = i -evaluate m (Register r) = - case r of - 'a' -> (a m) - 'b' -> (b m) - 'c' -> (c m) - 'd' -> (d m) - -writeValue :: Machine -> Location -> Int -> Machine -writeValue m (Literal i) _ = m -writeValue m (Register r) v = - case r of - 'a' -> m {a=v} - 'b' -> m {b=v} - 'c' -> m {c=v} - 'd' -> m {d=v} - - -instructionFile = instructionLine `endBy` newline --- instructionLine = choice [cpyL, incL, decL, jnzL] -instructionLine = incL <|> decL <|> cpyL <|> jnzL - -incL = incify <$> (string "inc" *> spaces *> (oneOf "abcd")) - where incify r = Inc (Register r) -decL = decify <$> (string "dec" *> spaces *> (oneOf "abcd")) - where decify r = Dec (Register r) -cpyL = cpyify <$> (string "cpy" *> spaces *> ((many1 letter) <|> (many1 digit))) - <*> (spaces *> (oneOf "abcd")) - where cpyify s r = Cpy (readLocation s) (Register r) -jnzL = jnzify <$> (string "jnz" *> spaces *> ((many1 letter) <|> (many1 digit))) - <*> (spaces *> int) - where jnzify r d = Jnz (readLocation r) d - - -readLocation :: String -> Location -readLocation l - | all (isDigit) l = Literal (read l) - | otherwise = Register (head l) - - - -parseIfile :: String -> Either ParseError [Instruction] -parseIfile input = parse instructionFile "(unknown)" input - -parseIline :: String -> Either ParseError Instruction -parseIline input = parse instructionLine "(unknown)" input - -successfulParse :: Either ParseError [a] -> [a] -successfulParse (Left _) = [] -successfulParse (Right a) = a \ No newline at end of file diff --git a/advent12.txt b/advent12.txt deleted file mode 100644 index 538e9ea..0000000 --- a/advent12.txt +++ /dev/null @@ -1,23 +0,0 @@ -cpy 1 a -cpy 1 b -cpy 26 d -jnz c 2 -jnz 1 5 -cpy 7 c -inc d -dec c -jnz c -2 -cpy a c -inc a -dec b -jnz b -2 -cpy c b -dec d -jnz d -6 -cpy 18 c -cpy 11 d -inc a -dec d -jnz d -2 -dec c -jnz c -5 diff --git a/advent13.hs b/advent13.hs deleted file mode 100644 index 719bc6a..0000000 --- a/advent13.hs +++ /dev/null @@ -1,93 +0,0 @@ -import Data.List ((\\), nub, sortOn) -import Data.Bits (popCount) -import Data.Maybe (fromMaybe) - -type Pos = (Int, Int) - -seed = 1362 - -goal1 = (31, 39) - -main :: IO () -main = do - part1 - part2 - - -part1 :: IO () -part1 = print $ length $ tail $ fromMaybe [] $ aStar [[(1, 1)]] [] - -part2 :: IO () -part2 = do print $ length $ tail $ edl 50 [[(1, 1)]] [] - putStrLn $ showRoomR 30 25 $ edl 50 [[(1, 1)]] [] - - --- extractJust :: Maybe [a] -> [a] --- extractJust Nothing = [] --- extractJust (Just x) = x - -isWall :: Int -> Int -> Bool -isWall x y = odd $ popCount n - where - n = x*x + 3*x + 2*x*y + y + y*y + seed - - -showRoom w h = showRoomR w h [] - -showRoomR w h reached = unlines rows - where - rows = [row x | x <- [0..h]] - row x = [showCell x y | y <- [0..w]] - showCell x y = if (isWall x y) - then '#' - else if (x, y) `elem` reached - then 'O' - else '.' - - -aStar :: [[Pos]] -> [Pos] -> Maybe [Pos] -aStar [] _ = Nothing -aStar (currentTrail:trails) closed = - if isGoal (head currentTrail) then Just currentTrail - else if (head currentTrail) `elem` closed then aStar trails closed - else aStar newAgenda ((head currentTrail): closed) - where newAgenda = - sortOn (\a -> trailCost a) $ - trails ++ (candidates currentTrail closed) - trailCost t = estimateCost (head t) + length t - 1 - - --- exhaustive depth-limited -edl :: Int -> [[Pos]] -> [Pos] -> [Pos] -edl _ [] closed = nub closed -edl limit (currentTrail:trails) closed = - if (length currentTrail) > (limit+1) then edl limit trails ((head currentTrail):closed) - else if (head currentTrail) `elem` closed then edl limit trails closed - else edl limit newAgenda ((head currentTrail):closed) - where newAgenda = trails ++ (candidates currentTrail closed) - -candidates :: [Pos] -> [Pos] -> [[Pos]] -candidates currentTrail closed = newCandidates - where - (candidate:trail) = currentTrail - succs = legalSuccessors $ successors candidate - nonloops = (succs \\ trail) \\ closed - newCandidates = map (\n -> n:candidate:trail) nonloops - -isGoal :: Pos -> Bool -isGoal p = p == goal1 - -isLegal :: Pos -> Bool -isLegal (x, y) = - x >= 0 && y >= 0 && (not $ isWall x y) - -successors :: Pos -> [Pos] -successors (x, y) = [(x-1, y), (x+1, y), (x, y-1), (x, y+1)] - -legalSuccessors :: [Pos] -> [Pos] -legalSuccessors = filter (isLegal) - -estimateCost :: Pos -> Int -estimateCost (x, y) = abs (x - gx) + abs (y - gy) - where (gx, gy) = goal1 - diff --git a/advent14.hs b/advent14.hs deleted file mode 100644 index 22491dd..0000000 --- a/advent14.hs +++ /dev/null @@ -1,41 +0,0 @@ -import Data.List (nub, tails, null) -import Data.Hash.MD5 (md5s, Str(..)) - -salt = "yjdafjpo" --- salt = "abc" - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] - where sq = md5sequence - -part2 :: IO () -part2 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] - where sq = md5sequenceS - -md5sequence :: [String] -md5sequence = [makeMd5 i | i <- [0..]] - where makeMd5 i = md5s (Str (salt ++ show i)) - -md5sequenceS :: [String] -md5sequenceS = [makeMd5 i | i <- [0..]] - where makeMd5 i = stretch $ md5s (Str (salt ++ show i)) - stretch h0 = foldr (\_ h -> md5s (Str h)) h0 [1..2016] - -possibleKey :: [String] -> Int-> Bool -possibleKey s = not . null . repeats 3 . ((!!) s) - -confirmKey :: [String] -> Int -> Bool -confirmKey s i = any (confirmation) $ take 1000 $ drop (i+1) s - where c = head $ repeats 3 $ s!!i - confirmation m = c `elem` (repeats 5 m) - -repeats :: Int -> String -> [String] -repeats n = filter (null . tail) . map (nub) . substrings n - -substrings :: Int -> [a] -> [[a]] -substrings l = filter (\s -> (length s) == l) . map (take l) . tails diff --git a/advent14c.hs b/advent14c.hs deleted file mode 100644 index af8a4af..0000000 --- a/advent14c.hs +++ /dev/null @@ -1,45 +0,0 @@ -import Data.List (nub, tails) -import Data.ByteString.Char8 (pack) -import Crypto.Hash (hash, Digest, MD5) - -salt = "yjdafjpo" --- salt = "abc" - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] - where sq = md5sequence - -part2 :: IO () -part2 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] - where sq = md5sequenceS - -getHash :: String -> String -getHash bs = show (hash $ pack bs :: Digest MD5) - -md5sequence :: [String] -md5sequence = [makeMd5 i | i <- [0..]] - where makeMd5 i = getHash (salt ++ show i) - -md5sequenceS :: [String] -md5sequenceS = [makeMd5 i | i <- [0..]] - where makeMd5 i = stretch $ getHash (salt ++ show i) - stretch h0 = foldr (\_ h -> getHash h) h0 [1..2016] - -possibleKey :: [String] -> Int-> Bool -possibleKey s = not . null . repeats 3 . ((!!) s) - -confirmKey :: [String] -> Int -> Bool -confirmKey s i = any (confirmation) $ take 1000 $ drop (i+1) s - where c = head $ repeats 3 $ s!!i - confirmation m = c `elem` (repeats 5 m) - -repeats :: Int -> String -> [String] -repeats n = filter (null . tail) . map (nub) . substrings n - -substrings :: Int -> [a] -> [[a]] -substrings l = filter (\s -> (length s) == l) . map (take l) . tails diff --git a/advent14parallel.hs b/advent14parallel.hs deleted file mode 100644 index 482b5e0..0000000 --- a/advent14parallel.hs +++ /dev/null @@ -1,51 +0,0 @@ -import Data.List (nub, tails) -import Data.ByteString.Char8 (pack) -import Crypto.Hash (hash, Digest, MD5) -import Control.Parallel.Strategies (withStrategy, parBuffer, rdeepseq) - -salt = "yjdafjpo" --- salt = "abc" - -stretch_factor = [1..2016] --- stretch_factor = [1..100] - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] - where sq = md5sequence - -part2 :: IO () -part2 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] - where sq = md5sequenceS - -getHash :: String -> String -getHash bs = show (hash $ pack bs :: Digest MD5) - -md5sequence :: [String] --- md5sequence = [makeMd5 i | i <- [0..]] -md5sequence = withStrategy (parBuffer 100 rdeepseq) $ map (makeMd5) [0..] - where makeMd5 i = getHash (salt ++ show i) - -md5sequenceS :: [String] --- md5sequenceS = [makeMd5 i | i <- [0..]] -md5sequenceS = withStrategy (parBuffer 100 rdeepseq) $ map (makeMd5) [0..] - where makeMd5 i = stretch $ getHash (salt ++ show i) - stretch h0 = foldr (\_ h -> getHash h) h0 stretch_factor - -possibleKey :: [String] -> Int-> Bool -possibleKey s = not . null . repeats 3 . ((!!) s) - -confirmKey :: [String] -> Int -> Bool -confirmKey s i = any (confirmation) $ take 1000 $ drop (i+1) s - where c = head $ repeats 3 $ s!!i - confirmation m = c `elem` (repeats 5 m) - -repeats :: Int -> String -> [String] -repeats n = filter (null . tail) . map (nub) . substrings n - -substrings :: Int -> [a] -> [[a]] -substrings l = filter (\s -> (length s) == l) . map (take l) . tails diff --git a/advent15.hs b/advent15.hs deleted file mode 100644 index 27793c1..0000000 --- a/advent15.hs +++ /dev/null @@ -1,41 +0,0 @@ -import Text.Parsec -import Text.ParserCombinators.Parsec.Number - -type Disk = (Int -> Bool) - -main :: IO () -main = do - text <- readFile "advent15.txt" - let disks = successfulParse $ parseIfile text - part1 disks - part2 disks - -part1 :: [Disk] -> IO () -part1 disks = print $ head $ filter (canFall disks) [0..] - -part2 :: [Disk] -> IO () -part2 disks = print $ head $ filter (canFall disks2) [0..] - where disks2 = disks ++ [diskify 7 11 0] - -canFall :: [Disk] -> Int -> Bool -canFall ds i = all (\d -> (d i)) ds - - -instructionFile = instructionLine `endBy` newline -instructionLine = diskify <$> (string "Disc #" *> int) - <*> (string " has " *> int) - <*> (string " positions; at time=0, it is at position " *> int) - <* (string ".") - -diskify :: Int -> Int -> Int -> (Int -> Bool) -diskify n size pos0 = (\i -> (size + n + pos0 + i) `mod` size == 0) - -parseIfile :: String -> Either ParseError [Disk] -parseIfile input = parse instructionFile "(unknown)" input - -parseIline :: String -> Either ParseError Disk -parseIline input = parse instructionLine "(unknown)" input - -successfulParse :: Either ParseError [a] -> [a] -successfulParse (Left _) = [] -successfulParse (Right a) = a diff --git a/advent15.test.txt b/advent15.test.txt deleted file mode 100644 index 3683605..0000000 --- a/advent15.test.txt +++ /dev/null @@ -1,3 +0,0 @@ -Disc #1 has 5 positions; at time=0, it is at position 4. -Disc #2 has 2 positions; at time=0, it is at position 1. - diff --git a/advent15.txt b/advent15.txt deleted file mode 100644 index d2463d1..0000000 --- a/advent15.txt +++ /dev/null @@ -1,6 +0,0 @@ -Disc #1 has 5 positions; at time=0, it is at position 2. -Disc #2 has 13 positions; at time=0, it is at position 7. -Disc #3 has 17 positions; at time=0, it is at position 10. -Disc #4 has 3 positions; at time=0, it is at position 2. -Disc #5 has 19 positions; at time=0, it is at position 9. -Disc #6 has 7 positions; at time=0, it is at position 0. diff --git a/advent15l.hs b/advent15l.hs deleted file mode 100644 index f04ab9c..0000000 --- a/advent15l.hs +++ /dev/null @@ -1,37 +0,0 @@ -import Text.Parsec -import Text.ParserCombinators.Parsec.Number - -main :: IO () -main = do - text <- readFile "advent15.txt" - let disks = successfulParse $ parseIfile text - part1 disks - part2 disks - -part1 :: [[Int]] -> IO () -part1 disks = print $ head $ filter (canFall disks) [0..] - -part2 :: [[Int]] -> IO () -part2 disks = print $ head $ filter (canFall disks2) [0..] - where disks2 = disks ++ [drop 7 $ drop 0 $ cycle [0..(11-1)]] - -canFall :: [[Int]] -> Int -> Bool -canFall ds i = all (\d -> (d!!i) == 0) ds - - -instructionFile = instructionLine `endBy` newline -instructionLine = diskify <$> (string "Disc #" *> int) - <*> (string " has " *> int) - <*> (string " positions; at time=0, it is at position " *> int) - <* (string ".") - where diskify n size pos0 = drop n $ drop pos0 $ cycle [0..(size-1)] - -parseIfile :: String -> Either ParseError [[Int]] -parseIfile input = parse instructionFile "(unknown)" input - -parseIline :: String -> Either ParseError [Int] -parseIline input = parse instructionLine "(unknown)" input - -successfulParse :: Either ParseError [a] -> [a] -successfulParse (Left _) = [] -successfulParse (Right a) = a diff --git a/advent16.hs b/advent16.hs deleted file mode 100644 index 0c7bfbb..0000000 --- a/advent16.hs +++ /dev/null @@ -1,41 +0,0 @@ -import Data.List (nub) - -input = "11100010111110100" -disk1length = 272 -disk2length = 35651584 - --- input = "10000" --- disk1length = 20 - -main :: IO () -main = do - part1 - part2 - - -part1 :: IO () -part1 = print $ checksum $ take disk1length $ expand disk1length input - -part2 :: IO () -part2 = print $ checksum $ take disk2length $ expand disk2length input - - -expand :: Int -> String -> String -expand len a - | length a >= len = a - | otherwise = expand len $ a ++ "0" ++ b - where b = map (invert) $ reverse a - invert '0' = '1' - invert '1' = '0' - -checksum :: String -> String -checksum digits - | odd $ length digits = digits - | otherwise = checksum $ map (checksumPair) $ pairs digits - where checksumPair p = if (length $ nub p) == 1 then '1' else '0' - - -pairs :: [a] -> [[a]] -pairs [] = [] -pairs xs = [p] ++ (pairs ys) - where (p, ys) = splitAt 2 xs diff --git a/advent16i.hs b/advent16i.hs deleted file mode 100644 index 4cf13f6..0000000 --- a/advent16i.hs +++ /dev/null @@ -1,43 +0,0 @@ -input = "11100010111110100" -disk1length = 272 -disk2length = 35651584 - --- input = "10000" --- disk1length = 20 - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ fill disk1length input - -part2 :: IO () -part2 = print $ fill disk2length input - -fill :: Int -> String -> String -fill len filler = deBool $ checksum $ take len $ expand len $ enBool filler - -enBool :: String -> [Bool] -enBool = map (== '1') - -deBool :: [Bool] -> String -deBool = map (\b -> if b then '1' else '0') - - -expand :: Int -> [Bool] -> [Bool] -expand len = head . dropWhile ((<= len) . length) . iterate expandStep - -expandStep :: [Bool] -> [Bool] -expandStep a = a ++ [False] ++ b - where b = map (not) $ reverse a - -checksum :: [Bool] -> [Bool] -checksum = head . dropWhile (even . length) . iterate checksumStep - -checksumStep :: [Bool] -> [Bool] -checksumStep [] = [] -checksumStep [x] = [x] -checksumStep (x:y:xs) = (x==y):(checksumStep xs) - diff --git a/advent17.hs b/advent17.hs deleted file mode 100644 index d8be772..0000000 --- a/advent17.hs +++ /dev/null @@ -1,75 +0,0 @@ -import Data.ByteString.Char8 (pack) -import qualified Crypto.Hash as C - -type Position = (Int, Int) -data Agendum = Agendum {position :: Position, path :: String, hash :: String} deriving (Show, Eq) -type Agenda = [Agendum] - --- input = "hijkl" --- input = "ihgpwlah" - -input = "qljzarfv" -- my input - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ path $ extractJust $ bfs initialAgenda - -part2 :: IO () -part2 = print $ bfs2 initialAgenda 0 - -initialAgenda :: Agenda -initialAgenda = [Agendum {position=(1, 1), path="", hash=(getHash "")}] - -getHash :: String -> String -getHash path = show (C.hash $ pack (input ++ path) :: C.Digest C.MD5) - -extractJust :: Maybe Agendum -> Agendum -extractJust Nothing = head initialAgenda -extractJust (Just x) = x - -bfs :: Agenda -> Maybe Agendum -bfs [] = Nothing -bfs (current:agenda) = - if isGoal current then Just current - else bfs (agenda ++ (successors current)) - -bfs2 :: Agenda -> Int -> Int -bfs2 [] l = l -bfs2 (current:agenda) l = - if isGoal current then bfs2 agenda (length $ path $ current) - else bfs2 (agenda ++ (successors current)) l - -isGoal :: Agendum -> Bool -isGoal agendum = (position agendum) == (4, 4) - -isLegalPos :: Position -> Bool -isLegalPos p = fst p >= 1 && fst p <= 4 && snd p >= 1 && snd p <= 4 - -successors :: Agendum -> Agenda -successors state = [Agendum {position = step p0 ld, - path = path0 ++ [ld], - hash = getHash (path0 ++ [ld])} | ld <- legalDoors ] - where - p0 = position state - path0 = path state - h0 = hash state - doors = openDoors h0 - legalDoors = filter (isLegalPos . (step p0)) doors - -openDoors :: String -> String -openDoors h = up ++ down ++ left ++ right - where - up = if h!!0 `elem` "bcdef" then "U" else "" - down = if h!!1 `elem` "bcdef" then "D" else "" - left = if h!!2 `elem` "bcdef" then "L" else "" - right = if h!!3 `elem` "bcdef" then "R" else "" - -step :: Position -> Char -> Position -step (r, c) 'U' = (r-1, c) -step (r, c) 'D' = (r+1, c) -step (r, c) 'L' = (r, c-1) -step (r, c) 'R' = (r, c+1) diff --git a/advent18.hs b/advent18.hs deleted file mode 100644 index e7c304f..0000000 --- a/advent18.hs +++ /dev/null @@ -1,40 +0,0 @@ -import Data.List (tails) - --- input = "..^^." --- input = ".^^.^.^^^^" -input = "^.^^^.^..^....^^....^^^^.^^.^...^^.^.^^.^^.^^..^.^...^.^..^.^^.^..^.....^^^.^.^^^..^^...^^^...^...^." - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () --- part1 = putStrLn $ unlines $ map (showRow) $ take 10 $ iterate nextRow $ readRow input -part1 = print $ length $ filter (not) $ concat $ take 40 $ iterate nextRow $ readRow input - -part2 :: IO () -part2 = print $ length $ filter (not) $ concat $ take 400000 $ iterate nextRow $ readRow input - -readRow :: String -> [Bool] -readRow = map (=='^') - -showRow :: [Bool] -> String -showRow = map (\c -> if c then '^' else '.') - -extended :: [Bool] -> [Bool] -extended row = [False] ++ row ++ [False] - -nextRow :: [Bool] -> [Bool] -nextRow = map (isTrap) . segments . extended - -segments :: [a] -> [[a]] -segments = filter ((==3) . length) . map (take 3) . tails - -isTrap :: [Bool] -> Bool -isTrap segment - | segment == [True, True, False] = True - | segment == [False, True, True] = True - | segment == [True, False, False] = True - | segment == [False, False, True] = True - | otherwise = False diff --git a/advent18f.hs b/advent18f.hs deleted file mode 100644 index a1cd59b..0000000 --- a/advent18f.hs +++ /dev/null @@ -1,48 +0,0 @@ -import Data.List (tails, foldl') - --- input = "..^^." --- input = ".^^.^.^^^^" -input = "^.^^^.^..^....^^....^^^^.^^.^...^^.^.^^.^^.^^..^.^...^.^..^.^^.^..^.....^^^.^.^^^..^^...^^^...^...^." - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ fst $ foldl' nextRowFold (countSafe row, row) [2..40] - where row = readRow input - -part2 :: IO () -part2 = print $ fst $ foldl' nextRowFold (countSafe row, row) [2..400000] - where row = readRow input - -readRow :: String -> [Bool] -readRow = map (=='^') - -showRow :: [Bool] -> String -showRow = map (\c -> if c then '^' else '.') - -extended :: [Bool] -> [Bool] -extended row = [False] ++ row ++ [False] - -nextRow :: [Bool] -> [Bool] -nextRow = map (isTrap) . segments . extended - -nextRowFold :: (Int, [Bool]) -> Int -> (Int, [Bool]) -nextRowFold (n, row) _ = (n + countSafe newRow, newRow) - where newRow = nextRow row - -countSafe :: [Bool] -> Int -countSafe = length . filter (not) - -segments :: [a] -> [[a]] -segments = filter ((==3) . length) . map (take 3) . tails - -isTrap :: [Bool] -> Bool -isTrap segment - | segment == [True, True, False] = True - | segment == [False, True, True] = True - | segment == [True, False, False] = True - | segment == [False, False, True] = True - | otherwise = False diff --git a/advent19.hs b/advent19.hs deleted file mode 100644 index a544da6..0000000 --- a/advent19.hs +++ /dev/null @@ -1,35 +0,0 @@ -import Prelude hiding (length, take, drop) -import Data.Sequence - --- input = 5 -input = 3012210 - -main :: IO () -main = do - part1 - part2 - -part1 :: IO () -part1 = print $ 2 * (input - 2 ^ (toInteger (floor $ logBase 2 (fromIntegral input)))) + 1 - -part2 :: IO () -part2 = print $ flip index 0 $ presentSteps initial - -presentSteps :: Seq Int -> Seq Int -presentSteps elves - | isFinished elves = elves - | otherwise = presentSteps $ next elves - -initial :: Seq Int -initial = fromList [1..input] - -isFinished :: Seq Int -> Bool -isFinished elves = length elves == 1 - -next :: Seq Int -> Seq Int -next elves = prefix >< (midfix |> suffix) - where - target = length elves `quot` 2 - prefix = drop 1 $ take target elves - midfix = drop (target+1) elves - suffix = index elves 0 diff --git a/advent20.hs b/advent20.hs deleted file mode 100644 index 3f43710..0000000 --- a/advent20.hs +++ /dev/null @@ -1,73 +0,0 @@ -import Text.Parsec -import Text.ParserCombinators.Parsec.Number -import Control.Applicative ((<$), (<*), (*>), (<*>), liftA) -import Data.List (foldl') - -data Interval = Interval Int Int deriving (Show, Eq) - -low :: Interval -> Int -low (Interval l _) = l - -high :: Interval -> Int -high (Interval _ h) = h - -main :: IO () -main = do - text <- readFile "advent20.txt" - let intervals = successfulParse $ parseIfile text - part1 intervals - part2 intervals - -part1 :: [Interval] -> IO () -part1 intervals = print $ (+1) $ high $ head $ foldl' (mergeAdjacent) [] $ foldl' (merge) [] intervals - -part2 :: [Interval] -> IO () -part2 intervals = do - let ints = foldl' (mergeAdjacent) [] $ foldl' (merge) [] intervals - let gapCount = gaps ints - let lowGap = low $ head ints - let highGap = 4294967295 - (high $ last ints) - print (lowGap + gapCount + highGap) - -disjoint :: Interval -> Interval -> Bool -disjoint (Interval a b) (Interval c d) - | b < c = True - | d < a = True - | a > d = True - | c > b = True - | otherwise = False - -intersect :: Interval -> Interval -> Bool -intersect a b = not $ disjoint a b - -merge :: [Interval] -> Interval -> [Interval] -merge [] i0 = [i0] -merge (i1:intervals) i0 - | (high i0) < (low i1) = i0:i1:intervals - | intersect i0 i1 = merge intervals (Interval a' b') - | otherwise = i1:(merge intervals i0) - where a' = minimum [low i0, low i1] - b' = maximum [high i0, high i1] - -mergeAdjacent :: [Interval] -> Interval -> [Interval] -mergeAdjacent [] i0 = [i0] -mergeAdjacent (i1:intervals) i0 - | high i0 + 1 == low i1 = (Interval (low i0) (high i1)):intervals - | low i0 == high i1 + 1 = (Interval (low i1) (high i0)):intervals - | otherwise = i1:(mergeAdjacent intervals i0) - -gaps :: [Interval] -> Int -gaps [] = 0 -gaps [_] = 0 -gaps ((Interval _ b):(Interval c d):intervals) = - (c - b - 1) + gaps ((Interval c d):intervals) - -intervalFile = intervalLine `endBy` newline -intervalLine = Interval <$> int <*> (string "-" *> int) - -parseIfile :: String -> Either ParseError [Interval] -parseIfile input = parse intervalFile "(unknown)" input - -successfulParse :: Either ParseError [a] -> [a] -successfulParse (Left _) = [] -successfulParse (Right a) = a diff --git a/advent20.txt b/advent20.txt deleted file mode 100644 index 222a0d9..0000000 --- a/advent20.txt +++ /dev/null @@ -1,1029 +0,0 @@ -1397985562-1399927095 -3833336583-3842601761 -155087348-169525214 -980790001-1002844256 -1977065361-1995466542 -36411396-50881439 -3640866817-3644930814 -2920060305-2932561292 -2865550534-2890593328 -3904139550-3908601694 -732092457-735186747 -1787486182-1806545011 -1491600386-1521258835 -2566773511-2568507598 -2201927929-2217336001 -948934267-952537088 -2146567862-2152339711 -3301828099-3306223909 -476027067-495966189 -2724939184-2726302873 -2270442513-2292973307 -1889038911-1895488302 -1578483230-1586330750 -2640456298-2651236024 -4254290660-4256486512 -1399927096-1421446962 -3253590561-3255525299 -4165315034-4173427102 -2875463797-2888803426 -3656533491-3659451752 -1995466544-2025204494 -3947779886-3987268039 -1521258837-1538635254 -735486056-744123494 -230221149-237996554 -3652971511-3653104884 -3019667516-3024190047 -969642901-977292032 -3645248112-3645595401 -3107902888-3148345903 -3202431537-3216963208 -1220746925-1223070151 -3267241325-3270573499 -903635659-931632639 -2847235008-2856948110 -4224654922-4236958325 -856464812-859836714 -1804748836-1825290046 -4082899236-4091369419 -953634177-954158487 -185823994-190243500 -1964052811-1976412955 -2420916052-2424566745 -953985134-954947310 -2584348542-2614406629 -2191157950-2198152569 -792721019-802271235 -3791161572-3800845341 -1864843815-1865425121 -1974124152-1989195256 -7825290-22939478 -440787397-441318113 -43830518-44800277 -3060173435-3065634268 -3165692093-3169381847 -1833191664-1858547431 -1931833201-1935239219 -57759373-67515020 -4113876528-4114024438 -1942285042-1951328312 -1604942683-1619936021 -853121890-865841853 -1837742103-1838104083 -3653104885-3680835942 -461163769-461467242 -3154277391-3159331043 -1689521647-1696389379 -4132416435-4154260806 -3575213588-3600527150 -962221692-989154668 -1935239220-1964052809 -853763614-856527667 -1529882226-1553729207 -2908870325-2931754108 -2317225465-2326207645 -550660010-557063544 -2362374340-2370047564 -3154439917-3169895876 -2971931902-2973888167 -3915276202-3919826635 -3443104535-3459421692 -2452320784-2463651682 -2645465344-2652262587 -623576471-624671363 -251678316-253256260 -3892899041-3898838343 -464002012-476960875 -3778510328-3794259788 -1032494594-1042075604 -1726869059-1729493515 -3050865580-3058403387 -4096451268-4105743850 -1794978532-1818366498 -1687963887-1693429657 -1919840326-1931792580 -3890085195-3896657673 -687727514-697989805 -2130251157-2132529361 -3709755147-3710261877 -2103854130-2136933959 -1240822471-1247567713 -2490928812-2517604025 -2792885084-2793563605 -4033319760-4037319553 -643767762-679821627 -2244191155-2263679816 -783204448-826857019 -874202754-876456673 -944792902-949779600 -1014490072-1020320091 -3709667893-3710060580 -3034067373-3060173434 -2380617387-2398492444 -3913418161-3925664598 -1327421559-1355573458 -2029296660-2060654925 -1015438314-1024776747 -758467105-766508249 -3196737715-3203535886 -4113219652-4113918216 -1900161068-1903498607 -737196603-742913680 -2762651281-2782581391 -1241724970-1273412553 -2234377553-2234408980 -3485475801-3485850742 -2823889184-2825719103 -546429220-552909166 -3889312069-3891497364 -1402469948-1411853934 -1612881279-1613899725 -609769932-611526589 -2821381184-2837715581 -2793443367-2793757783 -3865830130-3882113243 -2302840856-2330280758 -1587820493-1589487382 -1925168590-1930014298 -139238032-141721873 -3159767763-3165446614 -3124692923-3128639222 -2270740594-2281991663 -1338789977-1355677780 -1748641567-1751344173 -1416549076-1421417040 -4096185893-4097103352 -2627343873-2650750532 -3948622110-3962424399 -3734105837-3770337993 -557813236-573792261 -551603476-555886358 -1030836305-1032494592 -1839182718-1840151300 -833662859-842106273 -1375985004-1393778055 -1219332117-1221436570 -191846359-198587644 -984829875-987740125 -3262588159-3269982376 -4113255424-4114203177 -3754035901-3768277382 -182356017-189508231 -4235072872-4237128944 -2423845665-2424035634 -2247134633-2249391253 -1857070653-1864762228 -2960971255-2986516950 -3609807449-3629876533 -4232009521-4238664410 -2517604027-2532315540 -2284458125-2290950480 -1864762230-1865525184 -1534410012-1552842249 -1413197933-1418525745 -943004746-952141611 -3692615771-3699711756 -1641152229-1667111341 -3747007580-3765218619 -2379349853-2380702573 -2147254282-2171495074 -1839659452-1840812997 -3895746954-3895831312 -1969771475-1979046124 -3083853152-3107315352 -3503489045-3537546786 -2926162506-2931745365 -1533535067-1553811000 -4201206086-4201731554 -3151335418-3163702483 -3589540929-3593463200 -1469107231-1474901685 -1696389381-1748641566 -3910219915-3918863153 -3431523383-3432952214 -4219640842-4234037045 -2150930801-2173615229 -3364393582-3403187084 -3294593092-3301828098 -690072645-725395887 -1123029535-1135646014 -122125578-124303606 -4157086822-4157139009 -3561413702-3569934827 -3814389694-3815485217 -1931792582-1935186677 -3601713750-3623094300 -2322435284-2327697391 -1362099577-1366674586 -628898939-635522883 -3117359644-3135324932 -1119748429-1139457622 -3998554882-4014887284 -2837930003-2838092963 -2123885505-2126641084 -559576606-579617582 -2712491763-2723761235 -1391544337-1397769783 -3416595318-3422405875 -3403187085-3409221687 -1096346351-1099114997 -2703273295-2705328183 -4113785067-4113908859 -206706372-209083880 -3270160481-3271551430 -3285776930-3292794583 -461234099-461937747 -750957483-775003729 -4184090903-4204400455 -362276042-362676210 -4249953310-4250510076 -3477313433-3479866795 -3421127715-3428203812 -900263617-943004744 -835969757-836263940 -1368935057-1381717988 -149206242-166300349 -2154227228-2154605899 -1906507809-1919840325 -305745049-306370999 -1726861064-1728699678 -1357107426-1362288056 -799761595-801167452 -229374054-231369444 -1529834231-1535566821 -754999390-757160209 -1889190091-1897618002 -2138256423-2146567860 -2295710373-2336599718 -1019914990-1023404843 -969695821-980184547 -1443906340-1473362681 -833198360-836801840 -1598512205-1604942681 -3199387842-3210382637 -3895688557-3895758051 -1377900216-1382117658 -3504189983-3527083803 -3577792742-3598561740 -613575187-632091293 -2551456957-2551799726 -4058092124-4103653807 -3381308208-3381342063 -13984873-15227949 -1727002523-1727443872 -2357289728-2361812594 -3876054666-3879516291 -3278228783-3281894754 -1640252019-1649137061 -2372620720-2374166948 -4109383543-4110464683 -2069304258-2091857479 -4107063052-4115320079 -700724903-704038468 -2443015838-2445045788 -2487239190-2506741363 -2840932452-2854276703 -3023346911-3024737732 -855982891-864879970 -3794259789-3803801069 -500728802-502979928 -2043915271-2045977041 -2883286342-2889401600 -3645471325-3645615199 -2570503460-2572567939 -602978860-611682641 -3014237470-3019165777 -82763197-99917251 -3459591973-3480841023 -3726344670-3753436804 -778825357-781459133 -3501129290-3535003794 -2110603192-2124722020 -783458439-789801399 -3244733157-3257526606 -3107315354-3107902887 -3485245437-3487101327 -2981323037-2986657197 -4250870060-4262722661 -402547398-411983817 -1723037247-1732297154 -2168632715-2175630061 -35807058-48835050 -3967606126-3981776003 -1175337592-1177759663 -531093126-538642617 -3639437354-3641516465 -2313078075-2334991622 -2166324817-2172350995 -4271478996-4279496401 -4224492579-4228356386 -213570433-219586693 -3577738508-3578878626 -2004747361-2023251091 -638907979-651338734 -2042269899-2052960282 -3459421693-3470010193 -1255554697-1256876442 -547623253-554247422 -1091999863-1096115712 -3603876264-3620115458 -3743564125-3764787998 -1727097235-1727512693 -3360184134-3361837705 -2693328393-2699639043 -944625756-949285354 -2867948986-2885571238 -3815862045-3817192748 -85521215-90999860 -3492959364-3496450746 -2370047566-2373514273 -978064227-982934994 -3002922234-3034067371 -3702198906-3708772192 -1762248212-1777087215 -3200048313-3217284316 -310731268-314864040 -4256139187-4257030493 -4225267250-4242760473 -4236421277-4249953308 -456593320-464031864 -4173427103-4219640840 -3415471996-3417373524 -517786225-518353134 -2348225752-2349209975 -988767498-1002507583 -251787031-253294331 -2049843175-2053651832 -3272267359-3280700773 -1880334878-1897812119 -2180116083-2181662625 -1325501561-1332569991 -1977956589-1980243809 -1419475215-1429076341 -1571066989-1593324419 -1908591293-1926977363 -892862026-900263616 -2375708935-2420847226 -4252569311-4259706067 -611682642-636576980 -4069864506-4088316591 -3429899073-3443104533 -2881173909-2904242568 -838248538-839457347 -1040048945-1048427339 -2790325698-2817756908 -259065357-260284546 -4251177319-4254787503 -1727035024-1727220036 -1750189264-1751440819 -1182854783-1199103982 -1565110550-1598512204 -1870272544-1906507807 -2294404836-2313311754 -605934295-611508831 -3164119802-3167924307 -1833545461-1834287253 -2077509652-2090604632 -2880238444-2890262424 -1142031337-1148518669 -4005987455-4006591959 -1570054798-1576009746 -2071505543-2096650688 -3485106835-3485722365 -577813461-602978858 -2776866362-2786901141 -652895584-671838947 -3299449839-3300020065 -1623460193-1638054811 -3340666115-3353087971 -2160043893-2166478186 -1096507969-1101378526 -800088830-803013264 -13565145-17743483 -85024888-98806837 -3823224649-3827480049 -3931062541-3938277752 -1012892921-1030836304 -1565255853-1583189516 -1647708193-1660811906 -657010776-666847464 -1839278378-1840330117 -1008973854-1015912839 -1910283066-1913763928 -837557263-838411350 -1282815406-1288995029 -3980611-5584893 -3148345905-3165692092 -2742421263-2776592447 -229688447-231610502 -2743245719-2776866361 -3878098271-3883221309 -801316931-804135040 -1471664269-1473302685 -1667111343-1669791317 -1610947175-1617629889 -2003085048-2013051153 -3307457133-3360184133 -1195340209-1203343093 -2025204495-2028453665 -32923438-47156091 -3168696227-3170592073 -3235742576-3255614827 -2266729227-2280080556 -775349160-775813901 -1473362682-1482720843 -3572312385-3575213587 -528189743-538093910 -2448613175-2454994921 -2843283603-2855830818 -2890593329-2907911642 -153191907-164713586 -4043150608-4096451267 -605875663-610305444 -3021650-3111593 -2420847228-2420916051 -4105743852-4113419273 -2460397045-2462412256 -567585936-602788586 -1727082530-1727671255 -4033434900-4037286987 -4144511592-4162791978 -3075535768-3080851776 -1639907267-1641352662 -920282814-940069234 -3826936712-3829839713 -1916925688-1925357559 -1845213589-1860279111 -1854550234-1855331759 -3065495280-3066648567 -170353613-171186253 -3212824412-3220097963 -2853141261-2853700351 -3556640-3614471 -1976412956-1988224560 -3296627900-3297163117 -725395889-749479392 -2233996777-2234267091 -1757843247-1759325879 -4279435928-4280514617 -801130429-802441496 -3751681078-3760769957 -2347982977-2366662085 -4235682663-4235983270 -3496282296-3499776408 -3821333501-3824224274 -2723761236-2742421261 -2827790660-2835001032 -1935288812-1941728417 -1726855325-1728050569 -1726544710-1727430469 -3940016790-3941936080 -546101318-552097193 -4184013882-4199809831 -2425846522-2426458497 -3361306788-3362865310 -453108094-456181406 -860613212-892862024 -362299769-362572315 -17407637-23147236 -3504547466-3505717615 -985733821-987978530 -2735458050-2740276231 -270737999-279345075 -1787997707-1795677405 -3680835944-3709667892 -3818408771-3825605323 -16201770-24236234 -1158649495-1176112357 -952141612-961131855 -2690399120-2697050905 -2837757591-2838004534 -3487101328-3501129288 -3888980907-3889308041 -3139002312-3144216973 -1812389934-1832528171 -4062104130-4081249321 -4109985868-4116611691 -261499681-305729049 -414982559-415941657 -2837715582-2837939443 -1612314605-1613532579 -1847293843-1854555869 -2048771211-2052518908 -701565294-713634431 -208666820-210559343 -2827420738-2834300681 -4141218867-4154796647 -1970845509-1978651442 -1552842250-1565110548 -412226938-422230809 -596789633-599083332 -571536075-580257978 -4162791979-4165315032 -2578608882-2600367385 -2953753655-2967704893 -1620638998-1623460191 -3652181866-3653081107 -1226734954-1263413684 -208300600-209821102 -3019452277-3019912348 -1614701447-1620638997 -3941936081-3996282520 -3237157247-3249234449 -2348186235-2349807460 -3562813382-3565898388 -3710261879-3738818624 -2629772693-2635508362 -2443958025-2447376004 -399974274-423562472 -1778846705-1790086524 -2234646109-2266729225 -1668227842-1689521646 -3549361830-3564965209 -1286877599-1288249900 -2117171419-2125943104 -3620689032-3652181864 -3299261942-3299688775 -1490791491-1514099208 -3817192749-3833336581 -3410915712-3429899072 -541342032-546429219 -918411171-924314929 -2182745019-2185607312 -2212606518-2214621946 -1779983196-1804748835 -1936162035-1950945741 -3704618658-3705051939 -1764680564-1778846703 -2698697285-2709059938 -1326793529-1329535111 -3702328552-3704015912 -2008848662-2015608293 -1231732813-1247626190 -1750754899-1752420348 -1093229127-1099058712 -4234037046-4236997947 -3493552026-3497919102 -3235053958-3252106974 -4018470466-4036608102 -701727470-719544055 -574115703-596179511 -3202587506-3210265222 -698102469-706160479 -1832528173-1833853020 -441673267-452453492 -2911169435-2921998083 -2229856423-2234646108 -2196901664-2204841238 -1675352425-1691381949 -4250455374-4250513503 -3237515102-3260318492 -171161905-175877664 -2581539215-2596898898 -4004311193-4012385537 -1324083574-1324546090 -4096883078-4097164771 -780817620-784569858 -208242283-211110211 -1330525084-1336070077 -4008229513-4009226682 -834427868-838848257 -348999024-350410733 -467200453-500728800 -4121379695-4138903168 -2949401565-2976409803 -3917170902-3926057375 -3071781061-3074945017 -3299433864-3300019479 -3894069601-3909653487 -3741129648-3770933677 -1337537272-1347157874 -216818049-245842326 -1626689836-1641152228 -1112292760-1131928222 -1651219196-1654305795 -506374440-513152599 -430626871-453108093 -3297525469-3306042698 -3256944-3556639 -2937659849-2949401563 -3915476081-3917349752 -170273133-170386354 -3896834322-3906255111 -2911101673-2912870470 -2383625542-2388030504 -2202988069-2215864531 -3931566185-3938787313 -3893325063-3903409791 -1677593295-1694860962 -1726429432-1726959531 -550814749-553019695 -328183437-332828273 -2463651684-2490928811 -2532315541-2561777512 -902393943-906380753 -3255012511-3262588157 -464031865-471880579 -987894291-990856994 -2994108099-3016224261 -1464668452-1468573067 -3817599599-3819192240 -4281205900-4284988083 -1610485824-1614835930 -2922504894-2943149643 -1366674588-1391544336 -2716673569-2724196148 -2136933960-2141630673 -952929934-954132488 -102430362-103410808 -1097408788-1102041819 -1411884657-1413275434 -1569519099-1595018443 -3314630119-3351858696 -1159063633-1161383669 -1306210365-1310168207 -65606761-70210379 -969367195-1005028750 -305729050-305810398 -2964351925-2968998528 -2586831864-2598752947 -2717800067-2732550815 -1357733985-1357970980 -3142078167-3146050939 -836110255-836394578 -2855830819-2865550532 -1854118661-1854889002 -3275779087-3291457029 -481061771-497879373 -2572567941-2573814074 -3653825904-3656453968 -1752420350-1764680563 -3381301699-3381332932 -1499205864-1508841960 -2568948534-2571512127 -124303608-171161904 -834540652-842353886 -3296634137-3297348568 -756487393-757398433 -2920277931-2929967348 -775003730-775425950 -4006843235-4009222380 -4173461462-4180792939 -2573814075-2627343871 -3379943605-3385769428 -3613135813-3622915872 -456181408-463675190 -1679128363-1689145745 -1771462652-1775663407 -3896043704-3896601721 -3668521412-3670169542 -3189676166-3211906595 -4178058206-4197742264 -649282356-651528503 -4118830219-4151607552 -3403081369-3405163204 -1295416035-1327421558 -3535003795-3540392660 -2521028658-2521094946 -3378794770-3384471028 -3876141848-3885724936 -3415436447-3434089766 -3236961463-3242080308 -1289735149-1320942247 -20583890-31053879 -2039793197-2062178184 -3361173897-3362649522 -476445996-491796622 -2305715287-2337252117 -1407865145-1413213862 -100343325-122125577 -4259473250-4260027959 -1539624652-1558856769 -3388893007-3406562225 -3815438953-3819219050 -88644450-100343323 -2838092965-2853295826 -2298582785-2308283977 -1911552487-1924425897 -3486137486-3495337804 -3087487707-3105123828 -2449249575-2459990446 -1114195378-1147840884 -3084130783-3090098247 -280604127-291812349 -251655795-252002640 -2065738411-2068050329 -3540392662-3561413701 -4108709270-4110339849 -185357325-191846357 -2988550972-3002922233 -2008583503-2009174592 -367514957-375053863 -3738337-5109287 -2068050330-2103854128 -2185761689-2201113375 -502979929-541342030 -437711847-441825502 -763342493-770307022 -3891568242-3896055908 -2771403009-2783873057 -857296477-865365400 -2372996602-2415318753 -209779549-212434153 -3904992626-3910219913 -2976409804-2983591595 -3614472-4019606 -3429649651-3432451145 -2312224052-2330392688 -3889124925-3889312068 -3368044346-3369236254 -2485542419-2506962662 -3703774963-3704692844 -249324444-259065356 -3038718563-3063082755 -2348008128-2348750596 -4027659985-4040018381 -4020167637-4028011463 -631597603-638907977 -156806924-163856510 -465625162-475575707 -1653345924-1655794173 -644029368-673749955 -1342645425-1348056082 -754961620-757509941 -2185607313-2229856421 -2430693014-2452320783 -2423618253-2423991135 -2578007008-2593849390 -251455290-252167220 -2141431440-2145256393 -461551382-490688234 -1280627802-1282187341 -2447416346-2448485092 -801034819-803950109 -3803801071-3817168598 -2791159575-2797552524 -2444538618-2447695611 -3656900217-3658497760 -362424586-362913246 -2315692184-2318703938 -2658294991-2705851874 -758225777-762221309 -3220097965-3253590560 -3918863154-3937848140 -3842601762-3867989792 -1362989964-1365638761 -2669543622-2698580716 -204441701-216667513 -3337068522-3351226708 -2910214082-2911637865 -2887286425-2894235722 -2556506098-2564781736 -3660974732-3670236178 -3738818625-3765658510 -3926612436-3931754899 -849660339-860613211 -3878152839-3882588354 -1198564716-1203493708 -90563967-91509385 -4113419274-4118830217 -2421569872-2430693012 -1380512818-1382191639 -2171495075-2182745017 -2346496816-2347982976 -2773187116-2776527627 -3264380514-3275779086 -2795335811-2807483836 -1255625643-1259049524 -3039851327-3062062714 -3477125643-3485106833 -368161721-385647773 -557063546-567450813 -2662245837-2698867380 -409471723-415008368 -2692399192-2709671522 -3289361982-3294593090 -2444382077-2446243156 -995864334-1008973852 -1485359185-1511483438 -3170296689-3173219013 -651528504-684359142 -2799805080-2819283989 -2745894337-2761860632 -4021069786-4034189388 -2423235028-2423776100 -1161581883-1172788321 -575303235-584246627 -1323324671-1324380624 -423562473-430626869 -3173219015-3207487851 -256367467-256655264 -2729359684-2736808477 -2979779055-2988550970 -1482720845-1491600385 -1057830454-1067468142 -107593407-117739880 -251911362-252150667 -3569934829-3575123572 -2241251261-2263701349 -2726382705-2727247227 -4037319554-4043150606 -3718405500-3739070428 -2364203325-2366532950 -836023031-836878401 -961131857-995864333 -3961933297-3977917454 -3180447251-3212824411 -3124189059-3126106003 -793312386-802938899 -3873230388-3877536365 -2841402828-2852690950 -2931754109-2946377103 -4097161122-4098833023 -2953494240-2963922968 -1016080923-1023809512 -2305965588-2325470268 -1726429959-1728139098 -1725984972-1746517984 -2280080557-2294404834 -1453817212-1468119920 -3343366097-3354792825 -2726120736-2727168410 -1726047629-1726491275 -2425599810-2428632507 -1127809348-1136655248 -784569859-830872706 -3362865312-3399674855 -467374870-490345878 -2028166733-2029296658 -3793434985-3799550158 -4113324238-4114378130 -2768224805-2776292356 -3076910664-3083853151 -3795367294-3799559727 -983334314-985924731 -2566325429-2567644886 -2079828370-2095628301 -1355677782-1357107425 -3139807-3256943 -2297016509-2339606996 -3937987517-3940016788 -3111594-3180044 -3408799234-3410915710 -2736163676-2737085107 -2927299659-2930923781 -2828368238-2835482134 -2924361649-2933817173 -3278336262-3282205864 -209200196-211114889 -1089312986-1101840140 -2426098602-2426594407 -3761524602-3771101074 -4038400571-4039718550 -4278817904-4281979539 -1971790010-1982080495 -2482451447-2482859303 -696142504-708558552 -832751897-838668629 -522885199-537712867 -3854296653-3860724814 -4250257176-4250870059 -1098058891-1101871591 -2041494246-2044474847 -3379302636-3380200608 -2823631138-2825091086 -3114946479-3141035176 -2564781738-2570503459 -3066648569-3072839529 -2963998950-2966815574 -3996282522-4010140708 -2609189498-2612898027 -1398040334-1399196426 -2705851875-2712491761 -3303896197-3307457131 -3072710194-3078315569 -2650750533-2658294989 -125494120-152726161 -1799712687-1813651344 -4113647358-4114354821 -914689746-931400632 -2334991623-2346496814 -952020939-952231689 -3279484720-3279924084 -826369329-829381680 -306371001-356731744 -2545936899-2562194811 -755902693-769100113 -2423872436-2428440493 -1040252532-1043084518 -2531373947-2564360722 -3758158314-3765326552 -250882458-253102421 -2445299323-2451474922 -2845734926-2859990778 -2571586320-2571725933 -4010140709-4018470464 -1397769785-1398762710 -3812038748-3819957572 -2446738279-2447892957 -3600527152-3609409007 -260284548-271403358 -108405773-115248353 -1910315960-1918268562 -1323436354-1327278720 -2234068374-2234384404 -982370550-984890793 -362487749-363332785 -3703404287-3704710600 -511536791-531472470 -1204860806-1211356557 -1280824569-1283027536 -1864956505-1865664159 -1264539978-1280627800 -838668630-849660337 -1039302291-1048802154 -3820162182-3829891468 -252725400-258978812 -3811611218-3815532558 -5584894-20583889 -2571534738-2571657850 -383938370-391077230 -732225856-735643042 -2968582589-2972324720 -2379822184-2380941432 -775813903-782941501 -836283753-836553990 -2786901143-2790325697 -2907911644-2910586722 -3879031171-3883342655 -2446835992-2450584620 -3604970524-3620689031 -3656986634-3664253237 -108870276-116802953 -50881441-82763196 -830872708-834595234 -948787824-952327285 -3554278607-3558372901 -1411483095-1443906338 -1305613100-1306576996 -1171167570-1175215348 -145365808-166164576 -3344972328-3354937927 -178346121-180017093 -3487950867-3498067707 -3455826248-3468331688 -1357654405-1361499079 -2373804146-2375708934 -1682091088-1685006321 -2532666674-2554100432 -3872534964-3888980905 -684359144-690072644 -31053881-36411395 -749479393-750957481 -1233001829-1257233242 -1109953682-1114195377 -175877666-185357324 -1283027537-1289735147 -3374715947-3381800912 -1283434504-1286474690 -1402640030-1423128613 -1426046568-1440437597 -3021217411-3028438706 -3449839444-3455646128 -2192814747-2207353667 -1039244541-1044508076 -363332786-399974272 -620349463-624462815 -3118427268-3142548507 -1177759665-1219332116 -1223070153-1264539977 -2469319931-2491726485 -1101840141-1109953680 -1048427340-1089312984 -2577948853-2584544199 -43965520-47689181 -1833568506-1857070652 -356731745-362276040 -4262722663-4294967295 -2632338905-2641519671 -0-3021649 -1148518671-1158649494 -3562116150-3562242974 -567450814-585792807 -198587645-249324442 -3756871898-3778510326 -2815453754-2821381182 -3562113904-3562138636 -2567358294-2571273144 -2061605698-2065382934 -1865301101-1870272543 -2565458232-2569021972 -267026988-275785393 -2570888765-2571620263 -179248341-180073497 -267066134-277088479 -2060654926-2062597974 -2065382936-2066893485 -3298704119-3299564801 -2194534845-2218883408 diff --git a/advent21.hs b/advent21.hs deleted file mode 100644 index d51bd10..0000000 --- a/advent21.hs +++ /dev/null @@ -1,196 +0,0 @@ -import Text.Parsec hiding (State) -import Text.ParserCombinators.Parsec.Number -import Data.Maybe (fromJust) -import Data.List (elemIndex) - -import Control.Monad.Identity -import Control.Monad.State -import Control.Monad.Writer - -data Instruction = SwapPosition Int Int - | SwapLetter Char Char - | RotateSteps Int - | RotateLetter Char - | Reverse Int Int - | Move Int Int - deriving (Show, Eq) - -data Log = Log { - action :: String - } deriving (Show) - -data Password = Password { - password :: String - } deriving (Show) - - -type App = WriterT [Log] (StateT Password Identity) - -infixl 9 ?? - -(??) :: Eq a => [a] -> a -> Int -(??) items item = fromJust $ elemIndex item items - - -initial = "abcdefgh" -final = "fbgdceah" - -testInstructions = "\ -\swap position 4 with position 0\n\ -\swap letter d with letter b\n\ -\reverse positions 0 through 4\n\ -\rotate left 1 step\n\ -\move position 1 to position 4\n\ -\move position 3 to position 0\n\ -\rotate based on position of letter b\n\ -\rotate based on position of letter d\n" - -main :: IO () -main = do - -- let ti = successfulParse $ parseIfile testInstructions - -- part1 ti "abcde" - -- part2 (reverse ti) "decab" - text <- readFile "advent21.txt" - let instructions = successfulParse $ parseIfile text - part1 instructions initial - part2 (reverse instructions) final - -part1 :: [Instruction] -> String -> IO () -part1 instructions start = - let st = Password {password = start} - ((_, log), st') = runIdentity (runStateT (runWriterT (apply instructions)) st) - in do - -- putStrLn $ unlines $ map (action) log - putStrLn $ password st' - -part2 :: [Instruction] -> String -> IO () -part2 instructions end = - let st = Password {password = end} - ((_, log), st') = runIdentity (runStateT (runWriterT (unApply instructions)) st) - in do - -- putStrLn $ unlines $ map (action) log - putStrLn $ password st' - - -apply :: [Instruction] -> App () -apply [] = return () -apply (i:is) = - do st <- get - let p0 = password st - let p1 = applyInstruction i p0 - put st {password = p1} - tell [Log (p0 ++ " -> " ++ p1 ++ " : " ++ (show i))] - apply is - - -applyInstruction :: Instruction -> String -> String -applyInstruction (SwapPosition from to) p0 - | from == to = p0 - | otherwise = prefix ++ [p0!!end] ++ midfix ++ [p0!!start] ++ suffix - where start = minimum [from, to] - end = maximum [from, to] - prefix = take start p0 - midfix = take (end-start-1) $ drop (start+1) p0 - suffix = drop (end+1) p0 - -applyInstruction (SwapLetter l0 l1) p0 = applyInstruction (SwapPosition (p0??l0) (p0??l1)) p0 - -applyInstruction (RotateSteps n) p0 = (drop n' p0) ++ (take n' p0) - where n' = if n < 0 - then (-1 * n) - else (length p0) - n - -applyInstruction (RotateLetter l) p0 = applyInstruction (RotateSteps n) p0 - where n = (1 + (p0??l) + if (p0??l) >= 4 then 1 else 0) `mod` (length p0) - -applyInstruction (Reverse from to) p0 - | from == to = p0 - | otherwise = prefix ++ (reverse midfix) ++ suffix - where start = minimum [from, to] - end = maximum [from, to] - prefix = take start p0 - midfix = take (end-start+1) $ drop start p0 - suffix = drop (end+1) p0 - -applyInstruction (Move from to) p0 - | from == to = p0 - | otherwise = prefix ++ [p0!!from] ++ suffix - where without = take from p0 ++ drop (from+1) p0 - prefix = take to without - suffix = drop (to) without - - -unApply :: [Instruction] -> App () -unApply [] = return () -unApply (i:is) = - do st <- get - let p0 = password st - let p1 = unApplyInstruction i p0 - put st {password = p1} - tell [Log (p1 ++ " <- " ++ p0 ++ " : " ++ (show i))] - unApply is - -unApplyInstruction :: Instruction -> String -> String -unApplyInstruction (SwapPosition from to) p0 = applyInstruction (SwapPosition from to) p0 -unApplyInstruction (SwapLetter l0 l1) p0 = applyInstruction (SwapLetter l0 l1) p0 -unApplyInstruction (RotateSteps n) p0 = applyInstruction (RotateSteps (-1 * n)) p0 -unApplyInstruction (Reverse from to) p0 = applyInstruction (Reverse from to) p0 -unApplyInstruction (Move from to) p0 = applyInstruction (Move to from) p0 -unApplyInstruction (RotateLetter l) p0 = applyInstruction (RotateSteps n) p0 - where n = case (p0??l) of - 0 -> -1 - 1 -> -1 - 2 -> 2 - 3 -> -2 - 4 -> 1 - 5 -> -3 - 6 -> 0 - 7 -> -4 - -- where n = case (p0??l) of - -- 0 -> -1 - -- 1 -> -1 - -- 2 -> 1 - -- 3 -> -2 - -- 4 -> 1 - - -instructionFile = instructionLine `endBy` newline -instructionLine = choice [ swapL - , rotateL - , reverseL - , moveL - ] - -swapL = (try (string "swap ")) *> (swapPosL <|> swapLetterL) - -swapPosL = SwapPosition <$> (string "position" *> spaces *> int) - <*> (spaces *> string "with position" *> spaces *> int) - -swapLetterL = SwapLetter <$> (string "letter" *> spaces *> letter) - <*> (spaces *> string "with letter" *> spaces *> letter) - -rotateL = (try (string "rotate ")) *> (rotateDirL <|> rotateLetterL) - -rotateDirL = rotateStepify <$> ((string "left") <|> (string "right")) - <*> (spaces *> int <* spaces <* skipMany letter) - where rotateStepify dir n = case dir of - "left" -> (RotateSteps (-1 * n)) - "right" -> (RotateSteps n) -rotateLetterL = RotateLetter <$> (string "based on position of letter " *> letter) - -reverseL = Reverse <$> (string "reverse positions" *> spaces *> int) - <*> (spaces *> (string "through") *> spaces *> int) - -moveL = Move <$> (string "move position" *> spaces *> int) - <*> (spaces *> (string "to position") *> spaces *> int) - - -parseIfile :: String -> Either ParseError [Instruction] -parseIfile input = parse instructionFile "(unknown)" input - -parseIline :: String -> Either ParseError Instruction -parseIline input = parse instructionLine "(unknown)" input - -successfulParse :: Either ParseError [a] -> [a] -successfulParse (Left _) = [] -successfulParse (Right a) = a diff --git a/advent21.txt b/advent21.txt deleted file mode 100644 index b445817..0000000 --- a/advent21.txt +++ /dev/null @@ -1,100 +0,0 @@ -rotate based on position of letter a -swap letter g with letter d -move position 1 to position 5 -reverse positions 6 through 7 -move position 5 to position 4 -rotate based on position of letter b -reverse positions 6 through 7 -swap letter h with letter f -swap letter e with letter c -reverse positions 0 through 7 -swap position 6 with position 4 -rotate based on position of letter e -move position 2 to position 7 -swap position 6 with position 4 -rotate based on position of letter e -reverse positions 2 through 3 -rotate right 2 steps -swap position 7 with position 1 -move position 1 to position 2 -move position 4 to position 7 -move position 5 to position 0 -swap letter e with letter f -move position 4 to position 7 -reverse positions 1 through 7 -rotate based on position of letter g -move position 7 to position 4 -rotate right 6 steps -rotate based on position of letter g -reverse positions 0 through 5 -reverse positions 0 through 7 -swap letter c with letter f -swap letter h with letter f -rotate right 7 steps -rotate based on position of letter g -rotate based on position of letter c -swap position 1 with position 4 -move position 7 to position 3 -reverse positions 2 through 6 -move position 7 to position 0 -move position 7 to position 1 -move position 6 to position 7 -rotate right 5 steps -reverse positions 0 through 6 -move position 1 to position 4 -rotate left 3 steps -swap letter d with letter c -move position 4 to position 5 -rotate based on position of letter f -rotate right 1 step -move position 7 to position 6 -swap position 6 with position 0 -move position 6 to position 2 -rotate right 1 step -swap position 1 with position 6 -move position 2 to position 6 -swap position 2 with position 1 -reverse positions 1 through 7 -move position 4 to position 1 -move position 7 to position 0 -swap position 6 with position 7 -rotate left 1 step -reverse positions 0 through 4 -rotate based on position of letter c -rotate based on position of letter b -move position 2 to position 1 -rotate right 0 steps -swap letter b with letter d -swap letter f with letter c -swap letter d with letter a -swap position 7 with position 6 -rotate right 0 steps -swap position 0 with position 3 -swap position 2 with position 5 -swap letter h with letter f -reverse positions 2 through 3 -rotate based on position of letter c -rotate left 2 steps -move position 0 to position 5 -swap position 2 with position 3 -rotate right 1 step -rotate left 2 steps -move position 0 to position 4 -rotate based on position of letter c -rotate based on position of letter g -swap position 3 with position 0 -rotate right 3 steps -reverse positions 0 through 2 -move position 1 to position 2 -swap letter e with letter c -rotate right 7 steps -move position 0 to position 7 -rotate left 2 steps -reverse positions 0 through 4 -swap letter e with letter b -reverse positions 2 through 7 -rotate right 5 steps -swap position 2 with position 4 -swap letter d with letter g -reverse positions 3 through 4 -reverse positions 4 through 5 diff --git a/adventofcode16/Setup.hs b/adventofcode16/Setup.hs new file mode 100644 index 0000000..9a994af --- /dev/null +++ b/adventofcode16/Setup.hs @@ -0,0 +1,2 @@ +import Distribution.Simple +main = defaultMain diff --git a/adventofcode16/adventofcode16.cabal b/adventofcode16/adventofcode16.cabal new file mode 100644 index 0000000..39c0942 --- /dev/null +++ b/adventofcode16/adventofcode16.cabal @@ -0,0 +1,355 @@ +name: adventofcode16 +version: 0.1.0.0 +synopsis: Initial project template from stack +description: Please see README.md +homepage: https://github.com/neilnjae/adventofcode16#readme +license: BSD3 +license-file: LICENSE +author: Neil Smith +maintainer: noone@njae.me.uk +copyright: 2016 Neil Smith +category: None +build-type: Simple +extra-source-files: README.md +cabal-version: >=1.10 + +library + hs-source-dirs: src + exposed-modules: Lib + build-depends: base >= 4.7 && < 5 + default-language: Haskell2010 + +executable advent01 + hs-source-dirs: app + main-is: advent01.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , split + default-language: Haskell2010 + +executable advent02 + hs-source-dirs: app + main-is: advent02.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , array + default-language: Haskell2010 + +executable advent03 + hs-source-dirs: app + main-is: advent03.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , split + default-language: Haskell2010 + +executable advent04 + hs-source-dirs: app + main-is: advent04.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , split + , containers + default-language: Haskell2010 + +executable advent05 + hs-source-dirs: app + main-is: advent05.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , containers + , MissingH + default-language: Haskell2010 + +executable advent06 + hs-source-dirs: app + main-is: advent06.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +executable advent07 + hs-source-dirs: app + main-is: advent07.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + default-language: Haskell2010 + +executable advent08 + hs-source-dirs: app + main-is: advent08.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , array + , parsec + default-language: Haskell2010 + +executable advent09 + hs-source-dirs: app + main-is: advent09.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , split + default-language: Haskell2010 + +executable advent10 + hs-source-dirs: app + main-is: advent10.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , text + , mtl + default-language: Haskell2010 + +executable advent11 + hs-source-dirs: app + main-is: advent11.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +executable advent11a + hs-source-dirs: app + main-is: advent11a.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +executable advent11h + hs-source-dirs: app + main-is: advent11h.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +executable advent11p + hs-source-dirs: app + main-is: advent11p.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , pqueue + default-language: Haskell2010 + +executable advent12 + hs-source-dirs: app + main-is: advent12.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + , mtl + default-language: Haskell2010 + +executable advent13 + hs-source-dirs: app + main-is: advent13.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , MissingH + default-language: Haskell2010 + +executable advent14 + hs-source-dirs: app + main-is: advent14.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , MissingH + default-language: Haskell2010 + +executable advent14c + hs-source-dirs: app + main-is: advent14c.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , bytestring + , cryptonite + default-language: Haskell2010 + +executable advent14parallel + hs-source-dirs: app + main-is: advent14parallel.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parallel + , bytestring + , cryptonite + default-language: Haskell2010 + +executable advent15 + hs-source-dirs: app + main-is: advent15.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + default-language: Haskell2010 + +executable advent15l + hs-source-dirs: app + main-is: advent15l.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + default-language: Haskell2010 + +executable advent16 + hs-source-dirs: app + main-is: advent16.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +executable advent16i + hs-source-dirs: app + main-is: advent16i.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +executable advent17 + hs-source-dirs: app + main-is: advent17.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , bytestring + , cryptonite + default-language: Haskell2010 + +executable advent18 + hs-source-dirs: app + main-is: advent18.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +executable advent18f + hs-source-dirs: app + main-is: advent18f.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +executable advent19 + hs-source-dirs: app + main-is: advent19.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , containers + default-language: Haskell2010 + +executable advent20 + hs-source-dirs: app + main-is: advent20.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + default-language: Haskell2010 + +executable advent21 + hs-source-dirs: app + main-is: advent21.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + , mtl + default-language: Haskell2010 + +executable advent22 + hs-source-dirs: app + main-is: advent22.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + default-language: Haskell2010 + +executable advent22search + hs-source-dirs: app + main-is: advent22search.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + default-language: Haskell2010 + +executable advent22showgrid + hs-source-dirs: app + main-is: advent22showgrid.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + default-language: Haskell2010 + +executable advent22library + hs-source-dirs: app + main-is: advent22library.hs + ghc-options: -O2 -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + , parsec + , parsec-numbers + , containers + , astar + , unordered-containers + , hashable + default-language: Haskell2010 + + +executable adventofcode16-exe + hs-source-dirs: app + main-is: Main.hs + ghc-options: -threaded -rtsopts -with-rtsopts=-N + build-depends: base + , adventofcode16 + default-language: Haskell2010 + +test-suite adventofcode16-test + type: exitcode-stdio-1.0 + hs-source-dirs: test + main-is: Spec.hs + build-depends: base + , adventofcode16 + ghc-options: -threaded -rtsopts -with-rtsopts=-N + default-language: Haskell2010 + +source-repository head + type: git + location: https://github.com/neilnjae/adventofcode16 diff --git a/adventofcode16/app/Main.hs b/adventofcode16/app/Main.hs new file mode 100644 index 0000000..de1c1ab --- /dev/null +++ b/adventofcode16/app/Main.hs @@ -0,0 +1,6 @@ +module Main where + +import Lib + +main :: IO () +main = someFunc diff --git a/adventofcode16/app/advent01.hs b/adventofcode16/app/advent01.hs new file mode 100644 index 0000000..b76195d --- /dev/null +++ b/adventofcode16/app/advent01.hs @@ -0,0 +1,99 @@ +module Main(main) where + +import Data.List (sort) +import Data.List.Split (splitOn) + +-- turn direction, number of steps +data Step = Step Char Int deriving (Show) + +data Direction = North | East | South | West + deriving (Enum, Show, Bounded, Eq) + +-- direction, easting, northing +data Position = Position Direction Int Int deriving (Show) +-- Two positions are the same if they're in the same place, +-- regardless of facing +instance Eq Position where + Position _ e n == Position _ e' n' = e == e' && n == n' + +main :: IO () +main = do + instructions <- readFile "data/advent01.txt" + part1 instructions + part2 instructions + +part1 :: String -> IO () +part1 instructions = do + let answer = finalDistance $ last $ stepsFromStart $ steps instructions + print answer + +part2 :: String -> IO () +part2 instructions = do + let visited = finalDistance $ firstRepeat $ stepsFromStart $ expandSteps $ steps instructions + print visited + + +-- Extract the steps from the input string. +steps :: String -> [Step] +steps s = map readStep $ splitOn ", " s + where readStep (d:l) = Step d (read l) + +-- Take steps from the starting position +stepsFromStart :: [Step] -> [Position] +stepsFromStart = takeSteps (Position North 0 0) + +-- Calculate manhattan distance from start to this state +finalDistance :: Position -> Int +finalDistance (Position _ e n) = (abs e) + (abs n) + +-- For part 2: convert one step of many spaces to many steps of one space each +expandSteps :: [Step] -> [Step] +expandSteps = + concatMap expandStep + where expandStep (Step dir d) = (Step dir 1) : replicate (d - 1) (Step 'S' 1) + +-- Execute a series of steps, keeping track of the positions after each step +takeSteps :: Position -> [Step] -> [Position] +-- takeSteps pos steps = scanl move pos steps +takeSteps = scanl move + +-- Make one move, by updating direction then position +move :: Position -> Step -> Position +move (Position facing easting northing) + (Step turnInstr distance) = + Position facing' easting' northing' + where facing' = turn turnInstr facing + (easting', northing') = takeStep facing' distance easting northing + +-- Turn right, left, or straight +turn :: Char -> Direction -> Direction +turn 'R' direction = turnCW direction +turn 'L' direction = turnACW direction +turn 'S' direction = direction + +-- Move in the current direction +takeStep :: Direction -> Int -> Int -> Int -> (Int, Int) +takeStep North d e n = (e, n+d) +takeStep South d e n = (e, n-d) +takeStep West d e n = (e-d, n) +takeStep East d e n = (e+d, n) + + +-- | a `succ` that wraps +turnCW :: (Bounded a, Enum a, Eq a) => a -> a +turnCW dir | dir == maxBound = minBound + | otherwise = succ dir + +-- | a `pred` that wraps +turnACW :: (Bounded a, Enum a, Eq a) => a -> a +turnACW dir | dir == minBound = maxBound + | otherwise = pred dir + +-- All the prefixes of a list of items +prefixes = scanl addTerm [] + where addTerm ps t = ps ++ [t] + +-- The first item that exists in a prefix of the list to that point +firstRepeat positions = + last $ head $ dropWhile (\p -> (last p) `notElem` (tail $ reverse p)) + (tail $ prefixes positions) diff --git a/adventofcode16/app/advent02.hs b/adventofcode16/app/advent02.hs new file mode 100644 index 0000000..747001d --- /dev/null +++ b/adventofcode16/app/advent02.hs @@ -0,0 +1,90 @@ +module Main(main) where + +import Data.Array.IArray + +-- Row 1 is top, column 1 is left +type Position = (Int, Int) +type Keyboard = Array Position Char + +kb1 = ["xxxxx", + "x123x", + "x456x", + "x789x", + "xxxxx"] + +kb2 = ["xxxxxxx", + "xxx1xxx", + "xx234xx", + "x56789x", + "xxABCxx", + "xxxDxxx", + "xxxxxxx"] + +enumerate = zip [0..] + +mkKeyboard :: [String] -> Keyboard +mkKeyboard kb = array ((0, 0), (length kb - 1, length (kb!!0) - 1)) + [((i, j), c) | (i, r) <- enumerate kb, (j, c) <- enumerate r] + +keyboard1 = mkKeyboard kb1 +keyboard2 = mkKeyboard kb2 + +findKey :: Keyboard -> Char-> Position +findKey kb c = fst $ head $ filter (\a -> (snd a) == c) $ assocs kb + +-- data Coord = One | Two | Three +-- deriving (Read, Show, Eq, Ord, Enum, Bounded) +-- -- instance Bounded Coord where +-- -- minBound = Coord 1 +-- -- maxBound = Coord 3 + +-- data Position = Position Coord Coord +-- deriving (Show, Eq) + +main :: IO () +main = do + instrText <- readFile "data/advent02.txt" + let instructions = lines instrText + part1 instructions + part2 instructions + +part1 :: [String] -> IO () +part1 instructions = do + putStrLn $ followInstructions keyboard1 instructions + + +part2 :: [String] -> IO () +part2 instructions = do + putStrLn $ followInstructions keyboard2 instructions + + +followInstructions :: Keyboard -> [String] -> String +followInstructions kb instr = moveSeries kb (startPosition kb) instr + + +startPosition :: Keyboard -> Position +startPosition kb = findKey kb '5' + +moveSeries :: Keyboard -> Position -> [String] -> String +moveSeries _ _ [] = [] +moveSeries kb p (i:is) = (n:ns) + where p' = makeMoves kb p i + n = kb ! p' + ns = moveSeries kb p' is + +makeMoves :: Keyboard -> Position -> [Char] -> Position +makeMoves kb p ms = foldl (safeMove kb) p ms + +safeMove :: Keyboard -> Position -> Char -> Position +safeMove kb pos dir = maybeRevert kb pos (move pos dir) + +move :: Position -> Char -> Position +move (r, c) 'U' = (r-1, c) +move (r, c) 'D' = (r+1, c) +move (r, c) 'L' = (r, c-1) +move (r, c) 'R' = (r, c+1) + +maybeRevert :: Keyboard -> Position -> Position -> Position +maybeRevert kb oldPos newPos + | kb ! newPos == 'x' = oldPos + | otherwise = newPos diff --git a/adventofcode16/app/advent03.hs b/adventofcode16/app/advent03.hs new file mode 100644 index 0000000..ef40bcc --- /dev/null +++ b/adventofcode16/app/advent03.hs @@ -0,0 +1,33 @@ +module Main(main) where + +import Data.List (transpose, sort) +import Data.List.Split (splitOn, chunksOf) + +type Triple = [Integer] + +main :: IO () +main = do + instrText <- readFile "data/advent03.txt" + let triangles = map (parseLine) $ lines instrText + part1 triangles + part2 triangles + + +part1 :: [Triple] -> IO () +part1 triangles = do + print $ length $ filter (validTriangle) triangles + +part2 :: [Triple] -> IO () +part2 triangles = do + print $ length $ filter (validTriangle) $ byColumns triangles + + +parseLine :: String -> Triple +parseLine = map (read) . filter (not . null) . splitOn " " + +validTriangle :: Triple -> Bool +validTriangle triple = sortedTriple!!0 + sortedTriple!!1 > sortedTriple!!2 + where sortedTriple = sort triple + +byColumns :: [[Integer]] -> [Triple] +byColumns = chunksOf 3 . concat . transpose diff --git a/adventofcode16/app/advent04.hs b/adventofcode16/app/advent04.hs new file mode 100644 index 0000000..85b7555 --- /dev/null +++ b/adventofcode16/app/advent04.hs @@ -0,0 +1,66 @@ +module Main(main) where + +import Data.List (last, intersperse, sortBy, intercalate, isInfixOf, init) +import Data.List.Split (splitOn) +import Data.Char (isLetter, ord, chr) +import qualified Data.Map.Lazy as Map + +data Room = Room { name :: String + , sector :: Int + , checksum :: String + } deriving (Show) + +main :: IO () +main = do + instrText <- readFile "data/advent04.txt" + let rooms = map (parseLine) $ lines instrText + part1 rooms + part2 rooms + + +part1 :: [Room] -> IO () +part1 rooms = do + print $ sum $ map (sector) validRooms + where + validChecksum room = (checksum room) == makeChecksum (name room) + validRooms = filter (validChecksum) rooms + +part2 :: [Room] -> IO () +part2 rooms = do + print $ fst $ head $ filter (\sn -> isInfixOf "north" (snd sn)) sectorNames + where + validChecksum room = (checksum room) == makeChecksum (name room) + validRooms = filter (validChecksum) rooms + sectorNames = [((sector r), + shiftWord (sector r) (name r)) | r <- validRooms] + + +parseLine :: String -> Room +parseLine line = Room {name=name, sector=sector, checksum=checksum} + where components = splitOn "-" line + name = intercalate "-" $ init components + sector = read $ head $ splitOn "[" $ last components + checksum = filter (isLetter) $ last components + +countedLetters :: String -> [(Char, Int)] +countedLetters name = sortBy sortCLetter $ unsortedCountedLetters name + where unsortedCountedLetters name = + Map.toList $ Map.fromListWith (+) [(c, 1) | c <- filter (isLetter) name] + +sortCLetter :: (Char, Int) -> (Char, Int) -> Ordering +sortCLetter (l1, n1) (l2, n2) + | n1 < n2 = GT + | n1 > n2 = LT + | n1 == n2 = compare l1 l2 + +makeChecksum :: String -> String +makeChecksum name = [l | (l, _) <- take 5 $ countedLetters name] + + +shiftWord :: Int -> String -> String +shiftWord shift letters = map (shiftLetter shift) letters + +shiftLetter :: Int -> Char -> Char +shiftLetter shift letter + | isLetter letter = chr $ (ord letter - ord 'a' + shift) `mod` 26 + ord 'a' + | otherwise = ' ' diff --git a/adventofcode16/app/advent05.hs b/adventofcode16/app/advent05.hs new file mode 100644 index 0000000..82a035e --- /dev/null +++ b/adventofcode16/app/advent05.hs @@ -0,0 +1,44 @@ +module Main(main) where + +import Data.Hash.MD5 (md5s, Str(..)) +import Data.List (isPrefixOf) +import qualified Data.Map.Lazy as Map + +type Password = Map.Map Integer Char + +input = "cxdnnyjw" + +main :: IO () +main = do + part1 + part2 + + +part1 :: IO () +part1 = do + putStrLn $ take 8 [h!!5 | h <- filter (interesting) $ md5sequence input 0] + +part2 :: IO () +part2 = do + putStrLn $ Map.foldr (:) [] password + where interestingHashes = + [(read [h!!5], h!!6) | + h <- filter (interesting) (md5sequence input 0), + h!!5 `elem` "01234567"] + password = findPassword Map.empty interestingHashes + + +md5sequence :: String -> Integer -> [String] +md5sequence key i = (md5s (Str (key ++ show i))) : (md5sequence key (i+1)) + +interesting :: String -> Bool +interesting hash = "00000" `isPrefixOf` hash + +dontReplace :: (Integer, Char) -> Password -> Password +dontReplace (k, v) = Map.insertWith (\_ v -> v) k v + +findPassword :: Password -> [(Integer, Char)] -> Password +findPassword p (c:cs) + | Map.size p == 8 = p + | otherwise = findPassword p' cs + where p' = dontReplace c p diff --git a/adventofcode16/app/advent06-old.hs b/adventofcode16/app/advent06-old.hs new file mode 100644 index 0000000..77d4093 --- /dev/null +++ b/adventofcode16/app/advent06-old.hs @@ -0,0 +1,36 @@ +module Main(main) where + +import Data.List (transpose) +import Data.Char (isLetter) +import qualified Data.Map.Lazy as Map + +main :: IO () +main = do + text <- readFile "advent06.txt" + let message = lines text + part1 message + part2 message + +part1 :: [String] -> IO () +part1 message = do + print $ map (fst) $ map (mostCommon) $ map (countedLetters) $ transpose message + +part2 :: [String] -> IO () +part2 message = do + print $ map (fst) $ map (leastCommon) $ map (countedLetters) $ transpose message + + +countedLetters :: String -> Map.Map Char Int +countedLetters name = Map.fromListWith (+) [(c, 1) | c <- filter (isLetter) name] + +mostCommon = Map.foldlWithKey (mostCommonP) ('a', 0) + +mostCommonP (letter0, count0) letter count + | count > count0 = (letter, count) + | otherwise = (letter0, count0) + +leastCommon = Map.foldlWithKey (leastCommonP) ('a', maxBound :: Int) + +leastCommonP (letter0, count0) letter count + | count < count0 = (letter, count) + | otherwise = (letter0, count0) \ No newline at end of file diff --git a/adventofcode16/app/advent06.hs b/adventofcode16/app/advent06.hs new file mode 100644 index 0000000..96c4aa2 --- /dev/null +++ b/adventofcode16/app/advent06.hs @@ -0,0 +1,22 @@ +module Main(main) where + +import Data.List (transpose, maximum, minimum, sort, group) +import Data.Tuple (swap) + +main :: IO () +main = do + text <- readFile "data/advent06.txt" + let message = lines text + part1 message + part2 message + +part1 :: [String] -> IO () +part1 message = do + putStrLn $ map (snd . maximum . counts) $ transpose message + +part2 :: [String] -> IO () +part2 message = do + putStrLn $ map (snd . minimum . counts) $ transpose message + +counts :: (Eq a, Ord a) => [a] -> [(Int, a)] +counts = map (\g -> (length g, head g)) . group . sort \ No newline at end of file diff --git a/adventofcode16/app/advent07.hs b/adventofcode16/app/advent07.hs new file mode 100644 index 0000000..8700958 --- /dev/null +++ b/adventofcode16/app/advent07.hs @@ -0,0 +1,136 @@ +module Main(main) where + +import Text.Parsec +import Data.List (partition, union, intersect, tails) +import Data.Char (isAlphaNum) + +data Chunk = Include String | Exclude String deriving (Show) +data ChunkV = Includev Bool | Excludev Bool deriving (Show) + +chunkValue :: Chunk -> String +chunkValue (Include v) = v +chunkValue (Exclude v) = v + +isInclude :: Chunk -> Bool +isInclude (Include _) = True +isInclude (Exclude _) = False + +chunkValueV :: ChunkV -> Bool +chunkValueV (Includev v) = v +chunkValueV (Excludev v) = v + +isIncludeV :: ChunkV -> Bool +isIncludeV (Includev _) = True +isIncludeV (Excludev _) = False + + +main :: IO () +main = do + text <- readFile "data/advent07.txt" + part1 text + part2 text + + +part1 :: String -> IO () +part1 text = do + print $ length $ filter (allowsAbba) $ successfulParse $ parseI7vf text + + +part2 :: String -> IO () +part2 text = do + print $ length $ filter (supportsSSL) $ successfulParse $ parseI7f text + +allowsAbba :: [ChunkV] -> Bool +allowsAbba chunks = (any (chunkValueV) includeChunks) && (not (any (chunkValueV) excludeChunks)) + where (includeChunks, excludeChunks) = partition (isIncludeV) chunks + +i7file = i7line `endBy` newline +i7line = many1 (includeChunk <|> excludeChunk) + +chunk = many1 alphaNum + +excludeChunk = Exclude <$> (between (char '[') (char ']') $ chunk) +includeChunk = Include <$> chunk + +hasABBA = preambleAbba <* (many alphaNum) +preambleAbba = (try abba) <|> (alphaNum >> preambleAbba) + +-- abba = +-- do a <- alphaNum +-- b <- alphaNum +-- if a == b then +-- fail "Identical" +-- else do char b +-- char a +-- return [a, b, b, a] + +abba = + do a <- alphaNum + b <- noneOf [a] + char b + char a + return [a, b, b, a] + +-- where +--   firstChar = satisfy (\a -> isLetter a || a == '_') +--   nonFirstChar = satisfy (\a -> isDigit a || isLetter a || a == '_') + + -- b <- bChar +-- where bChar = satisfy (\l -> lsLetter l && l /= a) + + + +i7filev = i7linev `endBy` newline +i7linev = many1 (includeChunkv <|> excludeChunkv) + +excludeChunkv = Excludev <$> (between (char '[') (char ']') $ hasABBAv) +includeChunkv = Includev <$> hasABBAv + +hasABBAv = + (try (id True <$ preambleAbba <* (many alphaNum))) + <|> + (id False <$ (many1 alphaNum)) + + +parseI7f :: String -> Either ParseError [[Chunk]] +parseI7f input = parse i7file "(unknown)" input + +parseI7 :: String -> Either ParseError [Chunk] +parseI7 input = parse i7line "(unknown)" input + +parseAbba :: String -> Either ParseError String +parseAbba input = parse hasABBA "(unknown)" input + +parseI7v :: String -> Either ParseError [ChunkV] +parseI7v input = parse i7linev "(unknown)" input + +parseI7vf :: String -> Either ParseError [[ChunkV]] +parseI7vf input = parse i7filev "(unknown)" input + +successfulParse :: Either ParseError [a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = a + + +allSubstrings :: Int -> [a] -> [[a]] +-- allSubstrings n es +-- | length es < n = [] +-- | otherwise = (take n es) : (allSubstrings n $ tail es) +allSubstrings n e = filter (\s -> length s == n) $ map (take n) $ tails e + + +ieCandidates :: [Chunk] -> ([String], [String]) +ieCandidates chunks = (includeCandidates, excludeCandidates) + where (includeChunks, excludeChunks) = partition (isInclude) chunks + isABA s = (s!!0 == s!!2) && (s!!0 /= s!!1) + candidates = (filter (isABA)) . (foldl (union) []) . (map ((allSubstrings 3) . chunkValue)) + includeCandidates = candidates includeChunks + excludeCandidates = candidates excludeChunks + +inverseABA :: String -> String +inverseABA s = [s!!1, s!!0, s!!1] + +supportsSSL :: [Chunk] -> Bool +supportsSSL chunks = not $ null $ intersect abas eabas + where (abas, babs) = ieCandidates chunks + eabas = map (inverseABA) babs diff --git a/adventofcode16/app/advent08.hs b/adventofcode16/app/advent08.hs new file mode 100644 index 0000000..ccf2de0 --- /dev/null +++ b/adventofcode16/app/advent08.hs @@ -0,0 +1,148 @@ +module Main(main) where + +import Data.Array.IArray +import Text.Parsec +import Control.Monad (liftM, ap) + +-- Row 1 is top, column 1 is left +type Position = (Int, Int) +type Screen = Array Position Bool + +data Direction = Row | Column deriving (Show) +data Command = Rect Int Int | Rotate Direction Int Int deriving (Show) + +data ScState a = ScState (Screen -> (Screen, a)) + +mkScreen :: Int -> Int -> Screen +mkScreen w h = array ((0, 0), (h - 1, w - 1)) + [((i, j), False) | i <- [0..(h-1)], j <- [0..(w-1)]] + +showScreen :: Screen -> String +showScreen screen = unlines [showRow r | r <- [minRow..maxRow]] + where ((minRow, minCol), (maxRow, maxCol)) = bounds screen + showCell True = '*' + showCell False = ' ' + showRow r = [showCell (screen!(r, c)) | c <- [minCol..maxCol]] + +countLights :: Screen -> Int +countLights screen = length $ filter (id) $ elems screen + +screen0 :: Screen +screen0 = mkScreen 50 6 + + +main :: IO () +main = do + text <- readFile "data/advent08.txt" + let instrs = successfulParse $ parseCommands text + part1 instrs + part2 instrs + +part1 :: [Command] -> IO () +part1 commands = + print $ countLights $ (extractScreen . doCommands) commands + +part2 :: [Command] -> IO () +part2 commands = + putStrLn $ showScreen $ (extractScreen . doCommands) commands + + +instance Functor ScState where + fmap = liftM + +instance Applicative ScState where + pure = return + (<*>) = ap + +instance Monad ScState where + return x = ScState (\screen -> (screen, x)) + + (ScState st) >>= f + = ScState (\screen -> let + (newScreen, y) = st screen + (ScState transformer) = f y + in + transformer newScreen) + +doCommands :: [Command] -> ScState (Int) +doCommands [] = return 0 +doCommands (i:is) = + do doCommand i + doCommands is + return 0 + +doCommand :: Command -> ScState Int +doCommand i = ScState (execute i) + +execute :: Command -> (Screen -> (Screen, Int)) +execute (Rect w h) screen = (rect screen w h, 0) +execute (Rotate Column c n) screen = (rotateColumn screen c n, 0) +execute (Rotate Row r n) screen = (rotateRow screen r n, 0) + +extractScreen :: ScState Int -> Screen +extractScreen (ScState st) = fst (st screen0) + + + +parseCommands :: String -> Either ParseError [Command] +parseCommands input = parse commandFile "(unknown)" input + +commandFile = commandLine `endBy` newline +commandLine = (try rectCommand) <|> rotateCommand + +rectCommand = + do string "rect" + spaces + w <- (many1 digit) + char 'x' + h <- (many1 digit) + return (Rect (read w) (read h)) + +rotateCommand = + do string "rotate" + spaces + direction <- (string "row" <|> string "column") + spaces + string "x=" <|> string "y=" + index <- (many1 digit) + spaces + string "by" + spaces + distance <- (many1 digit) + return (buildCommand direction index distance) + +buildCommand "row" i d = Rotate Row (read i) (read d) +buildCommand "column" i d = Rotate Column (read i) (read d) + +successfulParse :: Either ParseError [a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = a + + + + +rect :: Screen -> Int -> Int -> Screen +rect screen w h = screen // newBits + where newBits = [((i, j), True) | i <- [0..(h-1)], j <- [0..(w-1)]] + +rotateColumn :: Screen -> Int -> Int -> Screen +rotateColumn screen column givenShift = screen // newCells + where + ((minRow, minCol), (maxRow, maxCol)) = bounds screen + colLength = 1 + maxRow - minRow + shift = givenShift `mod` colLength + offset = colLength - shift + column0 = [screen!(r, column) | r <- [minRow..maxRow]] + newColumn = (drop offset column0) ++ (take offset column0) + newCells = [((r, column), cell) | (r, cell) <- zip [minRow..maxRow] newColumn] + +rotateRow :: Screen -> Int -> Int -> Screen +rotateRow screen row givenShift = screen // newCells + where + ((minRow, minCol), (maxRow, maxCol)) = bounds screen + rowLength = 1 + maxCol - minCol + shift = givenShift `mod` rowLength + offset = rowLength - shift + row0 = [screen!(row, c) | c <- [minCol..maxCol]] + newRow = (drop offset row0) ++ (take offset row0) + newCells = [((row, c), cell) | (c, cell) <- zip [minCol..maxCol] newRow] diff --git a/adventofcode16/app/advent09.hs b/adventofcode16/app/advent09.hs new file mode 100644 index 0000000..a3ce495 --- /dev/null +++ b/adventofcode16/app/advent09.hs @@ -0,0 +1,57 @@ +module Main(main) where + +import Data.List.Split (splitOn) +import Data.Char (isSpace) + +type Chunk = (Int, String) + +main :: IO () +main = do + textL <- readFile "data/advent09.txt" + let text = filter (not . isSpace) textL + part1 text + part2 text + +part1 :: String -> IO () +part1 text = do + print $ cLength $ decompress text + +part2 :: String -> IO () +part2 text = do + print $ cLength $ decompress2 text + + +decompress :: String -> [Chunk] +decompress text = + if not (null msuf) + then (1, pre):(num, chunk):drest + else [(1, pre)] + where + (pre, msuf) = span ('(' /= ) text + (marker, suf) = span (')' /= ) msuf + ln = splitOn "x" (tail marker) + len = read (ln!!0) :: Int + num = read (ln!!1) :: Int + (chunk, remainder) = splitAt len (tail suf) + drest = decompress remainder + +decompress2 :: String -> [Chunk] +decompress2 text = + if not (null msuf) + then [(1, pre)] ++ mulDchunks ++ drest + else [(1, pre)] + where + (pre, msuf) = span ('(' /= ) text + (marker, suf) = span (')' /= ) msuf + ln = splitOn "x" (tail marker) + len = read (ln!!0) :: Int + num = read (ln!!1) :: Int + (chunk, remainder) = splitAt len (tail suf) + dchunks = decompress2 chunk + mulDchunks = [(dl * num, ds) | (dl, ds) <- dchunks] + drest = decompress2 remainder + +cLength :: [Chunk] -> Int +cLength = sum . map (clen) + where clen (n, t) = n * (length t) + diff --git a/adventofcode16/app/advent10.hs b/adventofcode16/app/advent10.hs new file mode 100644 index 0000000..70e80e0 --- /dev/null +++ b/adventofcode16/app/advent10.hs @@ -0,0 +1,217 @@ +import Text.Parsec hiding (State) +import Data.Text (pack, unpack, toTitle) +import Control.Monad.State.Lazy +import Data.List (partition, findIndices, sort, find) +import Data.Maybe (fromJust) + +data Destination = Bot | Output deriving (Show, Read, Eq) +-- Rule bot low-destination high-destination +-- Gift bot value +data Instruction = Rule { ruleId :: Int + , lowDestType :: Destination + , lowDestId :: Int + , highDestType :: Destination + , highDestId :: Int + } | + Gift { giftId :: Int + , value :: Int + } + deriving (Show) + +-- bod id [item1, item2] +data Place = Place { placeId :: Int + , placeType :: Destination + , items :: [Int]} + deriving (Show) + +-- delivery by bot of low-value and high-value +data Event = Delivery { deliveryId :: Int + , lowDelivery :: Int + , highDelivery :: Int + } | + Update { updateId :: Int + , updateType :: Destination + , updateItem :: Int + } deriving (Show) + +type Factory = ([Place], [Instruction], [Event]) +-- data FactorySt History = FactorySt (Factory -> (Factory, History)) + +emptyFactory :: Factory +emptyFactory = ([], [], []) + +main :: IO () +main = do + text <- readFile "data/advent10.txt" + let instructions = successfulParse $ parseIfile text + part1 instructions + part2 instructions + + +part1 :: [Instruction] -> IO () +part1 instructions = + do let (_, _, events) = snd $ runState (runFactory instructions) emptyFactory + -- let (places, instructions, events) = snd finalFactory + print $ deliveryId $ fromJust $ findDelivery events 17 61 + +part2 :: [Instruction] -> IO () +part2 instructions = + do let (places, _, _) = snd $ runState (runFactory instructions) emptyFactory + let outs = findOutputs places [0, 1, 2] + let product = foldl1 (*) $ concatMap (items) outs + print $ product + + +findDelivery :: [Event] -> Int -> Int -> Maybe Event +findDelivery events lowItem highItem = find (delivery) events + where delivery Update {} = False + delivery Delivery {deliveryId = bot, lowDelivery = l, highDelivery = h} + | l == lowItem && h == highItem = True + | otherwise = False + +findOutputs :: [Place] -> [Int] -> [Place] +findOutputs outputs ids = filter (interesting) outputs + where interesting Place {placeId = p, placeType = t, items = i} + | (p `elem` ids) && t == Output = True + | otherwise = False + + +runFactory :: [Instruction] -> State Factory () +runFactory instructions = do + addInstructions instructions + runInstructions instructions + + + +instructionFile = instructionLine `endBy` newline +instructionLine = ruleL <|> giftL + + +ruleL = + do (string "bot" >> spaces) + bot <- many1 digit + (spaces >> string "gives low to" >> spaces) + lowDestType <- (string "output" <|> string "bot") + spaces + lowDest <- many1 digit + (spaces >> string "and high to" >> spaces) + highDestType <- (string "output" <|> string "bot") + spaces + highDest <- many1 digit + let rule = Rule (read bot) + (read $ unpack $ toTitle $ pack lowDestType) + (read lowDest) + (read $ unpack $ toTitle $ pack highDestType) + (read highDest) + return rule + +giftL = + do (string "value" >> spaces) + value <- many1 digit + (spaces >> string "goes to bot" >> spaces) + bot <- many1 digit + let gift = Gift (read bot) (read value) + return gift + + +parseIfile :: String -> Either ParseError [Instruction] +parseIfile input = parse instructionFile "(unknown)" input + +parseIline :: String -> Either ParseError Instruction +parseIline input = parse instructionLine "(unknown)" input + +successfulParse :: Either ParseError [a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = a + + + + +addInstructions :: [Instruction] -> State Factory () +addInstructions [] = return () +addInstructions (i:is) = do + addInstruction i + addInstructions is + + +addInstruction :: Instruction -> State Factory () +addInstruction r@(Rule {lowDestType = ld, lowDestId = li, + highDestType = hd, highDestId = hi}) = + do (places, rules, history) <- get + put (places, r:rules, history) + addPlace (Place {placeType = ld, placeId = li, items = []}) + addPlace (Place {placeType = hd, placeId = hi, items = []}) +addInstruction Gift {giftId = g} = + do addPlace (Place {placeType = Bot, placeId = g, items = []}) + + +addPlace :: Place -> State Factory () +addPlace place = + do (places, rules, history) <- get + if not $ placeElem place places + then put ((place:places), rules, history) + else return () + + +runInstructions :: [Instruction] -> State Factory () +runInstructions [] = return () +runInstructions (i:is) = + do runInstruction i + runInstructions is + + +runInstruction :: Instruction -> State Factory () +runInstruction Rule {} = return () +runInstruction g@(Gift {}) = + do updatePlace (giftId g) Bot (value g) + propogateUpdates + +updatePlace :: Int -> Destination -> Int -> State Factory () +updatePlace b d i = + do (places, instructions, events) <- get + let (place0s, otherPlaces) = partition (samePlace (Place {placeId = b, placeType = d, items = []})) places + let place = head place0s + let place' = place {items = i:(items place)} + let update = Update {updateId = b, updateType = d, updateItem = i} + put (place':otherPlaces, instructions, update:events) + + +propogateUpdates :: State Factory () +propogateUpdates = + do (places, instructions, events) <- get + let (fullBots, otherPlaces) = fullRobots places + if (not . null) fullBots + then do let fullBot = head fullBots + let maybeRule = findRule instructions (placeId fullBot) + case maybeRule of + Nothing -> propogateUpdates + Just rule -> do let small:large:_ = sort $ items fullBot + let emptyBot = fullBot {items = []} + let delivery = Delivery { deliveryId = placeId fullBot + , lowDelivery = small + , highDelivery = large + } + put (emptyBot:(tail fullBots) ++ otherPlaces, + instructions, + delivery:events) + updatePlace (lowDestId rule) (lowDestType rule) small + updatePlace (highDestId rule) (highDestType rule) large + propogateUpdates + else return () + + +placeElem :: Place -> [Place] -> Bool +placeElem place places = (not . null) $ findIndices (samePlace place) places + +samePlace :: Place -> Place -> Bool +samePlace p1 p2 = (placeId p1 == placeId p2) && (placeType p1 == placeType p2) + +fullRobots :: [Place] -> ([Place], [Place]) +fullRobots places = partition (\p -> placeType p == Bot && length (items p) >= 2) places + +findRule :: [Instruction] -> Int -> Maybe Instruction +findRule instructions bot = find ruleForBot instructions + where ruleForBot Gift {} = False + ruleForBot Rule {ruleId = b} + | b == bot = True + | otherwise = False diff --git a/adventofcode16/app/advent11.hs b/adventofcode16/app/advent11.hs new file mode 100644 index 0000000..0286d77 --- /dev/null +++ b/adventofcode16/app/advent11.hs @@ -0,0 +1,137 @@ +module Main(main) where + +import Data.List (subsequences, (\\), sort, sortBy) +import Data.Ord (comparing) + +data Item = Generator String | Microchip String deriving (Show, Eq) +type Floor = [Item] +data Building = Building Int [Floor] deriving (Show, Eq) + +instance Ord Item where + compare (Generator a) (Generator b) = compare a b + compare (Microchip a) (Microchip b) = compare a b + compare (Generator _) (Microchip _) = LT + compare (Microchip _) (Generator _) = GT + +instance Ord Building where + compare b1 b2 = comparing estimateCost b1 b2 + +building1 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium", Generator "ruthenium", + Microchip "ruthenium", Generator "cobalt", Microchip "cobalt"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + +building2 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium", Generator "ruthenium", + Microchip "ruthenium", Generator "cobalt", Microchip "cobalt", + Generator "elerium", Microchip "elerium", + Generator "dilithium", Microchip "dilithium"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + + +buildingTest = Building 0 [ + sort([Microchip "hydrogen", Microchip "lithium"]), + [Generator "hydrogen"], + [Generator "lithium"], + []] + +main :: IO () +main = do + part1 + part2 + + +part1 :: IO () +-- part1 = print $ length $ init $ extractJust $ hillClimb [[buildingTest]] [] +part1 = print $ length $ init $ extractJust $ hillClimb [[building1]] [] +-- part1 = print $ length $ init $ extractJust $ aStar [[building1]] [] + +part2 :: IO () +part2 = print $ length $ init $ extractJust $ hillClimb [[building2]] [] + + +extractJust :: Maybe [a] -> [a] +extractJust Nothing = [] +extractJust (Just x) = x + +hillClimb :: [[Building]] -> [Building] -> Maybe [Building] +hillClimb [] _ = Nothing +hillClimb (currentTrail:trails) closed = + if isGoal (head currentTrail) then Just currentTrail + else hillClimb newAgenda ((head currentTrail): closed) + where newAgenda = + sortBy (\t1 t2 -> (head t1) `compare` (head t2)) $ + trails ++ (candidates currentTrail closed) + +aStar :: [[Building]] -> [Building] -> Maybe [Building] +aStar [] _ = Nothing +aStar (currentTrail:trails) closed = + if isGoal (head currentTrail) then Just currentTrail + else aStar newAgenda ((head currentTrail): closed) + where newAgenda = + sortBy (\t1 t2 -> (trailCost t1) `compare` (trailCost t2)) $ + trails ++ (candidates currentTrail closed) + trailCost t = estimateCost (head t) + length t - 1 + + +candidates :: [Building] -> [Building] -> [[Building]] +candidates currentTrail closed = newCandidates + where + (candidate:trail) = currentTrail + succs = legalSuccessors $ successors candidate + nonloops = (succs \\ trail) \\ closed + newCandidates = map (\n -> n:candidate:trail) nonloops + +isGoal :: Building -> Bool +isGoal (Building f floors) = + f+1 == height && (all (null) $ take f floors) + where height = length floors + +isLegal :: Building -> Bool +isLegal (Building f floors) = + null floor + || + not (any (isGenerator) floor) + || + any (safePair) pairs + where floor = floors!!f + pairs = [(i, j) | i <- floor, j <- floor, isGenerator i] + safePair (Generator e, Microchip f) = e == f + safePair (Generator _, Generator _) = False + +isGenerator :: Item -> Bool +isGenerator (Generator _) = True +isGenerator (Microchip _) = False + +successors :: Building -> [Building] +successors (Building f floors) = [updateBuilding f floors nf is | nf <- nextFloors, is <- items] + where + floor = floors!!f + items = filter (\is -> length is == 1 || length is == 2) $ subsequences floor + nextFloors = if f == 0 then [1] + else if f+1 == length floors then [f-1] + else [f+1, f-1] + +legalSuccessors :: [Building] -> [Building] +legalSuccessors = filter (isLegal) + +updateBuilding :: Int -> [Floor] -> Int -> [Item] -> Building +updateBuilding oldF oldFloors newF items = Building newF newFloors + where newFloors = map (updateFloor) $ zip [0..] oldFloors + updateFloor (f, fl) + | f == oldF = sort $ fl \\ items + | f == newF = sort $ items ++ fl + | otherwise = fl + +estimateCost :: Building -> Int +estimateCost (Building _ floors) = + sum $ map (\(c, f) -> c * length f) $ zip [0..] $ reverse floors + diff --git a/adventofcode16/app/advent11a.hs b/adventofcode16/app/advent11a.hs new file mode 100644 index 0000000..c5349c8 --- /dev/null +++ b/adventofcode16/app/advent11a.hs @@ -0,0 +1,164 @@ +-- Using the idea of canonical representation of buildings from +-- https://andars.github.io/aoc_day11.html by Andrew Foote, +-- plus my extension of represening the pairs as an integer. + +-- This version is A* search, using a list for the agenda. + +module Main(main) where + +import Data.List (subsequences, (\\), sort, sortOn, nub, findIndices) +import Data.Ord (comparing) +import Data.Char (isDigit) + +data Item = Generator String | Microchip String deriving (Show, Eq) +type Floor = [Item] +data Building = Building Int [Floor] deriving (Show, Eq) +data CBuilding = CBuilding Int Integer deriving (Show, Eq) +data Agendum = Agendum {current :: Building, trail :: [CBuilding], cost :: Int} + +instance Ord Item where + compare (Generator a) (Generator b) = compare a b + compare (Microchip a) (Microchip b) = compare a b + compare (Generator _) (Microchip _) = LT + compare (Microchip _) (Generator _) = GT + +instance Ord Building where + compare b1 b2 = comparing estimateCost b1 b2 + +building1 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium", Generator "ruthenium", + Microchip "ruthenium", Generator "cobalt", Microchip "cobalt"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + +building0 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + +building2 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium", Generator "ruthenium", + Microchip "ruthenium", Generator "cobalt", Microchip "cobalt", + Generator "elerium", Microchip "elerium", + Generator "dilithium", Microchip "dilithium"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + + +buildingTest = Building 0 [ + sort([Microchip "hydrogen", Microchip "lithium"]), + [Generator "hydrogen"], + [Generator "lithium"], + []] + +canonical :: Building -> CBuilding +canonical (Building f floors) = CBuilding f (read $ filter (isDigit) $ show $ sort pairs) + where names = nub $ map (\(Generator n) -> n) $ filter (isGenerator) $ concat floors + floorOf (Generator g) = head (findIndices + (\fl -> (Generator g) `elem` fl) + floors) + floorOf (Microchip g) = head (findIndices + (\fl -> (Microchip g) `elem` fl) + floors) + pairs = foldl (\ps n -> (floorOf (Generator n), floorOf (Microchip n)):ps) [] names + + + +main :: IO () +main = do + part1 + part2 + + +part1 :: IO () +part1 = print $ length $ trail $ aStar (initAgenda building1) [] + +part2 :: IO () +part2 = print $ length $ trail $aStar (initAgenda building2) [] + +initAgenda :: Building -> [Agendum] +initAgenda b = [Agendum {current = b, trail=[], cost = estimateCost b}] + + +aStar :: [Agendum] -> [CBuilding] -> Agendum +aStar [] _ = Agendum {current=buildingTest, trail=[], cost=0} +aStar (currentAgendum:agenda) closed = + if isGoal reached then currentAgendum + else if creached `elem` closed + then aStar agenda closed + else aStar newAgenda (creached:closed) + where + reached = current currentAgendum + creached = canonical reached + newAgenda = + sortOn (cost) $ + agenda ++ (candidates currentAgendum closed) + + +candidates :: Agendum -> [CBuilding] -> [Agendum] +candidates agendum closed = newCandidates + where + candidate = current agendum + previous = trail agendum + succs = legalSuccessors $ successors candidate + excludable = previous ++ closed + nonloops = filter (\s -> not $ (canonical s) `elem` excludable) succs + newCandidates = map (\n -> makeAgendum n) nonloops + makeAgendum new = Agendum {current = new, + trail = (canonical candidate):previous, + cost = estimateCost new + length previous + 1} + +isGoal :: Building -> Bool +isGoal (Building f floors) = + f+1 == height && (all (null) $ take f floors) + where height = length floors + +isLegal :: Building -> Bool +isLegal (Building f floors) = + null floor + || + not (any (isGenerator) floor) + || + any (safePair) pairs + where floor = floors!!f + pairs = [(i, j) | i <- floor, j <- floor, isGenerator i] + safePair (Generator e, Microchip f) = e == f + safePair (Generator _, Generator _) = False + +isGenerator :: Item -> Bool +isGenerator (Generator _) = True +isGenerator (Microchip _) = False + +successors :: Building -> [Building] +successors (Building f floors) = [updateBuilding f floors nf is | nf <- nextFloors, is <- items] + where + floor = floors!!f + items = filter (\is -> length is == 1 || length is == 2) $ subsequences floor + nextFloors = if f == 0 then [1] + else if f+1 == length floors then [f-1] + else [f+1, f-1] + +legalSuccessors :: [Building] -> [Building] +legalSuccessors = filter (isLegal) + +updateBuilding :: Int -> [Floor] -> Int -> [Item] -> Building +updateBuilding oldF oldFloors newF items = Building newF newFloors + where newFloors = map (updateFloor) $ zip [0..] oldFloors + updateFloor (f, fl) + | f == oldF = sort $ fl \\ items + | f == newF = sort $ items ++ fl + | otherwise = fl + +estimateCost :: Building -> Int +estimateCost (Building _ floors) = + sum $ map (\(c, f) -> c * length f) $ zip [0..] $ reverse floors + diff --git a/adventofcode16/app/advent11h.hs b/adventofcode16/app/advent11h.hs new file mode 100644 index 0000000..d362ee8 --- /dev/null +++ b/adventofcode16/app/advent11h.hs @@ -0,0 +1,162 @@ +-- Using the idea of canonical representation of buildings from +-- https://andars.github.io/aoc_day11.html by Andrew Foote, +-- plus my extension of represening the pairs as an integer. + +-- This version is hillclimbing search, using a list for the agenda. +module Main(main) where + +import Data.List (subsequences, (\\), sort, sortOn, nub, findIndices) +import Data.Ord (comparing) +import Data.Char (isDigit) + +data Item = Generator String | Microchip String deriving (Show, Eq) +type Floor = [Item] +data Building = Building Int [Floor] deriving (Show, Eq) +data CBuilding = CBuilding Int Integer deriving (Show, Eq) +data Agendum = Agendum {current :: Building, trail :: [CBuilding], cost :: Int} + +instance Ord Item where + compare (Generator a) (Generator b) = compare a b + compare (Microchip a) (Microchip b) = compare a b + compare (Generator _) (Microchip _) = LT + compare (Microchip _) (Generator _) = GT + +instance Ord Building where + compare b1 b2 = comparing estimateCost b1 b2 + +building1 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium", Generator "ruthenium", + Microchip "ruthenium", Generator "cobalt", Microchip "cobalt"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + +building0 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + +building2 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium", Generator "ruthenium", + Microchip "ruthenium", Generator "cobalt", Microchip "cobalt", + Generator "elerium", Microchip "elerium", + Generator "dilithium", Microchip "dilithium"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + + +buildingTest = Building 0 [ + sort([Microchip "hydrogen", Microchip "lithium"]), + [Generator "hydrogen"], + [Generator "lithium"], + []] + +canonical :: Building -> CBuilding +canonical (Building f floors) = CBuilding f (read $ filter (isDigit) $ show $ sort pairs) + where names = nub $ map (\(Generator n) -> n) $ filter (isGenerator) $ concat floors + floorOf (Generator g) = head (findIndices + (\fl -> (Generator g) `elem` fl) + floors) + floorOf (Microchip g) = head (findIndices + (\fl -> (Microchip g) `elem` fl) + floors) + pairs = foldl (\ps n -> (floorOf (Generator n), floorOf (Microchip n)):ps) [] names + + + +main :: IO () +main = do + part1 + part2 + + +part1 :: IO () +part1 = print $ length $ trail $ hillClimb (initAgenda building1) [] + +part2 :: IO () +part2 = print $ length $ trail $ hillClimb (initAgenda building2) [] + +initAgenda :: Building -> [Agendum] +initAgenda b = [Agendum {current = b, trail=[], cost = estimateCost b}] + +hillClimb :: [Agendum] -> [CBuilding] -> Agendum +hillClimb [] _ = Agendum {current=buildingTest, trail=[], cost=0} +hillClimb (currentAgendum:agenda) closed = + if isGoal reached then currentAgendum + else if creached `elem` closed + then hillClimb agenda closed + else hillClimb newAgenda (creached:closed) + where + reached = current currentAgendum + creached = canonical reached + newAgenda = + sortOn (cost) $ + agenda ++ (candidates currentAgendum closed) + + +candidates :: Agendum -> [CBuilding] -> [Agendum] +candidates agendum closed = newCandidates + where + candidate = current agendum + previous = trail agendum + succs = legalSuccessors $ successors candidate + excludable = previous ++ closed + nonloops = filter (\s -> not $ (canonical s) `elem` excludable) succs + newCandidates = map (\n -> makeAgendum n) nonloops + makeAgendum new = Agendum {current = new, + trail = (canonical candidate):previous, + cost = estimateCost new} + +isGoal :: Building -> Bool +isGoal (Building f floors) = + f+1 == height && (all (null) $ take f floors) + where height = length floors + +isLegal :: Building -> Bool +isLegal (Building f floors) = + null floor + || + not (any (isGenerator) floor) + || + any (safePair) pairs + where floor = floors!!f + pairs = [(i, j) | i <- floor, j <- floor, isGenerator i] + safePair (Generator e, Microchip f) = e == f + safePair (Generator _, Generator _) = False + +isGenerator :: Item -> Bool +isGenerator (Generator _) = True +isGenerator (Microchip _) = False + +successors :: Building -> [Building] +successors (Building f floors) = [updateBuilding f floors nf is | nf <- nextFloors, is <- items] + where + floor = floors!!f + items = filter (\is -> length is == 1 || length is == 2) $ subsequences floor + nextFloors = if f == 0 then [1] + else if f+1 == length floors then [f-1] + else [f+1, f-1] + +legalSuccessors :: [Building] -> [Building] +legalSuccessors = filter (isLegal) + +updateBuilding :: Int -> [Floor] -> Int -> [Item] -> Building +updateBuilding oldF oldFloors newF items = Building newF newFloors + where newFloors = map (updateFloor) $ zip [0..] oldFloors + updateFloor (f, fl) + | f == oldF = sort $ fl \\ items + | f == newF = sort $ items ++ fl + | otherwise = fl + +estimateCost :: Building -> Int +estimateCost (Building _ floors) = + sum $ map (\(c, f) -> c * length f) $ zip [0..] $ reverse floors + diff --git a/adventofcode16/app/advent11p.hs b/adventofcode16/app/advent11p.hs new file mode 100644 index 0000000..4136e8f --- /dev/null +++ b/adventofcode16/app/advent11p.hs @@ -0,0 +1,166 @@ +-- Using the idea of canonical representation of buildings from +-- https://andars.github.io/aoc_day11.html by Andrew Foote, +-- plus my extension of represening the pairs as an integer. + +-- This version is A* search, using a priority queue for the agenda. + +module Main(main) where + +import Data.List (subsequences, (\\), sort, sortOn, nub, findIndices) +import Data.Ord (comparing) +import Data.Char (isDigit) +import Data.Maybe (fromMaybe) +import qualified Data.PQueue.Prio.Min as P + +data Item = Generator String | Microchip String deriving (Show, Eq) +type Floor = [Item] +data Building = Building Int [Floor] deriving (Show, Eq) +data CBuilding = CBuilding Int Integer deriving (Show, Eq) +data Agendum = Agendum {current :: Building, trail :: [CBuilding], cost :: Int} +type Agenda = P.MinPQueue Int Agendum + +instance Ord Item where + compare (Generator a) (Generator b) = compare a b + compare (Microchip a) (Microchip b) = compare a b + compare (Generator _) (Microchip _) = LT + compare (Microchip _) (Generator _) = GT + +instance Ord Building where + compare b1 b2 = comparing estimateCost b1 b2 + +building1 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium", Generator "ruthenium", + Microchip "ruthenium", Generator "cobalt", Microchip "cobalt"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + +building0 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + +building2 = Building 0 [ + (sort [Generator "polonium", Generator "thulium", + Microchip "thulium", Generator "promethium", Generator "ruthenium", + Microchip "ruthenium", Generator "cobalt", Microchip "cobalt", + Generator "elerium", Microchip "elerium", + Generator "dilithium", Microchip "dilithium"]), + (sort [Microchip "polonium", Microchip "promethium"]), + [], + [] + ] + + +buildingTest = Building 0 [ + sort([Microchip "hydrogen", Microchip "lithium"]), + [Generator "hydrogen"], + [Generator "lithium"], + []] + +canonical :: Building -> CBuilding +canonical (Building f floors) = CBuilding f (read $ filter (isDigit) $ show $ sort pairs) + where names = nub $ map (\(Generator n) -> n) $ filter (isGenerator) $ concat floors + floorOf (Generator g) = head (findIndices + (\fl -> (Generator g) `elem` fl) + floors) + floorOf (Microchip g) = head (findIndices + (\fl -> (Microchip g) `elem` fl) + floors) + pairs = foldl (\ps n -> (floorOf (Generator n), floorOf (Microchip n)):ps) [] names + + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = print $ length $ trail $ fromMaybe (snd $ P.findMin $ initAgenda buildingTest) $ aStar (initAgenda building1) [] + +part2 :: IO () +part2 = print $ length $ trail $ fromMaybe (snd $ P.findMin $ initAgenda buildingTest) $ aStar (initAgenda building2) [] + +initAgenda :: Building -> Agenda +initAgenda b = P.singleton (estimateCost b) Agendum {current = b, trail=[], cost = estimateCost b} + + +aStar :: Agenda -> [CBuilding] -> Maybe Agendum +-- aStar [] _ = Agendum {current=buildingTest, trail=[], cost=0} +aStar agenda closed + | P.null agenda = Nothing + | otherwise = + if isGoal reached then Just currentAgendum + else if creached `elem` closed + then aStar (P.deleteMin agenda) closed + else aStar newAgenda (creached:closed) + where + (_, currentAgendum) = P.findMin agenda + reached = current currentAgendum + creached = canonical reached + newAgenda = P.union (P.deleteMin agenda) + (P.fromList $ candidates currentAgendum closed) + + +candidates :: Agendum -> [CBuilding] -> [(Int, Agendum)] +candidates agendum closed = newCandidates + where + candidate = current agendum + previous = trail agendum + succs = legalSuccessors $ successors candidate + nonloops = filter (\s -> not $ (canonical s) `elem` closed) succs + newCandidates = map (\a -> (cost a, a)) $ map (\n -> makeAgendum n) nonloops + makeAgendum new = Agendum {current = new, + trail = (canonical candidate):previous, + cost = estimateCost new + length previous + 1} + +isGoal :: Building -> Bool +isGoal (Building f floors) = + f+1 == height && (all (null) $ take f floors) + where height = length floors + +isLegal :: Building -> Bool +isLegal (Building f floors) = + null floor + || + not (any (isGenerator) floor) + || + any (safePair) pairs + where floor = floors!!f + pairs = [(i, j) | i <- floor, j <- floor, isGenerator i] + safePair (Generator e, Microchip f) = e == f + safePair (Generator _, Generator _) = False + +isGenerator :: Item -> Bool +isGenerator (Generator _) = True +isGenerator (Microchip _) = False + +successors :: Building -> [Building] +successors (Building f floors) = [updateBuilding f floors nf is | nf <- nextFloors, is <- items] + where + floor = floors!!f + items = filter (\is -> length is == 1 || length is == 2) $ subsequences floor + nextFloors = if f == 0 then [1] + else if f+1 == length floors then [f-1] + else [f+1, f-1] + +legalSuccessors :: [Building] -> [Building] +legalSuccessors = filter (isLegal) + +updateBuilding :: Int -> [Floor] -> Int -> [Item] -> Building +updateBuilding oldF oldFloors newF items = Building newF newFloors + where newFloors = map (updateFloor) $ zip [0..] oldFloors + updateFloor (f, fl) + | f == oldF = sort $ fl \\ items + | f == newF = sort $ items ++ fl + | otherwise = fl + +estimateCost :: Building -> Int +estimateCost (Building _ floors) = + sum $ map (\(c, f) -> c * length f) $ zip [0..] $ reverse floors + diff --git a/adventofcode16/app/advent12.hs b/adventofcode16/app/advent12.hs new file mode 100644 index 0000000..906c185 --- /dev/null +++ b/adventofcode16/app/advent12.hs @@ -0,0 +1,134 @@ +module Main(main) where + +import Text.Parsec hiding (State) +import Text.ParserCombinators.Parsec.Number +import Data.List (partition, union, intersect, tails) +import Data.Char (isDigit) +import Control.Monad.State.Lazy + +data Location = Literal Int | Register Char deriving (Show) +data Instruction = Cpy Location Location | + Inc Location | + Dec Location | + Jnz Location Int + deriving (Show) + +data Machine = Machine { a :: Int + , b :: Int + , c :: Int + , d :: Int + , pc :: Int + , instructions :: [Instruction]} + deriving (Show) + +emptyMachine :: Machine +emptyMachine = Machine {a=0, b=0, c=0, d=0, pc=0, instructions=[]} + +main :: IO () +main = do + text <- readFile "data/advent12.txt" + let instructions = successfulParse $ parseIfile text + part1 instructions + part2 instructions + + +part1 :: [Instruction] -> IO () +part1 instrs = + do let m0 = emptyMachine {instructions=instrs} + let mf = snd $ runState runMachine m0 + print (a mf) + +part2 :: [Instruction] -> IO () +part2 instrs = + do let m0 = emptyMachine {instructions=instrs, c=1} + let mf = snd $ runState runMachine m0 + print (a mf) + + + +runMachine :: State Machine () +runMachine = + do m <- get + if (pc m) >= (length $ instructions m) + then return () + else do executeStep + runMachine + +executeStep :: State Machine () +executeStep = + do m <- get + let i = (instructions m)!!(pc m) + put (executeInstruction i m) + +executeInstruction :: Instruction -> Machine -> Machine +executeInstruction (Inc (Register r)) m = m' {pc=pc1} + where pc1 = (pc m) + 1 + v = evaluate m (Register r) + m' = writeValue m (Register r) (v+1) +executeInstruction (Dec (Register r)) m = m' {pc=pc1} + where pc1 = (pc m) + 1 + v = evaluate m (Register r) + m' = writeValue m (Register r) (v-1) +executeInstruction (Cpy s d) m = m' {pc=pc1} + where pc1 = (pc m) + 1 + v = evaluate m s + m' = writeValue m d v +executeInstruction (Jnz s d) m + | v == 0 = m {pc=pc1} + | otherwise = m {pc=pcj} + where pc1 = (pc m) + 1 + pcj = (pc m) + d + v = evaluate m s + + +evaluate :: Machine -> Location -> Int +evaluate _ (Literal i) = i +evaluate m (Register r) = + case r of + 'a' -> (a m) + 'b' -> (b m) + 'c' -> (c m) + 'd' -> (d m) + +writeValue :: Machine -> Location -> Int -> Machine +writeValue m (Literal i) _ = m +writeValue m (Register r) v = + case r of + 'a' -> m {a=v} + 'b' -> m {b=v} + 'c' -> m {c=v} + 'd' -> m {d=v} + + +instructionFile = instructionLine `endBy` newline +-- instructionLine = choice [cpyL, incL, decL, jnzL] +instructionLine = incL <|> decL <|> cpyL <|> jnzL + +incL = incify <$> (string "inc" *> spaces *> (oneOf "abcd")) + where incify r = Inc (Register r) +decL = decify <$> (string "dec" *> spaces *> (oneOf "abcd")) + where decify r = Dec (Register r) +cpyL = cpyify <$> (string "cpy" *> spaces *> ((many1 letter) <|> (many1 digit))) + <*> (spaces *> (oneOf "abcd")) + where cpyify s r = Cpy (readLocation s) (Register r) +jnzL = jnzify <$> (string "jnz" *> spaces *> ((many1 letter) <|> (many1 digit))) + <*> (spaces *> int) + where jnzify r d = Jnz (readLocation r) d + + +readLocation :: String -> Location +readLocation l + | all (isDigit) l = Literal (read l) + | otherwise = Register (head l) + + + +parseIfile :: String -> Either ParseError [Instruction] +parseIfile input = parse instructionFile "(unknown)" input + +parseIline :: String -> Either ParseError Instruction +parseIline input = parse instructionLine "(unknown)" input + +successfulParse :: Either ParseError [a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = a \ No newline at end of file diff --git a/adventofcode16/app/advent13.hs b/adventofcode16/app/advent13.hs new file mode 100644 index 0000000..86981df --- /dev/null +++ b/adventofcode16/app/advent13.hs @@ -0,0 +1,95 @@ +module Main(main) where + +import Data.List ((\\), nub, sortOn) +import Data.Bits (popCount) +import Data.Maybe (fromMaybe) + +type Pos = (Int, Int) + +seed = 1362 + +goal1 = (31, 39) + +main :: IO () +main = do + part1 + part2 + + +part1 :: IO () +part1 = print $ length $ tail $ fromMaybe [] $ aStar [[(1, 1)]] [] + +part2 :: IO () +part2 = do print $ length $ tail $ edl 50 [[(1, 1)]] [] + putStrLn $ showRoomR 30 25 $ edl 50 [[(1, 1)]] [] + + +-- extractJust :: Maybe [a] -> [a] +-- extractJust Nothing = [] +-- extractJust (Just x) = x + +isWall :: Int -> Int -> Bool +isWall x y = odd $ popCount n + where + n = x*x + 3*x + 2*x*y + y + y*y + seed + + +showRoom w h = showRoomR w h [] + +showRoomR w h reached = unlines rows + where + rows = [row x | x <- [0..h]] + row x = [showCell x y | y <- [0..w]] + showCell x y = if (isWall x y) + then '#' + else if (x, y) `elem` reached + then 'O' + else '.' + + +aStar :: [[Pos]] -> [Pos] -> Maybe [Pos] +aStar [] _ = Nothing +aStar (currentTrail:trails) closed = + if isGoal (head currentTrail) then Just currentTrail + else if (head currentTrail) `elem` closed then aStar trails closed + else aStar newAgenda ((head currentTrail): closed) + where newAgenda = + sortOn (\a -> trailCost a) $ + trails ++ (candidates currentTrail closed) + trailCost t = estimateCost (head t) + length t - 1 + + +-- exhaustive depth-limited +edl :: Int -> [[Pos]] -> [Pos] -> [Pos] +edl _ [] closed = nub closed +edl limit (currentTrail:trails) closed = + if (length currentTrail) > (limit+1) then edl limit trails ((head currentTrail):closed) + else if (head currentTrail) `elem` closed then edl limit trails closed + else edl limit newAgenda ((head currentTrail):closed) + where newAgenda = trails ++ (candidates currentTrail closed) + +candidates :: [Pos] -> [Pos] -> [[Pos]] +candidates currentTrail closed = newCandidates + where + (candidate:trail) = currentTrail + succs = legalSuccessors $ successors candidate + nonloops = (succs \\ trail) \\ closed + newCandidates = map (\n -> n:candidate:trail) nonloops + +isGoal :: Pos -> Bool +isGoal p = p == goal1 + +isLegal :: Pos -> Bool +isLegal (x, y) = + x >= 0 && y >= 0 && (not $ isWall x y) + +successors :: Pos -> [Pos] +successors (x, y) = [(x-1, y), (x+1, y), (x, y-1), (x, y+1)] + +legalSuccessors :: [Pos] -> [Pos] +legalSuccessors = filter (isLegal) + +estimateCost :: Pos -> Int +estimateCost (x, y) = abs (x - gx) + abs (y - gy) + where (gx, gy) = goal1 + diff --git a/adventofcode16/app/advent14.hs b/adventofcode16/app/advent14.hs new file mode 100644 index 0000000..c6c092e --- /dev/null +++ b/adventofcode16/app/advent14.hs @@ -0,0 +1,43 @@ +module Main(main) where + +import Data.List (nub, tails, null) +import Data.Hash.MD5 (md5s, Str(..)) + +salt = "yjdafjpo" +-- salt = "abc" + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] + where sq = md5sequence + +part2 :: IO () +part2 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] + where sq = md5sequenceS + +md5sequence :: [String] +md5sequence = [makeMd5 i | i <- [0..]] + where makeMd5 i = md5s (Str (salt ++ show i)) + +md5sequenceS :: [String] +md5sequenceS = [makeMd5 i | i <- [0..]] + where makeMd5 i = stretch $ md5s (Str (salt ++ show i)) + stretch h0 = foldr (\_ h -> md5s (Str h)) h0 [1..2016] + +possibleKey :: [String] -> Int-> Bool +possibleKey s = not . null . repeats 3 . ((!!) s) + +confirmKey :: [String] -> Int -> Bool +confirmKey s i = any (confirmation) $ take 1000 $ drop (i+1) s + where c = head $ repeats 3 $ s!!i + confirmation m = c `elem` (repeats 5 m) + +repeats :: Int -> String -> [String] +repeats n = filter (null . tail) . map (nub) . substrings n + +substrings :: Int -> [a] -> [[a]] +substrings l = filter (\s -> (length s) == l) . map (take l) . tails diff --git a/adventofcode16/app/advent14c.hs b/adventofcode16/app/advent14c.hs new file mode 100644 index 0000000..ea699ed --- /dev/null +++ b/adventofcode16/app/advent14c.hs @@ -0,0 +1,47 @@ +module Main(main) where + +import Data.List (nub, tails) +import Data.ByteString.Char8 (pack) +import Crypto.Hash (hash, Digest, MD5) + +salt = "yjdafjpo" +-- salt = "abc" + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] + where sq = md5sequence + +part2 :: IO () +part2 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] + where sq = md5sequenceS + +getHash :: String -> String +getHash bs = show (hash $ pack bs :: Digest MD5) + +md5sequence :: [String] +md5sequence = [makeMd5 i | i <- [0..]] + where makeMd5 i = getHash (salt ++ show i) + +md5sequenceS :: [String] +md5sequenceS = [makeMd5 i | i <- [0..]] + where makeMd5 i = stretch $ getHash (salt ++ show i) + stretch h0 = foldr (\_ h -> getHash h) h0 [1..2016] + +possibleKey :: [String] -> Int-> Bool +possibleKey s = not . null . repeats 3 . ((!!) s) + +confirmKey :: [String] -> Int -> Bool +confirmKey s i = any (confirmation) $ take 1000 $ drop (i+1) s + where c = head $ repeats 3 $ s!!i + confirmation m = c `elem` (repeats 5 m) + +repeats :: Int -> String -> [String] +repeats n = filter (null . tail) . map (nub) . substrings n + +substrings :: Int -> [a] -> [[a]] +substrings l = filter (\s -> (length s) == l) . map (take l) . tails diff --git a/adventofcode16/app/advent14parallel.hs b/adventofcode16/app/advent14parallel.hs new file mode 100644 index 0000000..b0ca781 --- /dev/null +++ b/adventofcode16/app/advent14parallel.hs @@ -0,0 +1,53 @@ +module Main(main) where + +import Data.List (nub, tails) +import Data.ByteString.Char8 (pack) +import Crypto.Hash (hash, Digest, MD5) +import Control.Parallel.Strategies (withStrategy, parBuffer, rdeepseq) + +salt = "yjdafjpo" +-- salt = "abc" + +stretch_factor = [1..2016] +-- stretch_factor = [1..100] + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] + where sq = md5sequence + +part2 :: IO () +part2 = print $ head $ drop 63 $ filter (\i -> possibleKey sq i && confirmKey sq i) [0..] + where sq = md5sequenceS + +getHash :: String -> String +getHash bs = show (hash $ pack bs :: Digest MD5) + +md5sequence :: [String] +-- md5sequence = [makeMd5 i | i <- [0..]] +md5sequence = withStrategy (parBuffer 100 rdeepseq) $ map (makeMd5) [0..] + where makeMd5 i = getHash (salt ++ show i) + +md5sequenceS :: [String] +-- md5sequenceS = [makeMd5 i | i <- [0..]] +md5sequenceS = withStrategy (parBuffer 100 rdeepseq) $ map (makeMd5) [0..] + where makeMd5 i = stretch $ getHash (salt ++ show i) + stretch h0 = foldr (\_ h -> getHash h) h0 stretch_factor + +possibleKey :: [String] -> Int-> Bool +possibleKey s = not . null . repeats 3 . ((!!) s) + +confirmKey :: [String] -> Int -> Bool +confirmKey s i = any (confirmation) $ take 1000 $ drop (i+1) s + where c = head $ repeats 3 $ s!!i + confirmation m = c `elem` (repeats 5 m) + +repeats :: Int -> String -> [String] +repeats n = filter (null . tail) . map (nub) . substrings n + +substrings :: Int -> [a] -> [[a]] +substrings l = filter (\s -> (length s) == l) . map (take l) . tails diff --git a/adventofcode16/app/advent15.hs b/adventofcode16/app/advent15.hs new file mode 100644 index 0000000..5970bd6 --- /dev/null +++ b/adventofcode16/app/advent15.hs @@ -0,0 +1,43 @@ +module Main(main) where + +import Text.Parsec +import Text.ParserCombinators.Parsec.Number + +type Disk = (Int -> Bool) + +main :: IO () +main = do + text <- readFile "data/advent15.txt" + let disks = successfulParse $ parseIfile text + part1 disks + part2 disks + +part1 :: [Disk] -> IO () +part1 disks = print $ head $ filter (canFall disks) [0..] + +part2 :: [Disk] -> IO () +part2 disks = print $ head $ filter (canFall disks2) [0..] + where disks2 = disks ++ [diskify 7 11 0] + +canFall :: [Disk] -> Int -> Bool +canFall ds i = all (\d -> (d i)) ds + + +instructionFile = instructionLine `endBy` newline +instructionLine = diskify <$> (string "Disc #" *> int) + <*> (string " has " *> int) + <*> (string " positions; at time=0, it is at position " *> int) + <* (string ".") + +diskify :: Int -> Int -> Int -> (Int -> Bool) +diskify n size pos0 = (\i -> (size + n + pos0 + i) `mod` size == 0) + +parseIfile :: String -> Either ParseError [Disk] +parseIfile input = parse instructionFile "(unknown)" input + +parseIline :: String -> Either ParseError Disk +parseIline input = parse instructionLine "(unknown)" input + +successfulParse :: Either ParseError [a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = a diff --git a/adventofcode16/app/advent15l.hs b/adventofcode16/app/advent15l.hs new file mode 100644 index 0000000..67e2ac0 --- /dev/null +++ b/adventofcode16/app/advent15l.hs @@ -0,0 +1,39 @@ +module Main(main) where + +import Text.Parsec +import Text.ParserCombinators.Parsec.Number + +main :: IO () +main = do + text <- readFile "data/advent15.txt" + let disks = successfulParse $ parseIfile text + part1 disks + part2 disks + +part1 :: [[Int]] -> IO () +part1 disks = print $ head $ filter (canFall disks) [0..] + +part2 :: [[Int]] -> IO () +part2 disks = print $ head $ filter (canFall disks2) [0..] + where disks2 = disks ++ [drop 7 $ drop 0 $ cycle [0..(11-1)]] + +canFall :: [[Int]] -> Int -> Bool +canFall ds i = all (\d -> (d!!i) == 0) ds + + +instructionFile = instructionLine `endBy` newline +instructionLine = diskify <$> (string "Disc #" *> int) + <*> (string " has " *> int) + <*> (string " positions; at time=0, it is at position " *> int) + <* (string ".") + where diskify n size pos0 = drop n $ drop pos0 $ cycle [0..(size-1)] + +parseIfile :: String -> Either ParseError [[Int]] +parseIfile input = parse instructionFile "(unknown)" input + +parseIline :: String -> Either ParseError [Int] +parseIline input = parse instructionLine "(unknown)" input + +successfulParse :: Either ParseError [a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = a diff --git a/adventofcode16/app/advent16.hs b/adventofcode16/app/advent16.hs new file mode 100644 index 0000000..88b8b59 --- /dev/null +++ b/adventofcode16/app/advent16.hs @@ -0,0 +1,42 @@ +module Main(main) where + +import Data.List (nub) + +input = "11100010111110100" +disk1length = 272 +disk2length = 35651584 + +-- input = "10000" +-- disk1length = 20 + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = putStrLn $ checksum $ take disk1length $ expand disk1length input + +part2 :: IO () +part2 = putStrLn $ checksum $ take disk2length $ expand disk2length input + + +expand :: Int -> String -> String +expand len a + | length a >= len = a + | otherwise = expand len $ a ++ "0" ++ b + where b = map (invert) $ reverse a + invert '0' = '1' + invert '1' = '0' + +checksum :: String -> String +checksum digits + | odd $ length digits = digits + | otherwise = checksum $ map (checksumPair) $ pairs digits + where checksumPair p = if (length $ nub p) == 1 then '1' else '0' + + +pairs :: [a] -> [[a]] +pairs [] = [] +pairs xs = [p] ++ (pairs ys) + where (p, ys) = splitAt 2 xs diff --git a/adventofcode16/app/advent16i.hs b/adventofcode16/app/advent16i.hs new file mode 100644 index 0000000..897559d --- /dev/null +++ b/adventofcode16/app/advent16i.hs @@ -0,0 +1,45 @@ +module Main(main) where + +input = "11100010111110100" +disk1length = 272 +disk2length = 35651584 + +-- input = "10000" +-- disk1length = 20 + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = print $ fill disk1length input + +part2 :: IO () +part2 = print $ fill disk2length input + +fill :: Int -> String -> String +fill len filler = deBool $ checksum $ take len $ expand len $ enBool filler + +enBool :: String -> [Bool] +enBool = map (== '1') + +deBool :: [Bool] -> String +deBool = map (\b -> if b then '1' else '0') + + +expand :: Int -> [Bool] -> [Bool] +expand len = head . dropWhile ((<= len) . length) . iterate expandStep + +expandStep :: [Bool] -> [Bool] +expandStep a = a ++ [False] ++ b + where b = map (not) $ reverse a + +checksum :: [Bool] -> [Bool] +checksum = head . dropWhile (even . length) . iterate checksumStep + +checksumStep :: [Bool] -> [Bool] +checksumStep [] = [] +checksumStep [x] = [x] +checksumStep (x:y:xs) = (x==y):(checksumStep xs) + diff --git a/adventofcode16/app/advent17.hs b/adventofcode16/app/advent17.hs new file mode 100644 index 0000000..e757def --- /dev/null +++ b/adventofcode16/app/advent17.hs @@ -0,0 +1,77 @@ +module Main(main) where + +import Data.ByteString.Char8 (pack) +import qualified Crypto.Hash as C + +type Position = (Int, Int) +data Agendum = Agendum {position :: Position, path :: String, hash :: String} deriving (Show, Eq) +type Agenda = [Agendum] + +-- input = "hijkl" +-- input = "ihgpwlah" + +input = "qljzarfv" -- my input + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = putStrLn $ path $ extractJust $ bfs initialAgenda + +part2 :: IO () +part2 = print $ bfs2 initialAgenda 0 + +initialAgenda :: Agenda +initialAgenda = [Agendum {position=(1, 1), path="", hash=(getHash "")}] + +getHash :: String -> String +getHash path = show (C.hash $ pack (input ++ path) :: C.Digest C.MD5) + +extractJust :: Maybe Agendum -> Agendum +extractJust Nothing = head initialAgenda +extractJust (Just x) = x + +bfs :: Agenda -> Maybe Agendum +bfs [] = Nothing +bfs (current:agenda) = + if isGoal current then Just current + else bfs (agenda ++ (successors current)) + +bfs2 :: Agenda -> Int -> Int +bfs2 [] l = l +bfs2 (current:agenda) l = + if isGoal current then bfs2 agenda (length $ path $ current) + else bfs2 (agenda ++ (successors current)) l + +isGoal :: Agendum -> Bool +isGoal agendum = (position agendum) == (4, 4) + +isLegalPos :: Position -> Bool +isLegalPos p = fst p >= 1 && fst p <= 4 && snd p >= 1 && snd p <= 4 + +successors :: Agendum -> Agenda +successors state = [Agendum {position = step p0 ld, + path = path0 ++ [ld], + hash = getHash (path0 ++ [ld])} | ld <- legalDoors ] + where + p0 = position state + path0 = path state + h0 = hash state + doors = openDoors h0 + legalDoors = filter (isLegalPos . (step p0)) doors + +openDoors :: String -> String +openDoors h = up ++ down ++ left ++ right + where + up = if h!!0 `elem` "bcdef" then "U" else "" + down = if h!!1 `elem` "bcdef" then "D" else "" + left = if h!!2 `elem` "bcdef" then "L" else "" + right = if h!!3 `elem` "bcdef" then "R" else "" + +step :: Position -> Char -> Position +step (r, c) 'U' = (r-1, c) +step (r, c) 'D' = (r+1, c) +step (r, c) 'L' = (r, c-1) +step (r, c) 'R' = (r, c+1) diff --git a/adventofcode16/app/advent18.hs b/adventofcode16/app/advent18.hs new file mode 100644 index 0000000..2b1462f --- /dev/null +++ b/adventofcode16/app/advent18.hs @@ -0,0 +1,42 @@ +module Main(main) where + +import Data.List (tails) + +-- input = "..^^." +-- input = ".^^.^.^^^^" +input = "^.^^^.^..^....^^....^^^^.^^.^...^^.^.^^.^^.^^..^.^...^.^..^.^^.^..^.....^^^.^.^^^..^^...^^^...^...^." + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +-- part1 = putStrLn $ unlines $ map (showRow) $ take 10 $ iterate nextRow $ readRow input +part1 = print $ length $ filter (not) $ concat $ take 40 $ iterate nextRow $ readRow input + +part2 :: IO () +part2 = print $ length $ filter (not) $ concat $ take 400000 $ iterate nextRow $ readRow input + +readRow :: String -> [Bool] +readRow = map (=='^') + +showRow :: [Bool] -> String +showRow = map (\c -> if c then '^' else '.') + +extended :: [Bool] -> [Bool] +extended row = [False] ++ row ++ [False] + +nextRow :: [Bool] -> [Bool] +nextRow = map (isTrap) . segments . extended + +segments :: [a] -> [[a]] +segments = filter ((==3) . length) . map (take 3) . tails + +isTrap :: [Bool] -> Bool +isTrap segment + | segment == [True, True, False] = True + | segment == [False, True, True] = True + | segment == [True, False, False] = True + | segment == [False, False, True] = True + | otherwise = False diff --git a/adventofcode16/app/advent18f.hs b/adventofcode16/app/advent18f.hs new file mode 100644 index 0000000..d1650e6 --- /dev/null +++ b/adventofcode16/app/advent18f.hs @@ -0,0 +1,50 @@ +module Main(main) where + +import Data.List (tails, foldl') + +-- input = "..^^." +-- input = ".^^.^.^^^^" +input = "^.^^^.^..^....^^....^^^^.^^.^...^^.^.^^.^^.^^..^.^...^.^..^.^^.^..^.....^^^.^.^^^..^^...^^^...^...^." + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = print $ fst $ foldl' nextRowFold (countSafe row, row) [2..40] + where row = readRow input + +part2 :: IO () +part2 = print $ fst $ foldl' nextRowFold (countSafe row, row) [2..400000] + where row = readRow input + +readRow :: String -> [Bool] +readRow = map (=='^') + +showRow :: [Bool] -> String +showRow = map (\c -> if c then '^' else '.') + +extended :: [Bool] -> [Bool] +extended row = [False] ++ row ++ [False] + +nextRow :: [Bool] -> [Bool] +nextRow = map (isTrap) . segments . extended + +nextRowFold :: (Int, [Bool]) -> Int -> (Int, [Bool]) +nextRowFold (n, row) _ = (n + countSafe newRow, newRow) + where newRow = nextRow row + +countSafe :: [Bool] -> Int +countSafe = length . filter (not) + +segments :: [a] -> [[a]] +segments = filter ((==3) . length) . map (take 3) . tails + +isTrap :: [Bool] -> Bool +isTrap segment + | segment == [True, True, False] = True + | segment == [False, True, True] = True + | segment == [True, False, False] = True + | segment == [False, False, True] = True + | otherwise = False diff --git a/adventofcode16/app/advent19.hs b/adventofcode16/app/advent19.hs new file mode 100644 index 0000000..009a07c --- /dev/null +++ b/adventofcode16/app/advent19.hs @@ -0,0 +1,37 @@ +module Main(main) where + +import Prelude hiding (length, take, drop) +import Data.Sequence + +-- input = 5 +input = 3012210 + +main :: IO () +main = do + part1 + part2 + +part1 :: IO () +part1 = print $ 2 * (input - 2 ^ (toInteger (floor $ logBase 2 (fromIntegral input)))) + 1 + +part2 :: IO () +part2 = print $ flip index 0 $ presentSteps initial + +presentSteps :: Seq Int -> Seq Int +presentSteps elves + | isFinished elves = elves + | otherwise = presentSteps $ next elves + +initial :: Seq Int +initial = fromList [1..input] + +isFinished :: Seq Int -> Bool +isFinished elves = length elves == 1 + +next :: Seq Int -> Seq Int +next elves = prefix >< (midfix |> suffix) + where + target = length elves `quot` 2 + prefix = drop 1 $ take target elves + midfix = drop (target+1) elves + suffix = index elves 0 diff --git a/adventofcode16/app/advent20.hs b/adventofcode16/app/advent20.hs new file mode 100644 index 0000000..8830c45 --- /dev/null +++ b/adventofcode16/app/advent20.hs @@ -0,0 +1,74 @@ +module Main(main) where + +import Text.Parsec +import Text.ParserCombinators.Parsec.Number +import Data.List (foldl') + +data Interval = Interval Int Int deriving (Show, Eq) + +low :: Interval -> Int +low (Interval l _) = l + +high :: Interval -> Int +high (Interval _ h) = h + +main :: IO () +main = do + text <- readFile "data/advent20.txt" + let intervals = successfulParse $ parseIfile text + part1 intervals + part2 intervals + +part1 :: [Interval] -> IO () +part1 intervals = print $ (+1) $ high $ head $ foldl' (mergeAdjacent) [] $ foldl' (merge) [] intervals + +part2 :: [Interval] -> IO () +part2 intervals = do + let ints = foldl' (mergeAdjacent) [] $ foldl' (merge) [] intervals + let gapCount = gaps ints + let lowGap = low $ head ints + let highGap = 4294967295 - (high $ last ints) + print (lowGap + gapCount + highGap) + +disjoint :: Interval -> Interval -> Bool +disjoint (Interval a b) (Interval c d) + | b < c = True + | d < a = True + | a > d = True + | c > b = True + | otherwise = False + +intersect :: Interval -> Interval -> Bool +intersect a b = not $ disjoint a b + +merge :: [Interval] -> Interval -> [Interval] +merge [] i0 = [i0] +merge (i1:intervals) i0 + | (high i0) < (low i1) = i0:i1:intervals + | intersect i0 i1 = merge intervals (Interval a' b') + | otherwise = i1:(merge intervals i0) + where a' = minimum [low i0, low i1] + b' = maximum [high i0, high i1] + +mergeAdjacent :: [Interval] -> Interval -> [Interval] +mergeAdjacent [] i0 = [i0] +mergeAdjacent (i1:intervals) i0 + | high i0 + 1 == low i1 = (Interval (low i0) (high i1)):intervals + | low i0 == high i1 + 1 = (Interval (low i1) (high i0)):intervals + | otherwise = i1:(mergeAdjacent intervals i0) + +gaps :: [Interval] -> Int +gaps [] = 0 +gaps [_] = 0 +gaps ((Interval _ b):(Interval c d):intervals) = + (c - b - 1) + gaps ((Interval c d):intervals) + +intervalFile = intervalLine `endBy` newline +intervalLine = Interval <$> int <*> (string "-" *> int) + +parseIfile :: String -> Either ParseError [Interval] +parseIfile input = parse intervalFile "(unknown)" input + +successfulParse :: Either ParseError [a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = a diff --git a/adventofcode16/app/advent21.hs b/adventofcode16/app/advent21.hs new file mode 100644 index 0000000..2415974 --- /dev/null +++ b/adventofcode16/app/advent21.hs @@ -0,0 +1,198 @@ +module Main(main) where + +import Text.Parsec hiding (State) +import Text.ParserCombinators.Parsec.Number +import Data.Maybe (fromJust) +import Data.List (elemIndex) + +import Control.Monad.Identity +import Control.Monad.State +import Control.Monad.Writer + +data Instruction = SwapPosition Int Int + | SwapLetter Char Char + | RotateSteps Int + | RotateLetter Char + | Reverse Int Int + | Move Int Int + deriving (Show, Eq) + +data Log = Log { + action :: String + } deriving (Show) + +data Password = Password { + password :: String + } deriving (Show) + + +type App = WriterT [Log] (StateT Password Identity) + +infixl 9 ?? + +(??) :: Eq a => [a] -> a -> Int +(??) items item = fromJust $ elemIndex item items + + +initial = "abcdefgh" +final = "fbgdceah" + +testInstructions = "\ +\swap position 4 with position 0\n\ +\swap letter d with letter b\n\ +\reverse positions 0 through 4\n\ +\rotate left 1 step\n\ +\move position 1 to position 4\n\ +\move position 3 to position 0\n\ +\rotate based on position of letter b\n\ +\rotate based on position of letter d\n" + +main :: IO () +main = do + -- let ti = successfulParse $ parseIfile testInstructions + -- part1 ti "abcde" + -- part2 (reverse ti) "decab" + text <- readFile "data/advent21.txt" + let instructions = successfulParse $ parseIfile text + part1 instructions initial + part2 (reverse instructions) final + +part1 :: [Instruction] -> String -> IO () +part1 instructions start = + let st = Password {password = start} + ((_, log), st') = runIdentity (runStateT (runWriterT (apply instructions)) st) + in do + -- putStrLn $ unlines $ map (action) log + putStrLn $ password st' + +part2 :: [Instruction] -> String -> IO () +part2 instructions end = + let st = Password {password = end} + ((_, log), st') = runIdentity (runStateT (runWriterT (unApply instructions)) st) + in do + -- putStrLn $ unlines $ map (action) log + putStrLn $ password st' + + +apply :: [Instruction] -> App () +apply [] = return () +apply (i:is) = + do st <- get + let p0 = password st + let p1 = applyInstruction i p0 + put st {password = p1} + tell [Log (p0 ++ " -> " ++ p1 ++ " : " ++ (show i))] + apply is + + +applyInstruction :: Instruction -> String -> String +applyInstruction (SwapPosition from to) p0 + | from == to = p0 + | otherwise = prefix ++ [p0!!end] ++ midfix ++ [p0!!start] ++ suffix + where start = minimum [from, to] + end = maximum [from, to] + prefix = take start p0 + midfix = take (end-start-1) $ drop (start+1) p0 + suffix = drop (end+1) p0 + +applyInstruction (SwapLetter l0 l1) p0 = applyInstruction (SwapPosition (p0??l0) (p0??l1)) p0 + +applyInstruction (RotateSteps n) p0 = (drop n' p0) ++ (take n' p0) + where n' = if n < 0 + then (-1 * n) + else (length p0) - n + +applyInstruction (RotateLetter l) p0 = applyInstruction (RotateSteps n) p0 + where n = (1 + (p0??l) + if (p0??l) >= 4 then 1 else 0) `mod` (length p0) + +applyInstruction (Reverse from to) p0 + | from == to = p0 + | otherwise = prefix ++ (reverse midfix) ++ suffix + where start = minimum [from, to] + end = maximum [from, to] + prefix = take start p0 + midfix = take (end-start+1) $ drop start p0 + suffix = drop (end+1) p0 + +applyInstruction (Move from to) p0 + | from == to = p0 + | otherwise = prefix ++ [p0!!from] ++ suffix + where without = take from p0 ++ drop (from+1) p0 + prefix = take to without + suffix = drop (to) without + + +unApply :: [Instruction] -> App () +unApply [] = return () +unApply (i:is) = + do st <- get + let p0 = password st + let p1 = unApplyInstruction i p0 + put st {password = p1} + tell [Log (p1 ++ " <- " ++ p0 ++ " : " ++ (show i))] + unApply is + +unApplyInstruction :: Instruction -> String -> String +unApplyInstruction (SwapPosition from to) p0 = applyInstruction (SwapPosition from to) p0 +unApplyInstruction (SwapLetter l0 l1) p0 = applyInstruction (SwapLetter l0 l1) p0 +unApplyInstruction (RotateSteps n) p0 = applyInstruction (RotateSteps (-1 * n)) p0 +unApplyInstruction (Reverse from to) p0 = applyInstruction (Reverse from to) p0 +unApplyInstruction (Move from to) p0 = applyInstruction (Move to from) p0 +unApplyInstruction (RotateLetter l) p0 = applyInstruction (RotateSteps n) p0 + where n = case (p0??l) of + 0 -> -1 + 1 -> -1 + 2 -> 2 + 3 -> -2 + 4 -> 1 + 5 -> -3 + 6 -> 0 + 7 -> -4 + -- where n = case (p0??l) of + -- 0 -> -1 + -- 1 -> -1 + -- 2 -> 1 + -- 3 -> -2 + -- 4 -> 1 + + +instructionFile = instructionLine `endBy` newline +instructionLine = choice [ swapL + , rotateL + , reverseL + , moveL + ] + +swapL = (try (string "swap ")) *> (swapPosL <|> swapLetterL) + +swapPosL = SwapPosition <$> (string "position" *> spaces *> int) + <*> (spaces *> string "with position" *> spaces *> int) + +swapLetterL = SwapLetter <$> (string "letter" *> spaces *> letter) + <*> (spaces *> string "with letter" *> spaces *> letter) + +rotateL = (try (string "rotate ")) *> (rotateDirL <|> rotateLetterL) + +rotateDirL = rotateStepify <$> ((string "left") <|> (string "right")) + <*> (spaces *> int <* spaces <* skipMany letter) + where rotateStepify dir n = case dir of + "left" -> (RotateSteps (-1 * n)) + "right" -> (RotateSteps n) +rotateLetterL = RotateLetter <$> (string "based on position of letter " *> letter) + +reverseL = Reverse <$> (string "reverse positions" *> spaces *> int) + <*> (spaces *> (string "through") *> spaces *> int) + +moveL = Move <$> (string "move position" *> spaces *> int) + <*> (spaces *> (string "to position") *> spaces *> int) + + +parseIfile :: String -> Either ParseError [Instruction] +parseIfile input = parse instructionFile "(unknown)" input + +parseIline :: String -> Either ParseError Instruction +parseIline input = parse instructionLine "(unknown)" input + +successfulParse :: Either ParseError [a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = a diff --git a/adventofcode16/app/advent22.hs b/adventofcode16/app/advent22.hs new file mode 100644 index 0000000..f2e084a --- /dev/null +++ b/adventofcode16/app/advent22.hs @@ -0,0 +1,156 @@ +module Main(main) where + +import GHC.Generics (Generic) +import Text.Parsec +import Text.ParserCombinators.Parsec.Number +import Data.Maybe (catMaybes, fromJust) +import Data.List (find, delete, sort, sortOn, reverse) + +data Node = Node { x :: Int + , y :: Int + , size :: Int + , used :: Int + , available :: Int + , use_pc :: Int + } deriving (Show, Eq, Ord) + +data SearchState = SearchState { cx :: Int + , cy :: Int + , grid :: [Node] + } deriving (Show) +instance Ord SearchState where + s1 `compare` s2 = (heuristic s1) `compare` (heuristic s2) +instance Eq SearchState where + s1 == s2 = equivalentState s1 s2 + +equivalentState :: SearchState -> SearchState -> Bool +equivalentState s1 s2 = + let h1 = fromJust $ find (\n -> used n == 0) $ grid s1 + h2 = fromJust $ find (\n -> used n == 0) $ grid s2 + in + cx s1 == cx s2 && cy s1 == cy s2 && + x h1 == x h2 && y h1 == y h2 + + +testGrid = "\ +\Filesystem Size Used Avail Use%\n\ +\/dev/grid/node-x0-y0 10T 8T 2T 80%\n\ +\/dev/grid/node-x0-y1 11T 6T 5T 54%\n\ +\/dev/grid/node-x0-y2 32T 28T 4T 87%\n\ +\/dev/grid/node-x1-y0 9T 7T 2T 77%\n\ +\/dev/grid/node-x1-y1 8T 0T 8T 0%\n\ +\/dev/grid/node-x1-y2 11T 7T 4T 63%\n\ +\/dev/grid/node-x2-y0 10T 6T 4T 60%\n\ +\/dev/grid/node-x2-y1 9T 8T 1T 88%\n\ +\/dev/grid/node-x2-y2 9T 6T 3T 66%\n\ +\" + +main :: IO () +main = do + text <- readFile "data/advent22.txt" + let sizes = successfulParse $ parseFile text + part1 sizes + part2 sizes + +part1 :: [Node] -> IO () +part1 sizes = print $ length viable + where viable = [(a, b) | a <- sizes, + b <- sizes, + a /= b, + (used a) > 0, + (used a) <= (available b)] + + +part2 :: [Node] -> IO () +part2 sizes = + -- do let testSizes = successfulParse $ parseFile testGrid + -- putStrLn $ searchTraceH $ reverse $ aStar [[startSt testSizes]] [] + print (26 + 26 + 29 + 5 * 36) + + +aStar :: [[SearchState]] -> [SearchState] -> [SearchState] +aStar [] _ = [] +aStar (currentPath:agenda) closed = + if isGoal reached then currentPath + else if reached `elem` closed + then aStar agenda closed + else aStar newAgenda (reached:closed) + where + reached = head currentPath + successorPaths = map (:currentPath) $ successors reached + newAgenda = sortOn (cost) $ successorPaths ++ agenda + + +searchTrace :: [SearchState] -> String +searchTrace ss = unlines $ map (sst) ss + where sst s = "(" ++ show (cx s) ++ ", " ++ show (cy s) ++ ")" + +searchTraceH :: [SearchState] -> String +searchTraceH ss = unlines $ map (sst) ss + where sst s = "(" ++ show (cx s) ++ ", " ++ show (cy s) ++ ") :: " ++ holeS s + hole sk = fromJust $ find (\n -> used n == 0) $ grid sk + holeS sk = "(" ++ show (x $ hole sk) ++ ", " ++ show (y $ hole sk) ++ ")" + +startSt :: [Node] -> SearchState +startSt nodes = SearchState {cx = maximum xs, cy = 0, grid = nodes} + where xs = map (\n -> x n) nodes + +isGoal :: SearchState -> Bool +isGoal st = cx st == 0 && cy st == 0 + +adjacent :: Node -> Node -> Bool +adjacent n1 n2 = abs ((x n1) - (x n2)) + abs ((y n1) - (y n2)) == 1 + +-- A move of data from n1 to n2 is legal. +legal :: Node -> Node -> Bool +legal n1 n2 = adjacent n1 n2 && used n1 > 0 && used n1 <= available n2 + +heuristic :: SearchState -> Int +heuristic st = (cx st) + (cy st) + +successors :: SearchState -> [SearchState] +successors st = map (newState st current) possibleMoves + where nodes = grid st + current = fromJust $ find (\n -> (x n) == (cx st) && (y n) == (cy st)) nodes + possibleMoves = [(n1, n2) | n1 <- nodes, n2 <- nodes, legal n1 n2] + + +-- Moving data from n1 to n2 +newState :: SearchState -> Node -> (Node, Node) -> SearchState +newState st current (n1, n2) = st {cx = cx', cy = cy', grid = grid'} + where cx' = if current == n1 then x n2 else x current + cy' = if current == n1 then y n2 else y current + grid' = sort $ (n2 {used = (used n2 + used n1), available = (available n2 - used n1)}): + (n1 {used = 0, available = (size n1)}): + (delete n1 $ delete n2 (grid st)) + +cost :: [SearchState] -> Int +cost p = (heuristic $ head p) + (length p) + + + +duFile = duLine `sepEndBy` newline +-- duLine = (optionMaybe nodeL) + +duLine = (nodeL >>= return . Just) <|> (headerL >> return Nothing) + +headerL = (many (noneOf "\r\n")) + +nodeL = nodeify <$> (string "/dev/grid/node-x" *> int) + <*> (string "-y" *> int) + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "%") + where nodeify x y size used available use_pc = + Node {x=x, y=y, size=size, used=used, available=available, use_pc=use_pc} + +parseFile :: String -> Either ParseError [Maybe Node] +parseFile input = parse duFile "(unknown)" input + +parseLine :: String -> Either ParseError (Maybe Node) +parseLine input = parse duLine "(unknown)" input + +successfulParse :: Either ParseError [Maybe a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = catMaybes a diff --git a/adventofcode16/app/advent22library.hs b/adventofcode16/app/advent22library.hs new file mode 100644 index 0000000..bad3621 --- /dev/null +++ b/adventofcode16/app/advent22library.hs @@ -0,0 +1,143 @@ +{-# LANGUAGE DeriveGeneric #-} + +module Main(main) where + +import GHC.Generics (Generic) +import Text.Parsec +import Text.ParserCombinators.Parsec.Number +import Data.Maybe (catMaybes, fromJust) +import Data.List (find, delete, sort) +import Data.Graph.AStar +import Data.Hashable +import qualified Data.HashSet + +data Node = Node { x :: Int + , y :: Int + , size :: Int + , used :: Int + , available :: Int + , use_pc :: Int + } deriving (Show, Eq, Ord, Generic) +instance Hashable Node + +data SearchState = SearchState { cx :: Int + , cy :: Int + , grid :: [Node] + } deriving (Show, Eq, Generic) +instance Hashable SearchState +instance Ord SearchState where + s1 `compare` s2 = (heuristic s1) `compare` (heuristic s2) + + +testGrid = "\ +\Filesystem Size Used Avail Use%\n\ +\/dev/grid/node-x0-y0 10T 8T 2T 80%\n\ +\/dev/grid/node-x0-y1 11T 6T 5T 54%\n\ +\/dev/grid/node-x0-y2 32T 28T 4T 87%\n\ +\/dev/grid/node-x1-y0 9T 7T 2T 77%\n\ +\/dev/grid/node-x1-y1 8T 0T 8T 0%\n\ +\/dev/grid/node-x1-y2 11T 7T 4T 63%\n\ +\/dev/grid/node-x2-y0 10T 6T 4T 60%\n\ +\/dev/grid/node-x2-y1 9T 8T 1T 88%\n\ +\/dev/grid/node-x2-y2 9T 6T 3T 66%\n\ +\" + +main :: IO () +main = do + text <- readFile "data/advent22.txt" + let sizes = successfulParse $ parseFile text + part1 sizes + part2 sizes + +part1 :: [Node] -> IO () +part1 sizes = print $ length viable + where viable = [(a, b) | a <- sizes, + b <- sizes, + a /= b, + (used a) > 0, + (used a) <= (available b)] + + +part2 :: [Node] -> IO () +part2 sizes = + -- do let testSizes = successfulParse $ parseFile testGrid + -- putStrLn $ searchTrace $ fromJust $ + -- aStar successors + -- (\_ _ -> 1) + -- heuristic + -- isGoal + -- (startSt testSizes) + putStrLn $ searchTrace $ fromJust $ + aStar successors + (\_ _ -> 1) + heuristic + isGoal + (startSt sizes) + + + +searchTrace :: [SearchState] -> String +searchTrace ss = unlines $ map (sst) ss + where sst s = "(" ++ show (cx s) ++ ", " ++ show (cy s) ++ ") :: " ++ holeS s + hole sk = fromJust $ find (\n -> used n == 0) $ grid sk + holeS sk = "(" ++ show (x $ hole sk) ++ ", " ++ show (y $ hole sk) ++ ")" + +startSt :: [Node] -> SearchState +startSt nodes = SearchState {cx = maximum xs, cy = 0, grid = nodes} + where xs = map (\n -> x n) nodes + +isGoal :: SearchState -> Bool +isGoal st = cx st == 0 && cy st == 0 + +adjacent :: Node -> Node -> Bool +adjacent n1 n2 = abs ((x n1) - (x n2)) + abs ((y n1) - (y n2)) == 1 + +-- A move of data from n1 to n2 is legal. +legal :: Node -> Node -> Bool +legal n1 n2 = adjacent n1 n2 && used n1 > 0 && used n1 <= available n2 + +heuristic :: SearchState -> Int +heuristic st = (cx st) + (cy st) + +successors :: SearchState -> Data.HashSet.HashSet SearchState +successors st = Data.HashSet.fromList $ map (newState st current) possibleMoves + where nodes = grid st + current = fromJust $ find (\n -> (x n) == (cx st) && (y n) == (cy st)) nodes + possibleMoves = [(n1, n2) | n1 <- nodes, n2 <- nodes, legal n1 n2] + + +-- Moving data from n1 to n2 +newState :: SearchState -> Node -> (Node, Node) -> SearchState +newState st current (n1, n2) = st {cx = cx', cy = cy', grid = grid'} + where cx' = if current == n1 then x n2 else x current + cy' = if current == n1 then y n2 else y current + grid' = sort $ (n2 {used = (used n2 + used n1), available = (available n2 - used n1)}): + (n1 {used = 0, available = (size n1)}): + (delete n1 $ delete n2 (grid st)) + + +duFile = duLine `sepEndBy` newline +-- duLine = (optionMaybe nodeL) + +duLine = (nodeL >>= return . Just) <|> (headerL >> return Nothing) + +headerL = (many (noneOf "\r\n")) + +nodeL = nodeify <$> (string "/dev/grid/node-x" *> int) + <*> (string "-y" *> int) + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "%") + where nodeify x y size used available use_pc = + Node {x=x, y=y, size=size, used=used, available=available, use_pc=use_pc} + +parseFile :: String -> Either ParseError [Maybe Node] +parseFile input = parse duFile "(unknown)" input + +parseLine :: String -> Either ParseError (Maybe Node) +parseLine input = parse duLine "(unknown)" input + +successfulParse :: Either ParseError [Maybe a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = catMaybes a diff --git a/adventofcode16/app/advent22search.hs b/adventofcode16/app/advent22search.hs new file mode 100644 index 0000000..32ada24 --- /dev/null +++ b/adventofcode16/app/advent22search.hs @@ -0,0 +1,156 @@ +module Main(main) where + +import GHC.Generics (Generic) +import Text.Parsec +import Text.ParserCombinators.Parsec.Number +import Data.Maybe (catMaybes, fromJust) +import Data.List (find, delete, sort, sortOn, reverse) + +data Node = Node { x :: Int + , y :: Int + , size :: Int + , used :: Int + , available :: Int + , use_pc :: Int + } deriving (Show, Eq, Ord) + +data SearchState = SearchState { cx :: Int + , cy :: Int + , grid :: [Node] + } deriving (Show) +instance Ord SearchState where + s1 `compare` s2 = (heuristic s1) `compare` (heuristic s2) +instance Eq SearchState where + s1 == s2 = equivalentState s1 s2 + +equivalentState :: SearchState -> SearchState -> Bool +equivalentState s1 s2 = + let h1 = fromJust $ find (\n -> used n == 0) $ grid s1 + h2 = fromJust $ find (\n -> used n == 0) $ grid s2 + in + cx s1 == cx s2 && cy s1 == cy s2 && + x h1 == x h2 && y h1 == y h2 + + +testGrid = "\ +\Filesystem Size Used Avail Use%\n\ +\/dev/grid/node-x0-y0 10T 8T 2T 80%\n\ +\/dev/grid/node-x0-y1 11T 6T 5T 54%\n\ +\/dev/grid/node-x0-y2 32T 28T 4T 87%\n\ +\/dev/grid/node-x1-y0 9T 7T 2T 77%\n\ +\/dev/grid/node-x1-y1 8T 0T 8T 0%\n\ +\/dev/grid/node-x1-y2 11T 7T 4T 63%\n\ +\/dev/grid/node-x2-y0 10T 6T 4T 60%\n\ +\/dev/grid/node-x2-y1 9T 8T 1T 88%\n\ +\/dev/grid/node-x2-y2 9T 6T 3T 66%\n\ +\" + +main :: IO () +main = do + text <- readFile "data/advent22.txt" + let sizes = successfulParse $ parseFile text + part1 sizes + part2 sizes + +part1 :: [Node] -> IO () +part1 sizes = print $ length viable + where viable = [(a, b) | a <- sizes, + b <- sizes, + a /= b, + (used a) > 0, + (used a) <= (available b)] + + +part2 :: [Node] -> IO () +part2 sizes = + -- do let testSizes = successfulParse $ parseFile testGrid + -- putStrLn $ searchTraceH $ reverse $ aStar [[startSt testSizes]] [] + print $ length $ aStar [[startSt sizes]] [] + + +aStar :: [[SearchState]] -> [SearchState] -> [SearchState] +aStar [] _ = [] +aStar (currentPath:agenda) closed = + if isGoal reached then currentPath + else if reached `elem` closed + then aStar agenda closed + else aStar newAgenda (reached:closed) + where + reached = head currentPath + successorPaths = map (:currentPath) $ successors reached + newAgenda = sortOn (cost) $ successorPaths ++ agenda + + +searchTrace :: [SearchState] -> String +searchTrace ss = unlines $ map (sst) ss + where sst s = "(" ++ show (cx s) ++ ", " ++ show (cy s) ++ ")" + +searchTraceH :: [SearchState] -> String +searchTraceH ss = unlines $ map (sst) ss + where sst s = "(" ++ show (cx s) ++ ", " ++ show (cy s) ++ ") :: " ++ holeS s + hole sk = fromJust $ find (\n -> used n == 0) $ grid sk + holeS sk = "(" ++ show (x $ hole sk) ++ ", " ++ show (y $ hole sk) ++ ")" + +startSt :: [Node] -> SearchState +startSt nodes = SearchState {cx = maximum xs, cy = 0, grid = nodes} + where xs = map (\n -> x n) nodes + +isGoal :: SearchState -> Bool +isGoal st = cx st == 0 && cy st == 0 + +adjacent :: Node -> Node -> Bool +adjacent n1 n2 = abs ((x n1) - (x n2)) + abs ((y n1) - (y n2)) == 1 + +-- A move of data from n1 to n2 is legal. +legal :: Node -> Node -> Bool +legal n1 n2 = adjacent n1 n2 && used n1 > 0 && used n1 <= available n2 + +heuristic :: SearchState -> Int +heuristic st = (cx st) + (cy st) + +successors :: SearchState -> [SearchState] +successors st = map (newState st current) possibleMoves + where nodes = grid st + current = fromJust $ find (\n -> (x n) == (cx st) && (y n) == (cy st)) nodes + possibleMoves = [(n1, n2) | n1 <- nodes, n2 <- nodes, legal n1 n2] + + +-- Moving data from n1 to n2 +newState :: SearchState -> Node -> (Node, Node) -> SearchState +newState st current (n1, n2) = st {cx = cx', cy = cy', grid = grid'} + where cx' = if current == n1 then x n2 else x current + cy' = if current == n1 then y n2 else y current + grid' = sort $ (n2 {used = (used n2 + used n1), available = (available n2 - used n1)}): + (n1 {used = 0, available = (size n1)}): + (delete n1 $ delete n2 (grid st)) + +cost :: [SearchState] -> Int +cost p = (heuristic $ head p) + (length p) + + + +duFile = duLine `sepEndBy` newline +-- duLine = (optionMaybe nodeL) + +duLine = (nodeL >>= return . Just) <|> (headerL >> return Nothing) + +headerL = (many (noneOf "\r\n")) + +nodeL = nodeify <$> (string "/dev/grid/node-x" *> int) + <*> (string "-y" *> int) + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "%") + where nodeify x y size used available use_pc = + Node {x=x, y=y, size=size, used=used, available=available, use_pc=use_pc} + +parseFile :: String -> Either ParseError [Maybe Node] +parseFile input = parse duFile "(unknown)" input + +parseLine :: String -> Either ParseError (Maybe Node) +parseLine input = parse duLine "(unknown)" input + +successfulParse :: Either ParseError [Maybe a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = catMaybes a diff --git a/adventofcode16/app/advent22showgrid.hs b/adventofcode16/app/advent22showgrid.hs new file mode 100644 index 0000000..aec4309 --- /dev/null +++ b/adventofcode16/app/advent22showgrid.hs @@ -0,0 +1,77 @@ +{-# LANGUAGE DeriveGeneric #-} + +module Main(main) where + +import GHC.Generics (Generic) +import Text.Parsec +import Text.ParserCombinators.Parsec.Number +import Data.Maybe (catMaybes, fromJust) +import Data.List (find, delete, sort, sortOn, reverse) + +data Node = Node { x :: Int + , y :: Int + , size :: Int + , used :: Int + , available :: Int + , use_pc :: Int + } deriving (Show, Eq, Ord) + + +testGrid = "\ +\Filesystem Size Used Avail Use%\n\ +\/dev/grid/node-x0-y0 10T 8T 2T 80%\n\ +\/dev/grid/node-x0-y1 11T 6T 5T 54%\n\ +\/dev/grid/node-x0-y2 32T 28T 4T 87%\n\ +\/dev/grid/node-x1-y0 9T 7T 2T 77%\n\ +\/dev/grid/node-x1-y1 8T 0T 8T 0%\n\ +\/dev/grid/node-x1-y2 11T 7T 4T 63%\n\ +\/dev/grid/node-x2-y0 10T 6T 4T 60%\n\ +\/dev/grid/node-x2-y1 9T 8T 1T 88%\n\ +\/dev/grid/node-x2-y2 9T 6T 3T 66%\n\ +\" + +main :: IO () +main = do + text <- readFile "data/advent22.txt" + let sizes = successfulParse $ parseFile text + let maxX = maximum $ map (\n -> x n) sizes + let maxY = maximum $ map (\n -> y n) sizes + putStrLn $ unlines $ map (showRow maxX sizes) [0..(maxY-1)] + + +showRow maxX sizes r = map (charOf) row + where row = sortOn (\c -> x c) $ filter (\c -> y c == r) sizes + charOf c = if (used c) == 0 + then '+' + else if (used c) > 100 + then '#' + else '_' + + + + +duFile = duLine `sepEndBy` newline +-- duLine = (optionMaybe nodeL) + +duLine = (nodeL >>= return . Just) <|> (headerL >> return Nothing) + +headerL = (many (noneOf "\r\n")) + +nodeL = nodeify <$> (string "/dev/grid/node-x" *> int) + <*> (string "-y" *> int) + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "T") + <*> (spaces *> int <* string "%") + where nodeify x y size used available use_pc = + Node {x=x, y=y, size=size, used=used, available=available, use_pc=use_pc} + +parseFile :: String -> Either ParseError [Maybe Node] +parseFile input = parse duFile "(unknown)" input + +parseLine :: String -> Either ParseError (Maybe Node) +parseLine input = parse duLine "(unknown)" input + +successfulParse :: Either ParseError [Maybe a] -> [a] +successfulParse (Left _) = [] +successfulParse (Right a) = catMaybes a diff --git a/adventofcode16/data/advent01.txt b/adventofcode16/data/advent01.txt new file mode 100644 index 0000000..62fb6e8 --- /dev/null +++ b/adventofcode16/data/advent01.txt @@ -0,0 +1 @@ +R2, L3, R2, R4, L2, L1, R2, R4, R1, L4, L5, R5, R5, R2, R2, R1, L2, L3, L2, L1, R3, L5, R187, R1, R4, L1, R5, L3, L4, R50, L4, R2, R70, L3, L2, R4, R3, R194, L3, L4, L4, L3, L4, R4, R5, L1, L5, L4, R1, L2, R4, L5, L3, R4, L5, L5, R5, R3, R5, L2, L4, R4, L1, R3, R1, L1, L2, R2, R2, L3, R3, R2, R5, R2, R5, L3, R2, L5, R1, R2, R2, L4, L5, L1, L4, R4, R3, R1, R2, L1, L2, R4, R5, L2, R3, L4, L5, L5, L4, R4, L2, R1, R1, L2, L3, L2, R2, L4, R3, R2, L1, L3, L2, L4, L4, R2, L3, L3, R2, L4, L3, R4, R3, L2, L1, L4, R4, R2, L4, L4, L5, L1, R2, L5, L2, L3, R2, L2 \ No newline at end of file diff --git a/adventofcode16/data/advent02.txt b/adventofcode16/data/advent02.txt new file mode 100644 index 0000000..799cb46 --- /dev/null +++ b/adventofcode16/data/advent02.txt @@ -0,0 +1,5 @@ +RDRRDLRRUDRUUUULDDRDUULLDUULDURDDUDRULDLUDDRLRDUDDURRRRURDURLLRDRUUULDLLLURDRLLULLUULULLLDLLLRRURRLRDUULRURRUDRRDRLURLRURLLULRUURRUURDDLDRDLDLLUDUULLLUUUUDULLDRRUURLDURDDDDDRLLRRURDLUDRRUUDLRRLLRDURDUDDDLRDDRDLRULLUULRULRLLULDDRURUUDLDDULDRLLURDDUDDUDRDUDLDRRRDURRLDRDRLDLLDUDDDULULRRULRLLURDRRDDUUUUUULRUDLRRDURDLRDLUDLDURUDDUUURUDLUUULDLRDURDLDUUDLDDDURUUDUUDRLRDULLDUULUDRUDRLRRRDLLDRUDULRRUDDURLDRURRLLRRRDRLLDLULULRRUURRURLLUDRRLRULURLDDDDDURUDRRRRULLUUDLDDLUUL +ULURUDLULDULDLLDDLLLDRRLLUDRRDRDUDURUDLRRRRUDRDDURLRRULLDLURLDULLUDDLUDURDUURRRRLDLRLDDULLRURLULLDDRUDLRRRLDRRRDLDRLLDDRRDDLUUDRUDDLULRURLDURRLLDLRUDLLRRUULUDRLLLRLDULURRRRRDDUURDRRUUDULRUULDDULRLUDLUDDULLRLRDDLRLLURRRULDLRRRUURRLDDRDLRDLRRDRDLDRDUDRDURUUDRLRRULRDLLDLLRRRDRLDRLRLRLLLURURDULUUDDRLLDDDRURRURLRDDULLRURUDRRDRLRRRLDLRLRULDRLUURRUUULRLDLLURLLLDLLLDRRDULRURRRRLUDLLRRUDLRUDRURDRRDLUUURRDLRLRUUUDURDLUDURRUUDURLUDDDULLDRDLLDDDRLDDDRLDLDDDDUDUUDURUUDULRDDLULDRDRLURLUDRDLUULLULRLULRDDRULDUDDURUURULUDLUURLURU +URLURDDRLLURRRLDLDLUDUURDRUDLLLRRDLUUULRRLURRRLUDUDLRLDDRUDLRRRULUDUDLLLULULLLRUDULDDDLLLRRRLRURDULUDDDULDLULURRRDLURDLRLLDUDRUDURDRRURULDRDUDLLRDDDUDDURLUULLULRDRRLDDLDURLRRRLDRDLDULRULRRRLRLLDULRDLURLRUUDURRUUDLLUDRUDLRLDUUDLURRRDDUUDUDRLDLDDRURDDLLDDRDLRLRDLLLUDLUUDRLRLRDDRDLRDLLUULLLLUULLDLLDLRDLRLRRLUUDLLRLRUDRURULRLRLULUDRLLUDDUDDULRLDDRUUUURULDRRULLLDUURULUDRLLURLRRLDLRRLDDRRRDUDDUDLDDLULUDDUURDLLLRLDLRDRUUUUUDDDLDRDDRRRLRURRRRDURDRURUDLURRURDRLRUUDDLDRRULLDURDRLRRDURURUULRDUDLDRDDLULULRDRRUDDRLLRLULRLLUUDRDUUDDUDLRUUDLLUULLRUULUDDLURRRLLDRLRRLLRULLDUULURLLLLUUULDR +LDUURULLRLDRRUUDUUUURUUUDDDURRDDLRDLLRDDRULDDUURUDDURLLUDRDUDRDULDRRRLULUDRULLLLDRLLDRDLDLLRURULUDDDDURDDDRLLUDLDRULRDLDUDDDUUDLLRLLLDLRLRLRRUDDULDDDUDLDDLUDDULDLLLLULLLLDDURDDURRRDDRLRLLUDLLUDDDUDURUDRLRDRULULDDRULDLULULLRUULRLDULUURRDRDRRDLDDDRRLUULDLUDRDDUDLRURULLDDURLDDRULUDLDDDRDRLLRDLLUURRRURDRLRURLDDLURDRURDDURLLRLRUDUUDLDUDURRDDURDRDDUDDDUDUURURDDLLRUUDDRRDULDDLLDLRULUULRUUDLLDRLULDULDDUDLULRULDRLLDUULDDDLRLLRLULDDULDDRRRLDRRLURULRDDRDLRRDUDDRDRRRRUDUDLLRRDRRURRUURDRULDDUDURLUDDURDUDRDUULLDRURUURURDRRLDDLDLUURLULRUDURDRUUURRURRDRUDRUURDURLRULULLLULDLLDLRRLDRDLUULUDDDLRDRLRLDRUDUDRLLRL +LURLUURLURDUUDRUDLDLLURRRDLDRRRULDDRRDRDUUDRUDURDDDURLUDDLULUULRRLLRULUDRDDRRRLDURDUDDURDDDLRLDDLULLDRDDLUUDUURRRLULRUURRRRLLULDUDRDUURRRURRDRDUDUDLUDULLDLDDRLUDRURDULURLURRLLURLLLRLUURLRUDLUDDRLURRUULULRLURRURUDURDLDLDDUDDRDLLRLLRRULDDRUDURUDDDUDLLRDLRUDULLLRRRUURUDUUULLRDUDRURUDULLDLLUUUDRULRLLRRDDDDUDULDRDRLLDDLLDDDURRUDURLDLRDRUURDDURLRDRURLRRLLRLULDRRLRUDURDUURRLUUULUDDDLRLULRDRLLURRRDLURDUUDRRRLUURRLLUDLUDLUULLRRDLLRDDRURRUURLDDLRLRLRUDLDLRLRDRRDLLLRDLRDUDLLDDDRD \ No newline at end of file diff --git a/adventofcode16/data/advent03.txt b/adventofcode16/data/advent03.txt new file mode 100644 index 0000000..40c03ca --- /dev/null +++ b/adventofcode16/data/advent03.txt @@ -0,0 +1,1734 @@ + 330 143 338 + 769 547 83 + 930 625 317 + 669 866 147 + 15 881 210 + 662 15 70 + 273 277 707 + 50 592 770 + 280 313 407 + 642 487 372 + 94 619 295 + 734 243 141 + 220 141 515 + 198 824 745 + 210 787 964 + 213 627 601 + 918 4 447 + 805 630 802 + 711 237 987 + 938 552 388 + 643 405 779 + 803 747 525 + 917 832 631 + 899 292 843 + 81 206 445 + 141 874 465 + 177 974 54 + 520 725 814 + 271 958 554 + 779 579 264 + 358 18 257 + 978 77 270 + 984 88 131 + 475 702 940 + 183 756 160 + 383 941 820 + 806 142 646 + 793 275 804 + 53 272 368 + 942 821 785 + 863 830 902 + 219 52 199 + 473 479 351 + 860 522 361 + 890 240 216 + 94 756 407 + 310 189 468 + 234 909 178 + 889 667 756 + 429 485 730 + 825 405 30 + 943 806 253 + 98 455 365 + 998 454 290 + 971 576 223 + 64 429 273 + 945 779 63 + 352 960 59 + 672 948 577 + 782 43 567 + 460 315 719 + 825 604 183 + 453 442 788 + 694 632 334 + 569 619 317 + 337 49 17 + 878 468 660 + 393 598 717 + 550 827 159 + 540 362 346 + 66 713 380 + 491 477 44 + 411 114 320 + 554 96 250 + 306 67 196 + 769 553 333 + 762 436 382 + 278 322 153 + 894 603 334 + 539 441 844 + 486 162 927 + 197 9 218 + 94 221 804 + 250 220 913 + 557 626 486 + 562 705 630 + 968 922 285 + 518 36 468 + 18 608 83 + 512 611 530 + 534 37 65 + 621 136 90 + 239 113 139 + 371 640 956 + 629 54 959 + 531 620 338 + 682 499 810 + 798 170 968 + 187 640 645 + 660 535 332 + 663 530 314 + 64 26 65 + 55 285 488 + 620 288 52 + 642 474 450 + 455 9 962 + 51 760 489 + 426 760 833 + 304 783 772 + 498 765 695 + 635 53 126 + 44 430 774 + 979 943 838 + 962 892 64 + 494 709 614 + 7 695 120 + 503 114 606 + 362 340 689 + 509 367 389 + 673 410 664 + 773 262 558 + 897 958 245 + 140 773 483 + 965 468 584 + 546 209 668 + 856 381 184 + 274 237 762 + 888 677 906 + 871 516 405 + 102 529 912 + 285 724 885 + 352 501 53 + 774 139 245 + 380 309 594 + 813 185 765 + 530 645 965 + 958 618 120 + 851 202 957 + 737 476 131 + 595 546 108 + 716 113 66 + 327 215 318 + 397 343 390 + 351 143 103 + 138 91 31 + 108 224 919 + 230 276 896 + 426 975 177 + 327 975 918 + 238 365 764 + 328 799 775 + 590 906 967 + 578 460 338 + 507 619 647 + 711 617 867 + 933 478 734 + 820 760 721 + 199 711 824 + 983 214 228 + 382 150 648 + 415 782 242 + 615 754 445 + 693 689 590 + 382 784 482 + 997 181 322 + 682 241 172 + 587 302 252 + 184 135 254 + 574 104 549 + 88 738 796 + 486 715 861 + 62 491 815 + 463 434 569 + 519 622 310 + 199 443 782 + 572 657 85 + 763 517 844 + 750 175 835 + 228 269 710 + 611 316 551 + 883 546 296 + 169 693 18 + 992 743 316 + 263 529 529 + 705 570 4 + 918 706 527 + 609 285 971 + 260 533 112 + 711 486 904 + 820 40 472 + 997 301 129 + 257 288 343 + 635 439 375 + 560 381 417 + 773 105 145 + 58 963 267 + 976 742 424 + 994 441 384 + 389 770 514 + 782 463 335 + 919 727 276 + 780 794 372 + 326 180 590 + 918 946 257 + 889 842 181 + 507 61 464 + 762 835 443 + 827 607 982 + 174 875 544 + 934 885 589 + 32 343 757 + 987 826 257 + 981 782 844 + 446 291 397 + 443 800 421 + 165 668 539 + 410 373 487 + 422 803 881 + 546 998 953 + 291 607 160 + 919 894 62 + 842 718 117 + 110 816 582 + 470 836 596 + 575 687 35 + 37 835 374 + 90 954 354 + 101 141 407 + 174 398 499 + 173 737 964 + 4 365 950 + 946 616 634 + 906 904 619 + 40 789 16 + 788 769 76 + 737 867 88 + 565 812 31 + 508 380 201 + 34 935 339 + 500 862 326 + 431 181 475 + 403 346 585 + 88 530 708 + 731 137 781 + 715 563 272 + 817 659 932 + 396 368 360 + 162 683 376 + 278 620 39 + 525 910 371 + 688 524 149 + 488 998 279 + 286 392 523 + 325 144 406 + 79 532 419 + 540 460 465 + 222 832 416 + 517 507 46 + 87 744 183 + 382 819 701 + 306 763 647 + 744 74 913 + 62 813 849 + 691 874 775 + 291 422 314 + 432 630 809 + 611 510 566 + 583 745 289 + 397 19 727 + 188 766 442 + 96 108 329 + 963 719 598 + 963 764 469 + 444 636 731 + 792 636 422 + 993 1 416 + 518 300 532 + 298 312 736 + 316 111 463 + 825 569 35 + 858 591 584 + 809 84 607 + 681 610 740 + 383 279 210 + 851 733 615 + 287 959 160 + 856 851 171 + 606 115 211 + 310 541 845 + 506 119 319 + 665 471 562 + 382 885 798 + 440 29 595 + 113 903 475 + 257 773 846 + 306 741 776 + 97 804 76 + 489 332 423 + 466 632 613 + 86 739 481 + 199 846 712 + 62 282 809 + 155 681 142 + 705 525 270 + 159 800 117 + 612 664 316 + 505 616 837 + 578 839 770 + 942 535 122 + 542 781 512 + 552 22 475 + 760 791 97 + 432 626 837 + 26 616 336 + 412 316 702 + 108 232 242 + 158 311 449 + 60 141 325 + 58 1 714 + 532 977 123 + 531 978 598 + 679 899 57 + 645 523 54 + 167 892 14 + 164 574 492 + 105 37 491 + 132 555 485 + 600 879 508 + 608 843 222 + 270 255 398 + 232 960 281 + 241 995 436 + 113 674 411 + 381 567 5 + 697 450 966 + 726 857 969 + 722 686 965 + 543 20 453 + 955 689 554 + 858 161 923 + 140 979 953 + 786 836 237 + 200 322 875 + 311 623 398 + 510 814 945 + 67 387 825 + 621 620 740 + 630 842 163 + 545 75 373 + 506 531 501 + 301 571 357 + 746 491 253 + 37 29 748 + 769 507 754 + 69 886 861 + 423 629 856 + 380 723 83 + 875 647 657 + 144 696 580 + 896 49 629 + 275 598 374 + 118 636 279 + 277 80 529 + 623 130 493 + 368 712 621 + 833 730 512 + 59 767 829 + 105 933 731 + 54 240 108 + 803 235 992 + 837 726 881 + 426 855 450 + 636 730 731 + 840 561 977 + 996 229 670 + 508 234 186 + 529 108 917 + 373 337 795 + 681 35 565 + 790 251 152 + 301 235 599 + 875 416 653 + 277 338 990 + 800 207 595 + 954 650 896 + 931 667 706 + 84 851 822 + 254 778 816 + 316 141 732 + 233 759 239 + 546 473 315 + 69 15 96 + 513 470 320 + 460 188 729 + 429 950 288 + 709 807 790 + 456 161 570 + 269 718 339 + 213 628 602 + 155 367 686 + 176 418 568 + 66 251 723 + 959 696 536 + 794 279 885 + 315 527 993 + 603 853 868 + 727 747 994 + 411 287 193 + 528 763 559 + 803 149 739 + 542 883 696 + 275 676 183 + 411 317 161 + 349 875 35 + 39 729 221 + 256 831 216 + 247 238 176 + 399 59 306 + 409 445 550 + 9 387 253 + 613 204 474 + 81 868 944 + 589 912 735 + 319 264 83 + 984 704 614 + 778 614 532 + 699 762 556 + 680 250 507 + 504 581 647 + 160 351 295 + 513 739 413 + 651 915 651 + 878 218 499 + 872 990 503 + 38 886 12 + 218 201 415 + 240 250 504 + 265 448 382 + 402 876 126 + 488 950 649 + 189 210 597 + 24 850 758 + 30 451 347 + 5 437 723 + 634 310 546 + 801 179 411 + 679 338 852 + 385 32 933 + 406 531 554 + 88 516 871 + 860 486 834 + 467 535 849 + 419 820 785 + 206 649 526 + 244 499 714 + 80 774 678 + 336 149 612 + 310 175 656 + 150 221 791 + 159 806 701 + 336 465 530 + 376 819 272 + 533 472 421 + 82 124 909 + 523 561 539 + 844 811 576 + 439 612 587 + 782 457 686 + 152 51 837 + 413 573 855 + 403 608 26 + 893 819 910 + 361 499 657 + 677 937 617 + 428 6 343 + 310 38 431 + 474 35 420 + 574 256 221 + 700 907 515 + 149 685 478 + 206 325 720 + 114 51 67 + 320 338 686 + 293 59 527 + 147 756 986 + 250 697 573 + 968 194 545 + 542 480 72 + 454 574 619 + 473 55 592 + 475 339 889 + 884 313 993 + 125 127 742 + 591 514 585 + 543 583 282 + 264 580 390 + 839 487 781 + 902 664 868 + 334 459 819 + 107 20 211 + 368 479 775 + 683 691 273 + 681 336 630 + 22 978 536 + 926 828 708 + 210 319 723 + 787 689 866 + 854 633 856 + 960 494 866 + 122 687 596 + 918 705 539 + 84 564 791 + 876 138 949 + 836 1 500 + 718 308 466 + 228 311 271 + 421 998 433 + 622 772 174 + 875 720 432 + 680 687 509 + 215 95 623 + 674 732 166 + 198 174 645 + 721 839 390 + 617 896 448 + 73 331 155 + 789 134 431 + 853 376 400 + 82 862 411 + 779 362 70 + 750 777 349 + 674 604 224 + 812 731 446 + 280 546 336 + 922 781 619 + 196 892 876 + 941 361 479 + 344 988 873 + 499 92 795 + 287 913 546 + 625 167 604 + 617 1 399 + 154 166 720 + 328 323 111 + 713 619 530 + 606 756 580 + 194 247 935 + 149 65 64 + 55 287 902 + 870 866 127 + 478 679 587 + 900 459 565 + 563 787 743 + 962 798 769 + 669 39 525 + 745 691 317 + 484 123 93 + 500 598 348 + 159 535 681 + 618 176 877 + 723 373 464 + 304 184 131 + 542 209 654 + 716 47 647 + 976 537 771 + 914 606 568 + 241 250 481 + 616 640 660 + 744 187 843 + 303 617 927 + 369 525 773 + 754 697 360 + 595 560 605 + 562 589 610 + 799 497 655 + 823 553 532 + 937 502 449 + 976 941 158 + 194 720 347 + 474 694 822 + 528 184 272 + 922 698 568 + 415 889 638 + 169 822 65 + 547 281 663 + 582 167 110 + 365 56 914 + 431 162 923 + 473 812 578 + 572 890 386 + 164 119 308 + 604 946 496 + 327 142 72 + 641 916 472 + 743 663 228 + 107 446 345 + 823 486 152 + 997 47 968 + 565 155 631 + 438 205 416 + 271 163 875 + 123 393 111 + 169 412 854 + 615 683 659 + 592 362 9 + 99 895 668 + 834 205 172 + 359 355 550 + 499 149 389 + 755 298 916 + 475 706 807 + 829 425 118 + 43 527 479 + 159 473 874 + 151 326 992 + 970 660 509 + 837 930 35 + 164 345 506 + 209 879 487 + 97 157 503 + 289 755 793 + 624 897 293 + 382 134 451 + 257 917 339 + 110 168 85 + 470 583 139 + 486 613 120 + 584 747 795 + 959 699 339 + 866 384 672 + 157 639 464 + 939 485 409 + 947 441 131 + 179 953 581 + 735 587 605 + 834 582 36 + 304 422 707 + 195 348 347 + 163 521 486 + 948 471 675 + 915 453 406 + 40 345 635 + 81 124 115 + 127 105 127 + 50 32 10 + 221 399 397 + 487 676 412 + 574 607 450 + 268 625 323 + 843 858 145 + 706 286 218 + 822 168 254 + 950 708 944 + 572 640 775 + 958 563 909 + 996 154 918 + 378 626 564 + 335 823 339 + 499 810 270 + 294 22 98 + 987 959 591 + 101 899 442 + 931 409 576 + 542 102 655 + 404 980 398 + 759 990 381 + 692 990 750 + 752 93 149 + 278 973 883 + 621 459 232 + 398 261 626 + 221 212 744 + 790 241 352 + 802 218 317 + 443 294 244 + 393 131 941 + 466 378 885 + 516 419 240 + 799 748 407 + 468 502 386 + 829 329 766 + 432 376 408 + 681 88 198 + 553 351 489 + 234 717 59 + 332 525 675 + 437 691 723 + 441 834 433 + 616 144 274 + 966 911 650 + 254 274 782 + 346 714 856 + 330 696 171 + 394 407 298 + 897 553 867 + 755 503 956 + 253 840 382 + 923 195 262 + 918 735 483 + 55 703 227 + 768 759 225 + 825 238 14 + 7 479 978 + 211 603 957 + 216 866 94 + 112 698 60 + 847 631 307 + 940 164 253 + 406 133 14 + 380 816 425 + 147 873 429 + 698 987 98 + 534 823 691 + 197 690 754 + 979 39 468 + 928 73 531 + 119 66 920 + 982 810 569 + 476 534 397 + 931 366 182 + 783 104 732 + 131 32 619 + 784 136 530 + 16 933 484 + 995 987 739 + 985 88 977 + 43 919 914 + 540 399 915 + 566 859 257 + 639 419 73 + 727 118 865 + 477 370 834 + 293 434 155 + 422 557 603 + 203 243 754 + 373 15 748 + 466 574 807 + 282 576 70 + 275 365 608 + 987 644 648 + 711 629 717 + 420 410 696 + 252 417 874 + 642 26 202 + 223 23 531 + 545 580 675 + 565 600 521 + 130 745 142 + 264 377 397 + 300 618 253 + 683 331 279 + 440 826 275 + 835 785 266 + 592 264 590 + 257 255 173 + 532 23 620 + 571 749 434 + 988 552 492 + 566 766 234 + 617 818 776 + 45 113 882 + 579 793 114 + 971 243 608 + 979 241 241 + 130 83 634 + 91 361 5 + 311 107 501 + 377 388 496 + 727 849 317 + 323 702 256 + 804 254 189 + 70 11 246 + 752 425 785 + 799 413 882 + 917 133 695 + 959 49 902 + 420 121 412 + 177 170 158 + 828 734 135 + 880 875 75 + 824 556 960 + 857 689 960 + 74 951 2 + 246 687 756 + 311 93 487 + 209 626 886 + 17 545 566 + 963 252 283 + 947 493 805 + 185 493 462 + 728 365 885 + 808 214 528 + 582 780 100 + 30 254 654 + 596 706 553 + 713 968 803 + 123 270 839 + 792 778 475 + 442 95 682 + 931 212 678 + 781 140 439 + 651 645 978 + 137 829 286 + 593 503 895 + 642 215 144 + 687 122 934 + 84 240 919 + 656 515 774 + 51 799 273 + 636 324 924 + 213 161 309 + 509 157 458 + 582 1 727 + 716 269 819 + 978 343 303 + 828 264 708 + 108 620 190 + 12 12 634 + 103 615 579 + 364 286 660 + 809 714 656 + 729 504 10 + 994 366 341 + 433 796 77 + 663 462 353 + 776 687 758 + 751 495 651 + 33 751 753 + 349 919 228 + 204 799 584 + 335 156 563 + 725 191 535 + 731 676 524 + 455 571 10 + 899 379 689 + 773 641 812 + 324 761 421 + 354 557 897 + 571 740 161 + 407 271 856 + 886 393 428 + 286 870 218 + 950 819 347 + 331 847 858 + 498 471 689 + 357 378 775 + 890 503 514 + 201 863 428 + 721 737 796 + 636 178 974 + 14 387 936 + 622 424 144 + 82 201 727 + 127 164 779 + 173 319 326 + 195 748 641 + 469 512 510 + 626 949 405 + 552 542 251 + 192 204 382 + 655 558 631 + 970 519 3 + 918 701 399 + 56 543 403 + 524 848 641 + 620 431 539 + 604 473 824 + 369 105 464 + 575 957 429 + 859 978 199 + 712 381 199 + 941 305 738 + 892 663 937 + 653 963 365 + 70 331 508 + 620 923 682 + 739 122 350 + 288 418 768 + 733 326 520 + 694 472 793 + 725 415 739 + 895 398 201 + 500 157 168 + 727 814 354 + 807 726 340 + 431 329 212 + 635 374 403 + 677 78 347 + 386 559 505 + 385 361 161 + 262 494 621 + 481 237 767 + 318 966 640 + 723 732 546 + 911 652 823 + 958 502 677 + 718 258 834 + 98 666 506 + 929 41 933 + 869 637 605 + 585 156 335 + 490 316 149 + 436 339 323 + 596 948 224 + 275 433 241 + 545 890 155 + 601 413 676 + 893 401 673 + 694 171 403 + 211 110 482 + 267 61 541 + 206 124 256 + 189 353 308 + 351 880 70 + 237 677 380 + 759 754 388 + 465 99 862 + 852 787 925 + 758 890 804 + 252 817 784 + 773 129 860 + 954 102 872 + 743 396 730 + 500 304 173 + 492 399 527 + 413 465 813 + 670 837 933 + 897 424 430 + 782 404 14 + 151 24 418 + 897 260 306 + 811 287 386 + 440 93 449 + 229 185 582 + 136 63 678 + 211 250 940 + 184 400 209 + 122 383 238 + 143 386 111 + 320 194 415 + 925 790 501 + 924 596 614 + 606 733 277 + 886 116 194 + 278 627 189 + 225 536 981 + 487 538 584 + 539 2 793 + 219 456 57 + 341 424 941 + 199 482 921 + 231 241 588 + 711 740 334 + 596 554 323 + 917 164 629 + 19 138 756 + 939 70 225 + 536 432 401 + 137 614 14 + 593 818 402 + 871 280 515 + 268 259 326 + 900 97 376 + 68 699 461 + 546 810 400 + 540 697 676 + 591 125 751 + 159 719 919 + 605 763 898 + 171 845 459 + 115 289 376 + 265 636 317 + 646 225 84 + 663 755 89 + 192 828 12 + 316 523 822 + 310 933 784 + 44 721 873 + 893 873 461 + 898 15 548 + 96 861 726 + 9 837 398 + 238 404 29 + 227 845 428 + 770 764 472 + 960 747 784 + 990 281 811 + 59 597 111 + 930 799 729 + 930 882 758 + 459 961 116 + 484 83 914 + 83 969 994 + 828 423 132 + 346 541 246 + 783 484 303 + 983 7 921 + 216 208 905 + 802 216 54 + 6 121 306 + 609 36 749 + 608 84 626 + 97 705 89 + 200 688 878 + 242 314 802 + 294 66 338 + 768 417 272 + 785 351 266 + 58 505 668 + 791 291 679 + 783 694 43 + 794 468 355 + 777 796 171 + 378 784 426 + 224 510 840 + 557 606 708 + 513 127 189 + 231 976 517 + 772 37 433 + 684 973 324 + 70 661 83 + 914 136 702 + 917 630 710 + 826 894 84 + 373 416 248 + 551 924 226 + 357 646 374 + 890 491 246 + 938 293 519 + 66 42 704 + 537 60 374 + 508 56 405 + 437 751 653 + 681 718 160 + 683 293 800 + 569 288 878 + 692 206 611 + 173 157 399 + 201 492 645 + 98 132 329 + 234 612 711 + 296 54 975 + 651 219 923 + 527 177 138 + 585 598 302 + 552 653 474 + 54 288 358 + 828 631 279 + 854 642 746 + 80 52 645 + 386 346 181 + 488 7 569 + 168 351 533 + 906 186 681 + 833 404 191 + 863 297 526 + 451 555 808 + 336 544 155 + 253 211 838 + 759 819 238 + 921 343 761 + 264 632 690 + 165 424 159 + 121 481 361 + 181 409 439 + 94 972 995 + 696 904 722 + 613 238 422 + 190 281 334 + 385 127 129 + 300 364 234 + 479 768 937 + 883 654 35 + 979 679 959 + 244 51 788 + 275 613 804 + 143 575 210 + 160 168 608 + 330 471 651 + 407 594 410 + 723 576 943 + 268 912 361 + 692 442 760 + 443 288 20 + 382 610 556 + 62 694 568 + 322 257 214 + 253 458 861 + 260 213 829 + 37 137 420 + 668 220 104 + 673 150 435 + 551 466 897 + 390 729 999 + 423 963 763 + 837 36 295 + 854 726 495 + 16 728 389 + 735 246 510 + 218 136 617 + 604 197 140 + 113 355 499 + 631 902 488 + 689 898 212 + 780 826 901 + 556 205 657 + 855 661 288 + 141 34 480 + 27 23 194 + 115 53 393 + 333 287 700 + 68 300 671 + 394 589 28 + 572 248 771 + 454 118 797 + 526 141 300 + 785 377 504 + 886 723 105 + 541 712 470 + 156 128 932 + 479 85 989 + 381 207 162 + 813 839 544 + 143 783 541 + 916 361 24 + 878 133 886 + 986 750 335 + 122 643 864 + 395 460 591 + 387 896 627 + 117 455 109 + 2 14 569 + 873 364 215 + 875 350 554 + 70 878 940 + 234 846 82 + 256 279 901 + 693 990 473 + 951 866 824 + 923 408 891 + 36 5 531 + 954 654 266 + 921 652 434 + 561 701 427 + 232 764 365 + 330 331 73 + 46 813 6 + 380 698 297 + 396 221 289 + 135 867 633 + 814 649 286 + 797 918 827 + 705 58 338 + 6 305 310 + 701 352 28 + 903 97 825 + 693 126 794 + 438 144 592 + 367 932 400 + 320 820 264 + 687 210 652 + 682 84 566 + 671 604 816 + 529 646 267 + 795 654 114 + 955 426 118 + 249 759 102 + 343 581 267 + 341 619 107 + 479 57 341 + 683 32 870 + 630 609 210 + 361 643 803 + 506 856 406 + 580 562 359 + 312 433 154 + 750 379 920 + 448 520 312 + 733 259 899 + 33 786 319 + 579 669 90 + 595 769 242 + 160 985 236 + 654 903 946 + 635 99 802 + 75 158 437 + 467 382 289 + 406 542 548 + 684 417 794 + 729 105 122 + 44 485 689 + 737 15 713 + 970 391 17 + 373 384 729 + 336 1 118 + 814 807 759 + 965 808 828 + 179 181 834 + 242 94 838 + 188 183 82 + 691 402 618 + 984 43 561 + 330 447 872 + 553 581 30 + 884 393 836 + 431 298 837 + 278 389 690 + 976 587 803 + 722 220 538 + 548 208 107 + 629 414 729 + 543 584 672 + 512 431 954 + 475 367 959 + 226 306 9 + 824 774 668 + 188 22 870 + 722 764 300 + 647 803 256 + 410 972 21 + 436 536 278 + 995 577 453 + 670 439 224 + 434 488 572 + 82 317 498 + 559 823 662 + 499 614 196 + 944 14 432 + 618 866 652 + 467 872 289 + 471 722 189 + 923 756 17 + 790 409 195 + 511 500 545 + 667 283 758 + 271 373 283 + 573 686 490 + 659 706 560 + 770 247 633 + 424 169 895 + 47 349 411 + 380 235 805 + 384 546 148 + 747 870 831 + 754 421 910 + 937 15 433 + 188 760 806 + 872 748 418 + 718 556 510 + 165 590 486 + 798 40 177 + 349 923 530 + 795 690 746 + 550 671 360 + 824 442 775 + 331 686 152 + 570 270 926 + 860 64 383 + 408 464 170 + 758 440 349 + 773 434 699 + 780 563 352 + 18 644 621 + 432 663 188 + 420 887 956 + 237 586 788 + 319 526 586 + 544 647 115 + 628 235 511 + 666 408 33 + 670 459 697 + 48 189 692 + 837 708 428 + 462 652 632 + 426 106 457 + 730 744 195 + 700 816 769 + 383 480 923 + 601 612 910 + 559 953 779 + 533 937 240 + 464 123 344 + 579 82 76 + 179 188 373 + 1 641 56 + 688 698 50 + 688 160 4 + 790 364 767 + 202 70 137 + 914 420 674 + 961 657 851 + 578 708 875 + 503 94 776 + 221 143 356 + 34 126 403 + 234 31 78 + 721 949 330 + 675 191 460 + 80 957 651 + 690 580 824 + 461 73 802 + 725 606 51 + 183 857 521 + 708 800 482 + 644 111 37 + 769 778 869 + 883 693 909 + 549 714 43 + 273 246 599 + 637 309 675 + 451 195 552 + 681 408 126 + 422 465 52 + 743 235 144 + 248 586 312 + 42 398 313 + 222 335 21 + 528 312 738 + 856 312 132 + 915 79 610 + 550 605 186 + 566 815 698 + 127 250 717 + 532 129 775 + 604 132 549 + 134 44 247 + 521 815 470 + 370 853 515 + 795 187 851 + 963 295 50 + 757 228 169 + 706 303 120 + 416 133 309 + 956 63 11 + 751 162 301 + 387 632 29 + 257 383 994 + 215 247 994 + 529 606 963 + 770 305 756 + 721 791 971 + 558 531 675 + 253 477 918 + 470 52 615 + 256 335 24 + 301 523 651 + 316 702 637 + 321 721 32 + 591 730 179 + 341 364 146 + 673 120 501 + 31 183 207 + 641 116 463 + 221 54 775 + 262 458 669 + 139 486 904 + 736 260 139 + 406 359 663 + 434 563 753 + 981 6 215 + 423 320 358 + 719 319 415 + 315 375 320 + 7 637 423 + 314 365 175 + 199 687 754 + 174 546 1 + 29 526 754 + 153 402 251 + 787 565 919 + 820 239 876 + 994 614 47 + 958 816 288 + 244 750 275 + 248 890 694 + 628 194 414 + 774 958 466 + 181 34 442 + 569 371 939 + 500 347 740 + 745 123 467 + 614 662 119 + 201 690 352 + 596 974 215 + 508 921 240 + 405 947 317 + 402 372 733 + 298 41 357 + 135 339 759 + 544 683 690 + 584 1 893 + 215 680 501 + 191 453 649 + 952 84 727 + 815 494 293 + 163 168 46 + 136 119 441 + 185 112 474 + 877 830 354 + 497 242 226 + 484 714 178 + 854 570 402 + 873 120 432 + 30 613 50 + 365 529 624 + 969 332 586 + 636 617 153 + 588 669 314 + 12 52 628 + 584 704 642 + 95 199 69 + 979 486 705 + 953 391 698 + 698 471 333 + 302 466 64 + 678 19 376 + 353 860 905 + 236 113 797 + 400 879 962 + 341 805 493 + 661 506 196 + 736 357 644 + 943 352 365 + 484 756 282 + 491 943 262 + 765 494 729 + 321 208 986 + 621 346 290 + 258 706 386 + 179 452 276 + 433 583 153 + 708 2 212 + 193 151 320 + 647 149 299 + 335 951 831 + 661 787 792 + 818 742 477 + 799 964 157 + 726 780 172 + 740 225 24 + 428 39 263 + 388 901 506 + 97 940 413 + 41 454 826 + 324 453 443 + 346 76 938 + 463 595 751 + 854 948 454 + 451 902 507 + 722 961 130 + 695 529 425 + 59 591 467 + 559 623 222 + 991 194 196 + 749 793 245 + 474 327 247 + 346 2 277 + 643 328 135 + 785 264 751 + 35 537 887 + 811 584 685 + 475 903 748 + 471 115 698 + 7 945 449 + 464 880 227 + 287 868 878 + 564 11 850 + 221 623 475 + 314 325 553 + 209 865 621 + 39 655 236 + 95 296 235 + 124 920 21 + 439 473 902 + 334 375 792 + 315 116 768 + 267 736 95 + 703 606 595 + 505 886 514 + 114 168 52 + 301 584 495 + 200 709 527 + 164 422 554 + 246 546 460 + 377 141 223 + 286 323 354 + 810 240 90 + 920 450 425 + 277 8 570 + 28 649 50 + 295 650 534 + 690 187 665 + 674 184 483 + 68 139 376 + 570 430 500 + 590 422 543 + 304 68 43 + 422 666 163 + 501 375 696 + 81 621 813 + 19 981 945 + 410 83 941 + 427 945 25 + 283 408 825 + 281 648 635 + 294 678 615 + 113 936 500 + 554 772 314 + 502 642 624 + 262 318 699 + 88 526 817 + 242 468 161 + 820 179 253 + 580 62 531 + 343 183 422 + 430 161 485 + 26 127 435 + 442 32 517 + 491 243 544 + 552 680 310 + 131 489 457 + 697 162 526 + 897 838 305 + 695 748 335 + 753 936 24 + 46 681 637 + 745 808 617 + 318 251 171 + 49 39 855 + 359 284 725 + 221 837 145 + 581 821 444 + 573 267 318 + 706 969 583 + 722 912 586 + 680 86 869 + 833 546 97 + 865 507 481 + 938 104 386 + 941 217 265 + 360 53 607 + 634 197 476 + 787 659 444 + 368 163 783 + 493 738 345 + 182 539 52 + 764 827 612 + 699 493 663 + 914 384 17 + 495 546 260 + 739 461 275 + 386 91 394 + 804 506 198 + 780 421 269 + 109 669 193 + 457 298 349 + 560 800 331 + 282 153 637 + 160 254 807 + 434 204 476 + 717 759 737 + 629 785 65 + 347 614 790 + 270 663 647 + 188 271 528 + 277 929 591 + 853 744 589 + 704 881 761 + 573 714 627 + 541 689 287 + 540 301 187 + 670 397 368 + 867 8 698 + 869 146 802 + 10 137 104 + 164 575 450 + 507 233 466 + 548 425 46 + 435 824 78 + 334 951 34 + 646 551 99 + 60 829 569 + 501 866 382 + 440 327 222 + 744 132 333 + 800 983 126 + 887 866 451 + 28 599 39 + 833 129 307 + 804 519 319 + 510 746 821 + 639 209 561 + 197 649 333 + 638 644 361 + 754 474 366 + 193 219 106 + 843 536 331 + 483 634 611 + 367 195 592 + 753 71 115 + 934 42 83 + 337 75 85 + 475 304 169 + 672 143 211 + 360 406 74 + 370 119 111 + 351 955 696 + 543 849 785 + 375 576 836 + 288 316 239 + 512 273 786 + 721 407 82 + 998 634 292 + 449 399 284 + 540 316 693 + 430 68 984 + 146 376 482 + 785 134 643 + 157 509 441 + 808 615 552 + 920 564 452 + 407 341 441 + 990 778 211 + 822 325 925 + 368 206 876 + 491 153 126 + 11 373 546 + 854 752 143 + 843 773 660 + 777 472 964 + 359 708 889 + 575 941 882 + 945 22 152 + 968 237 115 + 30 238 110 + 101 504 412 + 119 646 719 + 28 190 336 + 890 301 712 + 11 657 782 + 885 465 361 + 424 669 645 + 528 654 194 + 894 252 667 + 516 299 998 + 370 837 976 + 305 651 194 + 701 447 175 + 470 234 929 + 752 606 965 + 568 370 322 + 226 592 281 + 553 801 330 + 576 228 623 + 639 477 637 + 252 664 998 + 781 215 994 + 446 698 25 + 562 500 980 + 702 444 299 + 971 550 387 + 754 562 439 + 347 896 716 + 242 861 596 + 588 829 323 + 464 211 949 + 481 192 47 + 598 98 963 + 932 960 32 + 933 482 893 + 15 989 888 + 866 735 629 + 636 513 470 + 280 528 944 + 531 66 867 + 284 735 865 + 778 743 3 + 458 131 262 + 772 273 255 + 942 278 50 + 269 151 917 + 502 4 883 + 538 155 68 + 929 850 21 + 126 759 729 + 869 689 711 + 180 359 855 + 299 68 975 + 210 371 205 + 477 183 827 + 922 50 841 + 665 154 312 + 379 848 486 + 450 835 743 + 69 161 515 + 680 535 83 + 692 779 352 + 818 554 389 + 781 89 538 + 746 218 209 + 292 201 652 + 417 375 393 + 916 962 644 + 518 923 561 + 915 469 386 + 142 460 454 + 947 392 89 + 144 840 866 + 205 465 967 + 209 657 650 + 891 322 207 + 800 522 907 + 516 498 994 + 185 806 804 + 179 393 137 + 316 765 892 + 850 756 123 + 494 783 627 + 832 53 659 + 93 949 602 + 666 954 516 + 592 11 210 + 223 4 389 + 221 280 388 + 100 279 50 + 380 589 345 + 385 238 382 + 205 506 359 + 98 280 652 + 396 371 290 + 314 477 454 + 368 692 564 + 48 263 586 + 356 902 922 \ No newline at end of file diff --git a/adventofcode16/data/advent04.txt b/adventofcode16/data/advent04.txt new file mode 100644 index 0000000..8f99f7a --- /dev/null +++ b/adventofcode16/data/advent04.txt @@ -0,0 +1,991 @@ +aczupnetwp-dnlgpyrpc-sfye-dstaatyr-561[patyc] +jsehsyafy-vqw-ljsafafy-866[nymla] +tyepcyletzylw-ncjzrpytn-prr-opawzjxpye-743[cnrdl] +foadouwbu-qvcqczohs-obozmgwg-662[lamjh] +ckgvutofkj-pkrrehkgt-zkinturume-436[krtue] +pelbtravp-pnaql-ernpdhvfvgvba-481[szram] +yflexwxoalrp-ciltbo-tlohpelm-887[bmwep] +ipvohghykvbz-ihzrla-jbzavtly-zlycpjl-253[lzhvy] +cybyjqho-whqtu-rqiauj-fkhsxqiydw-322[syzwi] +tipfxvezt-sleep-tljkfdvi-jvimztv-425[tveif] +ktiaaqnqml-xtiabqk-oziaa-xczkpiaqvo-616[aiqko] +ckgvutofkj-xghhoz-gtgreyoy-306[nyhpz] +molgbzqfib-zovldbkfz-zxkav-lmboxqflkp-341[xlomg] +ikhcxvmbex-vtgwr-vhtmbgz-mxvaghehzr-111[hvgmx] +dpssptjwf-fhh-tfswjdft-805[fstdh] +oaddaeuhq-otaoaxmfq-qzsuzqqduzs-534[qadou] +dzczkrip-xiruv-sleep-drerxvdvek-685[erdvi] +jvsvymbs-yhiipa-vwlyhapvuz-149[zfyqn] +nsyjwsfyntsfq-gfxpjy-jslnsjjwnsl-853[sjnfy] +mbiyqoxsm-lsyrkjkbnyec-nio-wkbuodsxq-614[bkosy] +jchipqat-uadltg-hidgpvt-375[kcnop] +jqwpihizlwca-lgm-nqvivkqvo-980[ldeay] +xfbqpojafe-dipdpmbuf-tfswjdft-493[fdpbj] +kwvacumz-ozilm-kpwkwtibm-lmxtwgumvb-798[mwkbi] +eqttqukxg-ejqeqncvg-ocpcigogpv-648[sdtzl] +dsxxw-bwc-bcnjmwkclr-678[cwbxd] +jvuzbtly-nyhkl-ibuuf-thuhnltlua-175[ulhtb] +rdadguja-uadltg-bpgztixcv-401[adgtu] +atyzghrk-kmm-ktmotkkxotm-930[xzfpe] +uwtojhynqj-ojqqdgjfs-xjwanhjx-151[waqmk] +hwdtljsnh-uqfxynh-lwfxx-rfsfljrjsy-567[fhjls] +xst-wigvix-gspsvjyp-gerhc-erepcwmw-724[uplfw] +kzgwomvqk-jcvvg-zmamizkp-122[kmvzg] +sbejpbdujwf-dboez-dpbujoh-dvtupnfs-tfswjdf-623[uxrpz] +bxaxipgn-vgpst-rwdrdapit-prfjxhxixdc-609[xpdir] +avw-zljyla-zjhclunly-obua-ayhpupun-981[aluyh] +nuatmlmdpage-qss-fdmuzuzs-404[btopv] +oaddaeuhq-otaoaxmfq-dqoquhuzs-716[aoqdu] +myvybpev-cmkfoxqob-rexd-bomosfsxq-432[khwfc] +oxaflxzqfsb-zelzlixqb-jxohbqfkd-471[hxkwc] +fnjyxwrinm-snuuhknjw-anbnjalq-875[ztvnr] +qfmcusbwq-pibbm-fsqswjwbu-922[bqswf] +wihmogyl-aluxy-jfumncw-alumm-nluchcha-916[lmuac] +oxaflxzqfsb-avb-bkdfkbbofkd-757[trzjy] +ksodcbwnsr-qzoggwtwsr-gqojsbusf-vibh-fsgsofqv-818[gsdca] +rzvkjiduzy-xcjxjgvoz-gvwjmvojmt-161[zufvq] +nwlddtqtpo-mldvpe-dezclrp-639[zlnki] +vkppo-rqiauj-huqsgkyiyjyed-530[yijkp] +dfcxsqhwzs-qobrm-qcohwbu-fsoqeiwgwhwcb-688[wqbch] +vxupkizork-xghhoz-aykx-zkyzotm-462[kzoxh] +zotts-jfumncw-alumm-omyl-nymncha-396[bstha] +yaxsnlcrun-npp-cajrwrwp-355[nprac] +bkwzkqsxq-pvygob-nozkbdwoxd-822[bkodq] +frqvxphu-judgh-fdqgb-frdwlqj-hqjlqhhulqj-595[ezyxq] +hqtyeqsjylu-sqdto-sedjqydcudj-764[dqjsy] +fab-eqodqf-omzpk-fdmuzuzs-430[yxkbc] +gpewwmjmih-glsgspexi-xvemrmrk-204[cynzd] +kwtwznct-jcvvg-wxmzibqwva-694[cdaps] +guahyncw-wuhxs-zchuhwcha-396[xwnmj] +pybgmyargtc-zsllw-dglylagle-912[mcrsp] +kyelcrga-zyqicr-jyzmpyrmpw-782[yrcmp] +wsvsdkbi-qbkno-zvkcdsm-qbkcc-myxdksxwoxd-432[kdsbc] +ltpedcxots-rwdrdapit-advxhixrh-271[drtxa] +elrkdcdugrxv-sodvwlf-judvv-vklsslqj-465[vdlsj] +htwwtxnaj-hfsid-htfynsl-ywfnsnsl-281[ghfea] +nij-mywlyn-xsy-xymcah-682[kiasm] +zovldbkfz-yrkkv-abmilvjbkq-939[chetn] +esyfwlau-kusnwfywj-zmfl-ghwjslagfk-398[fwlsa] +lahxpnwrl-yujbcrl-pajbb-mnyuxhvnwc-147[tzcxk] +rwcnawjcrxwju-lqxlxujcn-lxwcjrwvnwc-381[hxsdl] +pbybeshy-pynffvsvrq-wryylorna-jbexfubc-143[ybfre] +lxaaxbren-kdwwh-bqryyrwp-407[sktqh] +pybgmyargtc-zyqicr-rpyglgle-106[vsdft] +jfifqxov-doxab-yxphbq-obxznrfpfqflk-939[nyvhm] +pualyuhapvuhs-jovjvshal-thuhnltlua-383[lrfob] +gvcskirmg-tpewxmg-kveww-pskmwxmgw-438[ujily] +lgh-kwujwl-tmffq-esfsywewfl-242[fwles] +jyddc-fewoix-hitevxqirx-412[ixdec] +uzfqdzmfuazmx-otaoaxmfq-ogefayqd-eqdhuoq-222[lbfru] +ryexqpqhteki-sxesebqju-tufbeocudj-348[tjzhb] +kfg-jvtivk-sleep-wzeretzex-477[ektvz] +kzgwomvqk-jcvvg-bmkpvwtwog-174[vgkwm] +odiih-kdwwh-uxprbcrlb-251[bdhir] +htqtwkzq-xhfajsljw-mzsy-yjhmstqtld-229[thjqs] +qjopwxha-xwogap-owhao-914[astye] +wrs-vhfuhw-edvnhw-hqjlqhhulqj-439[vufmz] +rdggdhxkt-xcitgcpixdcpa-rpcsn-rdpixcv-stktadebtci-609[cdtip] +eqttqukxg-fag-eqpvckpogpv-544[jmtpx] +kdijqrbu-sqdto-seqjydw-iuhlysui-946[bioht] +fydelmwp-awldetn-rcldd-cplnbftdtetzy-951[kpxim] +ubhatstkwhnl-unggr-nlxk-mxlmbgz-761[geyqm] +ocipgvke-gii-fgxgnqrogpv-726[giopv] +fab-eqodqf-otaoaxmfq-iadwetab-430[azmnb] +fab-eqodqf-otaoaxmfq-pqhqxabyqzf-456[qafob] +xekdwvwnzkqo-zua-naoawnyd-784[anwdk] +sbejpbdujwf-fhh-tbmft-285[mbfsn] +hwbba-eqpuwogt-itcfg-rncuvke-itcuu-ugtxkegu-648[ugtce] +hqcfqwydw-fbqijys-whqii-cqdqwucudj-452[ztesw] +dmpuamofuhq-nmewqf-emxqe-742[meqfu] +iqmbazulqp-pkq-iadwetab-976[kcxmz] +lahxpnwrl-ljwmh-lxjcrwp-bnaerlnb-927[lnrwa] +laffe-lruckx-vaxingyotm-306[aflxc] +forwcoqhwjs-qcffcgwjs-tzcksf-rsdzcmasbh-220[csfwh] +yflexwxoalrp-gbiivybxk-abpfdk-731[sjtrd] +foadouwbu-ibghopzs-pogysh-kcfygvcd-506[ogbcd] +rtqlgevkng-hnqygt-ugtxkegu-232[zdgob] +yrwxefpi-fyrrc-asvowlst-880[jmzfi] +tyepcyletzylw-nlyoj-nzletyr-fdpc-epdetyr-795[jfvnq] +rkpqxyib-yxphbq-lmboxqflkp-627[vzmla] +xjinphzm-bmvyz-hvbizodx-ytz-gjbdnodxn-967[jmuws] +ktfitzbgz-vtgwr-inkvatlbgz-813[tgzbi] +hqtyeqsjylu-sbqiiyvyut-fbqijys-whqii-vydqdsydw-634[yqisd] +hcd-gsqfsh-dzoghwq-ufogg-qcbhowbasbh-506[hgboq] +ryexqpqhteki-uww-qdqboiyi-140[qiewy] +bkzrrhehdc-qzaahs-cdoknxldms-625[czsmn] +sawlkjevaz-lhwopey-cnwoo-yqopkian-oanreya-966[znhlt] +xjgjmapg-hdgdovmt-bmvyz-zbb-yzkgjthzio-577[gzbjm] +myxcewob-qbkno-lexxi-wkbuodsxq-250[xboek] +nsyjwsfyntsfq-hfsid-htfynsl-wjfhvznxnynts-255[umtns] +kpvgtpcvkqpcn-ecpfa-ewuvqogt-ugtxkeg-596[ehsca] +vkrhzxgbv-cxeeruxtg-ftgtzxfxgm-579[ymast] +pbeebfvir-fpniratre-uhag-genvavat-663[smznt] +vehmsegxmzi-glsgspexi-hitpscqirx-802[jszht] +tyepcyletzylw-nlyoj-nzletyr-cpdplcns-223[lycen] +jxdkbqfz-oxaflxzqfsb-avb-lmboxqflkp-523[mzvny] +tcfkqcevkxg-tcddkv-uvqtcig-336[cdsln] +ide-htrgti-hrpktcvtg-wjci-ldgzhwde-947[tdghi] +ojk-nzxmzo-kgvnodx-bmvnn-ozxcijgjbt-213[nojxz] +avw-zljyla-msvdly-yljlpcpun-539[lyajp] +rdchjbtg-vgpst-rpcsn-rdpixcv-htgkxrth-661[rtcgh] +xlrypetn-dnlgpyrpc-sfye-dezclrp-353[pelry] +enqvbnpgvir-enoovg-erfrnepu-455[ftlpj] +xjinphzm-bmvyz-xviyt-xjvodib-pnzm-oznodib-291[mlybz] +rwcnawjcrxwju-kjbtnc-bqryyrwp-511[tkyns] +gokzyxsjon-pvygob-nofovyzwoxd-458[ndtfs] +bjfutsneji-hfsid-htfynsl-rfwpjynsl-489[fsjnh] +ydjuhdqjyedqb-rqiauj-qdqboiyi-452[qdijy] +enzcntvat-rtt-genvavat-351[lznyt] +rdadguja-qjccn-advxhixrh-791[yncim] +fmsledevhsyw-ikk-irkmriivmrk-646[nlxzm] +jfifqxov-doxab-mixpqfz-doxpp-obpbxoze-471[oxpbf] +jqwpihizlwca-zijjqb-aitma-408[gzpmw] +pyknyegle-afmamjyrc-bcqgel-808[gynip] +zbytomdsvo-mkxni-bocokbmr-406[obmkc] +wfummczcyx-luvvcn-fuvilunils-526[bavmt] +hwdtljsnh-gfxpjy-rfsfljrjsy-541[gpszy] +lsyrkjkbnyec-oqq-gybucryz-848[ybckq] +oaddaeuhq-vqxxknqmz-xasuefuoe-378[rzmqe] +vhglnfxk-zktwx-fbebmtkr-zktwx-wrx-vhgmtbgfxgm-813[xepwt] +yrwxefpi-gerhc-hitevxqirx-594[eirxh] +mvydjvxodqz-xviyt-xjvodib-rjmfncjk-265[cqirj] +kdijqrbu-tou-kiuh-juijydw-140[uijdk] +ugjjgkanw-usfvq-vwkayf-970[rntsw] +froruixo-fdqgb-ilqdqflqj-569[cylni] +gpsxdprixkt-hrpktcvtg-wjci-gtprfjxhxixdc-999[xptcg] +kwvacumz-ozilm-akidmvomz-pcvb-nqvivkqvo-460[emnrk] +pejji-zvkcdsm-qbkcc-domrxyvyqi-484[cdijk] +rdadguja-xcitgcpixdcpa-qphzti-bpgztixcv-791[cipad] +rkpqxyib-zxkav-zlxqfkd-qoxfkfkd-965[qiftn] +bkzrrhehdc-bnmrtldq-fqzcd-atmmx-qdrdzqbg-937[dqrbm] +eqttqukxg-rtqlgevkng-dwppa-fgxgnqrogpv-570[gxetc] +zbytomdsvo-mkxni-myxdksxwoxd-510[xdmok] +ymszqfuo-rxaiqd-dqmocgueufuaz-274[umtwy] +pelbtravp-ovbunmneqbhf-qlr-znantrzrag-663[xlyio] +rdadguja-ytaanqtpc-gtprfjxhxixdc-141[krcaf] +etaqigpke-hnqygt-eqpvckpogpv-362[pegqk] +rtqlgevkng-etaqigpke-ecpfa-eqcvkpi-ewuvqogt-ugtxkeg-206[gxszf] +fubrjhqlf-fkrfrodwh-sxufkdvlqj-777[pozts] +wfintfhynaj-wfggny-xjwanhjx-957[nfjwa] +xcitgcpixdcpa-bpvctixr-qphzti-gthtpgrw-479[zjlmc] +gntmfefwitzx-hfsid-fsfqdxnx-697[oanif] +xgjougizobk-jek-jkvgxzsktz-384[kgjzo] +nzydfxpc-rclop-mldvpe-cpdplcns-925[pcdln] +ltpedcxots-qphzti-gtrtxkxcv-739[txcpd] +gvaaz-fhh-mphjtujdt-233[hajtd] +jchipqat-rpcsn-gtprfjxhxixdc-297[cpxhi] +gsvvswmzi-gerhc-tyvglewmrk-308[zbdcy] +dmybmsuzs-omzpk-oamfuzs-pqhqxabyqzf-508[mzqsa] +iruzfrtkzmv-treup-tfrkzex-jkfirxv-295[rfktz] +pdjqhwlf-mhoobehdq-vwrudjh-127[hdjoq] +rgndvtcxr-hrpktcvtg-wjci-apqdgpidgn-375[jdrhb] +sbqiiyvyut-isqludwuh-xkdj-efuhqjyedi-114[qjzpn] +lahxpnwrl-npp-nwprwnnarwp-459[ontmq] +zntargvp-onfxrg-fnyrf-871[fnrga] +molgbzqfib-avb-absbilmjbkq-601[bailm] +kpvgtpcvkqpcn-tcddkv-wugt-vguvkpi-492[vkpcg] +jfifqxov-doxab-zxkav-zlkqxfkjbkq-341[kxfqa] +qfmcusbwq-dzoghwq-ufogg-fsqswjwbu-220[zbjty] +xjinphzm-bmvyz-mvwwdo-yzkgjthzio-785[zmhij] +ejpanjwpekjwh-ydkykhwpa-owhao-186[hqlfd] +nzydfxpc-rclop-prr-cplnbftdtetzy-483[pcrtd] +kwtwznct-rmttgjmiv-amzdqkma-590[mtakw] +muqfedyput-fbqijys-whqii-iqbui-790[gjxky] +egdytrixat-rgndvtcxr-rpcsn-jhtg-ithixcv-115[trcgi] +fab-eqodqf-rxaiqd-mzmxkeue-404[eqadf] +zotts-xsy-guleyncha-708[ymnbi] +mbiyqoxsm-pvygob-gybucryz-536[zbyxv] +dmybmsuzs-bxmefuo-sdmee-pqhqxabyqzf-716[mbeqs] +qspkfdujmf-ezf-fohjoffsjoh-519[fjohs] +nwlddtqtpo-prr-xlcvpetyr-249[owkmz] +amlqskcp-epybc-aylbw-amyrgle-bctcjmnkclr-808[clabm] +qspkfdujmf-qmbtujd-hsbtt-eftjho-727[tigys] +pualyuhapvuhs-thnulapj-msvdly-ylzlhyjo-877[lhuya] +diozmivodjivg-zbb-nzmqdxzn-629[zdibm] +yrwxefpi-qmpmxevc-kvehi-gerhc-gsexmrk-qerekiqirx-126[erixk] +qlm-pbzobq-zxkav-zlxqfkd-zrpqljbo-pbosfzb-575[phqza] +irgyyolokj-lruckx-aykx-zkyzotm-904[ubkvy] +cebwrpgvyr-pnaql-pbngvat-bcrengvbaf-793[bagnp] +wlsiayhcw-wifilzof-wuhxs-mylpcwym-630[wilyc] +nglmtuex-ktuubm-nlxk-mxlmbgz-215[egtsz] +sbejpbdujwf-dboez-nbobhfnfou-883[jpkmo] +qzoggwtwsr-qobrm-gsfjwqsg-480[xkwvm] +nwzekwypera-oywrajcan-dqjp-wymqeoepekj-472[zeydw] +sawlkjevaz-ywjzu-yqopkian-oanreya-836[ayejk] +pybgmyargtc-afmamjyrc-rpyglgle-470[zgmsu] +nzwzcqfw-qwzhpc-cplnbftdtetzy-977[zctwf] +lhkhszqx-fqzcd-okzrshb-fqzrr-cdudknoldms-651[defrs] +ugfkmewj-yjsvw-owshgfarwv-tskcwl-wfyafwwjafy-294[wfajs] +gpbepvxcv-gpqqxi-stktadebtci-609[npyad] +pxtihgbsxw-vahvhetmx-hixktmbhgl-397[pvcfe] +guahyncw-vohhs-fiacmncwm-656[chamn] +wfruflnsl-uqfxynh-lwfxx-wjfhvznxnynts-463[fnxlw] +lzfmdshb-cxd-dmfhmddqhmf-703[dmfhb] +gzefmnxq-eomhqzsqd-tgzf-oazfmuzyqzf-118[zfqme] +udskkaxawv-usfvq-ugslafy-hmjuzskafy-658[asufk] +ugjjgkanw-vqw-ksdwk-112[kwgja] +enqvbnpgvir-cynfgvp-tenff-fuvccvat-975[vfnce] +fydelmwp-ojp-nfdezxpc-dpcgtnp-353[gziom] +fmsledevhsyw-gpewwmjmih-glsgspexi-tyvglewmrk-178[egmsw] +shmml-enoovg-freivprf-585[efmor] +bnqqnrhud-atmmx-qdrdzqbg-651[qdbmn] +pxtihgbsxw-vahvhetmx-nlxk-mxlmbgz-943[xhmbg] +xfbqpojafe-dipdpmbuf-tbmft-441[wuizc] +zsxyfgqj-uqfxynh-lwfxx-ijxnls-749[futrq] +oaddaeuhq-nmewqf-dqmocgueufuaz-508[mwlcv] +buzahisl-zjhclunly-obua-zavyhnl-201[kzylj] +yhwooebeaz-iwcjapey-oywrajcan-dqjp-zaoecj-524[aejoc] +bwx-amkzmb-qvbmzvibqwvit-lgm-zmikycqaqbqwv-772[dubva] +oxmeeuruqp-ngzzk-fqotzaxask-638[zaeko] +xfbqpojafe-qmbtujd-hsbtt-efwfmpqnfou-363[fbqte] +iehepwnu-cnwza-xqjju-nayaerejc-472[eajnc] +ytu-xjhwjy-jll-ijxnls-385[moyjn] +nvrgfezqvu-treup-tfrkzex-wzeretzex-997[fpvnt] +kwvacumz-ozilm-moo-camz-bmabqvo-434[sanvt] +lxaaxbren-ouxfna-bjunb-277[abnxu] +gpsxdprixkt-uadltg-tcvxcttgxcv-453[txcgd] +owshgfarwv-jsttal-hmjuzskafy-658[asfhj] +pbafhzre-tenqr-qlr-ynobengbel-403[ebnrl] +yaxsnlcrun-mhn-jlzdrbrcrxw-121[wngsc] +bgmxkgtmbhgte-vtgwr-vhtmbgz-tgterlbl-995[gtbme] +nvrgfezqvu-avccpsvre-tljkfdvi-jvimztv-269[vcefi] +apwmeclga-pyzzgr-dglylagle-158[auvsi] +qczcftiz-pogysh-rsgwub-350[kcdvs] +qlm-pbzobq-gbiivybxk-abpfdk-211[bikpq] +crwwv-rkpqxyib-yrkkv-cfkxkzfkd-419[krcfv] +sbnqbhjoh-cbtlfu-tupsbhf-285[bhfst] +qlm-pbzobq-avb-bkdfkbbofkd-159[golnc] +nchhg-jiasmb-lmaqov-902[dpmcw] +tagzsrsjvgmk-jsttal-umklgewj-kwjnauw-944[fsqml] +rkpqxyib-yxphbq-jxkxdbjbkq-601[npbtf] +ujqgywfau-tmffq-hmjuzskafy-736[zmnlk] +ujqgywfau-hdsklau-yjskk-umklgewj-kwjnauw-190[kujwa] +uqtqbizg-ozilm-jcvvg-lmxizbumvb-850[mhanw] +yhtwhnpun-ihzrla-klclsvwtlua-591[lkqzn] +sbqiiyvyut-sqdto-seqjydw-sedjqydcudj-738[warvn] +bwx-amkzmb-uqtqbizg-ozilm-moo-kwvbiqvumvb-746[wystg] +tipfxvezt-vxx-cfxzjkztj-555[xtzfj] +cjpibabsepvt-cvooz-sftfbsdi-571[myqsb] +ymszqfuo-fab-eqodqf-pkq-xmnadmfadk-274[tkbds] +wlqqp-treup-tfrkzex-jkfirxv-581[refkp] +lnkfaypeha-fahhuxawj-wjwhuoeo-550[ahwef] +lsyrkjkbnyec-oqq-ckvoc-874[azsyv] +gvcskirmg-fewoix-wlmttmrk-360[mgikr] +irdgrxzex-tipfxvezt-treup-tfrkzex-cfxzjkztj-607[txzer] +avw-zljyla-zjhclunly-obua-yljlpcpun-617[lajuy] +nwzekwypera-lhwopey-cnwoo-hkceopeyo-134[zulqp] +vkppo-sqdto-seqjydw-jhqydydw-114[dqyjo] +zixppfcfba-zxkav-zlkqxfkjbkq-679[txhzn] +sbnqbhjoh-dboez-sftfbsdi-623[bsdfh] +qjopwxha-bhksan-zalhkuiajp-316[ahjkp] +yhtwhnpun-thnulapj-ibuuf-klzpnu-773[unhpl] +uwtojhynqj-kqtbjw-wjfhvznxnynts-827[ntyqj] +jef-iushuj-rkddo-ijehqwu-504[biekf] +gspsvjyp-tpewxmg-kveww-gywxsqiv-wivzmgi-672[sryce] +rgllk-eomhqzsqd-tgzf-etubbuzs-118[zbegl] +shmml-pubpbyngr-ynobengbel-403[bnegl] +gsrwyqiv-kvehi-fewoix-wivzmgiw-256[rimyz] +iuxxuyobk-yigbktmkx-natz-xkykgxin-852[kxiyb] +excdklvo-oqq-vklybkdybi-744[utifh] +ojk-nzxmzo-agjrzm-xpnojhzm-nzmqdxz-915[zmjno] +qspkfdujmf-sbccju-eftjho-103[byjhc] +fodvvlilhg-mhoobehdq-whfkqrorjb-699[taskb] +aflwjfslagfsd-usfvq-ogjckzgh-814[emsnh] +sebehvkb-uww-tulubefcudj-712[ubewc] +egdytrixat-gpbepvxcv-hrpktcvtg-wjci-hidgpvt-531[vzdcg] +nsyjwsfyntsfq-zsxyfgqj-gzssd-wjxjfwhm-749[sgmhv] +ktfitzbgz-yehpxk-kxvxbobgz-761[ryzea] +tcrjjzwzvu-irsszk-rthlzjzkzfe-503[ocepg] +dfcxsqhwzs-pibbm-sbuwbssfwbu-558[tocys] +nwzekwypera-bhksan-odellejc-758[eakln] +qfmcusbwq-qobrm-qcohwbu-fsoqeiwgwhwcb-402[cpzsy] +cvabijtm-zijjqb-uizsmbqvo-434[btzma] +irdgrxzex-srjbvk-glityrjzex-867[rxegi] +rdadguja-tvv-gtrtxkxcv-609[tvadg] +wdjcvuvmyjpn-zbb-mznzvmxc-213[ndmaz] +vagreangvbany-sybjre-nanylfvf-507[bryme] +vjpwncrl-mhn-bqryyrwp-979[rnpwy] +jqwpihizlwca-ntwemz-abwziom-642[iyzsa] +jchipqat-rwdrdapit-detgpixdch-921[dipta] +vqr-ugetgv-tcddkv-eqpvckpogpv-440[vgpcd] +ajyqqgdgcb-aylbw-amyrgle-qyjcq-756[qyagb] +fbebmtkr-zktwx-utldxm-nlxk-mxlmbgz-553[onbvf] +hwdtljsnh-kqtbjw-ijajqturjsy-827[jthqs] +sedikcuh-whqtu-sxesebqju-udwyduuhydw-556[rvudf] +ipvohghykvbz-tpspahyf-nyhkl-yhiipa-huhsfzpz-123[hpyiz] +fubrjhqlf-mhoobehdq-oderudwrub-153[bdhor] +mbggf-zjhclunly-obua-dvyrzovw-695[bglou] +houngfgxjuay-igtje-aykx-zkyzotm-176[qcita] +lugjuacha-mwupyhayl-bohn-xyjulngyhn-318[gnftc] +rdggdhxkt-rpcsn-rdpixcv-itrwcdadvn-505[uancd] +yaxsnlcrun-ouxfna-jwjuhbrb-199[xnmwj] +yrwxefpi-tpewxmg-kveww-wlmttmrk-334[rfqkl] +ktwbhtvmbox-unggr-kxtvjnblbmbhg-215[bgthk] +amlqskcp-epybc-bwc-pcyaosgqgrgml-600[cgpab] +ujqgywfau-usfvq-ugslafy-jwuwanafy-606[uafwy] +nwzekwypera-lhwopey-cnwoo-lqnydwoejc-134[xithv] +nwzekwypera-acc-naoawnyd-160[itvch] +luxciuwncpy-ohmnuvfy-yaa-wihnuchgyhn-526[hnuyc] +ygcrqpkbgf-ejqeqncvg-tgegkxkpi-674[gekqc] +mtzslklcozfd-qwzhpc-nfdezxpc-dpcgtnp-223[ucwob] +tinnm-tzcksf-zcuwghwqg-948[nmktj] +rdchjbtg-vgpst-hrpktcvtg-wjci-itrwcdadvn-453[ngtzh] +yrwxefpi-nippcfier-hizipstqirx-932[ipref] +cvabijtm-xtiabqk-oziaa-kcabwumz-amzdqkm-590[mpqzo] +dpmpsgvm-dipdpmbuf-efqmpznfou-259[pmdfu] +ynukcajey-nwxxep-zarahkliajp-238[ytaej] +zbytomdsvo-mkxni-mykdsxq-nocsqx-770[mosxd] +tagzsrsjvgmk-xdgowj-jwuwanafy-814[efhpk] +xqvwdeoh-fdqgb-rshudwlrqv-127[jpkat] +kpvgtpcvkqpcn-fag-qrgtcvkqpu-596[pcgkq] +zlkprjbo-doxab-gbiivybxk-obpbxoze-393[boxik] +zbytomdsvo-mrymyvkdo-domrxyvyqi-744[ymodv] +jvuzbtly-nyhkl-qlssfilhu-klwhyatlua-695[lhuya] +nzydfxpc-rclop-nsznzwlep-xlylrpxpye-145[plnxy] +atyzghrk-xghhoz-rghuxgzuxe-748[ghxzr] +vhglnfxk-zktwx-ietlmbv-zktll-ftkdxmbgz-787[wbspa] +njmjubsz-hsbef-dipdpmbuf-vtfs-uftujoh-623[fubjs] +pyknyegle-aylbw-jmegqrgaq-756[egyal] +bgmxkgtmbhgte-lvtoxgzxk-angm-vhgmtbgfxgm-137[gmtxb] +ydjuhdqjyedqb-vbemuh-jusxdebewo-946[debju] +jxdkbqfz-zxkav-zlxqfkd-mrozexpfkd-263[kxzdf] +nbhofujd-dipdpmbuf-pqfsbujpot-597[pbdfu] +wrs-vhfuhw-fdqgb-vklsslqj-647[sfhlq] +vkrhzxgbv-vtgwr-ehzblmbvl-449[knuzb] +gsrwyqiv-kvehi-fyrrc-pefsvexsvc-750[versc] +hqcfqwydw-vbemuh-ixyffydw-270[fwydh] +vetllbybxw-vkrhzxgbv-lvtoxgzxk-angm-ybgtgvbgz-527[jxrwq] +bkzrrhehdc-eknvdq-cdrhfm-365[dhrce] +cybyjqho-whqtu-rkddo-qsgkyiyjyed-530[ydqhj] +ckgvutofkj-hatte-ynovvotm-332[tovka] +sawlkjevaz-zua-iwngapejc-758[jzwql] +mvhkvbdib-kgvnodx-bmvnn-gjbdnodxn-551[bmkyo] +enzcntvat-fpniratre-uhag-grpuabybtl-689[sqkoh] +bqvvu-acc-oanreyao-108[acovb] +tyepcyletzylw-nlyoj-nzletyr-nfdezxpc-dpcgtnp-275[yelnp] +fbebmtkr-zktwx-lvtoxgzxk-angm-kxlxtkva-839[kxtab] +ojk-nzxmzo-wvnfzo-vivgtndn-707[mlndw] +tpspahyf-nyhkl-qlssfilhu-klwsvftlua-487[iewds] +shoewudys-isqludwuh-xkdj-husuylydw-868[tlyhz] +qzoggwtwsr-qobrm-oqeiwgwhwcb-116[wgoqb] +zlkprjbo-doxab-yxphbq-pxibp-237[ocanz] +iruzfrtkzmv-avccpsvre-vexzevvizex-893[nyktl] +hqtyeqsjylu-hqrryj-tulubefcudj-894[ujqye] +zlkprjbo-doxab-fkqbokxqflkxi-mixpqfz-doxpp-xznrfpfqflk-523[fxkpo] +dpmpsgvm-sbccju-dvtupnfs-tfswjdf-129[neysa] +qcbgiasf-ufors-dzoghwq-ufogg-zopcfohcfm-246[yhmkz] +esyfwlau-ugjjgkanw-usfvq-kzahhafy-242[wnzhb] +mbiyqoxsm-lkcuod-nozkbdwoxd-432[odbkm] +usfvq-ugslafy-vwhdgqewfl-632[fglqs] +gokzyxsjon-zvkcdsm-qbkcc-oxqsxoobsxq-484[xrkfl] +hdgdovmt-bmvyz-wvnfzo-gjbdnodxn-395[bwicg] +sehheiylu-fhezusjybu-rkddo-udwyduuhydw-530[udhye] +glrcplyrgmlyj-aylbw-amyrgle-nspafyqgle-210[dmuny] +aflwjfslagfsd-jsttal-xafsfuafy-138[faslj] +yuxufmdk-sdmpq-iqmbazulqp-otaoaxmfq-pqbxakyqzf-586[qamfp] +jef-iushuj-sxesebqju-ixyffydw-270[iztnj] +zvyvgnel-tenqr-enzcntvat-ohaal-ratvarrevat-793[atven] +yuxufmdk-sdmpq-vqxxknqmz-ogefayqd-eqdhuoq-612[qdmux] +yhtwhnpun-kfl-ylhjxbpzpapvu-357[phlnu] +egdytrixat-qjccn-bpcpvtbtci-557[mtpgc] +wsvsdkbi-qbkno-mkxni-mykdsxq-ecob-docdsxq-120[dksbo] +xtwtelcj-rclop-ojp-dstaatyr-873[omnal] +wifilzof-jfumncw-alumm-xypyfijgyhn-318[evfso] +mvydjvxodqz-agjrzm-hvivbzhzio-655[vzdhi] +jsehsyafy-usfvq-ugslafy-jwuwanafy-840[afsyu] +myxcewob-qbkno-nio-bocokbmr-900[obckm] +ipvohghykvbz-wshzapj-nyhzz-vwlyhapvuz-539[hzvpy] +tbxmlkfwba-pzxsbkdbo-erkq-zrpqljbo-pbosfzb-185[bkopz] +rdadguja-eaphixr-vgphh-itrwcdadvn-869[nfpxs] +lugjuacha-jfumncw-alumm-zchuhwcha-734[uachm] +jsehsyafy-jsttal-jwsuimakalagf-762[mnvlh] +zixppfcfba-yrkkv-absbilmjbkq-393[ihgyz] +bxaxipgn-vgpst-rdchjbtg-vgpst-rpcsn-rdpixcv-hpath-817[pgtch] +rtqlgevkng-ejqeqncvg-hkpcpekpi-154[xpgty] +laffe-hgyqkz-xkikobotm-488[kfoab] +jfifqxov-doxab-zxkav-zlxqfkd-qoxfkfkd-419[ubaro] +myxcewob-qbkno-cmkfoxqob-rexd-zebmrkcsxq-952[boxce] +apuut-wvnfzo-rjmfncjk-447[fjnua] +lejkrscv-tfcfiwlc-avccpsvre-fgvirkzfej-113[cfver] +nglmtuex-cxeeruxtg-kxvxbobgz-215[xegbt] +sgmtkzoi-kmm-xkgiwaoyozout-748[qrkst] +amppmqgtc-djmucp-rcaflmjmew-912[bcvna] +xst-wigvix-fyrrc-wepiw-438[ygref] +dzczkrip-xiruv-jtrmvexvi-ylek-fgvirkzfej-295[irvek] +diozmivodjivg-xviyt-xjvodib-zibdizzmdib-265[zmrey] +rgndvtcxr-ytaanqtpc-stepgibtci-661[tcagi] +xgsvgmotm-hgyqkz-jkyomt-358[ajyhb] +zloolpfsb-yxphbq-ixyloxqlov-393[loxbp] +zilqwikbqdm-jiasmb-uizsmbqvo-668[ibmqs] +rtqlgevkng-rncuvke-itcuu-ucngu-206[ucgne] +dmybmsuzs-yuxufmdk-sdmpq-eomhqzsqd-tgzf-iadwetab-482[nkqyl] +vetllbybxw-ktuubm-hixktmbhgl-345[ikqop] +bwx-amkzmb-jcvvg-ikycqaqbqwv-954[symcn] +ubhatstkwhnl-ynssr-lvtoxgzxk-angm-kxlxtkva-163[ktxal] +zlilocri-yxphbq-pefmmfkd-471[filmp] +yflexwxoalrp-zlkprjbo-doxab-zxkav-zlxqfkd-qoxfkfkd-419[xkflo] +oxaflxzqfsb-zelzlixqb-xznrfpfqflk-393[flxzq] +ixccb-vfdyhqjhu-kxqw-ghyhorsphqw-101[pzgst] +pybgmyargtc-qaytclecp-fslr-sqcp-rcqrgle-860[crglp] +zbytomdsvo-mkxni-kmaescsdsyx-562[smdko] +hwbba-dwppa-ocpcigogpv-570[pabcg] +eza-dpncpe-nlyoj-nzletyr-wlmzclezcj-171[elzcn] +tbxmlkfwba-mixpqfz-doxpp-zlkqxfkjbkq-159[kxbfp] +vetllbybxw-yehpxk-ehzblmbvl-657[blehv] +zuv-ykixkz-jek-lotgtiotm-852[ktioz] +fnjyxwrinm-mhn-mnyjacvnwc-277[zgpnw] +odiih-ljwmh-lxjcrwp-mnenuxyvnwc-615[nwchi] +wfummczcyx-wuhxs-qilembij-838[mciuw] +sno-rdbqds-bgnbnkzsd-bnmszhmldms-859[sbdnm] +nvrgfezqvu-gcrjkzt-xirjj-ivjvrity-555[ylfxv] +encuukhkgf-uecxgpigt-jwpv-ujkrrkpi-622[kugpc] +lnkfaypeha-xqjju-qoan-paopejc-446[ajpen] +kmjezxodgz-ytz-gvwjmvojmt-109[jmzgo] +ygcrqpkbgf-hnqygt-octmgvkpi-128[gckpq] +jxdkbqfz-mixpqfz-doxpp-tlohpelm-107[pxdfl] +xjgjmapg-xviyt-xjvodib-adivixdib-759[ixdjv] +laffe-jek-sgtgmksktz-644[vuenb] +pbafhzre-tenqr-enoovg-ratvarrevat-975[ymshj] +lqwhuqdwlrqdo-vfdyhqjhu-kxqw-uhvhdufk-959[kzlvy] +rflsjynh-jll-zxjw-yjxynsl-697[jlyns] +wrs-vhfuhw-sodvwlf-judvv-ghvljq-361[vhwdf] +ynssr-unggr-tvjnblbmbhg-163[bgnrs] +jyfvnlupj-jvsvymbs-yhiipa-zopwwpun-903[nrdma] +kzeed-hfsid-uzwhmfxnsl-515[uoyvx] +ide-htrgti-uadltg-gtprfjxhxixdc-375[tdgix] +sorozgxe-mxgjk-hatte-vaxingyotm-358[fwxei] +ydjuhdqjyedqb-fbqijys-whqii-jusxdebewo-582[nuzsj] +yknnkoera-xwogap-paydjkhkcu-498[kanop] +nzydfxpc-rclop-upwwjmply-opdtry-691[pycdl] +dlhwvupglk-jhukf-jvhapun-zlycpjlz-409[lhjpu] +kwvacumz-ozilm-moo-bmkpvwtwog-694[mowkv] +kmjezxodgz-wpiit-mzxzdqdib-863[anvbu] +xlrypetn-nsznzwlep-xlylrpxpye-587[znfwt] +pybgmyargtc-qaytclecp-fslr-umpiqfmn-600[nzvej] +etyyx-qzaahs-lzqjdshmf-781[ahqsy] +ovbunmneqbhf-wryylorna-znantrzrag-221[pnazx] +gzefmnxq-bxmefuo-sdmee-ymzmsqyqzf-352[lgvpu] +ixeumktoi-jek-jkbkruvsktz-488[mzeun] +dzczkrip-xiruv-avccpsvre-glityrjzex-321[eflmp] +wfruflnsl-hfsid-fhvznxnynts-307[fnshl] +vkppo-rkddo-iqbui-218[dikop] +muqfedyput-zubboruqd-mehaixef-452[inbaj] +ftzgxmbv-cxeeruxtg-nlxk-mxlmbgz-683[xgmbe] +htsxzrjw-lwfij-uqfxynh-lwfxx-hzxytrjw-xjwanhj-827[xjwhf] +qekrixmg-wgezirkiv-lyrx-tyvglewmrk-282[regik] +ktiaaqnqml-jiasmb-apqxxqvo-226[asvyf] +lejkrscv-irdgrxzex-srjbvk-kvtyefcfxp-165[rekvx] +hvbizodx-nxvqzibzm-cpio-hvmfzodib-291[izbov] +ltpedcxots-tvv-rjhidbtg-htgkxrt-297[tdghr] +dlhwvupglk-mbggf-jovjvshal-zlycpjlz-565[lgjvh] +xfbqpojafe-tdbwfohfs-ivou-sfbdrvjtjujpo-779[fjobd] +kmjezxodgz-xviyt-gvwjmvojmt-577[flhas] +jshzzpmplk-jhukf-jvhapun-vwlyhapvuz-669[hpjuv] +tfejldvi-xiruv-gcrjkzt-xirjj-drerxvdvek-295[dpsef] +zotts-yaa-lymyulwb-968[skymd] +rmn-qcapcr-zyqicr-umpiqfmn-704[cmqri] +xfbqpojafe-cbtlfu-qvsdibtjoh-727[bfjoq] +ykhknbqh-nwxxep-oanreyao-732[naehk] +raphhxuxts-hrpktcvtg-wjci-hidgpvt-921[hmzng] +yrwxefpi-qmpmxevc-kvehi-gerhc-gsexmrk-hizipstqirx-932[mdsza] +xjgjmapg-xviyt-vivgtndn-603[utnks] +cxy-bnlanc-mhn-vjwjpnvnwc-745[mtsvn] +ujoon-gpbepvxcv-eaphixr-vgphh-uxcpcrxcv-687[pcvxh] +ykjoqian-cnwza-iwcjapey-lhwopey-cnwoo-opknwca-264[owacn] +lnkfaypeha-oywrajcan-dqjp-zalwnpiajp-108[apjnl] +ktwbhtvmbox-yehpxk-mktbgbgz-293[cndif] +hqcfqwydw-cqwdujys-rqiauj-qsgkyiyjyed-738[qydjw] +amlqskcp-epybc-zyqicr-kylyeckclr-600[sdrzj] +bnmrtldq-fqzcd-rbzudmfdq-gtms-zbpthrhshnm-443[dmbhq] +nwlddtqtpo-nlyoj-nzletyr-epnsyzwzrj-379[tyrzv] +cvabijtm-kpwkwtibm-lmxtwgumvb-980[mbtwi] +amlqskcp-epybc-afmamjyrc-jyzmpyrmpw-574[mpyac] +aflwjfslagfsd-vqw-dstgjslgjq-424[sfgjl] +willimcpy-zfiqyl-xymcah-110[ilycm] +kpvgtpcvkqpcn-lgnnadgcp-ujkrrkpi-128[knmqz] +wyvqljapsl-buzahisl-ibuuf-lunpullypun-409[wyhza] +amlqskcp-epybc-pyzzgr-pcacgtgle-210[cpgae] +xtwtelcj-rclop-mldvpe-dstaatyr-821[nkabu] +pdjqhwlf-gbh-sxufkdvlqj-751[cdmbz] +wkqxodsm-zvkcdsm-qbkcc-ecob-docdsxq-432[cdkoq] +xjmmjndqz-wpiit-gjbdnodxn-811[djnim] +zlkprjbo-doxab-zelzlixqb-absbilmjbkq-939[blzai] +htqtwkzq-xhfajsljw-mzsy-ywfnsnsl-619[lfsnu] +zhdsrqlchg-mhoobehdq-xvhu-whvwlqj-361[hqdlo] +tcfkqcevkxg-tcorcikpi-ejqeqncvg-uvqtcig-544[lsyzm] +kwtwznct-kivlg-zmamizkp-824[ixjen] +bkzrrhehdc-qzaahs-rghoohmf-287[hraoz] +lxuxaodu-mhn-cajrwrwp-303[aruwx] +tcorcikpi-dcumgv-octmgvkpi-700[vygzd] +crwwv-zlkprjbo-doxab-yxphbq-bkdfkbbofkd-809[bkdof] +xgvnndadzy-xcjxjgvoz-ncdkkdib-447[dnxcg] +elrkdcdugrxv-fkrfrodwh-xvhu-whvwlqj-179[eubfs] +odkasqzuo-rxaiqd-eqdhuoqe-430[nlyts] +vhglnfxk-zktwx-xzz-xgzbgxxkbgz-917[xzgkb] +jyfvnlupj-wyvqljapsl-jovjvshal-zlycpjlz-357[jlvpy] +gpbepvxcv-eaphixr-vgphh-gtrtxkxcv-687[pvxgh] +jrncbavmrq-zntargvp-qlr-qrirybczrag-741[dnzpg] +hqfxxnknji-hfsid-knsfshnsl-307[wtfhe] +aietsrmdih-nippcfier-stivexmsrw-750[iersm] +glrcplyrgmlyj-pyzzgr-pcqcypaf-912[nkoyv] +ugfkmewj-yjsvw-hdsklau-yjskk-sfsdqkak-216[ksjad] +mhi-lxvkxm-vtgwr-kxtvjnblbmbhg-917[bmvxg] +tipfxvezt-irsszk-kvtyefcfxp-451[fteik] +jxdkbqfz-mixpqfz-doxpp-qoxfkfkd-939[fxdkp] +dsxxw-pyzzgr-qrmpyec-288[prxyz] +ejpanjwpekjwh-fahhuxawj-ajcejaanejc-394[jaehw] +pinovwgz-xgvnndadzy-xviyt-vxlpdndodji-109[dnvix] +szfyrqriuflj-upv-rercpjzj-243[jprqg] +dmbttjgjfe-gmpxfs-efqbsunfou-701[fbegj] +sgmtkzoi-inuiurgzk-ykxboiky-436[qlcfs] +slqryzjc-djmucp-ylyjwqgq-158[jqycl] +aflwjfslagfsd-vqw-hmjuzskafy-398[fasjl] +slqryzjc-djmucp-pcacgtgle-886[cgjlp] +qjopwxha-ywjzu-ajcejaanejc-420[zoehr] +amjmpdsj-njyqrga-epyqq-kylyeckclr-756[yksln] +zlkprjbo-doxab-zxkav-zlxqfkd-abpfdk-445[kabdx] +lhkhszqx-fqzcd-bgnbnkzsd-nodqzshnmr-989[nzdhq] +dlhwvupglk-ibuuf-klwhyatlua-591[dzktb] +dpotvnfs-hsbef-cbtlfu-ufdiopmphz-623[homsd] +ajvyjprwp-npp-mnbrpw-875[pjnrw] +lxwbdvna-pajmn-snuuhknjw-mnyuxhvnwc-251[nuwah] +vetllbybxw-lvtoxgzxk-angm-xgzbgxxkbgz-865[mknli] +aflwjfslagfsd-jsehsyafy-usfvq-vwkayf-268[fsayj] +xjgjmapg-agjrzm-gvwjmvojmt-291[jgmav] +plolwdub-judgh-iorzhu-dqdobvlv-465[dloub] +htqtwkzq-wfggny-fsfqdxnx-645[wsznf] +fkqbokxqflkxi-zxkav-zlxqfkd-jxohbqfkd-341[kxfqb] +oxjmxdfkd-avb-tlohpelm-653[dlmox] +xtwtelcj-rclop-nsznzwlep-epnsyzwzrj-873[zelnp] +rtqlgevkng-gii-ceswkukvkqp-466[kgeiq] +molgbzqfib-yrkkv-ixyloxqlov-237[lobik] +zbytomdsvo-mrymyvkdo-nocsqx-848[pahef] +szfyrqriuflj-treup-tfrkzex-ivtvzmzex-867[xejut] +upq-tfdsfu-kfmmzcfbo-mphjtujdt-909[fmtud] +ykhknbqh-lhwopey-cnwoo-bejwjyejc-342[hwxgn] +qfkkj-nsznzwlep-nzyeltyxpye-327[vkmwy] +excdklvo-zvkcdsm-qbkcc-psxkxmsxq-900[cvoiz] +dszphfojd-dboez-dpbujoh-xpsltipq-623[zbxem] +udpsdjlqj-iorzhu-ghsorbphqw-517[hdjop] +xcitgcpixdcpa-ide-htrgti-gpqqxi-gthtpgrw-609[gitpc] +cybyjqho-whqtu-uww-tuiywd-348[styfx] +yuxufmdk-sdmpq-nmewqf-oazfmuzyqzf-924[hfsly] +tfejldvi-xiruv-avccpsvre-crsfirkfip-997[rxygp] +wsvsdkbi-qbkno-oqq-wkxkqowoxd-822[koqwb] +qcbgiasf-ufors-tzcksf-sbuwbssfwbu-610[ivjsc] +vkrhzxgbv-wrx-lmhktzx-839[xhkrv] +xmrrq-bwddqtwsf-vwnwdghewfl-242[fpmoq] +kmjezxodgz-nxvqzibzm-cpio-gjbdnodxn-577[isocd] +iutyaskx-mxgjk-kmm-jkyomt-436[kmjtx] +ide-htrgti-snt-rjhidbtg-htgkxrt-531[tghir] +vkppo-uww-bqrehqjeho-764[xmntl] +bdavqofuxq-pkq-ymzmsqyqzf-196[qfmyz] +diozmivodjivg-hvbizodx-zbb-ozxcijgjbt-915[zueag] +cybyjqho-whqtu-hqrryj-bqrehqjeho-374[hqjry] +vcibutulxiom-vohhs-lywycpcha-630[owyks] +chnylhuncihuf-wuhxs-fiacmncwm-786[chnuf] +xekdwvwnzkqo-ywjzu-ykwpejc-wymqeoepekj-264[dmbln] +etyyx-cxd-vnqjrgno-391[hntfq] +pwcvonofrcig-dfcxsqhwzs-qobrm-qighcasf-gsfjwqs-194[scfqg] +xgvnndadzy-ezggtwzvi-nojmvbz-837[vnsth] +dszphfojd-qmbtujd-hsbtt-usbjojoh-467[rskch] +npmhcargjc-aylbw-amyrgle-yaosgqgrgml-886[galmr] +qczcftiz-gqojsbusf-vibh-twbobqwbu-350[bnsiu] +kwvacumz-ozilm-kzgwomvqk-xtiabqk-oziaa-twoqabqka-980[akoqz] +dsxxw-zyqicr-cleglccpgle-418[clegx] +jrncbavmrq-cynfgvp-tenff-ynobengbel-611[nbefc] +hqtyeqsjylu-fbqijys-whqii-tuiywd-322[mitks] +rnqnyfwd-lwfij-wfggny-xmnuunsl-697[tseia] +fhezusjybu-rqiauj-udwyduuhydw-868[ngyzs] +pkl-oaynap-ywjzu-ykwpejc-opknwca-628[pakwy] +nuatmlmdpage-vqxxknqmz-geqd-fqefuzs-508[romxa] +awzwhofm-ufors-qobrm-qcohwbu-hsqvbczcum-948[obchm] +dfcxsqhwzs-rms-fsgsofqv-766[sfqcd] +wlqqp-tyftfcrkv-rercpjzj-711[rcfjp] +clotzlnetgp-awldetn-rcldd-nzyeltyxpye-743[letdn] +lgh-kwujwl-hdsklau-yjskk-vwhsjlewfl-788[lkwhj] +uqtqbizg-ozilm-kivlg-kwibqvo-uizsmbqvo-512[iqbov] +vetllbybxw-lvtoxgzxk-angm-kxlxtkva-683[xlktv] +qyujihctyx-mwupyhayl-bohn-uwkocmcncih-760[chyui] +crwwv-zxkav-obzbfsfkd-237[bfkvw] +qczcftiz-pogysh-igsf-hsghwbu-610[tnjwm] +udpsdjlqj-gbh-hqjlqhhulqj-725[hjqld] +yuxufmdk-sdmpq-nmewqf-emxqe-326[meqdf] +molgbzqfib-ciltbo-ildfpqfzp-653[bfilo] +uwtojhynqj-gfxpjy-ywfnsnsl-151[jnyfs] +qvbmzvibqwvit-jiasmb-camz-bmabqvo-330[bmvai] +xmtjbzidx-xviyt-xjvodib-xpnojhzm-nzmqdxz-603[torgb] +ykjoqian-cnwza-fahhuxawj-qoan-paopejc-628[ajnoc] +gvcskirmg-veffmx-irkmriivmrk-906[imrkv] +njmjubsz-hsbef-dboez-dpbujoh-bdrvjtjujpo-649[astyb] +ovbunmneqbhf-pnaql-pbngvat-jbexfubc-845[yzqwm] +joufsobujpobm-kfmmzcfbo-usbjojoh-571[mkpnw] +lzfmdshb-cxd-lzmzfdldms-287[dlmzf] +froruixo-mhoobehdq-pdunhwlqj-439[ohdqr] +xcitgcpixdcpa-rpcsn-rdpixcv-bpcpvtbtci-193[cpitx] +dfcxsqhwzs-ksodcbwnsr-xszzmpsob-rsgwub-168[sbwzc] +iuruxlar-lruckx-sgtgmksktz-436[krugl] +nbhofujd-dboez-fohjoffsjoh-467[ofhjb] +pejji-tovvilokx-nozvyiwoxd-276[bzkve] +bxaxipgn-vgpst-rpcsn-rdpixcv-rjhidbtg-htgkxrt-583[upjyv] +bkzrrhehdc-bzmcx-bnzshmf-lzqjdshmf-443[hzbmc] +dpssptjwf-gmpxfs-mphjtujdt-571[pjstd] +pdjqhwlf-sodvwlf-judvv-orjlvwlfv-829[tuszv] +mfklstdw-tmffq-wfyafwwjafy-918[wmvan] +joufsobujpobm-ezf-gjobodjoh-779[xwadm] +hafgnoyr-gbc-frperg-rtt-grpuabybtl-481[jcgnd] +joufsobujpobm-fhh-tijqqjoh-233[johbf] +zuv-ykixkz-vrgyzoi-mxgyy-yzuxgmk-150[yzgkx] +ibghopzs-qvcqczohs-qighcasf-gsfjwqs-948[ubrmn] +qfmcusbwq-pwcvonofrcig-foppwh-fsgsofqv-584[focpq] +aczupnetwp-awldetn-rcldd-qtylyntyr-119[tdlny] +dpssptjwf-ezf-sfdfjwjoh-909[znfwy] +qxdwpopgsdjh-ytaanqtpc-pcpanhxh-297[pahcd] +ucynmlgxcb-aylbw-rpyglgle-626[lgybc] +oqnidbshkd-okzrshb-fqzrr-rdquhbdr-573[rdbhq] +frqvxphu-judgh-fdqgb-vhuylfhv-647[hfuvd] +vhehkyne-cxeeruxtg-hixktmbhgl-319[ehxgk] +gsrwyqiv-kvehi-gerhc-gsexmrk-vigimzmrk-412[girek] +ajmrxjlcren-yujbcrl-pajbb-bnaerlnb-719[lvzpq] +zixppfcfba-bdd-bkdfkbbofkd-393[hnmcz] +aflwjfslagfsd-hdsklau-yjskk-ugflsafewfl-918[flsak] +xtwtelcj-rclop-upwwjmply-nzyeltyxpye-847[lpyet] +oaddaeuhq-qss-dqmocgueufuaz-924[qzwti] +tvsnigxmpi-wgezirkiv-lyrx-hitpscqirx-568[irxgp] +ksodcbwnsr-qczcftiz-gqojsbusf-vibh-igsf-hsghwbu-272[sbcfg] +sgmtkzoi-jek-gtgreyoy-410[tqkns] +rzvkjiduzy-kgvnodx-bmvnn-omvdidib-109[fpsxk] +diozmivodjivg-rzvkjiduzy-zbb-adivixdib-447[nayqm] +froruixo-vfdyhqjhu-kxqw-rshudwlrqv-517[rhqud] +dmpuamofuhq-dmnnuf-ymzmsqyqzf-222[mwnak] +mybbycsfo-zvkcdsm-qbkcc-wkbuodsxq-380[bcksd] +tcrjjzwzvu-wcfnvi-vexzevvizex-633[vzeci] +qzoggwtwsr-gqojsbusf-vibh-hsqvbczcum-870[sbgqc] +enzcntvat-cynfgvp-tenff-phfgbzre-freivpr-845[xnfot] +gsvvswmzi-gerhc-gsexmrk-stivexmsrw-984[segmr] +fhezusjybu-vbemuh-iqbui-244[iektm] +oqnidbshkd-idkkxadzm-qdzbpthrhshnm-469[gekyh] +pybgmyargtc-cee-nspafyqgle-574[egyac] +jyddc-gerhc-gsexmrk-vigimzmrk-672[gmrcd] +tipfxvezt-gcrjkzt-xirjj-rercpjzj-399[ldquc] +bdavqofuxq-bxmefuo-sdmee-dqeqmdot-768[hwmck] +fbebmtkr-zktwx-vtgwr-hixktmbhgl-475[tbkgh] +irgyyolokj-igtje-iugzotm-rumoyzoiy-202[mpijw] +fbebmtkr-zktwx-xzz-kxlxtkva-865[yicwo] +tyepcyletzylw-dnlgpyrpc-sfye-nfdezxpc-dpcgtnp-145[badwi] +vrurcjah-pajmn-ljwmh-anbnjalq-849[ajnhl] +rtqlgevkng-ecpfa-fgukip-700[gefkp] +pdjqhwlf-froruixo-udeelw-wudlqlqj-907[kymab] +tinnm-xszzmpsob-qcbhowbasbh-688[nhcdm] +nij-mywlyn-wuhxs-lywycpcha-318[ywchl] +fnjyxwrinm-ouxfna-ldbcxvna-bnaerln-979[naxbf] +ajvyjprwp-bljenwpna-qdwc-anjlzdrbrcrxw-823[jrwan] +diozmivodjivg-wpiit-mzxzdqdib-551[kmhon] +nij-mywlyn-dyffsvyuh-xyjfisgyhn-656[yfnhi] +fhezusjybu-zubboruqd-vydqdsydw-504[dubyq] +ubhatstkwhnl-lvtoxgzxk-angm-kxvxbobgz-579[xbgkt] +xcitgcpixdcpa-rwdrdapit-htgkxrth-557[zastp] +wfintfhynaj-jll-hzxytrjw-xjwanhj-281[jhnwa] +irgyyolokj-vrgyzoi-mxgyy-rumoyzoiy-800[sptbo] +jvyyvzpcl-yhkpvhjapcl-ibuuf-aljouvsvnf-227[vjlpu] +iruzfrtkzmv-treup-kirzezex-841[rzeik] +cxy-bnlanc-ljwmh-ujkxajcxah-979[waqkz] +qzoggwtwsr-foppwh-difqvogwbu-948[wgofp] +qyujihctyx-dyffsvyuh-zchuhwcha-552[hycuf] +yknnkoera-lhwopey-cnwoo-pnwejejc-992[enowc] +zovldbkfz-zxkav-zlxqfkd-xkxivpfp-289[vtcos] +mrxivrexmsrep-glsgspexi-erepcwmw-750[btrnl] +udskkaxawv-kusnwfywj-zmfl-dgyaklauk-866[xeozd] +esyfwlau-tmffq-vwnwdghewfl-632[czoml] +hjgbwuladw-kusnwfywj-zmfl-esfsywewfl-294[xwfie] +hwbba-rncuvke-itcuu-ocpcigogpv-232[cubgi] +vhkkhlbox-vtgwr-xgzbgxxkbgz-631[typnq] +nvrgfezqvu-szfyrqriuflj-vxx-jkfirxv-139[krijl] +iuruxlar-zuv-ykixkz-lruckx-xkykgxin-826[kxuir] +yhwooebeaz-ywjzu-yqopkian-oanreya-966[ynwkb] +iuxxuyobk-pkrrehkgt-xkgiwaoyozout-176[sjwtp] +glrcplyrgmlyj-djmucp-qrmpyec-236[clmpr] +pejji-tovvilokx-bocokbmr-588[obijk] +hplazytkpo-upwwjmply-dpcgtnpd-119[pdltw] +nij-mywlyn-xsy-jolwbumcha-136[yjlmn] +pynffvsvrq-ohaal-fgbentr-923[fanrv] +lgh-kwujwl-kusnwfywj-zmfl-kwjnauwk-736[wkjlu] +dszphfojd-sbccju-mbcpsbupsz-727[sbcpd] +ixeumktoi-lruckx-zkinturume-800[ktsyl] +fmsledevhsyw-tvsnigxmpi-veffmx-viwievgl-412[veifm] +mrxivrexmsrep-fyrrc-qevoixmrk-880[wtmdx] +qmpmxevc-kvehi-wgezirkiv-lyrx-wlmttmrk-620[zyxjd] +zixppfcfba-oxyyfq-qbzeklildv-289[fbilp] +nwlddtqtpo-dnlgpyrpc-sfye-wlmzclezcj-431[jefsy] +tinnm-foppwh-oqeiwgwhwcb-688[fzyjx] +plolwdub-judgh-fdqgb-ghyhorsphqw-413[hystk] +bwx-amkzmb-zijjqb-bmkpvwtwog-460[bmwjk] +qcbgiasf-ufors-pibbm-ghcfous-896[bfscg] +ktwbhtvmbox-vetllbybxw-cxeeruxtg-tgterlbl-215[tmybs] +lqwhuqdwlrqdo-mhoobehdq-vwrudjh-387[dhqow] +lgh-kwujwl-tskcwl-vwhdgqewfl-684[afnbs] +yuxufmdk-sdmpq-rxaiqd-efadmsq-976[mczye] +ftzgxmbv-unggr-kxlxtkva-917[ezfmx] +rmn-qcapcr-aylbw-amyrgle-ylyjwqgq-158[prcqj] +fhezusjybu-rqiauj-husuylydw-582[uyhjs] +apuut-xviyt-xjvodib-yzkvmohzio-525[yomvc] +mybbycsfo-dyz-combod-zvkcdsm-qbkcc-oxqsxoobsxq-848[obcsd] +yhwooebeaz-lhwopey-cnwoo-zalhkuiajp-706[oaehw] +bqxnfdmhb-bzmcx-trdq-sdrshmf-469[zdyht] +dmpuamofuhq-vqxxknqmz-pqbmdfyqzf-924[qmfdp] +kmjezxodgz-ytz-mzvxlpdndodji-889[gefcn] +apuut-xviyt-xjvodib-mznzvmxc-369[vximt] +fodvvlilhg-surmhfwloh-hjj-hqjlqhhulqj-647[hljqf] +tipfxvezt-srjbvk-tljkfdvi-jvimztv-269[vtijf] +ikhcxvmbex-xzz-labiibgz-423[qnzsg] +qzchnzbshud-azrjds-lzmzfdldms-885[xubgy] +eadalsjq-yjsvw-vqw-esjcwlafy-398[ajswe] +oxmeeuruqp-bxmefuo-sdmee-etubbuzs-898[stupo] +frqvxphu-judgh-xqvwdeoh-fdqgb-frdwlqj-zrunvkrs-257[dqrfh] +ltpedcxots-gpbepvxcv-qphzti-igpxcxcv-349[jzdyi] +vhkkhlbox-vtgwr-phkdlahi-969[tmszy] +cvabijtm-jcvvg-lmdmtwxumvb-226[nvfca] +sedikcuh-whqtu-sqdto-qsgkyiyjyed-790[dqsye] +gzefmnxq-bdavqofuxq-rxaiqd-ymzmsqyqzf-690[zklij] +zntargvp-cynfgvp-tenff-qrcyblzrag-351[sqzyh] +xfbqpojafe-dboez-xpsltipq-857[ehgum] +uqtqbizg-ozilm-jcvvg-lmaqov-980[xzwsi] +xjgjmapg-ezggtwzvi-xpnojhzm-nzmqdxz-161[zgjmx] +muqfedyput-vbemuh-fkhsxqiydw-920[udefh] +kzeed-gfxpjy-ywfnsnsl-489[xeoyn] +pynffvsvrq-onfxrg-ynobengbel-741[nfbeg] +froruixo-iorzhu-rshudwlrqv-647[rouhi] +amjmpdsj-qaytclecp-fslr-qyjcq-938[cjqal] +otzkxtgzoutgr-jek-iayzuskx-ykxboik-826[kotxz] +tpspahyf-nyhkl-jhukf-zavyhnl-279[hyafk] +pualyuhapvuhs-ihzrla-ylhjxbpzpapvu-929[lbncu] +odiih-ajkkrc-mnbrpw-355[ikrab] +votubcmf-gmpxfs-bdrvjtjujpo-363[jbfmo] +zgmfyxypbmsq-rmn-qcapcr-bwc-pcacgtgle-704[ztspm] +uqtqbizg-ozilm-nchhg-jiasmb-ivitgaqa-382[snpaf] +willimcpy-jfumncw-alumm-lyuwkocmcncih-734[cmliu] +ibghopzs-qvcqczohs-hsqvbczcum-506[chqsz] +ugjjgkanw-tmffq-vwkayf-216[lfrby] +pynffvsvrq-pnaql-erprvivat-507[vpraf] +aczupnetwp-nlyoj-nzletyr-pyrtyppctyr-197[pytnr] +vkppo-sqdto-seqjydw-bewyijysi-686[sydei] +dpotvnfs-hsbef-ezf-qvsdibtjoh-337[fsbde] +wlqqp-avccpsvre-ivtvzmzex-425[vcepq] +jfifqxov-doxab-gbiivybxk-jxohbqfkd-549[skgzo] +rgndvtcxr-jchipqat-rpcsn-igpxcxcv-713[cprxg] +ykhknbqh-xqjju-wymqeoepekj-576[ejkqh] +pejji-mrymyvkdo-domrxyvyqi-536[ymdij] +wihmogyl-aluxy-xsy-womnigyl-mylpcwy-786[ylmwg] +jlidywncfy-zfiqyl-mbcjjcha-162[cjyfi] +pynffvsvrq-sybjre-grpuabybtl-455[byavk] +uqtqbizg-ozilm-uiovmbqk-akidmvomz-pcvb-bziqvqvo-694[xywnk] +lxaaxbren-ouxfna-ydalqjbrwp-225[mibtg] +joufsobujpobm-kfmmzcfbo-dvtupnfs-tfswjdf-675[ijokq] +crwwv-gbiivybxk-pqloxdb-913[rtmzn] +pkl-oaynap-nwxxep-bejwjyejc-576[jfmel] +wfummczcyx-gcfcnuls-aluxy-wuhxs-wihnuchgyhn-786[giqsn] +htsxzrjw-lwfij-ojqqdgjfs-ijajqturjsy-229[tjxbs] +qczcftiz-foppwh-rsgwub-246[exnyt] +lnkfaypeha-xwogap-naoawnyd-342[zynls] +thnulapj-zjhclunly-obua-thuhnltlua-201[luhan] +vkppo-fbqijys-whqii-bqrehqjeho-504[lkosn] +eqpuwogt-itcfg-ecpfa-qrgtcvkqpu-622[cgpqt] +odkasqzuo-oazegyqd-sdmpq-otaoaxmfq-efadmsq-222[aoqdm] +ide-htrgti-bxaxipgn-vgpst-qjccn-pcpanhxh-453[pcghi] +luxciuwncpy-jfumncw-alumm-xyjulngyhn-552[unclm] +plolwdub-judgh-hjj-zrunvkrs-777[yfulq] +pejji-lexxi-oxqsxoobsxq-458[xoeij] +uzfqdzmfuazmx-pkq-fdmuzuzs-170[npsqv] +bknsykmdsfo-zvkcdsm-qbkcc-cdybkqo-614[fastx] +qfkkj-upwwjmply-qtylyntyr-873[yjklp] +hqcfqwydw-zubboruqd-ijehqwu-218[djvhz] +kmjezxodgz-pinovwgz-zbb-ncdkkdib-473[vimty] +bknsykmdsfo-myvybpev-mkxni-mykdsxq-bocokbmr-562[sdwfr] +eqttqukxg-gii-hkpcpekpi-960[yljdr] +drxevkzt-wcfnvi-cfxzjkztj-607[twoxz] +vkppo-rkddo-ijehqwu-504[dkope] +rgllk-rxaiqd-dqmocgueufuaz-456[mxkzr] +ktiaaqnqml-moo-xczkpiaqvo-122[aoqik] +amjmpdsj-njyqrga-epyqq-pcqcypaf-600[pqajy] +rwcnawjcrxwju-npp-ujkxajcxah-199[jacwx] +fmsledevhsyw-gspsvjyp-gerhc-gsexmrk-ywiv-xiwxmrk-412[segmr] +ajmrxjlcren-kdwwh-anbnjalq-745[myzet] +aoubshwq-tinnm-suu-fsoqeiwgwhwcb-480[wsubh] +rdggdhxkt-rpcsn-hpath-531[tsamh] +pbafhzre-tenqr-pnaql-pbngvat-nanylfvf-715[upmid] +zbytomdsvo-cmkfoxqob-rexd-gybucryz-562[obycd] +bkwzkqsxq-mkxni-ecob-docdsxq-978[ksmtq] +oknkvcta-itcfg-ecpfa-ncdqtcvqta-414[lcwjp] +fydelmwp-clmmte-cpnptgtyr-405[jlgak] +tcorcikpi-ecpfa-gpikpggtkpi-804[picgk] +xtwtelcj-rclop-upwwjmply-hzcvdsza-327[clpwj] +tcfkqcevkxg-ecpfa-eqcvkpi-ncdqtcvqta-752[cqekt] +etaqigpke-tcddkv-uvqtcig-440[tcdeg] +raphhxuxts-qxdwpopgsdjh-rpcsn-rdpixcv-sthxvc-843[tvexn] +atyzghrk-xghhoz-ktmotkkxotm-748[kthog] +fmsledevhsyw-nippcfier-asvowlst-412[zksal] +oaxadrgx-eomhqzsqd-tgzf-eqdhuoqe-846[zfylm] +qcbgiasf-ufors-dzoghwq-ufogg-qcbhowbasbh-194[bgofh] +qvbmzvibqwvit-bwx-amkzmb-jiasmb-xczkpiaqvo-122[bimva] +qfkkj-prr-hzcvdsza-639[dqmts] +jvyyvzpcl-ibuuf-bzly-alzapun-981[mnakf] +dsxxw-cee-pcacgtgle-626[odsgr] +buzahisl-zjhclunly-obua-zlycpjlz-617[rsglh] +gpewwmjmih-tpewxmg-kveww-jmrergmrk-594[mwegr] +aietsrmdih-hci-stivexmsrw-516[hsvof] +ujoon-ytaanqtpc-stepgibtci-219[tacin] +kpvgtpcvkqpcn-fag-ceswkukvkqp-830[cijob] +etaqigpke-uecxgpigt-jwpv-ocpcigogpv-154[gpcei] +eqnqthwn-tcddkv-rwtejcukpi-674[tcdek] +mhi-lxvkxm-ktuubm-nlxk-mxlmbgz-241[mxklb] +avw-zljyla-wshzapj-nyhzz-ylzlhyjo-149[plqkx] +xekdwvwnzkqo-nwxxep-odellejc-862[xyzwn] +pkl-oaynap-bhksan-qoan-paopejc-498[ojduv] +xjinphzm-bmvyz-xjgjmapg-ezggtwzvi-zibdizzmdib-499[zigmb] +bdavqofuxq-rxaiqd-bgdotmeuzs-508[clbmv] +xzwrmkbqtm-jcvvg-ewzsapwx-902[wmvxz] +dmybmsuzs-rxaiqd-xmnadmfadk-846[dmasx] +surmhfwloh-exqqb-vwrudjh-127[hqruw] +gntmfefwitzx-ojqqdgjfs-xytwflj-827[xgtuv] +tbxmlkfwba-zxkav-zlxqfkd-ildfpqfzp-965[jncig] +sbnqbhjoh-tdbwfohfs-ivou-qvsdibtjoh-597[rftxz] +hqcfqwydw-fbqijys-whqii-iqbui-322[iqwbf] +forwcoqhwjs-xszzmpsob-gvwddwbu-324[ftyzu] +zlilocri-oxjmxdfkd-ciltbo-pbosfzbp-991[gjars] +kwzzwaqdm-rmttgjmiv-uizsmbqvo-434[mziqt] +willimcpy-gcfcnuls-aluxy-mwupyhayl-bohn-yhachyylcha-162[kcimx] +uqtqbizg-ozilm-kivlg-uizsmbqvo-954[pifvj] +ugdgjxmd-tskcwl-wfyafwwjafy-762[wfadg] +ajyqqgdgcb-bwc-qyjcq-262[qcbgj] +yknnkoera-oywrajcan-dqjp-wjwhuoeo-602[oajnw] +bqxnfdmhb-qzaahs-rzkdr-963[abdhq] +dwbcjkun-mhn-jwjuhbrb-693[niusd] +wlqqp-wcfnvi-crsfirkfip-373[nrtqs] +guahyncw-wbiwifuny-xymcah-240[wyach] +qfkkj-prr-opgpwzaxpye-613[pkrae] +cqwdujys-tou-tufbeocudj-322[ucdjo] +wfruflnsl-wfggny-ijuqtdrjsy-931[wjznm] +bnqqnrhud-okzrshb-fqzrr-cdrhfm-105[rhqbd] +yhtwhnpun-tpspahyf-nyhkl-jovjvshal-zlycpjlz-487[hlpyj] +iutyaskx-mxgjk-hatte-lotgtiotm-176[shzku] +gntmfefwitzx-kqtbjw-xfqjx-645[nmfsa] +jvsvymbs-jhukf-jbzavtly-zlycpjl-695[frnkz] +dlhwvupglk-zjhclunly-obua-jvuahputlua-825[ulahj] +wyvqljapsl-jhukf-jvhapun-ylzlhyjo-487[jlhya] +ghkmaihex-hucxvm-lmhktzx-267[hmxka] +irgyyolokj-vrgyzoi-mxgyy-xkikobotm-670[ryfvl] +kwzzwaqdm-zijjqb-amzdqkma-564[qzdtv] +rflsjynh-idj-xytwflj-541[jflyd] +emixwvqhml-ntwemz-zmkmqdqvo-200[zmbdq] +kzgwomvqk-rmttgjmiv-abwziom-330[mtnsk] +xjgjmapg-wpiit-vivgtndn-499[weiza] +cebwrpgvyr-pnaql-grpuabybtl-117[xqmjc] +egdytrixat-uadltg-uxcpcrxcv-297[ctxad] +gvaaz-ezf-tfswjdft-623[fatzd] +excdklvo-mkxni-mykdsxq-mecdywob-cobfsmo-692[mocdk] +ovbunmneqbhf-pnaql-bcrengvbaf-351[mtgcw] +nwlddtqtpo-clmmte-nzyeltyxpye-509[ydnsh] +froruixo-udeelw-vwrudjh-309[sxgvu] +hqcfqwydw-sxesebqju-cqhaujydw-660[fghtp] +bpvctixr-rwdrdapit-ldgzhwde-895[sfioq] +ajmrxjlcren-yaxsnlcrun-bljenwpna-qdwc-fxatbqxy-797[fnjis] +lugjuacha-zfiqyl-uhufsmcm-370[uacfh] +houngfgxjuay-pkrrehkgt-iayzuskx-ykxboik-852[kguxy] +gcfcnuls-aluxy-luxciuwncpy-jfumncw-alumm-uhufsmcm-214[zftvs] +oxmeeuruqp-otaoaxmfq-emxqe-794[drzyv] +nvrgfezqvu-upv-tfekrzedvek-867[evfkr] +uwtojhynqj-xhfajsljw-mzsy-zxjw-yjxynsl-801[jyswx] +zixppfcfba-yxphbq-jxohbqfkd-887[zgoyn] +qczcftiz-qvcqczohs-aobousasbh-402[coqsz] +lejkrscv-upv-tfekrzedvek-919[ekvrc] +chnylhuncihuf-zfiqyl-zchuhwcha-604[magtu] +vetllbybxw-lvtoxgzxk-angm-ybgtgvbgz-605[gbltv] +dmpuamofuhq-omzpk-qzsuzqqduzs-820[quzmd] +rdggdhxkt-gpqqxi-rdcipxcbtci-219[yrlha] +tfejldvi-xiruv-wcfnvi-jvimztvj-243[fqclr] +foadouwbu-dzoghwq-ufogg-gvwddwbu-324[dgouw] +tbxmlkfwba-pzxsbkdbo-erkq-bkdfkbbofkd-913[hgans] +gpbepvxcv-rpcsn-itrwcdadvn-453[sbuap] +szfyrqriuflj-srjbvk-ivrthlzjzkzfe-633[sqwil] +jqwpihizlwca-jiasmb-ivitgaqa-122[amzud] +bqvvu-ywjzu-qoan-paopejc-264[ajopq] +mvydjvxodqz-wpiit-gvwjmvojmt-525[oabkn] +ktiaaqnqml-moo-zmikycqaqbqwv-252[qamik] +dpmpsgvm-cbtlfu-sfdfjwjoh-909[pntzm] +nzcczdtgp-nsznzwlep-qtylyntyr-171[nztyc] +htqtwkzq-idj-rfwpjynsl-723[ndmel] +gzefmnxq-nmewqf-eqdhuoqe-300[eqfmn] +qzlozfhmf-cxd-lzqjdshmf-469[fzdhl] +pinovwgz-mvydjvxodqz-xviyt-xjvodib-yzndbi-447[pztyh] +gspsvjyp-gerhc-gsexmrk-vieguymwmxmsr-256[gmser] +ygcrqpkbgf-tcfkqcevkxg-hnqygt-vtckpkpi-102[puovq] +jsehsyafy-tmffq-vwhdgqewfl-112[rnach] +qmpmxevc-kvehi-hci-eguymwmxmsr-204[mechi] +tcfkqcevkxg-tcorcikpi-gii-gpikpggtkpi-544[wytzs] +pbafhzre-tenqr-enzcntvat-onfxrg-ratvarrevat-845[raten] +shoewudys-rqiauj-bqrehqjeho-270[ehqjo] +xjinphzm-bmvyz-ojk-nzxmzo-ezggtwzvi-zibdizzmdib-577[zimbd] +rkpqxyib-bdd-pbosfzbp-939[bpdfi] +vcibutulxiom-vumeyn-omyl-nymncha-786[ziwys] +nvrgfezqvu-upv-ivrthlzjzkzfe-321[vzefr] +krxqjijamxdb-yujbcrl-pajbb-dbna-cnbcrwp-303[bjacr] +zixppfcfba-mixpqfz-doxpp-qbzeklildv-653[zdxgu] +lsyrkjkbnyec-mkxni-gybucryz-640[ykbcn] +qspkfdujmf-kfmmzcfbo-dpoubjonfou-155[fomub] +sno-rdbqds-rbzudmfdq-gtms-cdozqsldms-755[yaubo] +houngfgxjuay-vrgyzoi-mxgyy-ygrky-462[ygoru] +gcfcnuls-aluxy-wifilzof-yaa-omyl-nymncha-266[alycf] +hwdtljsnh-gzssd-xfqjx-463[fajso] +htwwtxnaj-idj-hzxytrjw-xjwanhj-281[hzrnq] +sorozgxe-mxgjk-lruckx-xkgiwaoyozout-176[oxgkr] +ynssr-vtgwr-vhtmbgz-ftgtzxfxgm-475[gtfmr] +rtqlgevkng-lgnnadgcp-yqtmujqr-648[nelzc] +kwtwznct-rmttgjmiv-camz-bmabqvo-460[nmbls] +surmhfwloh-fdqgb-wudlqlqj-959[lqdfh] +iutyaskx-mxgjk-hgyqkz-rumoyzoiy-644[ykgim] +jqwpihizlwca-kivlg-kwibqvo-wxmzibqwva-434[iwqva] +amppmqgtc-djmucp-asqrmkcp-qcptgac-496[cpmaq] +apuut-xjmmjndqz-wpiit-vivgtndn-187[intdj] +ftzgxmbv-vtgwr-wxlbzg-267[gbtvw] +eza-dpncpe-mldvpe-wlmzclezcj-171[eclpz] +rnqnyfwd-lwfij-wfggny-ijuqtdrjsy-827[fjnwy] +aflwjfslagfsd-xdgowj-ghwjslagfk-684[fgajl] +lzfmdshb-eknvdq-rsnqzfd-859[ybjfz] +hqtyeqsjylu-uww-tufbeocudj-582[uejqt] +qfkkj-nsznzwlep-dstaatyr-223[aknst] +ubhatstkwhnl-xzz-kxvxbobgz-267[umogq] +xekdwvwnzkqo-oywrajcan-dqjp-ykjpwejiajp-238[mtbvo] +cebwrpgvyr-sybjre-qrfvta-195[rbevy] +hjgbwuladw-usfvq-esfsywewfl-710[mpiho] +lujbbrornm-kjbtnc-fxatbqxy-823[ywamx] +ugjjgkanw-uzgugdslw-hmjuzskafy-476[stfoh] +fmsledevhsyw-fewoix-pefsvexsvc-724[scznt] +zlkprjbo-doxab-bdd-obzbfsfkd-419[bdofk] +vcibutulxiom-wuhxs-nluchcha-864[uchil] +yhkpvhjapcl-ihzrla-dvyrzovw-305[qyhmr] +hmsdqmzshnmzk-qzlozfhmf-qzaahs-zmzkxrhr-287[zhmqs] +gzefmnxq-dmnnuf-etubbuzs-482[nubef] +ejpanjwpekjwh-ywjzu-ykwpejc-nayaerejc-550[jewap] +cxy-bnlanc-npp-mnyuxhvnwc-433[nvmyt] +jfifqxov-doxab-gbiivybxk-obzbfsfkd-601[epyzn] +pkl-oaynap-xqjju-wjwhuoeo-680[joapu] +jef-iushuj-hqtyeqsjylu-rqiauj-bewyijysi-842[hyzgu] +dfcxsqhwzs-tzcksf-aobousasbh-896[wkqxh] +lahxpnwrl-ljwmh-bjunb-693[jtoyp] +rnqnyfwd-lwfij-gfxpjy-wjhjnansl-931[jnfwl] +buzahisl-jvyyvzpcl-jhukf-jvhapun-klwhyatlua-617[ahluj] +jchipqat-eaphixr-vgphh-bpgztixcv-271[hpiac] +zlkprjbo-doxab-avb-absbilmjbkq-107[wbymr] +eqpuwogt-itcfg-dcumgv-fgxgnqrogpv-362[gcfop] +rdadguja-qjccn-gtrtxkxcv-791[cadgj] +etaqigpke-oknkvcta-itcfg-hnqygt-hkpcpekpi-674[mcoya] +gspsvjyp-hci-wxsveki-386[myuqs] +jef-iushuj-vbemuh-mehaixef-920[ehufi] +encuukhkgf-fag-tgceswkukvkqp-752[kguce] +npmhcargjc-njyqrga-epyqq-kypicrgle-444[cgpqr] +xtwtelcj-rclop-mldvpe-dpcgtnpd-379[pcdlt] +nchhg-kpwkwtibm-mvoqvmmzqvo-252[mvhko] +uqtqbizg-ozilm-jiasmb-uizsmbqvo-122[ktxvs] +nwlddtqtpo-mldvpe-fdpc-epdetyr-509[dpetl] +wfintfhynaj-idj-qfgtwfytwd-229[efudw] +yhwooebeaz-nwilwcejc-ydkykhwpa-owhao-160[skuyi] \ No newline at end of file diff --git a/adventofcode16/data/advent06.txt b/adventofcode16/data/advent06.txt new file mode 100644 index 0000000..4a1a2a6 --- /dev/null +++ b/adventofcode16/data/advent06.txt @@ -0,0 +1,624 @@ +focdealm +ggsipflx +rvibwxbm +vqrfyyrh +hsjtzpgs +ozymxpoy +jiecwags +lztseufl +dfwibwsn +skiuhnwl +kamgzqog +axeqncwa +gobivxto +nwgoryhd +tzrlitrq +uzoldxbv +zsteobha +pfcgdqkg +prcqlunp +iwivemkh +vpkilupm +ewuznabz +veaptost +cyvirffe +ejhhqfng +ibsqztgg +xzczkboh +bckhbodf +vbycgonv +esmoyyku +unccgdgj +cqwnqlzs +edoqmykb +bkvzlhyq +yzrspisn +zlzibhca +povnweaf +muyfegxe +oaojqfrl +gwesjxws +rjknfyeh +dkquvctc +cfuzhxoj +tdzzzfqc +lzjzsyni +wjfxckkf +xmhyjhop +kmtllzxs +yohearbj +ilmvyxgn +erczytzw +kuetjsba +vwkpollq +tujwluzc +jlvedjcp +acmoaoji +gqoliyen +agckavhf +ottamfdm +jxwlyotw +tdpsrapj +carwwmqc +ykaipjdj +zdfrbduu +vwiiosud +uoixglbw +yegbwxjb +wbpqqqfv +wpynmyqi +aqdkscgd +oghnbnnf +duftexbb +ttvbofay +jferymwy +hqzimpiq +sifyogml +nymxqbws +dhdlhhqp +urtuhcrj +giwcunfq +fxgretsl +maihqkpk +pdxfkcru +xixtthag +vuzxqzzi +wxxeleug +xpopxkzo +hgcsyuad +xcbydxnx +kxocfakp +erxdajeq +tliakzhh +iygbbuxs +qlgqthpp +duzzptwk +gfnqdotc +kjayxeqf +fehitfar +yemshppn +igtczmmw +gfajhxch +bslzmgwo +xpmhmirx +yhlwlupt +nymajupw +tlhgdefw +bqkudizc +lucrhmnm +svkoaqzz +luggfivf +ckawtiwy +eeivawhj +qdmmmvdl +quezzzqa +oimsfsuo +jdvcknqu +aupohqbk +llwsasnz +zlpljtjl +xfylqxlv +zqppxkul +varoizrq +yxryqwso +gsscetca +gcbdgqyo +hsdnvteo +pxtoreoc +rwjdkwzs +zdgofynf +polyntkx +jhulgrnf +ycbzpdpw +bzvdbwsy +vydjbucs +rxadwwuo +ccnvzjak +nombazjc +lbxwdasr +cbdlkiha +sdomdvow +phjnkkkp +nmtmrnyz +nxsvmcwk +hqimjvir +vmjhhuuv +zilhgqlb +gfgbibgg +imxxugfe +wtaffkbj +lyguqvjs +pejslhls +qjnefwii +oanqnnnc +kcjyfwxm +zoxjwxmw +ihmokcrm +uebsbhfr +fxvjiorr +ebjiucyt +ofutlokv +mdfnsuyr +dzviwqdk +umwyaijz +hdqwfalt +qtyrouwh +lkzcrtwa +dtqvwzke +buplmmca +xxepjuvj +omyotlar +ytndbwhi +sbntigym +mphrnsme +xiymeoxr +kcujxcih +bydnchgk +snwdjlip +yljsymtv +tyhbpoab +zlqhvzxl +akbtnzop +xnpjmysj +znhednen +vbcsocrm +ywjajour +ejngbqev +rstykfhc +cbcnoexq +mzlxvxwj +vfdqaalp +nbszzozr +dqpyojid +hfuqilbl +uoackeup +shqkcsmr +jbdasroe +fmlkvsnt +cnomxkvk +unbsfncq +bnzxltxe +bbadfyin +skmhtmhn +xkypwglb +flbfiioo +fzywneyg +srngxbut +qtodeuxg +xvawfqli +nyfmrdsn +rdjysbxj +spmezvvj +ofoivcuc +touzgqzx +mfqyzagc +dmaurbdv +gqnrlyuw +wuppusoh +qgstihuy +uldnlrpi +xaskgwim +djjrphid +qjhmctyu +osfenjdn +zvoahhkk +xiuyatyn +fepobmjh +kmugpjpw +aikpozqs +kmgmazif +gbzlodzb +hrocqadn +noekklwb +vzwhnkvx +osrspxsc +iekmqgua +xeehndee +quttqjav +htoptweo +cyicmwba +jltlwlyy +qvccdkig +bibggekq +kwfwvrfg +eycwlcup +murgcddl +lyukeubx +twbpzoyg +dkcvzele +fozhtmcz +frugeivm +qjbhpdpr +tgkkeroo +ryuvgqgc +jhixykqn +wsebmcrn +wohtjpgu +isflpxxt +xggwmamk +tfwdsrfe +cpjvcghr +fekhexdb +zcwzqofh +awnfiqzu +ihekvqby +rqaqajij +cumouwzx +ccyrflxd +rredygrk +patcpktn +mjnwuefa +tuhgyfsw +mjpxrgkx +hupfjqxo +mgkclcrf +jkmkhkci +nkcrwgqd +apmfiqpg +pxiawshv +ledhpfaz +btikmkwj +jwosopir +mgxftcte +phkbcdex +uakftnbh +fnkmdecn +swrvbjwj +hphskevf +trnpfdmy +odvmmqss +akvqgemq +zyqlkwdm +nbnaqjsa +mbnogzyt +mchaxjxu +tcqqerqz +ayylasgq +zqbrjfli +ccjjnfat +lvlpdjqu +luiabalt +qsvkepvz +dtyobsiy +jkulvrnc +thwjbzkh +vvhrwbkx +fhxejrff +bacuriaz +grmtyude +feynnckb +hfdepyjn +lvsfflyc +xfrgfgeh +vqqybtba +ntlfjqjt +zadauvmg +itukkpqf +mrnnfgmf +hpjqvppo +dshgwmgb +pzxeoymv +nlokvrio +cgcaxffl +dvimsnxu +iczcvwho +lkxumswj +satmovog +ujwknitl +halkgpaa +pnttnodc +adsvsumi +jwerfpko +yhsjqytk +vpevemez +yvjmltwj +vdoeippw +siouxait +ftrspdpx +hptwqlmz +haewgrft +watbdvqz +eiptzrvr +msvbioso +dnjeoucg +qixvmlem +mqquklfq +sszagakl +khfbexqb +uysydrlc +inawynse +whuonlhq +eshukapj +vtrepdxm +pgjjcisd +puiunlts +replddlv +emjyyhmd +aahwhond +laneyzsj +jnlkdpyb +sqxrctuo +wmmyybvl +ldyvqldz +bzbrsdjr +ekxwhzte +gnpqywzz +afsfbtte +ggkbrgds +dlawfrbp +opypolpc +cqpxcfgh +ynmtlgvl +slfmicyv +ooguwxjc +tewmtlty +wcdwansw +ktercyvw +qrgxrzne +wvbhflls +dpfjwbmm +uigmcaow +ejzhkxic +fbewvcoh +jxbtcmwn +ywiktjqn +rftnjqpp +yalixnnw +srdsiwgy +pdpdrynx +ioroheqp +vpvvnmad +tqksxfsp +snzxciua +nrhtoskm +crfvapzk +wndbcxvf +syffkzmv +nneibkaf +unuvhnli +ujhdjkvs +gmyqgvdr +jedfxwje +bcshopnu +xgiprhyv +onibkkoq +riguljez +yodzrfeu +ogbwakaa +ymrltbxa +ourmuhrx +yxwixtuv +ptnxdvdm +oskvgexz +fbigwiaw +xctckzmy +khwiyvmw +qbqbtxpr +kavzlngz +bbklqvzt +rwlzppbq +upirhhca +ezlaqdgo +ieuynchi +qmjtojzq +qrricseq +hxkrsfmw +nssfpnws +tiaziudb +rvskpahe +pplmppvi +jxpyidio +teudseap +aclyhavi +yqafhkyd +drjhcqgu +zvfcfbjc +sqfuuezn +gwtsupqk +czakgbiy +wknfzbyj +ooxwycji +wxymanlx +ewbtpqtl +jmwnxydh +ceqdllqb +jhdbejmt +mazzsanu +uypyqlvh +itnrzbie +miuegdjz +tqxeipin +kbareizb +jgjxrycy +epshhech +oicruxsz +ptxgidha +bmgnvjtr +qvwzlmgq +cvwtdffi +ibzasmru +jfenrbjd +nrkgwvcz +hlmghdgd +emhdaicl +wdwrzocv +spwjcrud +dsgilvqn +phvmafqk +iiihsfff +uvcqgtyc +doxkrzzw +hktdpsbv +evqojani +kzapomdx +ewtbrdtb +rgshzyxq +ltinzxld +cazrrlcu +irfxunbt +rmqcsbvm +gddexbsb +qladhkpd +xlvzpmab +wirftlbu +fxfqjubx +sgogtrcb +zlqxxwfy +djgtbihr +gslssgsu +wytydgje +vmovsmdh +ogyiuirh +mtfxzrrx +kcpfbemc +blreqhel +zjsjqqyh +ciqwtpvk +yjcinpaa +wxbxagui +aqbjqmig +ybaeuhew +mjzpnttv +mevjcrqp +fpmgzgco +gklesvof +jzfssvvx +aynfmwhl +euosbnhf +lcebcalt +kvsuuyyt +ltranzur +nlledtpz +vqdrgckr +yodxnjpt +uyznwnni +ckczwqkp +uxtjgoee +otdoyaxg +lbccbfgi +mhzjujrp +cekkthvf +fbvpuhog +nzfannep +rnnqusey +aiocsiyy +uvcbtfwr +bzqirxrg +qnmfgshq +inyevvbn +wswvhglx +huxqxwwb +fdutjnfq +adajhsjk +ahllesij +tcfawzgu +zfdgmtry +byznvpfp +duunxdad +kgadxmdf +ptfaovzv +uhuvlivs +xcoqrmeu +nnnlvmga +zwrbykek +lvpumidd +hieivrnt +vrwqsvci +npbplsvm +ougzcgty +rzvgzooo +iehafkto +rzspzjne +dzvvhvld +fgkmmfda +xjsnnlmd +igvjrsuk +narcempo +xrhoiugu +ghxbpomr +waxtcbcg +tmqgsejx +dobaxhel +mpzgjyww +ehyfvnaz +zxrdlajd +hfquyvok +aqxxdcqv +vjbukram +rjvttibk +pryxgzrd +hcqpxgee +qjgqvoal +wmbuvcty +zpgxmdiu +foequjps +lmdjwyfj +mhqudwzv +lrzkttsw +owyatnru +gwppbbfb +fvlkdsjk +pwhlvjtb +zgldiibp +sokjzgvq +kfourwqm +nfqoyvsz +hdiwmrhk +nnapsbht +blqjjtwy +aknoauti +uhgowkyx +uypyjorh +blfeioot +kzbukpxk +kfmbxgle +zmegahum +upjouzrg +tkedvzfy +bxwxuutn +rrwxobjp +jdujkhox +jkycewdx +ivlbibns +qjshodxf +bektjeou +wotjfgfl +rjrcfiug +aklhubjf +kwpnaezt +lsqvzdom +pxzvorct +vcxazyzs +xsszjsjq +ydgfsukl +gqxpcrla +rvsoxkhy +rschupcm +ivlpikxi +etrnyvkh +byzymjms +qagdcqww +sxnausxs +giuitchj +qgolehtg +keeskeyb \ No newline at end of file diff --git a/adventofcode16/data/advent07.txt b/adventofcode16/data/advent07.txt new file mode 100644 index 0000000..fb0a641 --- /dev/null +++ b/adventofcode16/data/advent07.txt @@ -0,0 +1,2000 @@ +dnwtsgywerfamfv[gwrhdujbiowtcirq]bjbhmuxdcasenlctwgh +rnqfzoisbqxbdlkgfh[lwlybvcsiupwnsyiljz]kmbgyaptjcsvwcltrdx[ntrpwgkrfeljpye]jxjdlgtntpljxaojufe +jgltdnjfjsbrffzwbv[nclpjchuobdjfrpavcq]sbzanvbimpahadkk[yyoasqmddrzunoyyk]knfdltzlirrbypa +vvrchszuidkhtwx[ebqaetowcthddea]cxgxbffcoudllbtxsa +olgvwasskryjoqpfyvr[hawojecuuzobgyinfi]iywikscwfnlhsgqon +jlzynnkpwqyjvqcmcbz[fdjxnwkoqiquvbvo]bgkxfhztgjyyrcquoiv[xetgnqvwtdiuyiyv]zyfprefpmvxzauur +vjqhodfzrrqjshbhx[lezezbbswydnjnz]ejcflwytgzvyigz[hjdilpgdyzfkloa]mxtkrysovvotkuyekba +xjmkkppyuxybkmzya[jbmofazcbdwzameos]skmpycixjqsagnzwmy +zeebynirxqrjbdqzjav[cawghcfvfeefkmx]xqcdkvawumyayfnq[qhhwzlwjvjpvyavtm]sbnvwssglfpyacfbua[wpbknuubmsjjbekkfy]icimffaoqghdpvsbx +enupgggxsmwvfdljoaj[qlfmrciiyljngimjh]qkjawvmtnvkidcclfay[bllphejvluylyfzyvli]heboydfsgafkqoi +ottpscfbgoiyfri[iwzhojzrpzuinumuwd]orfroqlcemumqbqqrea +zhrhvyfxxcsdpris[xdqecoqujrnqbgla]bpwibmrkcfbzigf[rlqtqykdltcpusvc]ybtsglkxrhucxwv +msaebhhuxyaevahov[skkhuecthcqtrvtunw]bzlvljpsapsezchptjs[lbcxoczqbyysmha]zdqlfydjdctfnuetghr[owwhfhnjmpekukafw]qqitepzwooogqifl +jhdfwesnofrkpse[mkruficpgplktbmoo]mnrjpuvsauanolvzhym +ucibfxxivatgxlupp[rxlbgrqostcioowo]faiimhdhgpockadenua[teomupxzwrernokhyud]ohsfljkyjvkfzwus +gzxcgjqdbyvfndfpw[ypfsapvecfqihnpuszq]mvwxgfkniekgqzqid +fipkggpfwvgrqiwosi[itadifxotejgzkt]szwurlcbvffhgse +ketltdpowbxcusrcua[oonjssgqvcgwvlz]otjxgpizqfpcriuco[mgtgmwcjecomtdkxdev]dnrecyeyhqcpausqzsw +lcototgbpkkoxhsg[erticxnxcjwypnunco]notoouvtmgqcfdupe[hubcmesmprktstzyae]unuquevgbpxqnrib[egalxegqwowylkdjkdg]spqmkzfjnzwcwgutl +nesmourutitzqtolwd[rurfefjvljejcufm]jagkqdwpkefkjdz[cctohikipqxxbdjxsg]badmffkslhmgsxqscf +vvbwenaczgfagvrv[dqjzprtikukbikojlgm]bkfrnbigwaitptbdcha[llnwgonsrsppphnnp]sqozspzzfbeigmw +jzkzjzzghblqqme[fsqzyykcotbavruyp]vjzohzsunrevhmpi +jlngucjirfgdgorbgb[nvvkvebcjahujrwjmy]cfnlrssuthgusytkqt +kegsdcxndhtlskseb[zbtcngduxclffzlw]wrdqbtrqbcpbeaiqvx[svsyqhkrryycnkceq]ztrawvffepndijceeih +imtafeyfivrcegpagsl[tjzsewuwboushjl]mtnyptormlwiijlds +sblhlpnuutqgtuvlc[jlkivbtbkivklrnr]zkzcykzkyjxarepzvrr +ojuqmcidxmsyjkhuh[gsegkxlimzuyceo]dlhjiensaurluhul +sxkxluastorxmnd[gwkeczwgmamhjquth]yvpdadteadabxgsplmr +cndxxzfcmwwtcibgktm[ntsvmiwosuvniztv]onnfaenxutizlbxdk +eqiwaqxxstamxgzc[vnomzylvfpmcscjar]rwdqevxpeqvrmvliu +tvzbzkhvpzedqtp[whzeqaisikjjbezzcow]hqbizwaaffwbtfglq +ajwpjiqawievazmipkw[mgfhwrppaxagfdgfsa]iaqcnovhgearcutadns[anaukyaljeflxdnucbn]bhqcwrkeolrhwdih +neakzsrjrhvixwp[ydbbvlckobfkgbandud]xdynfcpsooblftf[wzyquuvtwnjjrjbuhj]yxlpiloirianyrkzfqe +jugqswdvlbaorwk[dfqvlubdcigzpcz]aqhybhnoukoyxuiw +kkkfysfugyvqnfvj[ahhqkrufcvhfvapblc]jfincvlxbjivelqrs[mpoymhslpyekjmy]eicbqlzecwuugez[tsqmqvjiokqofbp]senbbdxrdigwcjwik +ogiiiqaxakiaucwa[ltdchlxwnzefocrw]koxethzfvlsewbqdt[qdfqgtzftqpaxuzcruo]fvkgjcglmmxqnifv +epmnxkubnsnyeeyubv[ydzhcoytayiqmxlv]edmbahbircojbkmrg[dlxyprugefqzkum]svdaxiwnnwlkrkukfg[eacekyzjchfpzghltn]ofwgevhoivrevueaj +vvwvubpdeogvuklsjy[psnqcfnqhxaibnij]fwzpkbdgmpocoqp +pjdxcbutwijvtoftvw[zkqtzecoenkibees]llfxdbldntlydpvvn[uaweaigkebxceixszbh]xxlipjtlogbnxse +zmnirrxetiwyese[cedxmaoadgjjvsesk]nuisspyclmncqlasmuy[zxwlwmbzbjmvubgcf]hfqniztoirmsdwz[zlffqhttbpehxoabzhx]upmydjqzzwefvgdpqu +lwvsssgvvylrvqh[duxjrrqkzchbpvnmm]pckmefvejytvzavgzgc[dcekfwnrzooigwio]pmutxfiwfowlfnnggl[lzytuzirtzgwhkz]yzgxtksuqrgvvgfefon +tpmyecqhqjjpertn[qomuwmxstmgzexds]ftvqqwsvsrnmvpg[vtpebuufpyieqbhuu]dorortnekxkwnploro[pzajzflqvbkhautupl]eowpcyzmyvnntvzmvx +foguzgeasrkncbny[tlyweucylxkswwxb]jtzjubgewwhlddar[dkddqrpwaqvlhdp]skkegnatbjubqglwu[pkwscrmgvjzarzb]ibaagrqwnxblvtkg +ejgpdxesfyoyaggmymi[axfkdoyoqkpkhusfwe]pnczsmszqevkqiwlfc[dqhzcqjzpgnoknmv]ldrjdhopfyctlqtn +gqhyasteoryuofc[bhblyxlbiqtzzyzvzqg]dtvxrlkyuwxttyw[qvvzvuzhkemwglh]bopvfttkwtaeckq[vvhkkgrddaoxnzctwar]gsscsjuictekguq +sviwnvbtrgyydtadhz[ipjrrywkoxwuzmlrzd]kcxruwyisqvokporkub[tvarlltnhjmcuvvcck]raafszljrhconjqsqi[snbxmvzrkojpjybkgpi]ekoeuottccqbxrvpkb +vtouviqjarqwnoexuy[lzxhegzxptktueqo]azfsikzbwiajcrhnas[hvqxgtffjyyfgsjowxy]ddbmpksrtghvvypev[eoepwehfavxzwgt]igsulpdhrevkghzh +fucimprxzsubuuzmk[umzezmmnkfzvjlela]qxzdlcryifsinmkgeha +kauzjbailyzpvtji[hgeslalzqgpdkpuvomw]utsywinellykvmuawwr +oacbdgfaszolybf[hsytrkjoylrkkduzfz]bmoelqhppaxshmfjl[cusgbbuydfqtbbmsju]mcftwalxlvfvvpeu +ybylybngqxxrmplf[mybpfztzwnisfpfgqmb]fsllclehoezgthek[ldxhvhwniqfpqbl]ebybalwrmrqldukb[okenxoqxjgrenrcjd]kluumgtqybryflqi +mufsafgfxiegfgf[ydibrbrmiaulexjek]ouwchrlvilmygbuppjl[imyaxsiodgjteppdyy]ugondbuqnhjrzzzn +idihouejjocbahe[mclnirhxghanatge]ubwhxskdzgkmyrp[vksyktucsyumvxoc]bregaefrdlrgmtwt +qnsqwkqttdevlnzg[noyxiueharjajsalnhu]heaxmujxhpgjddqur[xnqwujjeasceovnroiv]hnrnwuogebatnfsa +evruuxfhpivnmknolsj[itpsnnhbtrrbllsbo]gefodpceljlvwuahz +ebddlswrvbjohtnkyip[qkssdudizhcoaazvyow]xvnqicorrkjrnxixp +bbmmzbebuexzmtbr[tpzfxmwgamhaikfpaeu]kraaocehdtalyjrf[zzqqtjplepyidohpvx]kzehgejueimxlqglfj[zgysopfdgxtokkdxwk]gwcfaflybmhdgoxjq +xztpwfipuczrtoyt[uwnlokmtopkhdtemm]sdfmvgvctgwbdjpmvhh[ozjpkdigpjqzqgy]yrkwokmkrevauzroaqm[vctyupmildfnnjomue]cvagxsievhrukgyqzg +jpmvqhuabqsvroxgmyk[toieqxrazxhhsbrm]wdwhoqdddwdacuo +mlaqnefjmwbxeetyxz[sziklwesunikpiqjark]iltkcgfzmhvusdnlr[bmfprkswemctykvio]hhsmvppnztgipxij[kvlbovfklljaumwmy]mdpaiazrlputabj +czdgmoqwzhvfnulxo[mlbkytxjhscsxrgchri]veugcvavrzihzencp +rbjtyudgcswzezr[inlznakcutfnnequc]uhisbxotgqqtzionoq[hzlgqtkpeubvudi]qqsryagiowmcijbejhr +wkvwdohwocizssun[kimsjrwwfpilzpkf]ruqhrplgugwhmnn[iouhwbjnqzlqyewxof]exjuguxwmphfypvsivl +bcnuloxdfhnyesgtdky[hvmgfzcjhhiiqino]sfipughwbebgstwrua[behnamammdxrnnok]ttpbmbflilacfvwiwd[sosjbmmjygpbfetziv]qcosdgrbfdsgqqrlhym +fbmthzppxydfxiipo[zsyfzbueqoaoxeueado]santekllapuywlmwjkl[yfsonktbvuyilcxf]xjerezinsamruvn[cceqpogyrsztadfap]fiivtuyynltqoypypou +lfjigofbbnyrdlhxv[gfblbnmkfnpxbio]zeqevpmpjowrxtw[mofuoyllwekzcjtxjhp]lnzewigzwruzlbjh +xjgdfbtgqmgazgvtif[farekeencwufapef]dxjltmtfxuiydactuko +njaolcljynwvrwy[qplxbpadtyndosjcch]fscxierutuanappsqiy[jftravlojauqkmgludp]pkfwxpdfcrjrmbucf +iyotvokljqynxnpjsfs[lfwwocnwcwstidfpb]mutsdjbqfruxxprzrnk +kpvxcagazjsxgagg[sabugyxucglnvcjb]uvrdglycowrjddy +zclgitkurpfdspcbk[yedvkzgbawpthoyn]dhvnmtxbrpttrdrio[drdahsrphffqsigrlmk]ykghbvcdosmtcgxdeb +rkmajkdvlbqwtnuanue[brdlutivdnfekggixum]pbsgstnxgghrygqwpf[rlqzaflmkbvvefdoc]jhbtzkodsfglsaow[onlllmfziapizsd]usvejrxmziulunvjux +jqlketojwcgvuce[ftcxdqqebijrnfzjriq]ucwgiavuxrxokmvxgad[zmyusreluasvwgzngmx]semjnvafnqvwtvkimy[owvczdccmvfohtbijfu]dmhbiikbzcualbbs +roewzhbnwyvondnn[ejikyjgtzpmepihnnl]yurjuztavzqkxqlrle[mbjcyqrzfuhhsnipzx]fcrtuzhrqorxrdmrcn +ycznijylnnqwmqzdd[ycnztjgxgyapvafhwaa]pzdtesugxpchhdb[sdruhgxaqpitoxlncc]exnhjwmnvqmquvclhu +iufdjzqflteyvhrem[eqiluhtbfuegasby]ikqccaxrpnjjrevdsev[wfluwngzffaxhaflbf]wnlyrgvaxzsmqvc[smkdicgtwwwxmdizdi]joaqneodtgvioxzg +pddsupswtnzture[pehcqhpltqocptr]ymzrvibfbeasccxh[jwwhastouxzmyhh]xsllfxcuzbtciegzcd +rnnvfdyavlqnvwze[aistrderxrrojbsspnu]hfkzgodowrlajmmeq +qnebfycqdylighjpgo[ablnwbutiwhdcrmwbg]hnqeseogqdsdhith[nmrgaeenxhizhoqper]tjxbhutvqtjzpyzh +batsftctktgebkvzv[rovosiyqqpafttgdmoc]ynnztvhekfnexdcuq[lnevylboilqebnkf]udftgymwddomqmy +ybrcyivzafzoubcj[crhigqvjszwqflocc]aesdfdfgzcnyxsmzg +oskvnzcbuyaytyixp[ypctohskpfoxhpydwpf]kgkbxhyfncznsar[vulxrgolpxlqzkknzva]ightbuekpmjodxzfky[nyjpxhpycxjrqdno]jhvrgxgfjwarwzkmfj +relqdjmixussrbijgqj[mfsyrfbtjbojcesuyw]wsckbuhopguszeh[unyhvpqjxxgfbgyf]dddjalolfjwliasyezn +xahbldxnvsviywko[ucmjsyoejvcggbtx]prfpnzzlexpolsgsmsf[bgocwabottcqekxs]ijvpreqlfejnqhfbi +qtcopopjmmcjlyfrtot[dmnfjowrhqtqhevs]pfczfmefcnnfbxiovzj[exoentzecnbfjsy]comgdcvnlyaemmya +plhhfkjlotvzupi[ilbcfjbrxuildya]uuvdzteoijumhavq[tcuesohvzusidbgpw]hdsgdngmjtlybnas +yoifccopobbguvkytps[xhkzrdcfsyhpmuujbt]ocidhllwycinggwu[kouoyzxtwiwknduclv]wkokzcbbqvjxtubqg[plgujclgyfmafflyurt]rpjrpxriaxyinneajvy +jbmiqrqkpbjasqhvwcv[zlyzpnhzdtqiorod]dkigqgjtzmpleja[ijenfaygzeceopbmxks]iwzcpoekmitcckbxbzr +zixveaipmutzulr[awdlukrjbyxtssfksb]hreqwpgrawaqwtqpt[bykxrwwuypetebhs]xhtujigporvkxqot +cldscqwnyjkrzvyegsf[zwsvoudppoalxeja]dbqrfscekpmhmpoellj[xxxpuyedbyuihdzdf]bmtfdebklpxvuacq +ohdqlkppqasvyrkkjm[hevshusrmyhuyyo]qbmrotalialbvje +nvwdnytzqwrugam[pflhibktydncffbnlva]lguqdlkusqqwovr[bgufsrqjnngbwxnhuco]uanvcpxragayfoj +zkvrrzmgitfjnit[gezdzgcdvxdkxytcq]avznjhxyjldbqpfoua +mmyxbuoieontkaxvnk[lijzkcghkhiryhceqc]zuouxoicowwkhklyp[baqxxkavhepnpepnj]jcdekzxrpfucavdq[nxrhabcrumlshoitzba]httcbsbgoyhjpkv +hpzoxihsevceefdjv[nxgkyykcfpjwtlz]lkszzbxqdrwyktr +djqunzvzcyxmjqhy[qapfiyujulhgqipfm]htqbtlhlsqxnjyply +lilhndsdretyqjojrn[oxrhvlpgqiotmvruvh]hgdlazecfzdrmegmnw[alxxixmnnjkyhrqjgh]mpbjuwwcyhdfxynyk +fcrwgutcgcqizev[nwszwhfvqtdhrymgqf]iiahiososrpdafnt[gbkrardsossgcvu]fmudukrxbiqyrpi +xpcgsvaeydonptb[ewpsimxlttaeoth]gersjqmmdamhikqtv[sxyvukeegkkbbarjknr]sohijvshdnoawujw +vnjkhbmpsmvxkdt[yrpltayaihgspvnjxb]ivhwkahhjjlwzxfpz +ofoancxlupttxku[hkedaqsibrvtvqu]zkssllvuecmgtqvs[eklsqwgwuhucbxykl]ioompempaewmnco +nwviejwlkyokiqhuvo[csddbtlbfdwtakxlmss]fxdoqlbdjhoslraj[shasfhtvpcsajdsmxfp]errsdzqcqzbrfnkeux +gvmytvlyluvnmemhgjr[bvqbhytqwpyemefwo]sygljhpvyjnuxzjqy +zootaoveazcrmtbda[qlxlwntntbkjtkqve]vffdsbekufzemgwomh[vzllvqlmloffyyldfh]alltnttrzqrchacoiqm +ksbuxsjkmtzsfsy[shracmzkycsuqrei]qrmgsndwzkqhtojsn[innhjjhyfsffgsboglx]zhwuwgyrwmucjfii +dagldnrnugbavjwiiq[vrsiyprmsvuapxvn]piirprosbofdwzuuhn[epdsrdcpgzkkzdjle]jylrtjltlmvazfpmh[rqqteknolbyzykdysvr]ieejzvgtumekqapi +mtamroysxwglblwmjn[gmebbprtzaogucvyzv]tjzuzqyyfuihjubuzu +pcfbudkakpzlyou[zznswrvmytntytfkt]kvudoarqnyybzeddvn +moelqaykzlstyntby[qmpxihbeysykajdo]omqcjgdbuqvvydd +ddyczdjdwnoacci[wpgjlohduqnlrifih]dfwcghvsdezgdixnpxe[ohhccenoirazgekq]lqtssqpzgusrlvyrd +ewirhlfcfhkqbvmvi[ixrorekrimzzkckpel]ihyukzubvqdpnmqpgu[mbtybrusfomfdhlg]ucrcmbvpnjbghnxdo[lyajfieycgiubui]llelwgnuopqhjax +jpltuunwbrijwnudg[ejxyrxniclwnqxxnh]krckhlysnmqahsz +hkdpdpshmftvxob[fsdhonsqalgpydpub]dirxpfxsxhpxliqg[tvbhlcqkymtbnytjp]xuvawokttfililgwgue +mdnmunbnueofzddapl[wxfahokzfixiapig]wekvqzgvufgztlgldh[zwglgerouhvhtbrdib]xeogmvaqszvkdvxv +mbqnuqonmkxmczjo[ueqnkvfdskaqwesufs]zmoqtlzfcwqaxdnddkk +qoaqjkdsftjstyjyqd[fyvizziweplccjt]ryvpqznfcdvjxuu[syspurpgsonxbbdrcc]vvedpafqmoeugwuize +ctdgzypcrjqxirm[ouyjhaohcueqwdez]kroowbthpspnnzgzuau[pqijczlztofszvdzhx]iccbpchemtflqnhdrnw[esvbnyvlckqirev]psrquqfxaotuzsojbt +rgukaurlmsyzovie[noclopxqrusykxpix]zbbopbxzogbeppp[anouobvemneuuztti]rpnbuugshsxxbbkhauq[zpqywyyxjfabzyppw]ecdrhvipvzregbgl +vmbtrbtoajfkswgy[kailajjwltvmwasynoq]goxmpryedtsrgkx[hljqifnoadoljqtub]xucplzmspnbxvliaap[tfqpmrhbakiidoxwa]iceqprkydjgouemqsmf +cvpnedbnibipftign[cigxthfejgyjzvspaam]esifvgljjjbexwm[uspsplcqhomoszleq]qnogejwqjdiznyfellc[sszzsifsfavntyghfs]btswodsrhcrrbodmtz +lvxwpuujqxypkhqfymh[wtizujakvxzrqwpols]jffeswrfpnhhakyhwlz[lzyloeveicgwixnvdx]uvwhpnjlszclssbf +noblqdnmgtyjbxjq[chxjibegmcbmljibes]edtgpajthcmqgpz[qafbzkjfqbjzilzh]aorhwssnugyflolh +hunicsoijinxshpfskq[lniiseazhvpjiyg]wirqusdwvaiyatimhx[jntjijtppuekuvvzz]mxebkmgiqyfaglow +wvzgoeqwcuudhjlc[nsjqegpxfiwvbtyuo]hehqjsarzkbbidy +ncjcjhyagdubxcibe[qpddbjyualjarnnpkf]cizleaqaaewqysxwys +jqslpqaqntewoglud[xtzdawarqxbigpuf]qnxdyobxvfsrwoaz[snegbwbzchqcbavh]kipasixtzznhgkjskv +hptaschabsnqdgmuzoj[satvzxkqetnonungbjb]gqhigqimupvihhwy[nejqgulbxtzfjbjlya]jywahuqdzrufxenshjj +sjgpoxxqtfsltzk[jqwzhblplilweukbso]tgorxisfymrcgyr[tfbebfnnljlpcfeps]ahpjfbonoajtohthzri[tdgaokthtdhxpsg]ajcykosmkhftnrjqphg +tnwtnvvrpilvadiy[taucexvsohfmaxd]cfhrctuhgqwjgtll +xzzmvrhyhwvprzczwz[lnshilvbyfjqgff]qfkoodzijhqkpuob[iyyvvfibosnuwlov]fhbcvpuqvpxmlolhry[osdmjplktygtobvt]msazwlubhinqvyfh +wanhwievduqinfwlcou[uyalesnoaqmajcc]zbdddgzmqprwiia +dfovljmseevxcfarf[enpclythxgepfzqcw]wechankwzxxkkutq[mvzawbhttzrauulkxvd]emcdawwiunjraebra +sylgfxqcfrqgeeuh[dljwdydnbuddmtdgp]fhenkxvmwvdyaukaxa[xcdbxlqqfgqtjyhoi]tbnpjbnpoxxaxef[rlnmcnmntjlitsmn]vkculrpgrmqsrayre +xexefhsfpwtpxuygp[omxfywhnlcapmpalz]foblbhtxieggkgpcru[lscwcbkqvexwzzbri]ipjoiumgoyugfzq +hbeghglpgqnwpxqio[pcujpvhzhghnyjkmppe]jwcnwmqwctqgoxpj +apqmhkpxrtrfwulqbq[trthojavkcrlcgc]oikizlfqpukeudv[afgmhbusoqjubra]ajbuhxzuhecopcxm[lowqlmwiyvmdojjla]jrrhjmopywkqrhlgicl +dxrqnbrkijtvmkwq[dvtqzljjbreayipqgp]erhjjvypeyramuaab[cjedbzbceteuydrps]kolgelhdemrbeviu +gwjakwyuaxixflozol[omjuyjzbtditgoznip]nqybdawthoydext +lcdwaahhbhajoai[cszvgduipwduhgmo]vpsgnhmtypusbgmhwnb[qitqpalswmqvjiu]iyjenmmobfasnzqefci +tkxizzrgmsxvmrdawsx[edbhkciwrqmoflyang]nbuwbbspldrfhic[guhvpvocfyjpwwclv]olxhqqgrylvzzqxxd[cnhwdegsxurungopo]rdenofdlpgilpiuvmr +wkadrydzokfmuiah[mihkmnzzjladulkvb]weqzktdsbwalcdijda[rejzrqqdtbvrwgbgojt]ggruyvfdesfdwenyx[jjyyleykqeskpfmzl]ssqauxmvzygppvncz +djzzsqykcfbhgfoq[frykddayaohlxmkem]kawloxhrgcpronph[xxkgjvdfespwmnja]jddmrdznkctmsmaxih[uxotxlcobxfemckshh]irmewesnknuknipl +hzojrovrbmfobhsau[itboujfkrmpgjpsvsr]qgczawmbunmisxs[dtrvnzrayqlvdpyzbuy]wrcsquxgcxpvbwwzlqo[kqbfajfleopglhfui]bsoomwrdifoekal +cntxerwyrvbludhaa[fclfiyjfekdtavmgy]lnvvlflygrewrgswx[juijxzrpwfrmshbttg]yjeuhzyjbmbdslbdhf +gclzrtvgfbqqqcl[fdkwmnpoansxtklyusn]ywwzqahbabjbcbzd[kuiejkftwfuzmjbiify]tabpjhaiwzcdnzvof +hmshguykeqstxgzs[fsnsxtrvkdyrlek]rkzkooteryozbwmda[jyjzddadewtuaqulp]gtprcoocgdsfbtduekc[llfoixzevsmexhuitz]ppiutxxuvaxhzgiib +ouvpvcchazfdcljaux[kxqnkynylosbuekz]arsuffkkpzlwuibqd[lmmxhndkoldfbtyfpw]nvcrjoborzogjhgwn +ojesaevpprrzqaksixa[ykxbgapdjiulhmxgihm]nrxxnhdwodfgqoeproy +vzbltcugyxvtlxqnkxu[fcflcasuyaljgewcynf]azqaltkfsglwgkeh +urcslegrolaaalf[grobiijzrtgpntne]uhpzjqkslgahpkehix[prmevyrajmgfhsjpag]kwfhbrhzkojqazxjocg +zwfeopovkggasxxb[fadbebqmbxwktwfdeui]ftomtaogfvgkkdrkc[rdkdznntsigigjiv]warlzbzbnfbjjsh[etjzyzfdjztsfsyi]dulnqfxjoewssxgkfb +nvrsqzcyguparczn[ewfmgkjaibzjoiex]kpooaykofbtkpawayfh[ssuzuankcdhqvold]qaeuwxgakqvcugn +rnlhwrnjgxwleghohuz[nktpaaaciwyfagkpqw]yeyzojziajnryse[bmpxxtaljjigfiv]ojzukghfhfhykqrcdyy +doqbqcwjoldvwtws[qaxghysnphejfacrnkn]iqyhfkjogmrkjpk[hfjqxqeuzwywwmnzj]uzhpypjadzqcpeibcgc +kmcmhdptzlhgqui[cpluzrcwihnwxrsdoj]czbxutspkzdwesrc[fccnqmeaqfmxtqqng]fitsnmdmyzwsifevbat[fxhgcmqhxrudtnleoww]yhxgwphkxlzhxzjnvcp +tmjpplcwhmsaxav[epfnxqdzfpxmaztdqn]vwdoatnafiotogpsxk[lydghxujguhqcjqtbbk]mtvqsesoxvybfrxyoi +fslvgbiibdkhchajyb[zpbhqrokrbfuqrowop]gqqzoqvfsdfcjcdurrs[xhqfcfytbbekivnvod]jxjwuxivnyhppvfhaol[evfnrmrjnnhychtpv]emiyjcjsnojxexs +gqaygymjihevbsps[iepworrljuepufyvne]fzfjulzebpsphczby[kxaohggiqnjpdbf]bsjfluhncewudkumaxj +mvjlhovwivdanexv[iaphahshtwtnhoeoqsk]syolycabjeiwtwtec +ikhcujftlekmcnmcy[ubsoslmlaitakaqb]ruyiqnoobymxiim[ppxtpuphuisxnqumd]qxjhzfwvixjjmfgaqej[bdjpilcwzhqphfumpny]itvjttbjsbfmxppif +xhemwtnqvfankrccdtk[bbjzsytqxhxcgtedp]ksfozdggjvyvpoyw[tberajbwhcirnenwv]juojuogrifenjsbldn +bczvqdwkurvezjxgrg[yjvuwvfypobetomm]vtfujjaergrizoots[snwcbtqylvuhnxyvb]turadiqlfjvclpvbweg[mekdlejerxpllbf]bgkveafnrceyxufsqj +duqeascyrgxyhlspebo[kzimyrleaopbbwmbi]xsxqyleqvoscazopte[debdbibiuaosfdyioum]vjaptdzpitqctukwhf[jffyamdmvkrggbe]qrnqpwcdoditjixsc +cuxdugzthpcubgw[qjvtzbgagyebkobkhf]tsbcghahxswropcgj[yenmfdvoxlqekjsk]kjdmhdgepvdoovzvg[mafjriyxqtotmhxgvty]mdyayljihzqxhiga +ehkhfoqcdkpyxeum[xvjaglxwocodctbzj]osufidsaijsczhtfg[rvmapxxierwnjkc]pgshnzbphxdoaitou +wagqtjalswmbehwmuwm[oarjxyzwyhxzhpgilh]qapupwvuflcoryf[hmqhnrjiahzdfbaz]kuprvbaykjhqagnl[wfxatijeapdinkt]hadtvdjbkdduycdut +emfkovpbnkaxykrmwjg[otoxyqlkgczzivgdt]nsvpzdvcbsvrbpo[vdfxwihznfpxlbsju]xbcniikjhgzelav[opidnljejcjawbikt]gedgtkiksnpijteviu +fxbpujpvuboflfip[dogcwovzlakonhdyww]tkzftiqvyzumadasjtu +rqtkvmbmqtdrqsahsdy[dhaassflbjfdslopp]zetcyybbahysvheand[uncbkqyoidhvxjf]mxqjozeotsollwolhs +pxfqsysywqfsmername[yfcktnozutkhniqyp]tjzzakrnlxrtscena[bitenzjdqfopqevroqo]zujogbgemdxiaven[dtxlpfkysfcivyrxqt]fsgjjgzltbnlvdojqvk +guclyozvgpvbuhktwbh[qmueutcpmdebodbilp]vglsdvkxogzhzewjpl[guoovyobczavohc]jdguogegerfiwrxthui[hdcvpajqgpsoxuoawmz]ztwnqkdjnnwazrdzpc +llcocydhktglycn[aqvpbqqcyyjlfspio]bfwtqbvqbywnhvn[bdkrsfpiokzttiazuaw]kchhszhegdhxega[mgfuozyxaqcxmillwlx]mzcerkylhvawvyujx +jceiyppxbreywlqlc[fizmzubzyefdntbmd]bmholmqrninpjuux[wkbshvxwlfhlrpkbk]bnqhoqtiqqpsibgykwd[ajvhuevpxmsrjrdwt]ejcwhcsechltmxlycwv +lhzgbwzjykgdqwj[ksxhpuzyromwycwqtmi]fqkgkgvjfshsltg[ypmdudbfamagwadtia]nxqvzfdgxlwbbkrssc[zqmfrjzhsztnqbdgo]dvzoywqsqizywigsqsm +vvnbnhvgcpquhzbarub[ufazesxvliazvkcanib]agtuglmgoxupumcispr +mtpdvvydctgradgywc[mtpimzrgtmnlcge]vxbxcxjkpticzboc[ffiyihkovkviqjifrnt]yhxctiahahicybqti[latcrvinlucwkxhmc]ajivvpmxwiypcjtevwh +dpnjvkzcoyyzmgvvs[gtjdsruwdhyukkx]qndpbpmhkdngjmab +raugsxxkqxpsglitbj[ncskiewbnqnhxvojfx]qnqtemgvotsgnlgxyb[exshfmlaagkpxueykd]vgcwastyxsoddgu +vtmkqugezjlfpad[ljdytmxdmcfjvqus]zwkxtirtowwwoqybn[wwbggxlelxpmctsyio]ojizduyxsklhvogj[wkjkwbzdmusrmnwuq]dnvercuduocxwzzqvc +kcuaibmbtowdpkk[behnytmljmvkfzjzx]vwmeazoaavjnyopedp +jzmgdckgiwbhbits[qapkyzlxkcinhakr]zymyymfbxgiypcn +kbcfgsoqgqvurokxs[ygvbgzijbgfeylxvl]xsjucuevvfddgod +unfolwpdrbsrzgoo[xcskhiayzcpeegqfoe]sqhinsvvbcdboctc +yclpzeggejjnvkssg[jaxstjrzmutqmaqq]buvqcwkayhypitxnmp[hpxwubjyepaqhyhud]qhqlpdiqdhhgffsgtqw[ijhwhbvlbixaeywd]fwpyiwyrgoquoeuicxp +jwgenomewntwyxiawpa[eqcukoqwwwaruuaeoaz]przxcbqvsrozygtcyl[krwnmcxmgcgfbvkj]pcifuzymidokmsecl[wetuprgdinttljgam]wiiixvydbevhtscp +vzuukbqyqsivwpeeygi[bsfyvyrjgidexcfzq]wyfowikcidviqqnzcw +nsvfdglsbfbwlxfpfs[hdfyjgnwdgeropdfian]gznlvhnfjawhokhugz[klxeguqtsnydunmtj]gaauhesdugovoftjb[agqwktizuxyqgbvt]zhbzbgfwnkahvueja +xcnkdghtgpxbfefay[iekwzcvfquaynjpflf]rfmwtjyxputzpsgr[rxbiyhzboydmvufaz]vbibxkxeazvkbzpnrqv +efxnnxokdpeqbimle[sygsnwvurqpxovmfv]bfkvfubmjyasmvc +pvyunauqgvtigep[ypayrmkixxbagcbawlh]gsvqfsxbquttcaayobo[cwanbliqbdzlcur]ckdwzoeeeldqnmpnzta +uaxiegivsmmvixygiih[bwxhotmjiqmiffwt]ifggldhrjitovzh[wtrrvwjwudasapqdal]zegculmtzsyaxytuhih +hvikzocatynjoxxzjrr[yowwrajfokqlojraj]gvquwhdppqvtcvd[sqcangyggkdiljktl]fpjugbjlanzohbvfylb[fxdhqobssfucfmeaz]mzrtcejhidkqkpqc +lcgelocktqpqhjgon[vmfhipgnrbypfellki]bqgdqxjnlynzdjogpbk[ppgoudyairolaaomp]utxjqpmjzchqdhz +mtfryyrtmzzlooy[qltyhniowpskiqmolx]nuxblfnfrcqtjqfbzi[bdslgcpqyowecpp]vlxwrojvicfzzzfb +widpcxggzgbkofmmtkl[bhvmncpisdisugtk]azxcnslcqsbtyufnt[lqwxnibqiwuwzwkf]iqnupikuhmhvvhf +amceoqorrqtczywlb[znieihkpkxkvvqxk]rmoexicvufbvzrcxisb[nrrbalocuvporahypgm]sapytlndnufcmsmnl +ldbwysbqqkcizwlkqk[kxbcvzlolkrtyzou]zsqlgwgtcvtkmrc +bejhbhwlnmysyqgzk[gombhcspwwomoqoprog]zgwpzkhgbgaveqpe[kldisefosjggfqzo]eiyzwmdoqqsrpekrs[yoblfghskpxbimnq]ewghiykdpitzdsydl +uxdgjfelalnofqouoee[obhlfmbrcdwvtgs]hgtqhblpsfyxxdmruq[amhlljtgsqandpxg]uftttypexliymsri +xwcoczwpeprblqvdsze[fcqzupldpqdpibi]peaetflnafpkrqz[aibobqkhvfzpwaajxj]mzlrkrfslubibbu +fpofuivhqvybvczq[zbhaursvrqknspvj]zlovzphchihqwko[bxcpnqiijtjpypqk]hmdzgwlnervibxuz[hxskzadaiwuhkjrvia]fqtcewytffzarnbdid +kqzfapnhrgdwnrxtwcw[keiqggcxbtzwrcvrvl]itnkudvtbvfwlcvguev +folpqmauykgkbtb[sajzutpltmpwuvzu]qgkgeonxzucthfluwfz +qiniyhvlxrpcbscgf[mmjtkliysclrogfxsx]snxccrqkeuqchwfi[wbbptxydvrbgemquc]uyqttlcltqvqmhu[sawrjbeubszmuwsjuj]rowkyiykcizmcgha +xafcvdeuuhyxixxn[abpngbyvpnkmojksc]anahdcroysddmoxf[tasztimgjqwkkic]fiycikeddfoyafacbfl +fzmscbkkolwovgnjeb[qzholetigkxxmnmkoc]ffztdtemtdnustwuu[zjrqslegqkywtcaqod]qdtqbyfhwehdezedf[qqvslpytqtjuzrkc]knqvowafliildhqxgex +hicsgtpdpugetplbufu[lzlwcptzokxrsxtrl]smxnwfvtzttcsesdu[wmucgluptdavbca]xggqqcfaxxcagagkx +hwnfzlhdbchsmjwaytr[xfggqnxtnpdjzuyqm]efiweqzxmsxetmyjnhc[mgjnkbfmmvyrwyocr]jhviqqnrgzjsdmidsjs +nvouetegmutetgw[keqvyocxdetebkcgl]qfhnyfdnjqnklpad[swuvsfhrnzsnatb]zjwqmrmphlgwdnms[hdlfprihcbcemfn]lrraefojxvtpxljil +fowkqklueytawgdxklx[pmrpenfrmskqjttdqiw]ttqjijvoxxfxrrdve +nsyzzlnqjssmirvejh[gpqbubkrsqphkdjwg]gvzcxqgbvhopkgy[nzlfaemkjnuwvhul]vxdiuaimpogvtkx +pofmqefryoxboubl[neoxktodwrswfsxwruj]frlrumshrtcllqqf[erlodpkifgfpjlbl]bbfocfbyqjagesavoc[ajasttvajmlfwec]enqqcyveejcayzw +rqtdsfpdgwrlmfj[nmeovqshevzueyvd]ibiplfpvkyxvacl +wtvwzmpwviqbzol[oqlqunyszsyebxbm]ywqypuyvaiegekaok +ijcorxkdzocwisjb[qvcjrwytrzftjicua]buuniicmziszwzikph +pplaiaulcciebujjsx[hlyeskfzscwmeqss]tuuolvvbnyymfmo[trsqblvfyagxmgtwfk]kcigogbmkzsjlsrj +dbsqyxlovoghbra[lwqmeeclsvfsrezsed]odqamvyyhsmctpqegav[xxoamahurojgqse]tngvfzhoprhrxsccgnu[zwwglwyqrieusmlfmrv]tzfresqfmfspigfeo +tmnutczqpsydibk[skiokxeqdgilzjq]rfkxwumjpjulbkiz[folgircuujlcjhjqxa]snhsgynrkjecrsu[vukuvrankaiilqegzup]clzyhjlcbrfdbjrzlu +opgifufncugjrflllk[epkqgmpkzdijtdedk]xmvotyghoniyalmmg +ovtwjnqubjphsgapb[cnrcpnxrfclncasoeka]duqduyvmbzwdopyxp +imtmstorxxvbvmz[muklxeyazsgitgb]sjuudyrlbxgtlph +zbnvlmvzeitlrvclu[rwlyxjkxlvgeyfzdl]uzlfzyvmybjonpqay +cdxryezdoiyoopuzgl[rnmncixgvbxromitr]jgqlptcrlpzdrqh[sstvgpzcldcmoslnycc]cyrecvckpuyjqifsuil +acjvnpfqosyvnvzbjyv[tmnczokfkjaxcvwjo]cszegpeuzanwadl +knqqmdktrcvcikcfvcg[lnsoisfwtfpizbpo]xfxuxthdxsekjpi[qsroiaojvihodgq]jaamntgiaqvdasnz +mqefdyhtbqynychpbh[rrjozrtcexpbrpvfs]dotleanpfblcxfltod +coayqpuuvtnwmxzhgnu[fyjdjtselprfevq]elfqjzpryzqsyqykkb[utrizxtivhakgjoeryu]ozeuxjmcorkcejprcr +ybbgylmtmhxlhqizp[uvknavcimbacgtcaq]bcmdwwkdvfnmnunyp +xfdywwnnhzqqvuywq[drtdcfuoxvlflptlca]oimttatgiboynmu[sdgkeffjrteokyiby]tdiaadhkqdginrtqpq +fbpfhfecwfprygkwu[hvqikgwyrdwtieahmt]dvtcvnchfsienpasxw[ybkvqrxztwzpsnz]aecndxpzpamjkanchaa[gbjwjnipsmepfxpee]wqjnfjiezpzacmgf +adwjbyiantljqwsixso[wpjjoobofoumdxgrxv]rkvrcmmrlditmjtsh[vthldqtnlpjrqbobzs]efwiuqkqzfdxyhvgim +hbbvxnhhxsvghuh[fcrgvyndxojknfr]twczivatsbiynqjxeby[ckqrjoolqrxxjgejzua]omspfwphybvgiqpsc[hmnpdaumzrmqrti]sdysxoudxhpllkknvq +gfussckpoykcibjnoi[fqnfbkgojenspavpz]xqwvoktikoqyzpofg[xhdumbvmqllllthhsrv]vattqhipurbfvlk[hbebbjewrlmxdblgq]dmdhdbknmkouvie +tupwpbmrvffvqbfiw[rqpefvswlzjnphduk]mvafdoftaeiojrirv +bawbqabxqwpswzezv[cjmoppcjgifyfignuf]uawfxptpbgjnqbv +sekswalpvwmmczwdxbf[wmcngumevhrbffuzwp]tqwvmkfngyrhgknowv +dovrepylcvtomveqe[vzzskfllpjbvrvrkryl]byjsouhntlopqffti[lqxrgcqywryeexyao]qsukbxhzoifswmycw[rktzizqtdvetwyrchc]vtsdazzrpipfcrnxbk +ydnkchnxezkalny[wlfhmxcboamfrry]rmzprrgselhmfbeamf[dssnudvuvyhvzyacu]jyzdefurrnaqrfzq[rnndewpbutqgejcy]qxuganmeckxcpdtd +xhwdvxmfxmktgaz[qfzqjtuqokjeznwalq]ddgmotioparmkkudqef[pkgzogoaxvcwsao]cyebyhigpzgyclscf[qehxqzuztsluyweopsq]tikkkgtpkewkzzkdu +cygqebguktathghp[qlkscioiowgqftpd]ytftmijxsnhgacfmmf +ccuocdvpjktkdceebi[pshiishnrprqohwpt]bubrhtrzuabpzzvbwrv[msdeugbygsvewfxco]nzavazcgkniyxva +coscymyrfqgisrge[oggmfoqevlabvhm]xfyhzwpfzhhyhimqkhz[cybjjylavqoqjyyoy]igzwdivoxazgajmiy[kkxkhfunkpsgyvwp]isgotyzlmyzfqrij +vaezncmuzyyjpeomif[lyvwvohtlkcdyuxze]wzdkddeqkxmqbqet +yxcqysoxpbwjlqjdp[jinwxwcdeflygawd]hgdgruqilmuzuzhsg[ivpimcyrtifudwjgso]ostoopidgdzcrzzyzts[vvaiuzzuzywesuzk]ccmdnuyihasnldexf +jhpygjolrfstkxwt[krdivayaqwfuktykopv]dmposdxasvjkzjesg +lcprcppxkrnwuytdt[wysluivwtmytfgqpks]orlmxnkipofpsdteaa[vroskwwxeeylirbkna]zkeahngpukldeszwuk[harebfdcelqdbfemgo]usisvvczvasjomnjrip +eybojdjnfockfbsdjd[xjxxevnxuwjdamien]frogttytivtegcy +rezxczwcihbkywyq[sdzzflizzygfiovwyw]jhtiwvelkbaqhvnylca[xpnwnmqbaawlyqz]kftcwdejxaznztqsbhy +zitlyztihmeogushh[wpsygveulmddxdzvwvt]auvwghiyvkvfxyzf[ccnkvkboczqbgcmekt]hkqnuaoeffocspxkck +ucliphnwkaxtwgnma[wxkbcziemdvopzeq]nwxnkykbefamsdo[lveynsoldnjkcdn]kluaaaoiqsepyqfz[bgjuhrlfjgiyngwkwgj]ofjimzheftgbbyrugn +hshzrytllakuifsbuap[znsqxjzxbeewshkb]tdiohjkqimfsaijvmvf[wxvmhzzkjopfxhshsol]qgjutmxlputvudf[thwwxcavnensivbscm]dounftyvyaoguqzy +hktpfbzotlbrgddcff[adqmcoiraqbphjpag]fxxdcjqhwkftprk[lfeudfsbvnqjvywynfl]whirlnojvbkpyndhyv[xpypetlsykaucaibapl]gcpogvgqrgensxdeyh +afbiuqpasfjkniuw[bqclbergutdzfdqhdpm]gcgpimwjmvopfjhk[geztaacbsloyevwikqp]jjmlssrsuxmhbtnq +ojotaeydgumtjrfdtam[gpkjanckhqjvfjewt]zonzrwxnucpwtrmqyhv +llkryzvclmpozerpao[gfrhlpemunmdackfmp]fbntrvdilgbposhu[koksbsqnmtfdsyifpp]eswrneaxvurkzfs[ixjekbpjqsrhnpgw]pppbdmxsdflptotr +vbmibdiednxxbammtn[gqvlmbobpzpiuoda]agjiighkbopkxvwakva +fnlgxejzkpocaonnloc[ojrecrvcmirtehjfcvi]mrafnbifqfcqxpmqdrb[obuqfqpyrkeinweynd]qceebfqvcmnowjanh[ejpkcpwkjfbvyjmyzoo]hhjyeulunsuagwq +nubgjzyeuxvtwcc[vlpjhggsyeiulml]evysofvjmwxxazzr[tapuneqjkzgtblgy]gvbvijhcgtrdsybt[sdufwiyfojmptfruns]zqzvbotgmrcynfyq +ibcblmwnlhhftwfd[ajuhvgkyaqeikjgju]rvuwgrbnjxvbcgdpy +hizeoqbkkesksvtjotj[wkvmcgctdzwhzlubt]aegcgfmdneprdbw +lqyvebgqsrsfbcdccps[hygatrvziszspyihy]ratonoqinqfwcmm[pfieelpgzrfzhdffhx]zwaytmidpntpolajcg +admawesoilkvcfx[rqurmchqtkuifxm]tliyyitqauzegwst[zwpbngnlemkipcku]hpxfncvznjgfglvugk[ruinbrosnwmxdzav]adbvgjbxedbmxbkpxa +gpqgezsbrdmqmeihdr[etboranxahpniwzr]woeyirnlebizohoa[rufjzeicrsxgitspt]gltoxcqgcsnvlys[dcvxqvoivyuxxayd]zkxlasittnitmoisr +acoxthwyfwbhszfoz[wphyzlksmfenksfs]hpzmfaofkobjpcdxzs[sncrftlydahuqmuvoqq]ojvuhabayhrsynq +nxtmkatkddomlbnxs[qdqxrwoaamrztvkzq]ycyqxxaijhrpzamcbh[japizeqvlqsmdqygr]xhxvgqmbzgomhsm[kizldaqvytagvviondv]tidqihojfrzvyxy +lllcbzykxbdewnyff[iomemkjmyaqllvcx]vjvnigrbpnhdrbi[ukmffsdgnyqxafwstg]ralpevvmfxtqbzyii +vphviazdmmvtcyc[dcomcirqycymvqkm]meeikjmqliqraeqd +jcgueeliyoclqera[verzkovhghnquyndr]lptflbxptsugmbhvf +rcdghcuautflhme[zngtjffrvagsmdrxurj]mwsuxjbytlzyhinxyr[cibaxfqjdkmdwxr]yikrelnmbneqrsg +jyvaeqjealrbvbvekn[yharteswtwefyedz]wosalojtbxzaujpiba +cdfzjfycznejinx[uhnuxxhxgipoujnarw]bkwbisknvmurfnhp[jwbnvuvlvegrddzf]bkeykrhmjuphuvoza +aalmyxywwvbwwttad[daxeeneiiiupzvqz]cqcjxzindssjrqb[komptxyxwgtnuedefro]xfbjflfujclbqflke[fpatdmophhvpcmwfj]cqbuduaifbuhwiy +kogkhuakigjclxbjoi[yuidmmdeopwzvatxc]qdsbzscrwpmnloga[xsnwctwrdpgqvggoian]yayspjjhhpdsyzkkzx[qbttlvpkbplhagtb]ndnljzkxhgdvclz +rojijwgcylsaspmmrdy[jzptmasniljjjusl]fslcazgojebnrrrz[ybcsqnloovizrxiwal]ghjlkcnvkjjlqodusp +egzqbmomtlqvjfo[cdarustihbcqwpfpcv]fzxqpzavyniyjbfvc[wkmiofpbdcsnbtj]kmtvlxnlvdjflivtuge[jvlzovzdpwxwbcak]hwbtpuolbupvwfcbh +drzhzwluzurvcjogd[haakukjmwslumvgq]cmwkhsuahrqxfae[kugdxfrtkjmyyfheze]dyxxyffqsfctugyca +mlalvviidgseekfkqtk[rmltlzesxldtmsnyn]xdqfkftanryqfqrqkhc +vkajuyjjhekfhmwwek[uuanfibpmdbwxesfmsk]dxpsqnnmrnspifpcyts[ezmjkdjacskqhhbaupr]wkzxoqszqigbajudnq +wmpzatzujoibyjdle[awbuzjartnsdxfqtlh]votzdrynubyfrdip +tstuekiwimhtizzlky[trscvkeiiriseqj]glbwxwiwdqhndmnku +kjgjcnoipwnlqnk[hpukxdqokakrgjgjpk]nvinvznddzuhupepemb +vuawkeimjefqtywj[mgdvjppiouqnnyhzz]eeemepklcxhhfot[ktiuxquqhzrojqo]zcwlowvczfjucqeo +zatolywcfoplujidaz[avcmpullpablbdhusiu]bkwehsbzcysrauzz[tbgkmrwkzqfysfdh]anakunhzskapvmq[cqzomvulpzbizfuqug]untygoozordiywrnkm +ozynyagffvaeava[lvsgzdvrtdifdoxgvwy]pdkwomqrhfolkmj[fhemhaolmihgxlehn]huscypjzuujagfaqk[deqkgecbrdfhskujqg]grknbktwdyznqgrwm +mywakayudrxzofpri[qlywfoydoqmsmaoygp]xpwmtcqqfqsmsys +sdwltsgbumfnbqq[irstsqsogmppmlmkont]lrwnbdnpkxgfhjeo[eqstbbwumfepxoqaszs]fdrrfpfiotaugunbdrr +bappxujhicaqxhwiaoo[bjvhcmhrnldlwyrf]jdxfokaxlkbifuwyv +jlziyvwcuubpsziikv[mvkolefxtgoarsk]tpixifdoybzfwnwle[lpbkitwthyxdbvwflp]eyuzdxvhuukuiaqfp[xcwvlmoqpjnehwudh]sqxbifjmrgwknsno +rblicwlpfezecfhati[aqqhagfhathupym]vspyjiyytesirim[rqjyqiviftryoyychs]voksponpgjfuwsp[tmsccufpnvjdtgs]llptwgpugyjizqfch +admwljcwmrudrrph[rcxxxswmdlllfdwrk]etyjbtmryjxeajzccmq[nivhwmfzjwaspuon]tslmnzikhnbtqwkf[xnwykihihgkletgdy]mrtryzmlleorzwpi +ibgqtdglmjgcdfsycxt[ruddaxuheyvamwyi]neoneshgxmsbpydg[ytpshrjgditzqmjdlz]nlvhgtzsbzoskiva[asuilfpsgtgyftgtsho]xgoevzdtjemapbnady +appgubyezsrmwec[wbqyvobthbuperojt]gqxsjlchxpwvdfvdf[xlndklktmbpjkzuo]molwavhkvungdkvwywm +jusgjqhnjemncvbvy[voitjezdotclvwaggg]ffunuypbjmopbbvoh[lhufstqbkhqxqiworpi]gnhhneydiasvmbvbga +hvboappbxdqyjvxqyd[yukgymhpumetulsznf]hgiqjmlrezzsfndrx +jkovbtabgnbztjmzsoa[flxcmdoflhlgvaio]qjxscacvdykhkxclej[taocvcbcyfrjgcxlkm]aovpiymrcdmebktxwfa[coviwkpdmukcsixdob]trjjdhlgwwkwtegkqmp +ibnaxwwqjgtgxnlax[zozdkkwbccwdbvbpf]dwuzbcgeqfepczlvwo[pmlmuysuwyudzjam]pvhpqtcigtknoqxlib[kvwfykhxumzltcxidt]hybnroedkguawhgl +xqwhbiiflggraco[uwhisdtpaprjfji]dexzbtghefojvtt[nlhtexyhufqeneytdtu]fpskbqhfhavnbkjxwn[gtxmsoydrotriljoov]labmxjlalzgybpdjm +ibxakiwqconeyudxj[mwzjwhmnlaobsdy]gvxbmnzqbrzuorla[dvbreuhggwgdtbjet]hjrvpdrakncsfejis[tstdqmetsguihzdws]ukllrzriimevvsekrkv +ztiyqybtvliidsq[mvhqxpqunpsqouvgrbx]qmhkzbqhemycwxeq[cdadaodqyhjhelanr]rtrnroumhiwdadrbe +nswbgqjuxdygjrihvn[mkznbbryojdlhwee]kccwymwlzrsilyn +sebujequsxstufe[romzdeirdhctzkmemwt]vqcobpsqzelktljh[twewiabushguyyp]mktiojirfewuoacey[tgnliawsrpkhyko]kaytwdodmxqandynomu +qvfoyofzmhctntofr[xcokguepiaisrpwewng]lwwzyewekuamxxlepz[vybjmfsierveheb]bzvvxsdlcohnpmgir +txjecoixmxyskgactb[tvgiyxcbgzkdmgb]yvjfganhyoguuygau[vztmvqrrheqkzasss]mngxndysymgybqw +ptprazbzxzrjpnrcbko[qtdvwjwftefqzaw]ajavbdsfdjghhismds[vvouytxwsxpkttqr]kobwalobjsrwmxz +ucvupuxupiasbzxsuo[hnocitmtlqgttgdr]qghjdvyrttaklumszdi[oyeqkgycqizvaok]xpnaaapzbfqdzvcqhr +vvjibkoyadzluivaen[cesqlbhxmigdxphcr]ztmuzxnzeprichmdsc[daemwvspbbljrfc]jmqbyfpmjcddlepf +ztncnhqvomvfnkhca[ohbigcgrevrnpvuwgpv]lnjucgcpghvtzlrgkh +nsdamwafqwcjnslx[upwtncktpxkvkyhd]smtcegxuoakvjrl[dhvmeqrfgnbwqtd]zwlvwesmxdcnywjdb[whrrgcaujehwqcf]ayjiiktvzvxxquszmh +vnqareestxydfvuvj[psgzifyszldodtw]zkrympmklegtsstov[gblinnqlnfqargqx]hfcchypjbzvbleabbo[xvlxasumenqxcdgzqo]zyhgaickhrgscmo +jqaahcqcjjtinevp[kkntdvvdghnkloliin]zmrsdzabbeotokuz +vnrmthshyygudsrbu[yjvauysxhjhnmqenmkd]jbjlrunbjbzvilmyqf[gnoejrqddyzsdixecs]qipibwxkrnbmdgtevfx +uoqovspbksjvndhjz[gntlvpnmkbjcbsesyk]thzecqozlhmhrpm[ebvhbuhvuyfudyeyeey]zdlhgafvupyipekqoqt +hwilsmnzpcjvpyor[pmphksrtsuqgkdqfyx]psibvhgullieqqwyd[uqesmzorfwbvwgkiu]hlxqjuuflhxlgrub +dzxxmdpesgrpwhw[ohdfatbpppptmdyia]pqxvivkjxrisnmzbrl[iilqjrtayjrvxccs]gwfohsvsvsldpwaelep +vaenounqqmpnzww[duovdncntfceyoqojlv]qttmppevxurnlzde[jhwuqoqwdxjwilrgxil]ehuvfpawjlrzmssbzkm +wwxcidipvnqzxsvhaxw[oivkplzzdeoyqlemho]qthsqnpnbraqqkeyvk[pdkqargzfikxoxwsimn]biqpfsweppknwjvuwx +yefdguujlfuicqqiq[hqlabsggdampkda]tccxpvlmetflxhnd[oqnlgkzvzbhvnzzwz]rfugmbtihisgdklb +cmapvofvmxpioycw[wsmfasgncvdkvjnodyr]dkxkldjxlpdineg[omntdlldszepbdcynah]swcjxnbotrewahi +awbucpjznymkfhjaa[avrrlftouhjbnle]atvuoxpckhvplxm +wfrfilbmvnfdjycnlsf[thxhuqnznohekfern]ndjiygqshnkfehr[jpdgoiqcdevzyrywcp]iuqxgoskimjzasbvsct +crckwgzymgpzhckbgct[euhwrvuqcknwnfwokiu]muiqtteekeqzajvnuc +tljyrckyrcnheftu[xshakjmkjvzulic]mrloxmdpqnxcjhnwh[yyqdzldmfgsnmph]lwlpnskgxbkivqku[bwyxcdoyizqjmfvmc]reyetuasijwucrgylh +zkisfuqufwbhfklf[nicopfmlcpsvwfq]nmwkhlxmquqelszgbe +cqnuuhyddzalcxc[fjmqzkljrqjbexcxxf]pbjsvyixepnkthndhb[xztvuzlknucygyvegxp]nwxzswdvaspdufotcxs[bivsecxgawosnflmfd]bvdtxxionieorvecr +txqpvnrfxykothvao[uikgxsmnyxwlobod]tddprkiwjtdcwbobzrn +qjgftnxktteviik[hsnjrychdzepxamtfop]golzdtnptijzmpo[gfgevfrczlektwaohmu]vauncttcwnozkrwc[ljvbawzsqbknkuktnn]inwckpvsipmunmpo +kqxvmryochlslekzhl[ivuyfsoefnqqtwspxtu]bytaafalzlqvjumuleu[apezlzoaspstxvknv]mnkfbppakmectmiafs +vungsqgzakhfjlbuwig[cgydynonrrgfswomgev]lkyqpvlplfsmznc[kttzkoqpeplpfaoheek]ssijcynyhenhnwvd[hleabsbwqkqqnvdd]xbbxdphvgzmnauj +rxweekbgidxrpbcxk[zvguddibzffxqcmvq]edhnueezmvxinaxyo[mqhjuhujxklirvkm]eaozfcadmhsyfpoj +rcdwnquofraczluzh[gvtnjtocgohcsiswush]gnajmbxnrzppwobfjta[dckvvzvigupevbt]veqtchjayfclaltohjl[mkwsfnvdltripnzdkwr]jhdwksbflywaaul +iltlipfzwdrsmefm[brcprzzhfwsrzbk]dlegyxlpizwtlts[fcqadgpocjjnahyqm]htwrqtzfxoeamiqgeq[utrgqiasppoxrbhhv]hwkrxhaxxtltgbuvj +ljimkpaohzhoifdaiko[dkjxnandaghzxflymm]szzkmlubraphtnokpcj[irrxpfhtabogipufkev]bjucnqsbphjhekfvco[vejyxqrtfxuxeuelvmv]muygwodxspxrrijc +inovovgduyohxdw[tbzvjivtssmlxyc]pimyxafhdeyomgeu +ivahljnswgwewyhhn[jvfdvgftpukjcny]rtisgwgamadavuw[lmwlmlrkckbundmzjvo]eqjgikocnpbjpdh[mdpfdbxenzwycoou]uelglssvxdcxlwucz +zolsnrosfihzzhu[ravlcysbjoagcvaacmk]czfdqdbrlvweyyvbq +vktqafvmirobwwhtr[iqvczcryidfihypuz]adgkyomqrwfucufmm[ecbtnwriqiiaurzkn]vtyotrwlidvraksywke +oagqrhpfnkdvvsqemp[qsjyvadkirmihtfezev]vuuantqauwqrbyzxpev[mpaqvjcfntbdcpdi]ghgstpggptgbvwnmyiz[hghmuvsvhqxvxmmnx]owoulisjbqpndzgt +yyyrtktdrrprfdtbyli[tqbcxefwdtzllez]uaixdyuensmvobo +rginebxdxtfoudqwqx[bvnzfxfxsztzqyyq]dfvdsghoihksjcoccbe +avmokgrhvdnoptv[ngynfydflwspxifoi]lcdqccyarzcasxrbue[navvkjotgujkewhrx]ogzqcdvefknpghfjssj +sshuolwwobwchug[cwcurmfcxqblopvho]ghvtsqgltvvlsahwqpt[skxuphjregpzpqm]epmegfynfypbewftism[mwtakvgutsuppqz]tvapecuvnpedscjkfs +vsqfdssjnhoineb[tmcwmioejrnbdyrq]hlclokouzhvmmywskkk +zuxeupjvtrzzlwezm[gsptwvqfzpvkevapsvq]pvjuezgybonsblmmxdv +dsyuvmvaisuqxff[vmguqxuvvtbjrrva]ivytyfdovrfmzudyzcw[kwgjymkeadjgvdvxarz]rpizkvgpobjriqutyt +rpetcixepthhnydtsx[dvivlhhlgbxftlw]ensdqrwytpwniviwh[uierkmawdkijrbrbb]ywvqqtldiulgtft +iruarpzjrxupbdovqlk[cipcsklubepettbee]jfnvwjcgypepsbnauh[ncvfofkqfotujbat]moqzftmyjreztaugkij +uqqijwordoicegmn[ihceutxbgzatiwhtd]hxqgbplciimactv +kthovdomnavxzkrtg[utmtbhgqydotlxos]rtwopdppoocytum[ptdpdrndjiboffigipy]fwxyvpdnlhjofwjtwx +vitzjdhxjjossygyje[vzysmvvgddhvkufqb]fhwstpatifhmyespsay[mrpnqgygncsiwial]cwbbaisjnqrpuzca[taqkhmlvfdelcrzbryp]kwsdxlkmoplziobgct +iwybfvkucobqwagtdf[nafgfydrpzzdujp]nzdzwcpazorvzncb[niuturhwvakdywurves]txickuysfxeaamhlv[kpiwhdphpimfnmjinua]crunehowomfdmznrc +qololsmsdenfcxmtqxo[orjyxjutzakvhok]wgcgzavspuxtiyhdds +fvzbruyrecjzobgjfnv[tfnighcrmbgeklgaq]eanwrgtehcxvxow[hrmkbicsuekiicxw]pmyfavysbfzttzncxbm +frjvccazhabvndxri[wrmbltymeeoqpqtx]hbyuxmlxfrjrzifpj +nkasezsbfuldeolo[wshypstyfliqxplkh]nsoplkbnmiagngvusr[mwpwshlkyfrxlgcofiy]ycplnfgorpssaitngop[rtplyrqezwrwqhc]houlrclmoatskoufgti +cmsmitcywtmhtimj[pevbzyuhvaqftnugc]rjaxtggjpjvayzmhx[pvfplwswzpusjzhom]jmaurmlkkbusduxd +tshzomvzzouayvevgb[esegiphlwqwlkgt]letvbhxdhuzidevee[zngibooquknjqqxnxz]dtnugmifjztkwjpqd +uuzovqhxwovqeki[ddwwgejprtbquodnj]nafunjrpotozufcf[lqyfeicklrejcwwrvxu]kfxgdnpvqdmvvitzt +syawdtcaspkeubwty[vyxykmhcofzktwfex]fmevgmpetmzurpou[bgqqdkgrojeesxj]lhnvraueoksvtjz +hkyhsguxgsejarhub[kuluosrzpmogndwe]wzqvcpdculcwgqldxm[uybwzbsgzjqfspayk]nysymudwyxdocossgu[usnahkjspekuwvgtje]gtjxtcjsdvtzwmf +jiuygraiggbzoxz[wopmhgtzdwlkyzvfhs]kquojxccygvgujcopbq +rmdqmtbvzoocsjddyj[mmwewpzkjayrxkortj]cznmpvsiqtjdpbgbbf[dfgdncqhajjrohr]kjsivnolfcccyijyd[smuudgbnrfqkxzec]zukmasqygzxrjqoz +zvhafubtbxcnggnnec[khfuhiaikrpowmg]udtuciwamjspaojuks[wlzjqwtmrfrfxmxcfd]plaqjdorfrbkkppep[exrlzahsxksdqsllkn]fooqtqpmnglrwokq +rilxjscompommcmc[qpdxzxqycqutfyj]xvoufpojhanaloymvez +crvrlgjjpprknkurjq[tuvlylfiibnpkzmi]ghncayxzzrrhwfe[atnpozkssbyznplv]elzhtwbiernezqns +yvdbhamisqligavziqh[jcfjonwpgcszajk]xdszcpfvefvmlduoo[vqszbxqazfwgrfazh]geltrpsnlfyzzxjsg[usmmfawdtvkvkcm]wqimqpbsojuimmf +fsgjpguxmrmwxeymhjr[gsunymylqpnrbmiqyi]bwqcxjzweyndcslvxx[rhtvuzqaxazgzhhwp]lqiceppxpscreytystv +zdzsidcfertfbeifye[vdttvawxhnsjirsifn]abpddikgqtsqalilwl[mgqwvkdulrgdgni]bqjuliwrgnvycgnvcr +jrrmfvdpwdborgjxw[uqsuxsointqfsbunl]qosvmfqnyadjfhrc +huekbtocejhhjud[hzglqavqagcxaaksxp]afqncrfalluiiqzfo[mdgrvbtzxdzaztpeg]lsthchkkrvofbaa +lsehhfmwrfuqzewvxkv[rjrryjrjwhgtdifux]nnhqgwmoxdcixsna[wgburhmplkpkrgmpco]hrakazqqsstcrxupvv[mhacbkzqgskhorwf]fbobhetgehykvsbmb +cjmaltrbirusgyoirp[eipxzkuhukkdcdh]iqyymukrkwitywb[dcvtitgqvetxqip]sldydwlrcdcrljhzu +oqpgfzdkcrsrazei[geqerlvxxatddmn]igakhcntksmsttyqsv +tjhfyftjaclsdwzby[oiinbkqwzmhzxeic]ehyliwwisegufbhh[sqmpgxuqhsxnzdi]whwxlqgetakchwht +ukgmtuvowisscvp[nhzgobykdniheamz]ekflzosxwmggiuuudz +sqbsxlbyunhhepfx[okuhhqbyojpkahiz]hhywggdmcojawfpvkhx +xlqohzjcztxennv[cnbtlwijpkczgrk]pwxkxivbtxzovdn[bekntreckjtfkrsihm]ouowyjrzyjbgsygj[cbirdomndbelavpb]ujdrausbmqhnretkhtw +jaowfyulkleymkdpl[yxwftdgbtfzugqnnzwr]ztmzcodybfzmfrv[sttkedpckbjaxmqvhds]fidvanwfqvpywervo[jtludguqxuwucvzcjmv]mfnoqzvgatqhvteacyp +txyjtniwndqckudby[jbemysikizywlxbv]bezhcvssxmbmzgpo +gcxfeqprbvpwtdnrxcx[kvhziidtwrxlhejxm]kxzumooacujxvuwsiui +vvzhcfuecgfvrxrnquo[oqgutuxthxlcxhpke]liqjotlxzbmsassyxrf[colshvmiwbfjansdg]vggdkkyqrjvthtvp[dmozaqtceghrabasafj]lnsoewepnlbqvibyk +keehyqsqydfzlqrqqu[obaslijmtiakxkc]wmrxgysajmjymaqpas[tqwlwdqldidsapjtzct]mjeqlhemnwupulj[xdnkrxbbtlkzeapnat]btxcxfncwhdqlhmh +qwdiosimjitfulva[dhnypfmjunifrhopd]plrzlaakgfirzcccif[strfuwthjgfazeoq]lvhimnjpbpagrozczhn +adqktintsuslnns[mtlbicyrgqgnxuhqcd]mdadfpkvbkvkaimvghc[cvqgxjplvvqbato]lbskgsbvqnvndequq +brftuxdhebezivqio[yukrabpvgetpxpylxj]ldgifnehggvkdtq[pobhasghdmctwcgl]ccevtzwnziffjhqu +ibeocesspzaammu[twfeunwtyqohdtz]kiknftbdbkwrzhrdj[ywsjzyncsuyykqgu]yqbjeqoftsblixeozlz[mmcmncavhecsxbxi]aumsmhzrbxpjqrxllit +hieqiicvqswviniteuv[ubxwceioqqhagxybrl]kikxmdnftjiqazj[oyvdrxwqbljzkjbh]mejsqgnksglqmsfrlf +zjeouhblfsglaxzz[efenlnptrfbopulk]tbdiezqxnkiwmifiyy[pylvblxazwozkdv]guaxwfuktjlovasatlc[blnlcbxxlcgddfquwgx]jkemembgzzxssliiywp +juscmzarbykdkbcf[naosptvhazhfydzz]yflhbtlxgowuvmf[bdmledxprwnfcaflpf]fvjeubkojokjcfnzoo[bmmclnpuykellsdywvh]vibjnjgmtpoyvdw +kqmrdsifaonqprpach[chzxtugxvhbjujlzgq]ffbjsynmytyajcbsyn[jsondannallzwhz]gjrnybnhyxjismip[nocashryyqnbsszebpp]pbugutcxooiznkwwim +vfziparbxeibtccl[efwcwvbtlutmoltmrr]fjwkgsaambdhwvefs[nsrvprujruqdlxrls]ivmnrtvdbkumpiio +bjweouryhlzxnkfj[uuqptwyhasahjmkirh]rrxwiqmpcbwkhzr +bgdivzqqpztnswtd[xwfurbswsweduce]osimciokvwbydgqojkk[yyjvptlwdknyxnzpr]cqiztxdhugywyclvz +ftcvabkblehqjyqtl[txwnhqhrsrnengcl]skhszkrtpljsgiylab +ackokzybncuxpku[xzpocuamnohjypcdq]dwroulahreyhkraojf +hqlijbwudkycvijqs[buaclznmftiadyidde]jxhkyqsoqbpxcjgsus[atcehpnpgwuchfzekk]rvyzujpclugrfyksmk +hnrkcioqaeeqjrpg[cowbmmovdcsubwiltd]myuwiosvtmymgfyav[yvyjgtogmgxxnawpda]saqmtvyakacfwsvtxvd +tyanupyqajrxmuk[bkxkehodeqxpclfebq]kiupgpdlxfvzydgs[rvbbrqbdsolzrgse]srmrovuaxvxvzmrmev +pjbnyjsxcwyhjzpvqkl[qtgofokbciwsszwa]bwvnbcneuvipqaaiyjv +ecxbamdgtlfpmqhi[khvmvwiorzygnitsbb]znripfwspcqgsdzosv[nfhgdavrprmveeexppv]uhzugtmfmipmaznbby +jdoggfnexvkxovwiatd[xzxovisxynejpyxhfz]ciehyiyumbbwwxrc[nozxzgzvotunvgnhhjk]umzgdkvcwauvkzr +qhdaymaijahfkqzw[mbjhxuvbksqtvxwveau]rkvgvfqsehbynbom[keygsbhockgurps]nzmhlxxwjlpjhzbhw[ujitcxihwbjrmrep]cbfpxvdzbljvbfpzsw +wiuprpjfojcowmy[vmrpruwhtzbwyciid]ntbkrodejcrwavjfqfa +ctqdkuxwiricymu[wexourbkgedaqbybfj]revrxjgaoalievfbj[qtvcolrhwgqtjesuvkw]ozphhuwwzzguldf +bqpwrkyhlysqvwxga[ghyqnatqnccegjnkgw]pdgglsmagwkwemidd[fcddsukcrksifkv]cyutddgeoqcyopmm +mxmpasrqdexjpqfapbh[rqeoslcvcwqteki]zpervmncbpfbhwaxmd[rnljbhhtgiyluaaetx]aycxgjfqyxhgeraelo[fukyvtlgjzupjjrxvt]peumsiryqvhwcsutrj +nbdnniplhgrqkrcd[thcyuekybfqraxspek]rlwhyqiavfrfglg[luswlglyiuklvbuqe]mdgjepgjbhuyqkcs +lwueejoqpguiciw[kpbyblloubmxdhk]omjurxlkfpsdwdmbl[qnifmaxwapfvglrt]vssmqdzlxyyrdgkwh[ljslsxolkkivoakh]upwkosogsrzzuej +rfqbvdzxrnrbuhvw[wzurtnrnslhoqkdoaja]vuxsxofemkrjzqkk +pqslistydhvgulggwbi[nipdejpoxqfmbeft]frepgyumygqywwycjl +excgzlqtguboybi[guywktnzbmkwqrbp]qghuyihqlgjrdbuljs[zrkzhirafcadgqnifuz]medyulldvxdtpmqifpg[lsmokycxcicnxcyfpe]cobezkjtvpuqyqu +aajcheqlcfjvktswy[lsgbzwuxqcbgicd]skvwyyeawvlzzfp +afnnxrxdhbqqixcli[msrrsiakxynnwiard]tzanbapzvxtabeuz[rbyqhswrxrofedlykg]phyilynmscckkxgbhks[enrqxrwqiotksdor]phnmohcaqxspqhv +pjyiwunebggfgpgsk[ovrxnqwfhtrjoxwi]lmkquysxzdebvarwfxu +cdztgjverhjafgemi[aogtmpdwqhazrij]dmypauxszajopbp[sdsrejzmjvpjijq]okitpugefdhpbfnzs[jyospqqhusxbhfuuzp]btfwfpiblknocxncj +djgkwjxzxrgsncwd[iuaqmffmnfklkieaq]agtkftischmbszqpo[conozrxbpdsuonpvx]mflbagusvgzybhasrlf[ntidmtstsedfdbfwost]igffrxgipzxzzyjy +ahfhhpqofpjyshcus[lrxchnknzrjtzkgt]hvtqhnuzihgxovj[wbnqnjjnzltdyvxswv]bmppxzhzgwdsckuo +ghwlmylxxuybkpmo[bkxcurwihedpwjm]ypkvoiavnzgzlkahlp[lnxohqbghwsnbeqgk]vsegowbzcrqwcsgy +whzaoswycajecyuw[nwzgcizbidljdtoull]zfyczyjiqsqxgzsjm[nfkpyfcjwjijtnb]dabgzqajwpzsczrfzrl +sitsnxvhgjjnlitqs[vvlbonwoskugqxo]bqitwdmlvnlcziltj +avgdblmcidneynp[gkjdefhfakqungkij]eztuncfdkicjhaytdzw[dcfldbgzscsumjox]okqkplzsscszdsxejso[yihmpxvcbnsofchozr]easrxwgppwzqern +cvefvhycaorfsfbmi[fkvzdrremrlrvdl]cfcjirtcmdphvfircx +wegfumofnzigbnhy[oqkrudppjpvcuvr]fzyxsxrktwkgrvyiwz[jkporwybtotanposc]exmwkvygccdurwge +iqfavtweexjxhdkz[drnsnxjziacormb]yftyjvtetmuvwew[vlrdviggcdfnribze]xzykwuzopkedwfqjxo[vnadxonxshmwhvk]mqbtnfjmhjmfdftwm +odyopnscztauzvjvbfe[zpgqzgzcqclarhkkc]lfuvvhwhtlypbfv +ogaqzpgfwlmdrjgo[abvqsomptscdejeyfg]rukgbtpqwyyvnvrdz[bcvgngjhgitweuc]bljvftlzomvgvmlkzsd[yhpnqsmblsnfgfnyv]nvnkvwwllyygxcdnef +jlbnwewczmvtoshkwk[rmtpjyqhqxturbfc]ulsjqpziwqfjccmdpgy[neunvaltjjkcxvf]opuswwcrtqbkqyq[wzpxgeaohprbhvamaf]ybxisfhszawrtgsj +mmrbaaqjvgpshmn[exjdqzgpzdalrwmtha]qrxggoccbehivaiegs[udbyzlbkpvwfkaot]vfbmvytjziptkyv +pjtbkayljttjwyztu[clbiouysqsjbyjguhe]srltvgtetxcbkud[qnuhjnuziihtvqtbeyw]iccppmvrkzyehgiv[lldvqxdqvpcrizue]vpwqjhbktcmiyed +vxqpmalvgeaxtkpv[elquojhkjsxpmks]dqvuljielvjopjcuvsx[yoklegkajhhpatv]cnfivppgdnkjzmrr[vnjebiwfefjgqzle]aqkvijxvgljbxmm +lhkkzniihzzsqxdr[gvhbztmgmlicdoasdxn]fthfehxdcnyjhdwvsx +sthxexgjpexecjzr[semwlxfagpybhblcq]ztkmocjbxsqnwfs +tsswuaezqpzyevei[nolctgupccscwsj]serolamcjmqaawea[qgjyyldemhsqivwmvtn]rlmxvchrccptrgmmbko[qtiqgvilvevjvlkxc]jjcnzdjdxycczflslq +geiglvdxwpsdtyt[isbkywwxvuzljpnv]djxvppprsgjagqtfgl[wmhnkumvdpikdjhmt]snjqvydpmjqutduh +ksqeegpqcodzekvp[htprcliyvqdgjbqv]sqykqimpyqiwktnq[bfjsisougvnyjoyha]ixghemgcvicbedylz +mwomvddjcxrdzmqplow[fznhevtpwhldwpo]ygskvziyhzxmtbcikbl[tjhieqjuukoqmixm]mgzzrsccohxzfgak +xvdiafigrvgrckwol[gttxgvtlreruvonzl]fgwyzafvtwaqdwuo +siyvzqpzfobnlgtxn[zcgxyzgysabhpvsviup]xfdpicxyxyjgxyxd +tuyintcsfdyhfxofk[abiuiwquiscebxbk]zqazrpoxqqswycjwvk[hayvaaykkacbakpom]bwwhqzhuiitdaed +ckkmzdomnglfwcbeh[avqftwjqckajjqe]fkpgyrqzygfcheoctfy +teuvnsaipkrkmuu[rtiypvevtipwuelkzxf]xqywsffobbokraw[oonkmkqovksdycu]noxwpblcqqbikpbck +bwgmejgaihdorgcqq[djldztucejcjizv]nuuzvdhlgqscyrjmab[nwcglzehbfzzvgr]aybubdihvypmvqmpfhi +gxrmeqpjnbegqjeuui[iqpcaqmpavyeeqkye]etydxarxyxculok +wakuruxdmenhmcsgt[lndpybwsvzyibmd]tfabajlzuxwwhofz[msknqgraxzpzwytjx]lfoqigitqufmhfmgwgi +gpusiwyruzmkoluea[ofbgogetujmjnqv]dzmarlipdqkgwdzwzd[uhsfvlrawossxvxyk]yeseypubhoapfgdjom +rcmnwwzrimrifziyoyg[avrikteehxhxcqhsq]yklfcrtqwaxmoepr[lahpskzjdwrjonqg]wddynujhryzkunrokho[ixwzkdpcqefelgcoabt]arjhdevhgaqcohbut +zkcxzfkwxxdtbumymqv[qgaztskshqiukhwuelq]wxzpzaxuhdtfbimub +nlgurkzredyklilaicv[mtxzdczugdhoowtp]hnhcyeygqrbqdnsc +pbbcmecbydtmjigfn[giiambqbdgbgntq]zaaqvlpkysxuvbgbo +aqyxolkflikpaxr[iqrnhzdtynkqymz]rwmgahzmvwtfebyguxh +kcxhmwgrvommccee[oqvsuahbhwioqeunkz]mhcyripmlfivqsimnpk[zptnyqihvavtlxkq]guacutltkqoixskg +ldpiuuwsszyidqxqj[tsmectapcwuyhhy]slauiehtpaocaeqyd[wbhrligadmsgznlyvd]nyvfiipvkthxjuoubc[zplkhqbtciuqnhjhiwy]olcmrcsayukgcbf +tzcpkpyrdolcerqnwu[zqvhulfxfhgaehbwf]zaekvjegdligfrsh +ghellbvwbjaummjjoss[pevgyftbjzmlsryfzv]kjdgnwfofftlxbiabir +pidtrxbnvaobubqwah[nftxjicikdapqexh]mwssisitrwjgxhk[nghedqdzfdgxaqacas]hvehmhbxzfwylzdrjf[bisktoqalmaapoomzt]lwkkhvacvuqvmsv +bdqjqlmohbjvqlson[mupepkeeoofwydse]ekylhrfsudqdcvkv[joofkljfkmpknazry]anyojhejtzfofcg[zcvpdeswtvtngyqleri]seqoyrfsqawkrudmg +lmjegqfshvauxngz[ysmejumumaurgvgrsy]xrmslpnljfmaidojz[mtvwolafkcxlwjjthy]yjqsssxayanfdrel +qmmiampdlsscnqml[ymselibefbqnqakirdw]uzxhisxyqljsdvhfe[jhjnivjgqdfyeqcea]nxbqpgyhtqzcwoptq[frlnwadwwyfnndeqv]qcbefaxmhgspalprcdo +tavfmtbizkrpnerc[kmenfsatjafincrwrlk]pbbxvydrsqnfyap +hwrkfzaovfbmrqhff[qglmybgnoytlkma]ibbbvmtqegqqxdk[gquqtiaqekcwiudebb]ozhpyabnxipgwfs[xqcajsdxhwpkofa]ssaordrnwjyvmcmjtp +pkyhiseqcvejtkbqcgf[xvgqerenvyizecof]sflyqnazxuwbyexzwyq[zppuknfnnngpwihe]hacwithomkpaveqjrs[whsspxqxxqihxrmqxvn]ifsktqmduowpuhck +xqctscaefqpvqcrm[rqbjdsxwoynqeoubwz]zycfrxbkijaedhkr[rzzbvjmogwxgcqa]hpzjokedwwmsbcrggmd +hcbohuwdyeacvgmbmea[mmpvzmjiryorskh]tydknyaqhgcxafmqj[ejadhaojfjlsfxs]duohhgjdfjffvwzcgel +ltlddqcbkkayshw[qdedbdppzuqdhfaxt]doedeeehsibaylpsnk +bywykrbttmmpyacsoo[ghicjobuumyckupnmw]wzxuueyajmgprxe +gejngdvsephfgyawm[eahzdehzhyymhcwx]qejrbkjhhplzgbehwdw +hobcaacuxkoxnutlayu[yvsylobmhtczpxdhvh]qpwhgyojuomiubmahcd[pmspsmyxaqrdvcpwnwj]ghdvfbhifxhphkseh[ntyabnyuoadseevhvpf]opibtuiwjogylqzt +bbuecmhireivvxmtw[kkvuwrudhmpqpmqr]cqrzfeasrpqapvtjqnz +uxsiwqfamsnemtcqyym[wemijyiqgxbcsvdz]tdhlutowbxpxrkrlpx +tnnlwlvfrrluuxjnvx[fgijrjghghgrkfmfb]lslknlacvseuzwy[acexgqeksduhjpf]enxevtqjetnyftgrad +wiegevfedudnajr[uryivbxbutbhfuh]zrpurmrupgeggdyc[tfykavyeulosotky]ahsieiakxnitxhaa +cdymukpgwzamxpe[ihvwjlomeozhnxq]zqlglkiyekzhkesoyui[dqdkxlczjrxgbdfqf]pdipsbuxwhibjytdb[ngoqkjeboqlsuic]efcostvlclbxvzhloan +uuavzipkjlcgutoxrbc[orpbrqapdzdsagy]hbgwsmgmyowonxftjl[wrimpmzmwyjjtnkaf]qmlpvrkqhqbdswyyvpf[lpjhsulqumdzgjxuajn]yocpoqqrpuquduay +wivyimuplkhmmkxioub[vqfixqklclmrbume]trenzswrpqljwctfat[ulkqyvjjpchvkpd]mvlwfrclcfqziho[pbmrqudqsivfemt]osmrlwtwstidtwmbmzc +owpgvzzedsxwjjdeuz[kyqifdbwfxcphnb]kyeaxxmsplabrbd[gayquqvysxjwpckzlvj]tiuxhodkebirvmdb[zhnicexwwcgbbnfd]hcxwgyjpphxocggfl +vrjvymyzflpaqfy[fokfgiaiyyzruyt]yvfrfomlsjqkvtps[mprfrwzeokyjmdetnl]znjipokvzxljjgqaw +opczfzhpovblsevqcx[twcavjnyjerbqfqvooy]tmyyybovoyqcygzzyk +gpifunuvcpqjornc[wcenyqazsxzksun]dijyypqoxxmjiyi[kdzvguquhohgsghqqko]tzknqsgldnnbotqnocj +xtnewbseisluqott[ukktnadfrptzmvmnmwe]nfevmvifmaaubdrytcb +uvwgvqvzikkvvaltpbs[darnokckfpuiwvaq]qjgglscrdhximnfg[cplqfytiupsnlwjnz]tjjkzojxijhhghoo +mwvyjvnzfbptvndlui[dvpxdnwzdssddngva]nkvlbcdcwjumrqmjuw[xgrpriwhdpyxvakfpsu]jzugamflkelhfrzswca[hvdnwrkyrvcdkep]kqyiaalprdowzeudqvt +zahhurbvayisuhkxluc[dpkhtfqcplnlwkr]moobahksmsqtmxasrw[oyxemzzmvwvxrldebja]tqnquzqoslugwcqcwtr[vibjzqdbmsmtxckkkn]ylujuamatwbexgo +ffpiprpoymeaccwoun[avnvjzwvzowgthwymt]sakvpfnqtnzdyhodzud[egijncssvgvsofu]dplbxmzfihrpopurlvn[knjefyormeaeoni]ubcbldkemxgefbnjcbj +fpyokxpcrydmqzkgr[gprmekopimtigwz]fobjyaxokhstzjsgkw[njzhtjqrhoynlzpiw]svrqxlhgpckwoat +srrcdyevzyzhxnx[bbojuevgatiabjudws]zoxxvzrngllhtrtfm[rxoiyzmzwoenbodp]keodzdiobtdfgrxzgye[akofrgfwqtqblvntv]rfyrjcwbfblulkw +kxuswiaijpaejqzoxes[cgyhiwbpjrhaacwe]uqqocaxbsotoaei[runskhbiegmjwfyjv]qgnmhdcjcbgbsztap +kvzutkvgsyiyrab[zhbqkvgbyqzgwvfpbf]nhtaiwzmvrssvxsrdz +tncgsbkllaugseepp[axryamrptnzekcb]xcvqkfuggjcfqhb[mtmzyjnvrgyuwtev]xziofjwvnbsothqzdm +hmjthvqdelrmghgnvxg[cvfmsllxyxchaglntl]ikpeldmfhjdtnvaw +sdhirfhdcxlwhxevbv[rfktrkotbfwiolxd]bhbkmmbdisqlclttbi[ueaqlmpvdaoxhezzg]baphbkfivkwpmtj +crzkarxgbgpitxjeunw[xlonohiojoepwnuhd]kalfjqpazwmwruq[erssxjpfzosbcta]exvgtqljewfuwioyq[syaeqtgrgswbgbetkzw]ofnozzjtykajqcuc +xdojuclultxptlxgci[nkmxgmiyhrrfgoshmeg]zqxcexaabvdjcaiarw +rewjiwxykozqjzneh[tczrbiawzwtndtqnew]yxrgwvnswgyxjvnot[khomcpuiavkhwjsl]ksqiuqyarwwibcssseg[dsrplcalbjojxlecjdo]falbpuscbjsdxvyn +dusvvyynezzobcrt[yrikyxqxqreoqcyyq]vkjxvnlnmleqybmgt +qzmjfdvoruomeilaejd[ksrwqvmnyiessfejo]lvhmckdfwzoxwmydxm[icmiecrnoqepcuzctl]unxwrfwxgnijdxqjc[tuwcbylgfhpaveyak]qslgbtviucbmeluf +djblesvduxlxfxp[grmuswjaheivlqvtst]yrqstsaryoqejwkd +kpyoqmyglnrmxculu[tuyuqjronsgluls]whuymvpcdxvxrimvmow +lruqeoicrisykqejy[ruqwiitwyrsithkyo]hbgqgiywqwsclcsn +pkpmmddfcezjrrs[rbzbxotrbqlnmlpidpu]aakddaqjvbbafbnk[sendmtepxbcpttn]udnifsqhogqvszi +foqjzmqhghzmymeq[isvvkjfpmvmhquoidkk]tskrbirqdtjpxolwzw +pneojhviynihvnv[meuldylhohlfwsxp]nmdwxhxuexorktj +gpnxdnxmueucaawmctx[ggcizpwllvbffytwv]riqcitchmdekosocp +kcoafhejmqsopizo[lyoqftddzxuuerafco]zrvrzbmnzcawaydwg[bhnmhrnwpzmghrprzzw]qcrnkmyfcdoymceacg +chcabwcrpxqnelguile[ckxfqhnrwlulnfgxjb]toauhcbsxmeirtlyy[cfgmasaieapbabcgdd]ijenfrqiaeiehllwpvk[ciymykejvkzxsbxy]iiyypzaxohmykgbzej +yeqhlpncjcipsmtzpi[zoidbyeatjrlgmi]rcrhombxichyykncbwh[wtduqjwbefekhnwo]kqemsisbcrcjaqzdzw +nbxvvetblqcarlcku[njrccfhdvxtarpj]rhndgwlyfzaeubc[imtcezhovdlfyixzwm]dwughoowqyazwaziea[slarywwdukqwygnhre]efzdruetqfoqqxusb +vhvbnbyluqqaqzolkrs[fbfwkawbihbzwlrhd]npfzyqkoxlgkklgxz[zboinxtlzrqbwcqo]jqhvalbjqaogtyn[razwnxfkshezamemtr]nywqcxpvmuudyqo +jubvozjfmykufhrkk[qhbaxcvcpyzbrwjlrij]itseilbvjwvzlgqjfe[lgxynowzlpqgoyrk]inolsbnzxvdmvbrvwqu[hjzfopqwsuqvqhb]wffwgmhjubihiqkpuls +rqnjadbwfosviivshb[rutsuesebrktxitgy]abukeyordcrrqvrgf +bfveiveawwoqyluxwu[trxwkfvioqzltgafma]swkyqokgtrprzzit[kuziuekaorgdgqjgi]zudaehzrjfzogiwb[fyxwwswqrbwgomriqo]sqfjrdskmdvalkhchc +pnrvpotetwyvodue[xwkxyzxflrvxdfogk]kamxypekoelgwktq +etjkovmlbwryvhv[wvubzziqtxbjvua]hmrqokvqrctugqdazz[ykobpstcxdqweotsi]eiczvmdcfjpvhdyfnci[eeklndzunbzipcqubp]tjsktxuorvbnisy +fnexznsqqbhygrm[jgnmivchcvxgssjcm]klqcaszkwyzzecve +pdmzjundpcsxbgplk[lbdsyrmgxnatuwk]nwrhpgieqrtzpktaiqw[dcxtjtkzvlxpibanjma]djszxtofdcuyfpdr[kzblikjgqfiaykr]yhiqqurlkwlrrjo +bwtgmmjbtisnzbnyedf[iniovvuewpetwsg]dgvjyrzfrqcozekvp[xsulvxvvtwcxuvbxau]vvjyodjlbbjxigdxvxv +jcanelvhybigzhplc[lhgjkwbpdlcybzgacya]uwisdadjoniyerw[kzcrorifvylivkhs]ssicvecwpkxbdwq +tuxlnjuyudvhazlxdf[oknheznyzffrtcb]joozaraxuivijskxblf +rvfdfyaemhgyeynw[hmmkdfdhadrqkxzzmsj]ugfozgghllznjhdxw[ucrgusuuqthlgxx]ipiercifxtkghbkf +jgzrilirvzcocaphnz[gyrvhettmmhxaxbmyg]ecpwkoozcgtpoac[iretjtqyscaqfqziu]wqjckfkbfoqmmjkuhqe +pswuxyynrpckrquj[wfbedboaabsgnnzzzwl]wgfrecpfkvlvjzl +zkcihebtrfmiryqkd[ybedpynfafkkrbfdm]ovrsmnhexyqblafad +pbkoczqfumwdpfu[gtcvqjuwknlrfxre]crpyxhawudbilybaomf +pnagrmxhmjftwltxh[aqlhxdwuzrvnwjwl]xhmgrrajywnizazyrdc[hxdxewvthhrwhsva]ckluhnyewiiqazzmvd +amjksgqzgmoavvxtov[ekqixufaaepczzusfga]fvlmiilpsqsgfgg[gzcyehzgpujyquhrkm]caaocajhmhqzbacvpog +hitezskizncharbzyz[nbwuldsjxkjezjq]monndtwsxuikupvi[iardznrxkorquvyvwlk]etzyolkxhyqsdirbaj +ocsxlxpsgimcvori[gawgkxlilqzeakhzds]bodnyayaioozoeg[bmaukrfdlswrnvuwy]nafolaiqfeendahms +kseklqtakbkzzhfd[ghivxwcqlgfgxeot]levjimgmcfpgqrjjic[ixwevpbqkyzthafyj]azdxqlromttwteeqep[kxyiyoxyhvgqlmvscwz]zxdujwvngqyoabmrio +elgbshsnykhiyndouao[nhumkawagmrztsamd]fwqupmyuogneywsyhub[zzcemywfdswhvjpl]ockclifwawqsyzt +hyetqdpieicmycip[ciwciijtqspvydxsdu]zjrfhyctplqvypy[hdewteddlqfaoifgy]murcplulddvzheegmgd[rooqfiqsnkjeelfjcag]pdzzjacxzdzmmgmqwu +nufvveulfkudkrvskbg[cdrvqfofoxmqwtv]jzgfbywojzvwumo[vvshcsjnhobkayk]gkwnyerwhezneuze +qhmjnzcokmkmvclhfh[ywruoexbmjwuxvrk]lswliylmniqdgybtyx[yjrzasyfroiuaeps]xevbxtsyjknqmeuv +crwelvogceorioqm[xmduhdacxyzodslgtv]wilmwenmmnwgqteftrx[zonwpkkjimmmhbrtls]vfbovjoabzwjpxd[jjxievceapgflzeldwb]onucskcmpkgsryl +ujitrvtlzcrtazmghgm[mculcmczwibnuhtunnt]izqgurxwxhwboygvmf +lespfnkqubxfoqa[exmzkeazfrfrkhzufz]xpunddczqrkxtgorc[ymsbogpyjeimnuola]kufhnwzukrdayts +mitdlhggspwferwda[fcwhldszpyfznayp]rbfzewqihtcwtjznsp +wzhbemsmffcmcswdvp[jcbuktuymokdqfjj]zyhqthqbczupmcmkhi +qulvtldmhliyflccbyg[mqggwujrznjefvjw]sduatqntzkkvgfqel[fyxdewnrtlkkils]utxmideawxrzpewmee +ggpinoooeucoxmezfi[ovisfbmebypyafknejc]ccqkrmaimxmvxhtain +cqezdujipgzaara[afkpzozyzuitollf]srmeiyjzqjruima +ivbrwakbgkrxpilylu[eewfaajedkwjbdrk]stsichtqqsksydtubf[umxwxeikoyehrou]kwddyduytdhdgdbyn +vowwatzholrusydvmdb[jarugsbvowdtznwx]oofschlksdrodakrk +oruwtttstrcvcgxz[cvidyuxfxluddzxuz]jckmrrmvolclrbam[dqptqpdwkpewhmcax]rtfmeakahrcbazlzsju +vjrkcrzvefpxgardmqb[wxmurzwunsvjaxfhik]meiaafxurfgikqg[dkoextitsnfeorgoihc]diohmorpmlhisrs[ibtzwvoovjmdpfi]oelairhwcbbltmjcjdr +miafjehtxwnfqzxg[nlovpfjpeclnmlbm]rleupmgzewtvuewypt +osoaytxzfrkcljfjv[bbpjqntkuuwpgupxsy]bgryerdaukelujvayjt[gycrjaelxuemeosc]jgdfpdoltoqnmow[yfwoyzixdzamgqweb]lvmnjywqfjfvyxhb +oiksidcbtzhhtnegqa[vdxnacjfxbcsjzqdq]ixvwmdqdaleuzjniki +ngbyqfvobuxdnjeqia[ksktvzdyzkvyvjrgkos]xwuslzgntfwrnyqrod[cxmkhhwyremunrbc]hijkgxizhlyzqfaay[ljwayjqxyrduyoebm]ancrkgmzboqtwkjah +kxcifwahsdmqasrmwi[aqzdihesmgntomgmj]jkhmcqvxqxtshprsy[wgewbxfsobokszgsivz]zlpavaqlwvauvedwf +ibhzychwgtvobvws[qaestubbbtvyylbr]ovsxlggntxnneirtot[kgqrkbiqracxbnbi]lzpfersavecdddsytb +abjcqoeeqfhvqmo[eferwxtafaxzidjzbr]qztbvxsaiyqhcsdkj +uqqngbvhyfxovmdods[zwyybohwrhprvxaaaio]cgyaactenmhiokzh +hiqqvjquvdkfcjwmo[jzrxnmbrqfhjhvppdxm]mwvibfiltxmwroeruo[fasknewgpsmftnx]aubymogtwkseupwmr[xnyevhhalilxuxqqvya]mastwtyfihocpbjngaw +aqvkyxqnjtthgkjxr[ahvjgtzfqetvqhz]vcaijasfqaygnxmdba[loyjulxsgyldkotlefn]lnzykvlsbkyuvnqb[iqjxfxdmjgyxboyzr]zbfwxpxbthtwtnjdaw +iweumcmplhykolkazmb[zgzeryniuwebpka]hsuxltmwyxogseiogl[ogacxzbrbvopihzm]ipogfmqtohqqfvowzl +hlvbzegrmbrgoepemyh[luscnqomtcxbpxjmxvx]tipsuhgnhdavsubyqha[ozroemaxbdbcpnydjqs]xqdwngpkteoyyvkq +fgpmkosjnfnltkfy[sxqzypihbntsfnryubc]oygetjhbfvozerfzw[nwvofzjfuwdzxncwvo]nvbtoxgwkmhnyox +kbqkyxwacrffvkoxmb[tqfooaoggaauopcanz]ptiakppuyxzwzpua[tefuhyaqzyeteexrsj]hkuwublifohismiqg +pdbrixpmacobfnpg[mxmgtvdlsuyhjnjxz]ghuebmnxzqfljxyutl +ichijthjvilenbfg[zeibnuadotzachqyvej]qogvchvkfeskckvmxw[plyhbwjrhhnvdumajut]xazlyayoobgkmevrpho +cbkznopiuqsssvle[gecuynehzvcmfuzcaxz]qfihmsdjfsxymvesb[jtriyipbkkpfnazcj]wbcwllfdxxdzrimwues +ntxzlslwvxztbmola[duloarwqzkzxsfag]nzrsxasndnrktih +fvvowikdydblgts[xozwhuhhngdjqnbry]hkcwbqloymkqjyzpj[xfwuoehhuljposct]ashitwoprqcooweytiw +ynbifagloxgkzlydhk[qoxltvqdpmqhawcvef]wfnbtiyjafaqfujr[crcuopstahopywinvgc]ppxsgbvevlrkdgsv +tdgutgskbatswuizuv[zpmhakbnxnkehhf]ffuohvkaxpiptot[zlykjduigarhxygukw]bucqoskhlesclyzbpd[igdjnevmqlibrugc]seyjwcizckvbncjwon +holbjgzpvhqirwrxts[lpvaadhoqjjwvijk]etjusqwbrccaqea[livhtrfodwoxnkvk]dmprijbirsnzuptikc[icjaaepybpgnorie]imtoivdxpujjmlegqn +ljywtdshrtzqzrln[lqzqgywtrpgszaigfv]vjyyvrbkjdiiminfas +xfluerhpuqsqnrq[rtxglsxbetzajmo]bktotbhryqxdqfaf[cptmsctjrifdojglh]qzpxnniqwxlbvnexlg[vooexmzwbpulnxxv]eumwdzoixhfxkoavu +xmomvhstjavjyisvhs[suremlzhaiwhikzzojb]urbiiuvmveiapcybgz[botikbmkcfsghtgtcn]jbsrxdkpxnynfibgxyw[agdmtydfehaujynym]xfpytnqyoafnuott +xjzhgefdlodsdahv[ihwwnfbwhcjdbrdixy]kmsckqifucrgpocyvc[pudtuuaebkvsrflz]qjfwaaylzyhzerjbhyn[fsnmlxncwzsdsqp]edevlblbzmwkgkfluke +qxlppzrvoymnsiyb[ybyeqxwtoberzwvcdlk]zsofrmazkapwiuxwjjn +jbdmjeyxyksaonmswm[vhxyxtashfdrzjzytoq]jpkbmclxjtprrhmaz +vxishfigjpmdwufh[oykzgieieiypyrqaxdx]etgleieyrezvbcg[scrtyttykipejzmuhy]oxnektqrkndltaixnj +jnetcyoxmhjfyfjxm[dezndcwpoghexum]xloobrzxrvanbbh[gvcaufplrrstvrf]jgdhedqsxchoorlai +enbtwxacyokhcwyhxp[ahjgrmfhavhnhqoqsfs]ahdcbzojcfgzkjfe[gtjphvcbwzsiohlha]lwaphixwqbmbqhyoccv +arwtwiiowytbbjsumh[iwdhsnllysydgbcuxw]kummpwhpyydfdaf +laidhzhbdwoezqhi[eccvqcxwasyyzqvhrw]oobigxsojqsyijmjmu[kinacswultmqsxdhw]xlildtoykeuzgzl +fbwcshbijakfapcqzj[qktwqwrlnuktxjvuvn]nbzsrphskcxzuzho[lrbnsyzvrorznoq]ewytfrszdyhcrhpcx[bmzudjktpnqxqwmblf]xtwqqocsaxoluhsh +xgnhvwkwhfbprypnak[yuwpjkfdxygltniuepa]mmbkjavsboilcvpp +hprznssbfrukcvu[mojrsfuktavnbhzty]ipdxnxmtbvsazyx +tfdicuergiqhvie[wwpqnqkyfyhuqlb]wovoujvgcwuptcqhkd[whhyzgbflhplrff]kezriqiamcvkeifegv[kcbdxrvoharumkgzufn]xypaikbmpsjqcbxrrp +tkqpijxftrvwkam[yyajdcxgzrkhkroq]qfrbvprhxlpgunqqs +fvwgqznbhbrmcaubz[lgsawqyuhadojbqwrwt]gzbvdgpwjuwqsgokqy[zpzdukphcvdqgpdoex]atanoaretkhxbyzw +fispfedprcrygxs[xqiggqkjgjhaskp]thgqnbgscmrcfqjckbw[tvueixxvxlsnaupqed]lshjncmwxgzzczjssh +fplljoayuqmjtjs[vnlhbmvowousilhym]emygvrnfsofwobaducv[flrnwxzgkghpboubuh]sdndpovsuohytnq +utkqxfkbxtoudnbh[bjatbltbacnlwzlbjk]eunawwbizxdytndqc[arhtjgntcqetkeikojq]jfooeguervzgzgudb[nhifbismjhcwqyt]xwsxwzwwvtqoadmgvoe +bxbifxmedhwkesbmjff[ncfbdgsqfejalnqyar]oifushwlnfxghktjhtq[gnapwycvocshetc]zzslupkhadbieerb +rrotstdgmwqowfmf[zlddfgpxgucuestu]dvlbhinllnkxdybha[aovlzdyhamvvcgm]dzehxcilzoxrmcyhiwb[xkeszyasnqsumpx]bnrsppzfvjhiyafpk +qgpylzwwdjxmepsc[bumaitztsvayatapvl]gotathwcrjrsknrfuk +odbkgubddtpxdsgmhvh[mbgpgqafpcrymkkdpsd]ieabelyvewiypbkjm[psowbfplvsxifqwq]szgntjujujycbfy +urqwuzkruqfgejkdoh[qxxkamiyhedlffzg]hnfntvahsaivnzmawf[mxcrmrqtgmnplma]gxcsbxvqcoxpddj +qzkfvuxmfneyrpysh[clufxjecvedwwegflp]rcxzfazrzbgogna[ogoplmljfwvizwniudc]yewvacqgzcjgdnmasw +mgweqpewhvtdjnjdbu[pecantesazignmq]upotybqiovoujemqg[ipzggdcevkbkvpyz]wqtflwovevactij[ednlhfkzrtfwpuignhd]epfijiuwnczwxdmgvzd +lavqyaejctfofhdend[enxgzalvzelvvxdt]dkrlwjpuipwnqvuv[ishvyxwuhxdxujbgkev]euytwzxkpwccexc +haibamsiwfwmdvzu[aekmrvauzoxdbtury]tfgjabbgdrwbzde +gqoyggrpzhfgrkjjw[kwhwkctzmjdpdoeey]ngurqljoormcjarv[bmvadfmdgpwpzfiiv]fkfqchwhedeymsa[etqtnxepdmolklpa]tywoaqpoowybxcoqq +vnvmbxxccmctcba[ncggihzavxxxrhb]mblrxjgtypycewg[syiizsazwqrhsllezvs]tpzocblnycaokaphz +ffpbdxvenqkihvvsi[bbukwnounmzzxody]bzfefymopdtkpdm[sjbemcyhrspadzkuwi]xlhinxfjjeajzuqjkuo[zfpeikvvdfptpxe]dhsjhnwlzlcxbkz +gulvdtkcmjewjchf[auqodvrekgvzxzyiwee]rarumiavqvnbyqu[xywssgnmbeefrqgr]lyyjmkpmqxmjbughzta[avdsmuyfdwvzrzn]qvhfqmazlactaxtxi +vvqlvlsnrxwhoxfnac[sablzmrjccqvauyjfao]avdnqlseflqxtgb[masnpoqnvjtkreifrvy]lvtoftpiotxcstvu[vohbaippdypuwpkuip]kxffhmrvrbmvhecnui +kclmgqkaprofpmdm[bhbitgjmddxhbhu]hmasnpqsttrgtmuq +tvqcqkarkyqtpvea[fjqrifichijyykq]qqtmxszpmovzfvk[xrcoyhzyxwmqwujxp]nzlgwxpkuersepyhy +zalveeaqakqjhfl[uypjekwlbcplfcasa]sasiztlswzyhvpd[weglkkwlrrvdvfd]mvsdbveypnjsymtjka[kroszrkveyammdqqool]kgmxohwwgmvcdludvdl +xbroawhwunnamvnaogo[uzdvwckcbkaahqltp]bxudkhzxrykrkffaiiq[ljfeimkibushcpclbia]wztapafqrfdpwcwpyz[xwzhahnbnaxjorpkaj]glhfrkaiizzidtmfi +cycyarwdelrstoi[rivlkfszzvyljoa]hkjtyvycydwronsgyd +mbdqighfupmzacpi[keeoafjlwzqeoaryo]vjcwhcjkjkandqir[auactffhpuwzgzm]ybkwzkxyevwrphq +cpiuxmmwrsjzbyqkfms[buipqvxsetxzsgqi]tzwpfhknlpwmtxzggc[nidtlxvnowvutuqv]qsohatjnnizngzsqxxr[klnzvuognkllhhr]clpjgdupfpanyxwjg +hhtduiwmfhibnpmhjm[emakclmaqjnvjsjyt]ntebrhiztekglpmhsrg[rgehmkrotjobrtah]gzlybshvhkoznupnhr +hyzvardyeiddsgk[vszukhazfkwqsodz]psztzqehiwcpifdlna[igstccorevbmgfae]vdapqjiijwygxap +towtxxuitgwhddsua[bydcnwqycygmimbrut]cvnvgtuiuduzjod[gpazublcnojkfnnvn]rozlfkywwjelmry[wvtxeleixyqstxjqed]vsuvzaskgyooigoczd +uywuytlehdznyxr[goerwtisqdsinimd]abuktfxdobkfqabm +rolwzkzesawhyxddo[yuuvalxthkptulugzh]tagfpsdniekrekzkt +nstbvilzeselffses[cpgyssgpjimcevp]ehfkumlscjuocclfhel +idvdfrmadfyhafvyixs[igsqckpzuelddtl]eclbbakcdyttbtse[irchopmhiqbeloiqq]lwbecblskhopzyw[yjmdufblseluvukftkv]nnawapbepipwcsfz +thqwduckwmjtxwwmj[ppnucfmtpcsawxvkago]vojtdpukjwwlnirsvle[cscyjfrxjlgxhyu]fldolxqfbxhigdom[tgacpmzitahxucqpzke]copdqvctocklhvrq +maseolhlyrjuoqdazl[klgwgcdfwhpwmnlklcx]jycbhtwurlwwsjyuubt[cuabclvzukvmoiniql]pzockwxqjbtadsspl[izzcraalbnmcopcr]cqdxcrkdnwclxcitizq +ucyccfdgxaciwhx[txuygxhekywmyuaaina]szfdjuddiopneadpot[zpjsnpjtmicknxkybi]lfirzuldnatglheyhnw[rhgqfyfxlaunabfqxl]hplszylhorbrkuy +vmgeqazfjldqcfif[fuepxyjuuzxkect]ywoxrfdxbyjomjo +qacfshruytmlwyj[jpqmllbdypmnzqoe]sdhmtuefjbrmvmeby[xkyplnmmmcrcmixkls]motyvnyucleirbnmrys[zdopkcnnuvxmhrg]feeagfdkgorsubr +knlaaiwxponscqwtqla[jxilqsyolsnanzxvqi]itqqqbrfpcexbnecnkw[bpcxykvtdbxejlcda]mxodmdxzohrturffnwf +txvqlvddwpcysvkctlu[wvuoeprflcpycbghfv]ksbpnggnitrxkua[hqyiyucnvjqsceml]uwwwbxrjvodohwznlx +oebxtpwwjtewgkwjbv[omataxkuqenxmxolwe]aiepvclknbgapqh[wywlrbzliilwwvebxbl]ljsiuvllqbjrvqzh +jznegbplekeeohnf[hegaqbzbjwdhgkouzja]msaozvrtyshcajexwen[cnleoafnzyvbvdfndha]guawhzetoxlxmjwt +nytoqgolirudokcgok[qjtvenvrstrjjlsbvzq]mwhkktxfsokxxqb[pgswnhmmgzcrgjbqcx]amhrxgwmcnykgpuzfb[dnihosgggajabkoq]jtyxfrifreihydzwjdx +bxihyluintytvypxhl[kbnizownozfekbhmsp]sjgxqgjbhoftgmbck[knoibzmlipdnfca]ofyxruebaspanxxhakl +xhrlcwziflvahls[babpaszszfgfywj]gkquumhyqvozkgubcs[gkjczyujqykeifhsylz]fhmvopfsltpzijdw +ntyxwcfpdgnsyau[eqjxtsfneseakvrf]sbzesbxxrrmpmlazhi +lwakhsvcamfxiceusua[ymczlpqkoiophom]fiybjcxhftziivsrsok[sejyfiorjpptboakf]ipsamdcnfnlhger +ncgeewwfszytkag[kizbzwnxepsvdxsbzbm]fofhxxpymrbqvcco[swphuoqvhbpghtku]hvxqclwgtxxqywhhs[ibvpkuiylqazccin]oftqdvkbzdkmycntx +yhnhzwjjsiqngmhe[jtkcipgiclbqublpfs]glxyczwidjilkqoa[ytsphdvgnawjsctty]xdofsnhnpsylvmso[pmjrjgiwhqfegydcs]ylfcipikfzvmpjn +pwlhyvxnneepoqexj[jsnwzbjxibgqnpjgdf]qndnlnzxewcrjio[hccvunupvbcyptqdihc]rfhmapmentuhoiv[kohfhnoakeglvnasojm]oggzhzybuuupwdrjrtj +eyglfycgaoqwsqqnue[woaxqinxtvrhsbjjvnk]cfnkhvorifhxedbmbmq +nrqqggalpihpjyu[dqbqopedkxhoqqnp]qguazmdjtenlvzgoemw[ccjlmsdaajwghuikrnp]xrjcyfkrrfxddnjn +wkiymdlskwyjrft[ovucvqbenolfvvu]tzymrvmekxnlptynj[dupyullbzepmmrmgwe]fnjtcvrvzstijxq[elzfqhyjdyprzfxa]uszwjwzbbzgpcavynk +jrdliqwwffvgzpu[mxoivfuwuqvtxqmbbs]tvtlqzqgwzgshkpw[hspnaspqnjvwybzfzxd]clkhutlibvxzxfrgg[yujteartlwdhzfgsn]lyfrxjqcpkcvcsnsw +gtfhmxlpptgvgwob[xlzqaoawpmmjwszqmhm]xalfbbroilfuzzqm +gqxmhinpeppmdhbdt[cpoaeltrlzmfgsipvg]iqlrhncmkmjijjh[xsbdusetrksrxjiofj]zndjqyxwvmsnrbcyrmh[qnbxczovjlrrvilks]rfpihmkwzmgxcynu +abcncmuhelkxeph[crlbybjylvbgtsk]yvnbosicedmzurqcm +fbhtialrsrrtpwcxxh[pisambikwkesdtbsj]zcdseybwrdrkxeiylg +sehxfywgpznuuypj[upswvzwnkinocjk]nabhugsxhitlhis[ilrwksgypfqgfexvuhv]torregbntatolgchv[kkimpdkcxhsxyuczj]xpfacbmnrhcxnbgwis +hldgiynbgrfjcunattg[nwfovbxygpkwmxnulm]xleqlwcajqwnncww[waoaudnttcfdktcd]yikfvdmekcexcrhsi[sntclwlhouhyjrob]wqpclaistsngwfmf +izblnsxlmqjhxvx[qpmqqzakbjpbapwtlel]vmriwjoqlrttqpoxay[ylqzxxdpycurefadv]ftcuduceaycwejp +jqjtnshmtsvokhwnpr[bxprgnaltcsqdkceygx]udqckcknpvegeryj[zvjfvligrqxnpypoerp]zhzwojzkckjwgdyu +ohxpnvtduqvsihjt[eczkrdqlgyddymrdjfj]zzqhfijxsgoisbwpd[lysfkgekxvqspagq]kemxkdqxetnkyctjp[bknjdsvchfxflsrkuum]wmxncxrwwxxxgza +xnulgysrzxheppsiril[hdxgzhscbjhkcntrmsy]vhedyohrrqclnoe[nnuxdbtlbjvaddo]xivkwdwvmkplsvfaal[omihwmflpvrshkcoci]hekqpjtrjlsaomfd +hfyusspcypxdbgzb[cxbfccrumbqqqxb]ygsuxbxdfkisqwstqp[lqctoagvchrmggtmo]dgmcjusbvlmlvkdmnpu +vmpobkctlhdwqjyb[dxeinhrldspqhgeu]ndglldouuoawkiwtask[szkthuhxdkmfqoqwwgq]zwjhzselzvirjadzvr[rholepzsidriqmlepo]yhbxhcmbkvripyusams +mzscivdohxhfkdqet[imwvpkunuzbhbaj]tohxwppjtsjykxrj[nhonsbadufgsqiysn]cogovslrrwexgzujn +pzsteeyowqmhzaqao[qsbohgqamrksizzs]vscfiltkxbxwbdlold[psofpwfkxhsxllnz]odwbidqaqpuchaew[kruwykloeqpcrjzon]famaoipldevywnouele +tuqiapyobwqwpwbqqu[ycphsbdcwbmklro]medgafihivwegukhfof +lficcecamifbjwk[sdguwtafkigjiapxagj]hmeqrhxptojctevbdbu[zvxeefaytjajdpwi]uliqtzilzcnwmbfusnm +pvyzncrszmuienoptx[bigapupzitygcxstqx]rqikselsbelyfjdm[lyqmdmfyofksmecg]wjceogefnlgelpguu +hmddytvxqrazumnnr[hpeurkbdfejhlfvg]pedwizmuhmtpdwh[efikgkrhnagpmqypzx]ltlncfegswhwcxa[bakxhwhtvxcwcxtmofk]zwjvbxyvljlfaie +oxgoszggsifsgrck[gruwptjveewmfewguku]otchieijhojsyxi +kunxbbrdhibhtlknrq[tmtsuhwakksyets]xdugxmqcstdallfqgq[tticbbqirncbjtx]knkygxawcwdhefesu[rerbfffgddyehtvl]yasblwlhikbvjidgku +qoqnwslopcpytqy[zngrksptgviifcwbw]nuislpzizqikmgn +khmctigslwdgzghkbk[veaqghpizqwjxlwcf]aymehevjgpjgwruhyc[hzgzilbhyoazljsk]jocgjmooxqxayzsa +xodvowdhvnquwtma[kvlbfwwzeuucthg]djlyemkbpudpjlnrkv[cbaqlhuwfwwfvbdewx]vsjvsxsizgwsakpx[pzyowqndqdbkdakdney]eeylqpqpuqvdyyr +cmdykdqavxgeismtlua[iwviddbtauhirfcabh]fhpsinbnwrcpxdho[tdbgrmgscvzukjl]rxupjtwbwmtgnltbjp[vgzucvscpzgjnvg]zftzsshpmizeksiz +kfzmwzmzdpxabvi[ftkotbrorpkpfxzbg]hgbrsewdgnnqhxvueya[lkjknzgrbuzjqxwqseg]oyzaqahfuqtpbzi[yflzhfxwkugpetsqli]nowgjqaquqhrlxz +ktphtjqwsitgbaii[tjwcbyfrpupwkvzrol]smlczhhekwxtlvxdfn[mqfupholnlvfhuv]mvdhzncezgunydrk +lrvdftzasxbpfgb[pglmengmgfbnzxz]hbasbstksqkkqpwkcbp +siheyyvdmjiubhlapns[xfcaevnaoexubdar]pgbougfzkmlzjqygdta +tblrafqbjhwzbwbe[iefobcqdrypwnwidvm]olrzzrqgkwiefngf[asvmlckavcwtuosgkrm]esqsgwmiyxncjjqsqp +alvaycnbqdlvvnwcnq[jwxzjzgpnzmcampkye]hepmdlzjvxhboxh +mtfkavmnrxyfzvkes[gmwvavomsyolkahey]dnqosibjkplwzjojus +gbckujjuhwnvovpfqw[qwievsrrtusgzbscuf]bnrjcovodutibjtq[fxteivdfkpixonphrog]mnumbxikkkyeositn +remzamtzlhwpndrknl[xgrbcgdvlvrcdrpi]tnzimcpmxzaxsgpu[klvglrrepqxiiewn]lozcwxnclirneaky[nevhtplqsmuhykzqxf]fgmsbwdgfwjftndzi +aybmjypdrytigyyip[zafsvprjirkniuwr]wfdyfncywtdtzezdbtm[umbxrtflhquwdofgut]lyjixlycobwpwvhfp[xoxtkyhvwqgawmike]bfqtgcxvcfwtdpl +tugswvsgbsfbiyzcm[akmlddjckugylrea]fyzltfupxnvagbshlb +lcgvlozzzzpzxeoee[zsvjydznyoadkvyxlsq]wqmgagbkerqyxjnnx[isukybwewezizpll]odqwazjphoaqhzltms[gtqeysqpwuuohdbhcnx]yqtvojobgaluizidrbn +agnxxgirnprujhsk[hagcvuqcwyhmkdqmn]zehvuytegijhnfqnk[ytlokgpipjcviulp]hsomdskdngoysnbmg[wztsneomppnewhrl]gpkauttapxhcjrsicvy +cvnowinufvrjpiqtq[kuavqbtrcelpcuasmk]poksbapbwverccds[qdddbhewvxgfoldib]mthrvrsfygbhlwlkcs[zhivcpxibufugkpigzs]qffdjnrsoigwxqhaf +kovjiaxxjvzmzvmn[cmrbwjccgphtstvaiq]onqfbpryjertymd[sgmcnqbseodopnnd]gbgealygrgjnamdq[yrjuwjfvmsmgbur]ldiztdwrwmeqrohy +tluglhveqluxpiy[wrsgxdrzuigwzfsby]bmhqmnbecjnyutpwlbk[iifejjworkzrsaj]illltueflutteej[adfixnftjenvyrigmkv]zgsqagrctomzublltjm +fhcnrceynkcnnjxj[jrevstsodmhopao]zqapczirtxrunfhl +rzmxbxurpdmzgef[agevdburkuvnsrof]rhclixqpruwxuanwxct +vxejrazzpddvobzlq[dpspaddyabqzrjgvv]elcpgozzkqjsasufcv +iaodnwpcpresylkhyy[dltvlrxbvnqslzzyvox]qownkehbhjprbzf +kqbwgctrhxwrkkedau[occltggonhshykttsrr]snshslgqtlgejanlg +jpesfmiguicqdcnkm[oawppiwdsmoidvkcre]wfifgnhqeisplngcjkr[wevtsiuznmpapke]dqgxavmudniuaml +ddewtwhdfjatjlgrt[ceurnauksrgwzondnb]znsvkdkwsimbmdxfkh +hwjwuhdokecprunbju[jhftguwujsuetdriyu]vcgpesthcnwuwpwes +cgizaalsahfzkcxab[nehrqohgkmbxiufyco]xbnclpuepsanwrwjoo[kvdifptokbtlihgx]hgynbeebmdwbkwrfbh[rlypefyljzefnft]wwevofyexvbojyc +ckxkzlpwrfhwzuep[etqgjhcmexxvaccx]qqkhjttaudjpbjboeo[gihevbqqqumfythcfm]hraqbarwvqnmvtiy[cbnfqzxyjcpmwvu]lrugefybnoiopvzi +bbmhfnwnuhvdgmoibjq[eugipbrefcqiniulz]frkuvbhbdiaoaqdcaq[ksqqrrhjltlxvet]cdjhqazjzfrphjzjr[aspkvkpmwhkzxfeic]vkhbjolvoddtaasvs +rxkbkkhnaiudojzsr[ecdvrnjjyzyqjxf]uxctotuqtvambwea +saknwxxhcybeglwr[molhqlfbvopapnuco]hbbaomsdwcfwvoi[rlvhmvffqcyftricsyb]pkeuoigxjpwfbffif +pylywhhzktocomu[sehthaaqwkyerucg]cwfmpqudeylrtavze +vmawzgbfmmsivwfqclb[fpvwdbyrfjgmidxw]btatkdonphkxtprxfsj +kspofpgsttceoft[fcqagpbfoujjulhp]fkbxvsbuwioyngydy[hnoxyyuhdviahwsf]gustmoflyrtelseo +xyiofnffruqapvtgnr[wmigiedeszezgunm]vydqpobqqrisgtt[kolobhezpsiolofxrlq]abrzbbmtlqvuhxl +enzmvjyrzypbbtmbvx[izvhoqpjgqgmmvricf]dbghstbtqgqawqjr[irvprevogenchjy]gbiwvcxncbjjvwmshsx +uavpufepuqdbjedp[itqmeflkorinwdpjwp]hlrnsxymcnxwulsmfk[bayxjuxhtpcwafadefe]srrkibtivlskepjxamu +dlwhxttrwjlxlit[atmcusmqvonodkfwqvb]ilfdsqjtjbimpaqht[zsbqjwsrgxlxbjqmulb]feblytbapctmfuao +zfzicvjnuuugutgymp[owgyvyjfhrqpuukkgok]dfkfwodxgvrdqelliaa[xaumszuhzjjsxwe]ihaxfxpxjxcbhjg +gmsgnyadjfimoemyzt[fjtprppdzhkorpqoo]eyxayeizyntiumrgk +wvdatykekdfednl[kwpjrdcfjjklpdofpq]lidlhawqalcyigapvv[ukqjuzvvxehbwzhsci]rdrfhnobcwtvivgcc +wvqxpnxpjmzfnfy[xgtkzusumupupuqvn]vmxceafgkxhnosupdkj +ypfaupbycoerlpnhvk[pjrtdmwsmsckcfongoo]bjxlfxbekwvfruvy[uccfekaoczxlyigfs]gnvkjcwikenkmvgrpdj[yrtbyzxjkmpewjpbstp]nfwcwhereraqwxu +cqxbsrqdgqudcci[olptuqqvfgunmstjc]xnppdflvdcjfviaemlm +asywjbgrfvbfnkhnc[euubbvzujqjnsxtmel]gwxqasfbyjazgqodfh +gvnexriimytwvefmo[dtuxofcgyfnaiibqx]iaaodpjwjnkbrqsmdzp[nuvnumldfhglafg]dpcqqfdrekqdfyfe +hnwaqtrqgztvegfhj[mzqkcvhmqhzwmhlkc]kytpmyhzrvtytwvfkqk +latjxjyjkwwnvyrbl[bjnilknxprpwziowcjn]zpdvccsjiuhfwrkn +nowozzvrysgsfhxd[lhgxyitirlsyljl]nodxmmwtydaqkoxvu[vgbjtbbjqgfbssytsk]gpzprrvyvseifydxz +sjihqhaecgshhhdrbto[goawszmxrrdtoxq]qvywgrnewpsordounhw[oaxydcsvrzzunbizz]nzisqsdrmmsaqwt[nmyxmrkeainaqyfe]eacdicawhfuobezyao +oyztkiwsxqcufgqk[iyxqvktohfnoymgisag]acfhjawamdhawitvjg[npflzsugezpsmunukqa]vhhxnunvyxjtehyvv +jzfmuzdlemckyiccan[rykdnvtoavzjtjxtx]vcmkcuioriltvpzzxqb[jdgqayewkwcqpkg]ulsujrvqzsmnpqgvg[lshytukyfqhnjehk]cpwbeyiudngpkrl +uruvigtkkoqkfdbqkre[wyvcwnxixwkacuu]ajvziogdmzueetqzxxx[fyevgfzreomzjbsumi]ahbhcyjbadiacwjplq[quesxyjqfbckmnt]oqehbkjyoxsyczfta +xzqfptkjpiknvkyzzt[hklpsitbnhlozgp]pkbgrwmqrbhohay[mhphptvyseydwfq]ehswmqarsalmcatb +ohahitbjjxlnkyb[umyhhgtcasbfbxqx]dxyhbvpjjatkwvpkyry +bcixbnnzlqxkisv[tapovjggqzlwlmc]vwnosivvmdcfsor[uaapwzmzarenaplcjp]jdcpazyedcdkdinrrz +kdofbgwblzpnocgpq[scfdzdrueknbdud]axnfckaaghmrpfmk +fisxkiplryvtnrvm[sypuemhvxvohsapkccc]exrrwesixcvnhzpopk[hpsilxrztuukzksyax]lixfijobrlgmonzui +zjnlscyhmjmoofha[ezglbbmqulybnvf]qvbharzbfbbustsm[tdeqjfbfxeiknfr]chpwwntytidtnnjf +qildxsfzfukzbmre[jykfpbbfelicvkqov]pyemzfzobutliokrrox[uplajddwknupdnfje]vombwrjguiukbiwozj[kcutkvgruxqqcuykn]zsbonxyerpjkfpnxchj +pdmfyadwrblhcvecezb[fhqgurbenzitepyh]xhhtisxbusntgekaps[yefgbqwocpsexwq]emmlcuwjwvluecbfo[ohehzdjljocucatf]zmgbwenmeuiftywp +xhrulprzdnbbzenux[ptzrrcmdscsuryk]ognjzqtletsyrcy[snpqabmryhyvcyztmd]lhkwhjylportbbo +xphruwdeuqibzdss[ubuaiomstyuqgcgzyn]upkpgfqmamubaqhkao[ohjojarsqpjldirf]ianntdwcgclwmyzwjh[qqeajbudidxsqfw]nenqeljkdyjucrqnsgd +xuydzitbfqwpaafru[jasqmetengbkljylhse]wkqxkjwkoipjfhkafnt[uolbyhzhmtupebneng]pcjjrczeczmoenefu +ievtjpcjrlfqwisl[pzhzabrlrdeadbtpyec]sowfrknejwbuvgs +qcuiylijqwfcqwjisqr[icjobpbxzjzuaxc]pcrdpfgwajrudfhxb[oiqtbvhfvitjvuts]ctwyepzbqlrtwuclz[smugjsqssswocjyc]lhlncivlmhmoexsrd +yqmqbdhiciqlgdmf[rywqydtlwdocdih]ofxwyqckxktvcrlxsx[rxupkwzkvwrmhuiz]znbksfkkqxephhb +bgzhbpweidflkmmjc[gxozhwikjiygyrm]vykpmxdywyfummana[mcqteiumnmmoyiwtcqw]ntczagaqoprodvhxbl +gvtyicyxseltoqfgk[eozvokbnjytodemeo]ogofokdupjyhzdgrk[fucnzhyuqkcakflcky]zfgxqfofzfdxyzetc[kdgpxyithocprbr]rpqlihcmgthswhvz +svrwqsrlntabucyssj[trbqnxxvtfiatqd]isjqyfxsoarfetrtgmm[lnwqkkgqucipvocrk]cdcsuvgwvzurnxleuus[wqjewzmcvqhhgwawyo]arzledaetbnpjmwjrl +jttgsvurypqumflcm[ccznbkqklwsxmva]ooughikefyugfvz[rzsyqmtahohpmnq]kyotvedmsjfshan[bwadbneyfitukleqbyg]oyeonratlyvtfbcrs +rpbklfvsjmisbnowf[vupfpfstcrfdxipqi]wuftflxmtftrcrb +igqcfvsqbbvpmgflu[kremgawldkinlqnr]ogcijqlgvrvbloj +ncjbiybzlsophbdemtc[zszwhtluxpobqclp]unvkyqmemvucdtwt[bzmibpkgwokausrgo]btnixophsknmjrqozwt +gxapkeestvvhodxnp[xlvglgrlzjdrpjrps]sephfhztipqaftxnqp +zalwvceeodddhqqyrk[znydhdhxhprlmip]bjijtiotyvfgyiou[odtkdhdrwuzpgwkf]kldnjprzjewdeyzmdua[wsdyljqvdmfdenajaks]zcvlwqkrytjsryab +schsgvlniqevsrjfkxw[drtzpizdeopipceke]bduaeqelcxyvykt[vhoefhavfmuhjkgooub]tzgcfhwkfuvwcif +wocmjawhtyhxksjiktg[hftunpxmlvyxauvnfj]spefcqpimqgjhnou[gmzejgwtyavnatavwju]vccngpxjmmxlruac +igqxjgofompnnrsaxoh[lmmrwzhovfloeps]loixvtpiyzagyvgq[yaiiiuvpjpuldqk]jwpjsgmvglkzuiepr +jgvoejrytatxvfqwt[hinkejefiqlrpqy]cgmvjuyjejpinjunld[qcdmwbqbqusirlxh]udhmheqsvmqmczbbofh +qffigxgklwwslnts[gwhobujjovmwfmrg]menqzjmmxrgchttltek[fwegvyhranuutxgxec]fwzgoobvkjekogpfscr +qlphzfkuyrhvkmsfxmb[unvtasxalhelbiw]gwqjfeftpkxtfiru[dhkyfsvpktyrttk]mypdaocnergxlnbodpi +pxdqzshlqhkrhzwcqkb[tudazezhnktsxxexyq]ybzclsifzrgndcaxq[ewlslzvwnqqwvljgo]nwnyptvummeraaoow +ysivygqkobbtznpxy[ydbgipznapsnkzfq]upackoodqdqmpvbgc[qnzvzwnbwrvgvwn]imcsgjzzaeltfxyhbx +hcqlfxoahajthjesrdy[nammwfgfdqnjewunwz]pdzecgfgatymrrntt +vwpdygtfuvbryipr[ehziaqbphyzzdolbfsv]rqxvfvafrauzncapu[dvqlgdgkzgpbjuihbl]sdtldsvjvvtlvjdgd +rajovnvmoxozjldjd[czqnvirgxkydoaaxr]dejvwkgmpwqvnvnzzsb[zwxifotwvljvpkxae]taoulidxuvefjqxjdu +jywqykajspyzvcw[jkqxjzfmvcrsqszgim]fncjgfxwbvfdwujhooa[otrkhmvyonynxsyap]skgdhtgcwmzixpdgmjh +wbkndoivecgnkrid[tpdmkrufmawhpijryk]untkposunbiezua[njngjktbavkmsozyy]dqotrtnnoxxejcz[nyinrkqzxnsaahwa]zpdibcyegeumjjgowz +gexzzkajyulforpnmb[mwihfmwsdpjjsnaxmme]xavowvaqybvqcqescdq[hjymwnhorqcdkoxv]myycpwmcpxinhru[koqbxfaoankdcpi]hgdktcvvxvoolccqcy +alpcsvxjoouuhjrgzo[blnjpvnbtcufzsxqn]ipijmuwbljfwuxotk[sgpwkohrsfeypqc]vqlggpiytetmkifwc +ixbszxrkuuzvvstrn[kdgfwhiapjrtiervwi]iugjmuvqljcbnmumal[ajgjfwerxsqqyrxuvob]qcdagpdvlnicajqcooo[qtuiukkwxyevxmgijtm]bgfetysdwvceqjc +pdbbmswfeutwunlcm[ywbxptxhgqpjkpeenbx]wzzaxgyiztbdftpm[lbeexhgaqvezxfef]fqktklfxugwifcfaio[ucpewlhkqnbsigioumy]cawftwrwmbnfmzmhd +xmtduxirbkbxjrqkvg[ythlqfokwjfwowrq]dguxbidgwelcrbxahi[mdumdnvbcsicvki]yhdgylmjisngrkcnbne +yzilepuvsfipivcroyu[czocwppwvwxjadgqpc]uoypwqxrpcpdzmsyyqx[mzjaguojtnjobsvpdx]vnsywqfvrnpipenwka[dtiayvtdtuyeqlddh]wpxkwbagfqncorkomi +qyebzyuerdwfocyr[cayytpduwkezuatyb]nuazweyhjemncuqpp[gwadeldyzfsvyqyk]gqjdzsuylxshtoayat +eliktfnkrxvywmvr[tlnexbwvbbdeupd]gynrdmuppfbawfcb[dqsidilgsixsudputz]odwsmpcptosjdhrp[mumunqhddegofkrpabd]bnetmxiqkwhtcsgpuui +wuozzupdubqhnbm[siwvzeelxcodzissd]niswczzlnrokkhrnd +bjxpecnvcntfbqdyqy[hjawjkugajcwmouz]ipusnakbyyxmqhyislo[xcafwiwiabdlxpaqqo]vaemogopzemmnilw +dlczcabztkrsdznjlcd[atcfirjxoipnvnoobjr]ujnimmhscetvevwpj[vnbwetjzberefmavwuy]penzvgcewibypznzpv[rqsqdxopumiqfftcb]qrotltpgkmzcndx +juqqbnfozoikxscqata[cgretlqkyynhwhmk]yiehuxyidjlzpjs[jdnlbxkxvsufsduoulo]ymrfqienfjrrgraxfh[jlopugujyekjzrfet]hqlqjkulbfsnnxyksp +epcyjxlwzmxwlulhx[pxjecldoxjwjkrndmir]baneyblyinubutjdi[cufdnjpvlwbfqbulb]dbzgyztjopciduxuo[paqntbrciorikaw]jbpsfzmzxvxlrgj +euufrqxfhnfdzlawui[zwgpectzebtpxfwbym]btexmfeuilnoqsbgmz[hvnxaanolwzkygx]hurfyrjkanhjlaz[vdmsczzhobknlhoslpg]bgitrvjaildspbz +gaweiazdfuixwqo[qedebtjxaewtracsgk]qnmuhjsbvqvcnov[aabcxwfcazxjqajv]xlhkehyvjohrqkbzyow +uqxzgyclomagldxv[amcvkpboneuscronwcs]qbeqgbmrdcdtvsc +xgkenttkfbysllows[bamxgmibkgysryjebgr]dhfiqnlocykclbofdzj +ppyfzqrjpxgouxmsduv[euokodyohaiajyvsrz]xfxsvtjasezevkjwjk +vcsgnfhhjkjssirc[kfdwqpdjaejqbfaxu]riqzqfwmwnsiqgamwm +tvxtikdqugadgbux[niaxwpplrlwrnipcnnc]tcunnqamexertrdm[xkxjepysgqqdphb]vnxvtxntrsqrfjaz[akxkeqvlxgaorhqnd]sfhwarxbzfbtftuflr +lwklfaiawghiwljxxow[oqmepnydmfkjbgkrjaj]clhguzdrfrmcoslsghh +eqtzgxqoviujmxpg[pkkbcdmlkvbcppqrm]zjzmsjmxdkaknido[sellbmhvshvqdsslyq]xuokcgfaxstavgkni +gstjodvjotzmvnm[mfvosfrnlksillaqs]riecejrjvhdrjvdl[sznhzufedvbdhbeq]msgvdfzoxeykqyx +ivwoejkryedvxpi[autbisivgebnntgixu]papdjtvhwtxgipbhes +apzalddmyxxmfysm[cdzptytpjydinlfdxa]gnjxiwepetlucfl[izgqnvcdaqkzgtpvwvk]cdxqaizjmvdnxigkmvm[cdybhclfttdchsbnyzs]xlqahfrmgnowlgba +slubhmrmovzbgdw[dehwvsngduvcfkontgs]zeiqylnomqgevvikm[oubxjfwewqtdjwacb]mqjinmndnakfemp[mccapdxlrmrevbuaas]hcjdpjgnoguztrdjgbt +vqeogkqjnfuayfpioi[rnkeynfubkpmjalnz]ybrwpzhiscwtyue[vnhkeaqwzawibjnvnos]ctmmursouxvylixiqko[voqlscgdnaelsbxcshf]azssljeollyzjjwkxin +sanarwdtnkaemdsoj[ojswyaadxpnpzcm]acjrepbjwnnpncdf +uvankqvbgxtgignh[zaimktolqipleig]mobimtizmlgqetrxkft[kooknezmesqkqisip]jdpwwsisdorcrryvyjn +lkiqyvxlouvphqf[wiibwrighxagoiod]mavajklcesvhiytvcx[ntesmbqoxkadtth]kovhcrsmmtllhai +ilzqxrlibfavovp[hrdmyejnxrlntti]yqmycbqlyitgkumdm +oslndtyjgissmwhqbo[lguvaxjavhlklnqvd]cbmjzevkakhfauq[huujtqleuzhwcbpxjf]hiitxzclsgphiembgwx[ixccjsoybxmjmufm]knmagcfohytzcoq +eutljtdlueiugunxsy[bmbgyvpiruvvuezir]vksxzmgftqglhrowpk[wphxqgxjmzhuqrwhce]giazmdryyjldglcivd[nsicphjzfpfzlhfymh]pfpeazmsdcttsutbs +tmdniznfpsrdaivxpcp[nlebmzzfjfklqixhk]sbusrwexlbpswiyslbh[tuvimwrkchmarbvl]ykhoceojfjugoim +vjkixsnkgnhzcsj[eqauuxevvcbzmlrvxk]owiikpkahbpkpuhkmns +yiomyydjxljwyxoeh[rxyahvmloktamapez]ygtodyeyjtqusou[esemeduybcbngynmzl]rxszjfhelknuyjq +hayzvqcfdjowlfeavo[mmcaawmtqthurqvmlfq]kbdpwcduhsjfbskcin[sueeedwjrdazxpae]drtfzfbefgvneiiqtsn +lfsgnugdavjvstpk[usjflghmtbzdzavzgos]vajnuirkzezjgkst[ixiusdyawuqkbnacri]yfhtwiifnoltnygk +fqvyvpipisvelyjfa[xewusykjjogfsupar]icdydlsidbisscyn[bpibwwfzoqajtnxlad]potpbswobrhcyvy +wozhxjyiybczbhbqvd[kfsajcbxdespfdewbjw]afcsihkfitjosfwxb[fngvcuammwspeglx]xizamsngscxtprjwkq +kmakicivcpvmjokl[rnsobihgweztudwrql]wytavzsniyqrdrxu +nawqmyenftpbvxo[nsztprtyzoacbxy]jiwvrmgzztoisveafzh[kgpykqugwgvfkztnnz]qqmehjutfdzzowkof +mxddcacabljlmyxmpn[zdlffviwrbhbjhl]niubaphkzsiybwkmh[ysxwkjpjhpyjmosgeo]kkhqupjsegymyxfh[sxxdsrtuwgsznnvhuy]licmdzzrtcxkgce +hkvugidmuerakcmmsn[mkmrvpqxfoghbyxr]brkgsmexzyvqztplvgo +inbjfdjjfofwckfckfo[nhjqvxeoedsfzfpwt]snlalnxxyjihecmxl[qtoxbcyxxtvuliams]bijqmocptaquusurml +wmwfxoaocwtzuhvenl[yzpbmaoazbchjxozl]oulzkybjweqqzml[ydkamvkncxomqsibme]fcuomzdfejvijxeniaf +clyxvevuyzylpdud[jmwhfhkzrzzkawp]nwcvtlwlwnbebgdz[cbnfsolnppgafml]mxhbrzrialopbbk +ekyvudgmgzgiomwt[ebcbzzamsuhycbcvc]gzmmgrqbbuvbzfebh[lyuflvjhaxkfxkv]bvnmyumtjzismbtig[nqoxegjljmzarvyowo]rldakoyzzgansfefpwr +wjhfgmicaoysnhmcer[kocbthyqjwsefyepgqh]vvzlwheralmhnixsb[adysumyfpsahmkntv]bnzgyilfgsepwvrdbdo[yqcnxfvzlpjxnvv]syedcecdzbffhmpztd +qdmvnazvvyyxqjkm[lcmgrtbttzwijqf]gjacmuqivbcttnp[uduzbmcdayazzpr]vabqjkbgwnjophdxwvr[yyljnrcxwwcehamtg]psdjpizyavaebua +fzjlpppzspuaflfwtv[dqmrdnatqlqnvowh]bevfgmojlmxmvfqb[smrcvucejxdrppkldvg]nbagvxquhrilbzi[dtbbwkaqepopjtgsgnz]zebxmxzzszbxtqeyjmd +kipuoxmzbydfycmkxcx[bfmjtzvthijzhezx]aiwnfmjhetyrdahmi +hiekvarctkixnmypau[dafmuxavuaosooos]czvsosvafizsjiouwi +epzppyfkcwcqiirpm[drxvceywherxdpnxl]pzylclelnhztrgnqb[qrmfgrtyqmlnsggg]seaeqafycqwjfccuyhv[fnwvqeftfesdvyu]djdlucfogiqnrblz +ihjtuvxjkvzqdpepjd[xzmyhwkdjooosritpw]rsvwysjoukgevdeve +wdgepzzfwonrsxprc[oefuycfwngwkrgklo]fbckfdmwzzwfiinlfhw[mjebaresrtulcvkeb]aqxnxzpnqukspcol[hpfnupcjrkswiwlgzz]xbnwmtcsqwbpkxys +nbaxkwtbtodcuecg[xqoetzqgjhxmuvfvnoa]edvwhehydqhhfjm[xyepeppmsepsaixyisi]txxbbqwefwuffdztlnc +aqeknneydrvnameefot[dduhtgzqtjyggmr]ausnandgijmikvgd[jjvsfofhypkfrrc]rgzmkiqggfaesoznlxl[przqmabciaxkcunhy]cnntseafxmnjldcp +rxilrztnhgzclsgy[yaxsuppphljrtcxev]mqyqgjopdetsxzmutjk[adyfostrkvhuajndjaw]ikumnitoxctaqcpop +ntotlcdwgtsgotovhyj[wgduvgtqijgobem]hhdytbkiplykiejg[sntkfbyrzgguijtwmm]mpxnepfkhssujwhegbq[sxpsxodobizsvppqptl]uqlqlsopbfmgliw +wbyugpjhymzlgbl[zdoddxxbnxqimlo]tyaobecgkbvrmgajpga[asriovkglwqiukcxtjk]nvjqkrzxwicfzdr[vzqasgjrafilljt]eobbqeenineqwps +xbtwnvkwrlnwseaids[znlftryxezmidoc]suigxfrnxfzeudpi[ahlshriqmozkpiogtc]zpjiwsbdawhjynju +drjfebkgnrcuqyzpezw[hnweqviwyjtfrwpu]popubobnviqwkqfv[plaxjplhmhjqjmqjsh]idacejabrvhfteelbiu[hhxwpwgvjcncpjcovv]tqyykiwalnnkoniju +fwdnjlvptzmxpwvsli[eidmcurldxszfvvhjf]bshskptweuzuqtjym[dpwmmspdxpiqidrfz]bulnlyngfaybqfinqn +khvidctisgemoswq[vzknkycuuvznnjkzay]rvzkmucboqomxkmtuvv +ymfxlhojyjfqvctzue[sihfpembvmdtdda]wezkljquqtkcyiar +cgzdjkbnmhptcggqib[autoeqiibhxdief]zapmbimuvhywdtsbtm +gilwnvmvdyftcdmvaql[esmtawtmepovyih]quztpmdplotzlszav +sfsncarxehtgmutj[aqauaojoqabkguvan]olgokvyhpfjzyqgvbcy[fsfdkbxhstvxlkzb]ozwgbzlhrocqpjoseq +shzexlixgxazcobmdvz[bvrebdcpytgplvii]gxdgzyoqpmkqznz[wuywofxihsgxgpcksgh]lwqsslamcrmkobn +pkjlltvbsjnfarycgf[gwkayyieahfowbrgr]ccgyjvjbdeoilsznvbi[njniljtubngiuwlil]kosrulvapzdufvq +clhvakestwquwywsohs[ubwecsjptinhzngw]dvjcvukpkdrgpbeua[svetegijnnbtetpgfu]nfejtethkqavpol +vksryzexymetdykenw[etxzvunetbovrwttr]pnmwnldqzmxzjldnmh[vnskreneiwajgmd]rwbeletsldocxguy[agccpaxhrlfokpt]wembexaqbprlrzg +wrxyiatlpvvcuroguv[hfcsmxesvpwfgtpqip]jbspeicucxtbnti +gbxyskaitzeogoej[drokshekgcpxpgktoi]ivxtocmlrugoguf +sfzpstesdmegcuhn[drrpxmsfpcjvqerjb]jqcvoeifgceremgz[chsbisfayixexqer]qyhonslazxrkagpp +bfufgciknfkthfbr[tlfmuebscorrclekjfx]offqunmqlcetebpov[bsbmhnbmmqmdbpnt]knkjsvpmffjqvtqpk[bryxvufxbsocwnd]hkxplkqhsymumxarn +ftafmqgtmaazvmstfq[qxsvdxplpesqzqg]yrbkrhtzaqtygxjheuo +xqgmldfvsmitjzhbr[yrwujpzkzksxdbthk]jblnpmdcljgadym +ijtilnlhxlkhoaftet[rgzfrfsilxhwgpzx]gmdwwndlvtvvtdimd[wyghkhzahfwpaknrxiy]ekpkylqvvxypaszcozp[hjdwslazthbzhdimne]xuptxflgcjgdajfgqa +ceklxvygwnkfrqvwd[qxjqndmhxzvhicvcf]lvrzumjuaawtgviue[xdvdtoulmeaaiiuqa]xveikrwzicxctyy +pdvdkirojjubchc[iylcutkspnuquwdc]uzbtxemzazuwottv[sojezpwrsstkdwkses]laokggzzeaobwfus +ibuowtqicxqiifze[emohxvujvolopghkrgw]secpljnouzblzup[xvpvnqvnsgsnmhwdpbn]ykpvwjlhtpdjlflxvye +botbhhrfjqjqwdgmeu[itwjgbhzrqnnagvy]pzexftzhniligeyd[egtdkuktihxgmdd]cumzxbfgryzedtsc +dgvuwphikpupaovhovx[nbwxxhepxfzlxcoma]vypmvuopklupuzlk[plkvxscxriyzeln]sopaaxvckgcbiahm[gpafvifmxvjouczus]uyqhgsdxkcylwle +gufjlajgktlwahsa[kwtpvwbvjzpmpbstiyj]nqkkgajutaofdauzmfq[zihotkwlyixmfsp]fezlipznjthttsiwpj +lqriaqvyvawemnogd[gyqqrvivtuxxbzf]xqrrsgnxbpmjsgqqr[zfwpyfwojhemhmyoajq]pyninwzcjzypmygy[qzftysfhztknzjo]zyybzurfxiolsik +iojvqxazkhdwzed[jnnntfrduoxnyqpeszj]dpeducyducrsuwa[rnfiudvklwbdbho]lklubgxkqldqalvh[ogbeiwjdaeuwjyz]cvhoaaenmeuovocvog +kxtwtkvaixeisgzjky[cnzhhsipmfawaqzc]gjpptvjnwmbqqbuum[qryazcieexjwwsvfi]cysiabvuldrkvsxqgu[koflanzstuwaebjih]krzursoabnpundffqs +bzqcnugxfeixhnvk[sjyuxwjdceauputr]tcjsgbmvjklijlowud[mdmuqbpupxhndvfcd]ypgdbaxwopztyqelfis[bvpphfvdscmfbhynf]vjaytjezersopuqa +sceyeinwgkcccgn[sgxwelfgqimdwzlbj]uvyuazuplvkhpndc[etahwkowloxlylnp]hletqjpvxzicdrs[kyrfwcyoudjlueqrvr]kdqsjyoajsfenmrol +atkckckrgntchlets[tyebmdckmayofez]hryglgphkgeoswe[jeamxrrzxgyzvmuh]vcvejocdlauybbz[lnnricpcvqztoumc]uggeimsqrjnppskl +rutaemkjlwrslmsp[jwwgmphxqlggydlsh]xdudpbdjfqtcgrw +lwddwkagigyjsht[zpizzqoqkcbqmdqfqp]vbvigihfyemwjqusdh[kqgxbnysneqgxdwzkpp]issqguyhzmttxofz +zzxsolnnbmerygtvvk[bhfexiwvaohrbqbadi]zdsieuxicwijamvo +lbfovxmrghyzhfdybb[whedwghlrxnjtvqelzp]oezlanrknbaxtmo[jtrlurnbhmuymfwx]puvsiaizbjtqnot[rssajpiwyftzhoacoqh]ihmzohwlncqrfrjpbpn +mflsnlcufwvqbhye[lslradskdqrueaxvoez]iyrdzgwbghbrctrmdt[bqgxpsiwleisnru]sjwifvnufaaedueaag +rcdjaebyojixvatc[bjybjvqonbvdtyjwet]rnatoqmpxauyiezad[ltcfporqmmavmsjgmrb]sdiogziluykhmgcjf[bkkhyuslxlarrqbqe]zzsdsepgilymdpnhw +jikhvuzivjikuxkmlus[vsgrhafeosvtphzg]bjhxequjxbqorsnhx[pvkgxrttjofimfuq]cmrxlinhwqxhrkrdzpk[xugunnrtpxbnemj]hapjbouhnfydllttkdt +xsvwiruapkldajmkyx[iohclbiotvabvkhkngm]qfvbpipvniprtqjj[ehcphknxkybflhn]ackdoidsuczifwx[bdbekqnxcwwskgxp]ofvzsecshsgbqll +rnpjfqpbnpfqtlpkc[itzrqowsquwryisqywl]mrkjwermsejxwqubxwi[plxkhpuflnhspjficnt]djldgtkuzafchfwar[auijeassmbtfdsd]etfcwmifwixeffrtpco +nkqwqvkikgnmwcnos[nmvtwkyhwtwyrrupx]emdniphxpavkede +tkcdryrjllweves[pqdjnylpftbbktemtkl]qlykuckixcfhwuczikv +cfjwosfrfjwgwognyjc[jiwoynoxdngalmreoq]otqvhbkwlkpqatkx[wwgwguxuzwlorap]rjuopkpuaftnkdeg +icgtjqangadcebdax[wyosawgqnexwsdqq]ulyhqvrzrqhibudyu +mrrdimungjnszyr[quzeqzycxcsamewykb]vqrhnvflewxwzvxwxg +aciggfsvhpeaemh[xhizavbtwzpsxdkgzdl]dbqpkvkmrbwjcle +ctxwfkazxjvguatxus[hkcjonilmmvovjawir]ruwyywhbhkrheofbpr[qeknvkabxrdgfxgrp]hymknrdlgolmqrpklal[qbkzigpdxfcgnfhdrqr]hrutorkgyzxlqlujnv +ocyqsefzuzizjllui[ttpjltsmxnkavfbviwn]ccfanejrzrghpnb[ehkgwatoncpnwfpjc]qkwynkumqgvxuslirgg[vrnprgoivxrsqlpbmke]jdygjgsfkbhrbfc +necmpldghpppjggvw[vtantcichlsjgrzdxlo]bihypdunzshlhxktuk[iusfpqesheojjdmk]ycztqgqrqsuifzgnqvw[oyjhytgpicigpcf]ewrixdzorbmmxgywf +tsddziihnzqushtoeg[ldqhzxrgtfkcrhecrm]nnesvhwbrujwmon +rdapxiunwuijmxrqf[qvekjcwvibpucemj]uidzbyozcfnpempx +fdvouzrhnlgyemqqqa[rosijdvpwbgnxzzr]moxykttwbfixxvflpje[daadlshdcnrwftzxpjj]pgpphzgfkeapstad[rptqkhjmanvnfuj]drurgqqilijigaa +dcdcoboftwhtitlto[qdqpbbobdncixqwhmn]cdjrukqmcdbzwji +fsmzzqlggnjqunemec[oxrxnckqpvilfinnolv]mgpmmemxrkuonag[wsoiyculboqjnux]urwswywdpuesxaq +gpughkygfkxahewxsip[licxlfgczxcqejs]idnuezcmwhwgryjare +shoehgaydkpbxwshf[ksbdsdldhfsxjipf]ubrrcyykdsgnywhojya[hfjwtuughentmddwd]wjpsomayxantmltuoep +srpgizgochbueqgg[qeqltfdohredaspdbmy]cexowllqgvorkapnkc[kfivkiksqxospfw]naiqwxlkjowysnh +patacqalyfmxulxxtkw[hyxkhrfewkpafeel]thgckmswuwcjgcuepp[lsfmmxuvmiyyzzxu]yiktaounkhxoqzm +maeefdbswszxotz[sdfwswrwotoblvzk]bqmhwlxmzvjnorn[phhhipunsmqfmormtk]aasvyeqeffypmcop +fhpaqlgiumuampggbha[tktjydzyzgbpqosq]dpqodhygfzmbfku +iotcaohleclcmtwp[zirjcaznbsuwrbbspl]vdyhcyoroztlltnsubz[nmnaakmudmmobxzk]xjxybbzqfoibovwhr[tpzyhrmupmrfoeufsv]nfvtlfdnynqiwrmnmt +bsadpcmsvgfxbpskka[bqcswpjvfijomiajzjv]zjzfrshleucdcwpf[ipqvielmzuykgbs]rsvzmpmpfahujfofx +fvryaokhaacjqgah[epbqswhzewpvaip]cuveezfvkvejvvaizr[hlhatamayfeqllu]ixwqbzzaekbgxkmhzaz +reyvoyklzltgudphp[oxjgegadnwxleogg]ljmtypolhtjwpvs +cbihaubuoteffoyu[svxjexmihzibcqb]jzdqjhmjgugqyur +krpfvdsywmrzxbusjl[juomxpbfboxgvkm]brhpobarqecdmqkiwy +wsbwcjnpzputekmilg[qhdrjrdtwqqaqsymipv]fyrpxnpnbowlhwkcwd[wcxmrmmzlznnrel]oamqtpijleztiuknf +mmjzxbxoyrxkyvdtss[cikixrlteokbezfi]urjcocznnivoqkf[wzqgjmuuvuniccrj]eiarnnhreduakcv +honratmzckbtooiwan[epebkioukueaexbb]xyakukoiqfmtdhvxf +auczawuragikjbyg[xqvricdlkrsbnmjqymq]uwinnxrbwluaanvjyvz +rrpjxhttogyefupw[cidavmfspeeooolb]ucfrrurpkeqltglk[ulptzlfrcvniduqkc]bytebcgtpqkknxpbh +ateymyqwgrjfwemgg[xppbfkjrlnizskzttbw]genvojuvqaudosfm[psnzsxmpjtdbznh]kljgvgkdvezzljte[ovfuojewcuvcqrfdzsk]kmbgrfpjzllvrbmpimu +mrvctdetjidibveb[msvevesuydbqwrytbh]yiliwznzilsslmachk[mqyuthyalilcmdpxz]ctawteeyyrsbncp +xhqazvqcraogaog[efbpamcmboregjesn]vinozerwxjyrytyd[vmzmjnevhaiidnhiuw]nvzsnlixrdzmzvtgfy[veacynylxxfkeep]syokzdwmkkhirrz +swavkosetgudxoshj[fvzlrzpjhrbnbqsccn]hlvbbqalpdfefmaxdse[ekisavmzzlowfwcmqp]hutgwyxxcqjdiso[vraskyhzrfjitpxakqa]rcljjityeqogidyb +hidnzkzjrekzkkqqpj[qvvuzioihfbxhglu]nzlgputvbrvwrchwhzc[rimjeexwqbdnsdn]tfzbpsuttxirwszy +wiubbpcsjjmtbnd[thcllhnafhmdojqr]viplkejozrbrwacv +jaywbjoscfdifdfalf[lvouibjhzbkxdqd]mcxggciwqqirwcyps[ztiybfroldnlieeg]vwnzbrghyfatjsxsvfl[jenhflndcjmgdojv]uyxvsnfigbtgaemccz +uutahwebslojhtl[affybmhohxqavah]xocumtcofvavgdgl[xlypyhazihrgfwllp]ptfnqjlzbaccyoaawi +akdzebybusompcsooz[xgymxdecspvdvkgit]dtnhtzkelcazovecig +jqajvhvbrkrynxg[yekfvwkborakrkfl]bovxzhceonjclmgecgy +ilythgztqwpxktjrpf[igwywudlvdqpqbu]hxmvjverypjvjtk +dbkmmuymxedkowpcws[kxtthcqfurgkuxxx]vkypnrqtmhlsqogt[rtixamexlrydluvxe]nbehtyxipwgvefctyaf[cxtipjkxixrgawvomc]ssvdpknocgugwjxpzpf +fidyxymrgwqpntyg[loqqjfrzmidkxskyfsa]mqilmzklkzhzedf[mitpmedchdhhzxdqpl]roerrhbijrjwmsm[quhrsmqqujwufnm]layxublhkfpoykadvcr +njsjelrfstonstmhq[crcgsmvxndyvyfsjku]yvyrpgjnuimkxcutgvh[gwmbqumupsdfrusp]sbedcqptxzhsohroth[wudivolpxauvxvxbpqk]bnfygsxxzqwxumonnm +ivtobvcmwywqtjkfa[tcfyhhgftbsswpnvbtv]bkuulyhtihhqcckjo[lgnkduoojrzyjhby]uwkeujommiprdopgche +mzrhrvpuyolqlku[rlofuuumtasfuknrasa]tfhglvunxtkafazyehj[hrnjrlpyjntwosogwti]ixtpihfavwqkjnlipmm +jzhfwqxoqsgnrnex[ccrtrnroigtbvrnjeji]bbhfsodufjqhjvplii[mcubmtdgwttmmnazhpt]hovifldmlnbzrwqicaz +hcchhpmerpjppsj[wftljcxoqwtoclz]xihvvfjfhefdkeip[abdthspjojqvwxx]fhffpflinospcczm +vupulseekbaiaoempu[zupmjydxyobqbfmy]xkyopqxvogwcpuwnud[orgnovcpbpqecljkaq]sdvcakqwdmgydeeup +wruccyxbyiexpnka[iirsbfvggokpwli]gztvpqcsckeaiqofwf[zdloxqdlcazkhkppz]jydaafpuoznegyif +lwxqnbbzjlckuji[bzxykmlhlgjosvs]fdocjjmtlhlghzvj[snveavqbuhnzqktmyur]xcoabwwqxexqzakbrh[iqkdvngcdtlhlhudqk]edydfxflcnpzrcjsppt +eokcsyiozfqhcbzffj[uiczyrevovzcgvu]mniuhovkpklhedhx[gbyzowvpnxpemkcrccc]avfhgxxldgtjxuy +rxjbmcovdnxoxrjter[ijiplhrlromkesgs]xwtfawphuvrjimntwvs +uuwjtmgqskgrxrlzt[nqzvntwfmxeptqylma]gbahtqxvunohprsd[strhrrwmxsuoiuvi]nhamfjzlocoufnwbgu[osdxgghdsdkbqcpj]ywmalngfjbjymkz +vsmcjtzwfubhlop[ttbkmxwjonmuscwi]ikjuxrmqhqldtfzqa +oqhkopaodmimgikwcg[biimzvsoczaxfdy]bkcbjbcusyhdpfo[vfnzlymbwetzhbcxz]zyntiiipnkmsjjemxq +hzaeznnipwioicdfa[lperfrgxekbntipyf]mnerflshwywujfsp[nrkcmayjxnxbhuvo]mdxovxksmxlwvkbrdf +cuqqyiwojnwvbybcps[bujmpcuovhebtztm]bektaixvzjpofzb[egiiqzxqdlfwoukjyiw]nqkjlpwevuxeognpnq +ryxoyvavwharlbwzeq[rphqbmnaiykgafsftjs]ijrqxkvnqersvvryz[mevoiitcztvfztorohn]hkchrvkqswjpyay[staoxhiuifnbmxuytlc]fuawdkujedmkpeto +caowivzceqsclbyp[grpcqqthiebrabqwhxv]bzmazhewqmbuhjokm +uhrtxyxnakvjydnroc[fhnjxathwyyxszmo]zzukeuqdhxravrs[zqcltmosvkqcekap]gjartckwucksqzcn[smddsrvnfxqjxya]gkumdkzqxcqxfyhm +ldzhaqlkbxfagur[qvlstlwnkzbmxlxw]reflsfhdsosjaaesps[qajtodlxlfrbdlj]bxytsckpxumuoklw +ghjjrxtnytqatjfxwt[opmvopscrillueslb]zsxtxstrwnyzolxk[lyeeidvaghynwkckr]shhkellgnhsuekrzoc +vpliqrfetzttovx[nkmmjlsskjhnyxh]ayockmlevegaseq[auzorvghfdfuuajnt]poknhujvpctqrrycfun +vzgpmpjvlzbhzhlexp[zheyfmgekvhjsnmosaq]krmficowypbxwbztrn[rvoedtkjlfpxtaot]rxwejzlarsgdlayv +jfrznpvhlbchvre[obxfauzcchgnzksp]fgimlwasdrgqvquis[ewaqnfexmitmuxhqnp]graisawghismkouwfv +nqmcashwuluyxaxcw[fdqovhbtwijgklubmon]dgxewefrjkhrylq[maeguvhvptbgmjdwhxb]dkdmdobhsbyforzmqr +huwexxqnjlofulknxz[qnbpzxlpdlsqrti]sbmmwvryxqsrfzpm[ucizjfqroaflnixzbpr]ndztjtaeahzmkyords +mwlrbdybkjhgorutus[bmbedqpcsxwkganh]ttwjrjrvxsikepdbvgs[qycnjzrbeiiplxarls]atrevpowofauioaof[nlhyhaoljptrowlmyo]hmeaxvwasyaszlgq +tqsmjetgtzmxfgakjqs[cbnxrpnckgcndpcwiae]uavavaewuucokfrm[viufzfvvuiuuehyxcw]nkskrloinkwsoukw +roximfsrbnzyzjmn[bqugwcdliqyzyaqiupv]rpdidncsfgexyncbg[amzmtmqwzipkjfy]fqnscfsjmxjlpoccvfd[bpebfxoinyaqsgjpb]dykidfsbcykdobqe +rcmbmjwgmwathepxunw[uoieoiytmrywrjevift]ourmrqqatqnwmrisyu[bxodgsozbekrcuwf]gkaigbulsjxysdiawg[kczakejsrndvzdirs]ggjgbhegtgijrdz +xtksmozdsgsclsxrfh[afxjsmsjpuqnomb]onqkiyrogyrkykxjr[bhvnrdaenimevcx]snufewjwvfqkafjjzn[cquvjkzxpbfbghmnpwi]wjbdkkloxxgsgnmriw +doruvpwqkvibnww[uslnnvqcrwjlexech]cshujlmmujfjdtjw[pkbasqruzspzipwrqke]yypbzzqwoasgldn +aoxxznvrxfhzwyyq[byxxvystyyrlzvl]jnilbnasrzvgbbhrl +wvtujbbebuyuazangzc[moooepbzqolouuyxij]vhqrubkyyuypknfh[gvfucxhufyyjefei]axvrkaeaqlxxfip[fiazyighxscxhiwydc]acvifmzzltvluos +yzyfibzwjuddaoxc[gpjgkmckxctlttgcdcm]rmjohduchcituck[noozqqxrakiadwu]mipigxbhlbtngtpcpz +zipobscyynjrecng[jeekozoaoyuuqmroisx]tgffoyomlggbyjnnv[mcfybdsenqhygjo]dnzrpghyroqbcje[aoapyvfyscqfzhihddf]vplszbvbycwxqrhb +gcoyyfxpuufglqfsczx[ebjwlqjgtgkqdeike]xtuuxrrbgiwhwqdcyw +mdwjuxoulckloxfujkj[omieaeznetsnkeoroh]ggnwbuenkgeujmap[ghrtxfonaxyhfogpjub]ptyopzxhctssbwlpwy[xmpglsqcnihwzgbgm]yqmqddmugnlrbnqkgci +xeayvddumafiomemh[euwluehznzxvpmzbz]fxcevhwksvwhrvzid[maotzdveeldpyetguj]cixjfwlbbbrrqmnoklo +larctxbpbdnbpqyyz[vzooyuwrgpgtjtq]sgizsbcjteinyxto[jbqzsxejwwgrpcgzwrj]bpwcfwyglhtuxqmy +zbxohuvlboydqvqhhkd[wgcjvlrppivpnxifvk]kmpdiwdtpmrctyhy[pprsqaqxunduprjnjxx]zfbqlbdpmcgfwenem +ghcjhgkmyfejmua[mqsuukbcdvjmdnz]ixxelnebxjrtrdwzlkd[ikojyewznghqksregl]tkthqugytcsdudoggp +hdfwyjganjbjhbjvswz[bfaxlkjfrkakeedg]zrkxyzbozmchfqgz +inmdmdyssqhykuhn[vbjasprzyxaphygdg]ucbbhyvlsjjdqri +zdyejivfbywyaaqljp[sxmtwgwmwbqelhsg]jesgfubnghtsagcu[tofvxzmzzsnywhbx]ibnbzcdhusdiqhgika[sipfigjsngidlzxxneq]bljavpomkpqzrsuuo +uahcmotfanpvzru[opmqbnngxtudnuyc]lsvafzhwwwmoagl[kzpffwsffxozirgyz]lsbjnbzflbiprwuvurf +rzietxnbixgvzxnmzlj[iygcirkrgwwsgpcidzr]bfrwgfeyyatmalyjsl[dweehclvlbefvlcp]qurpnzinmyweipshzs[lgbfgdjhddmtvbzxu]ppxtzzkiizoqqguct +zfsvifntrvbjgdcuc[jjwqwhifqbxeqkbigcl]fmyuetebsksddti[hmopwdnxvmqwqflr]jidndiejmzoutjpkdm +qwnlstjkluchubgkttm[yyndjrkhfqrxuyglebo]xdltobqidrkstozk[shmmslerstluurc]fxkrzqnfjoalxcmssq[bjenpehkwbxpktb]eaallvedtajrnupomva +zxqdqrztephcpieqdi[rigecfyegojksvjmya]rgygzpdzmpvogeurni[odgdyrqmqgrcmhfcu]ggdgejoiritcrdxxu +ezhzkozgllmnompn[sqyilkceizeygqkwot]pdkuklrqdgtgoqap[yvadgqlkffoklshvf]hkgwcnlbadpbiuzvkaz[oozjtyzsxujalkwoo]dhntuiangtulscbzg +zvwmdxzivmtzpkmhnp[qduttqlbrhetmuj]vmykluzepgxxilmn[qgswpbooccvoxlg]ujndjzfubkxmvvdib[yrneuetnuktitut]vvwnzxosnenywomkyj +phuncbfvyiwxfour[oauntpjxaqvwvqn]liffvpoxrbljogpcwvw +usabjelvalpgdyiyn[hywbrqfeqwkizwnxf]ebpcgxloqmzflbeag[dxifrjggqwzokner]ndwzylxxlkdcpbk[kfergfdezgbceby]uscylihvxfbetfnog +afgmwhqdwessspzx[ssbmbckihwjmiaw]zbbiktbhykmehed +hforuldqhrolhqsm[gofgjhapikxnhhdn]xgdarfanlnonwdielb[hvntptxixclnlqphvq]hvvdpsmvsveyaiubt[hiiscphavjogadmj]bbfjdjeecrhhrspxdpq +djtyronibzvtixf[yvofthnckundxfe]eccattkkitxyotbziy[afdaacfefrerytfh]cquizrjfjtqgjozagid[xkbcgazeolbliwp]hukcarrfnjctdycpfb +egwoebxchfxxlrr[hxugiprrlfwmknw]cpmfgzxzakyhumd[evzzvvtjwwzwzywvk]lwcfpjlcgrbjszjvf +hktuhumsttqsgfltrdv[rctkgluikouomerrv]jblnggtkdhveufixx +ejjzogefxwuyadzthjb[ibrhegtzukygkfnziwt]utcbeamzzfkbrmqonlu[yofpkwiuewvtbswaet]zxkgoommtfxezcfcweb +wbauuixpbtjnuos[ozwhlzidaubnfiuiqa]nlkdtbovsytnvjz[ztfjpnzvymrefnt]nixbxdoogrxdvuxbxbr +xadpfckydqkmbvbj[vwdzgyfbjlyslafrp]mbozdmkfztxwailiuv[uttdatknprbzvjvucxh]cqcbkumzxiaqweqfiry +bsdbnkvvlwpezlhc[cdzdiuewblcmciggdgp]halpvjdbnpbdrnkz[ikoyxulwagjnwego]twyvbkffqxasqbomi[ajwtpvliyyssqjex]cfbqtoqqlggpufbfx +qoqtovwkavyaqbkwmd[vxuqdoobfxtanlwd]zklibywcjpksseelw[roqxvvoifjmxnarqvt]zeijltexwykdvpd +obkgwgtfxwjfrepg[slekjheburvgrunuaxf]cnhsvevmitpuwokwee +flulgpwvsikwhpzpza[pmlcfhtmvuiyoidfbfh]czcxxurdakbxizbbfb[blpwjusbzbdwugwbcv]vltmmzttxuhooid[hlbpbqjpqyclebkye]hgozvhgdplllxiio +oupstawbevsasbhv[ddvybaqnhfckfvdgabz]nooqiufueyoflccqzc[jyljuydjddholsx]bbejlommzienlhz[mpbmppjwfqrgucxdqxx]sjohlscgjoprsqt +augjtgfyoatluixgc[atdsbsouunywohfnk]dpghgakdvfscbapsm[nkodybopavlbeikalqj]myhpkcbsbkbjfgj +whzlsgvuspnzdunurbg[cypfmgrkqjeppudbdy]civtfkixnmrkqmchhg[ypyakrsygkyvmfmmyf]blihjslfkbrysntsl +xeyyjiqvduxcflt[xiqxiqeepbpkkydtzxs]vbpbdsaivyavnfwj[rduzjulshqiluheud]inliammiyxregzbsrkt +txvixsvhvmxxsomvo[hgdskyjskapgvyiqzsz]shvhmfrbpxbndsx[plvytalszauhmpkr]jyujmokrvxwmanzbxbi[mefmngrdhatojkpplcv]dttxfesvavgpkbtpri +pproajkxqwedocrc[muhbyboayoghprmbtxs]odroemzznotffsaxsmg[ykfnecchdltzosnyby]nozuvokzntxrnitq +rqimalibychumvzdq[siqhwfjimixscjmne]hkvxsavgjvpzkyay[nzbxnmxgmyuwcywvd]qkuzrfifsyvonaalxu +rymadifucrlickzorqr[phxxuxpffvnjgofl]zqfbhfmzbvhbmask +gzuklpopfcjdrxoekz[lwviuuoyojzggqjs]cyacdnvkgqqafcyprae[iyazavdiashvzwpgip]sztafbunqsyjtpz[fkwjsbllccbrrdpa]dijejdfyzqycvrdkl +nhmayligrdtlvyeo[laulduejrclodvnaoh]frxoepqtmqdzwwupiy +exzcpmjdjiagpvsvin[aontczoixbznfwsvss]hdlmrrdtbumlfvril[gcuizdwjbzyhttw]apadljkbcsylwgekv +pujkeovpnvnleypqz[ecxuhbtnrlnzojsxs]eyolbkoatzbwvnvwxlx +oefowwmlhqytnxaec[rdbjjilbmiazndcycr]dvjwgldyxfrzicw[fxpbshhafqifvyju]ygagsxtxwnsphgzqrpv +lhbebfasigqbhndgsux[drchunjaqzkcmefjys]nzloazwftxoemnmifox[gjpmyydbftxggnggadd]onlcnitfjniiekbiaz[swjdwdaikyykupgyg]ltwxeordcvjfarrhx +ukvzfltucnovohjidr[apslrphaneessxbpdx]cxrovjkruohahxshazw +xnsrwrjioindnxhxrrn[mvuraryghmwxppnlp]mconcxeyryuvfqcoy +opafehetqedyikso[vjnjwsjlbiknomzuu]pjurldelcuxkdlhehm +kvpcbopojkvzykdhm[ldleeqmztdnrohjm]vejwyvzvekairyhc +yrbrakwltaduyge[qwvsxbxwiretxirlsbt]hdnwansdelcvxptiou[uhibherodkibtww]aphfcrfnpewbrblyme[lfwjpxyosiappsd]rshmipxgjvorazj +tsymbomuywfpmdul[wgulyfhhwodplfi]xixmazxgewasngsv +ktywwprbuvuhmnpwfoa[fcuicnujrweusdoe]fuarbahbvkhqjibcfp +snhkrkibygzndryeblm[pykdztwnxrawqbevu]wwiwrwfcwtirdkjh +xhomjlsunzjzgkxc[qyxzsooayiqnuzljj]jftgbnqtumwipywdfrp +mhfgzwlocsrhbfkdbud[kwtnglxzzdwqcfw]ezvrdgdyjjqfwuv[abznvdwgiisyqjxvu]khcfgchqbgwflioa[upibqontzrahabnpi]tgjaagwvmqewmfyer +yfptdfhnebzhgpzism[tglibrfrnpfmydwbea]mmoqveuvvenorhnrw +ljztcdworsemcoe[yloilpxuumxdzzxl]dyawqaacdnjlttcz[dxyytbozmlibkocr]dxpindavjlezzpogz +bwkhzerttqexrgoea[ubnuzbvktcxsxednmu]zqjpbtbzdcfmidopdy[malphrsrebpeeuw]vwdlaafkntcaqmwjqc[abciktgfeaiptay]yqksuqwsuqtckkoyh +filqrpdsqqfgkcu[obiciozcvbatglnx]sjzgtjuddnazrzfcju[svrswvhpfraptqsxolt]nfcphmwaudhrnxkzc[ysohuzukkfqlskgkd]nynxljuswasofiaarc +desdobciyiqsycj[wzvqcbwfbneahei]svofzhyvvsrwasvvg[igvhymbudpcrdgjwv]qtyrjtghnbbtekl +fygnlyiuxapyciwwnbw[fhwxcrwprlaoiybnkbe]fxvtiehvhfgfwtsdfh[mreawqbzyvkbcnkyftm]rryknthocegscrdtbcw[ktbeedxfulszfogwnqi]kqwtzaemzwmsloi +zxroedxtywemimrje[fvzlxeqgczajhimr]lrhvziwtgglifto[buxquosscraxroklx]pryldzimioibwliygt[yvmeeklmyokbgexl]oqezpvcwnctcbskefas +dcowzgprrgvczwfx[zminxdmdflugwkkkk]vfoltgijbqlhjdohr +vtrfdkwipegmqbwrvo[kshaxjtaiuyicufl]zfkbjdxhihqmtjco +djidszgreaxdweqjk[rdjzkbmqtyolitmqhf]plltubpvwojnccsygfy[mewadohjaliobsdwezu]vmrkkqgbtfmwemn[erlreifagjhqavlxxh]yplrasxtqcyowlci +ctautcpnnufupce[qtydhgcjjqofrfay]lfahmjfjyppehyp[qzaxqkpopvwzqofe]rkcqkjpgptshvoucer[qmczzorygyrwbxiji]zljzfavjmwawfrfr +mwmkedorswoukdumznq[hdujfmdkyiznceknql]wgvbskjuuwmwrsvca +sdvjnkxypkzbwaam[jrjyjxcfvipcsfv]hqpkybfiuthhszpey[cxzhyjyccoulowr]bwjcdjlwidvcfkguaud +wfvvroenfriclccedd[aqkoeakjbakjprhnj]ytucldefderfpqaibsn[gjukmqtaxbygrygukiy]xfreqhtftbfsvsjstda +gmqthnogaadlkycgrv[qrgjpxucfcnthziuqmc]fqlchcfytukeoho +muwfuurxmlzrcgij[ifojpmgnfufvhbmmeu]ezcruchallsnspos[bwlnhfxtqvwcdjo]lnfuojduqnrbdyk[jhfihfozzosipwsyk]akukjehglqpancmiy +ultbxqkpivdepjvze[flhbwrxncynirgxwt]twqbnqiaivfwlqorpa +izvobuuojtimkzlsak[moodohlaudrwsto]cxjybpccizkmeau[dqaajcusqoaatpbojuh]pxlzqhwqdgetmjcm[jmjesiihxrtbmgwkcck]ywajslefzjxwyfivv +ymymmfpvyiyegjw[auyhltgyvzodazgd]twjkvzwomymmrhfthwc +romqbwenzvevhyq[ewpxvrduvqewryaoct]wxgowmsdxrxjnyj[obazseiipwfmbyxhkdv]gjalmcoqrquvdnmzacu[abzkksqdcduhkizuzxs]uzuazfdegdfqjmmr +frvysxhaafihjpza[uuwayzhynhgliyxcc]vdcjfobjuqddqibjef[iusgoufujvqkfjt]cejktzeuphymtswrxj[nthrscqmjniokzsq]tnsfuflhwdkvsrlm +rrybzahzqjlsnrf[aexlsirbdpwkrfhms]ftuaymthroqwnjlhwv[gugocacufksbdyqsfwn]ptivpdoxkvpbwaohlfr +ikdnaifadlcqtyfpq[ftwtatuewtwyxevw]klpnngjlhfuuwykwbqh +jcjepxytivozlscfk[pdosptbukdrtforgvxk]wdghlnuxqjdaztviyiz[mqtajavotnicuxco]vovuvrvnwoedhflabai +yaiokdeleeowglfd[qzhtllekpxcjvig]ohtsvsylelaafkxk +qkopuespenokczipnz[qmncizyvbxioknj]piygfwazneqkamiq[oebzwpkixhbywqc]tglnlkwhricqqzzbkuo[azpshyiwubdevjojg]fqlqjwtirppkilhplu +wpjdzojjjgthuvhs[ttvkvkootolwcilow]lvilrilboatpxwa +sqcunkrlvqeapsseomh[hcaleossxxtjalzts]dwokbxvvtiocokk[ziimvyrfcpcagbchp]lqsdomcpacsejdzcxw[tpekrtncgabhvirc]nqguzphabzalcgqjbmw +lchsqkntfaymwss[glcnjoqtmlubbldwxb]repxhlvahfruswno +gvwpylwrbvedenl[bsexdkrwujurnrhirju]eskvbigiwdmjthvhrw +uumyugkrepjyfna[clcqpswhmttsgtrnh]wnfqshojhbnuvkblcjh +hcwvxdxtuptlajr[svvedookmmgybok]dgfqpjqcewcjwqcw[rtkptmdbzfeqcyiha]xjnmaukpdrlznfxvfl[phdpcpgmzzlbeplqeyp]xfxopckbwdpteui +mxlmvngjychkbdad[nprwbbiggpyhrgjnox]kkkrpnnokeecsxwtfp[mscljzerlkqzmxsghg]mvwiwebrwurrppqw +bdgrunylqufybegh[hwkqigrllagcnatuzqe]tfooqltcwxznzoaot[hvdskwgtazfkqlbbbk]zlqphymjvcvgybaxo[uvougcsxvyieite]lryismkbwdzxmprwjmu +mtrggduulofkvbdmqj[oijictmaujkaxedjfm]kvriyuoautahkfmt +ljywcelytwxtjojhn[iopmxuupcuvfcgubem]alcwlvcmjgwoksp +ybgcqoheatckeypwgq[szypqmipvcfzxbl]obblmhvzjoiinqd[kvoyilelwmylaezhow]fforcawucbchzbjlrmu +txgcosxcdgywyfhgjm[etzfxsiksioqtrir]czbkwziihsrtlceuaj[ksksgvozuazlcgqcy]tcottzfkvhsmrsyvf +iggzhhbedhayxftelth[qznllaqmnrogfmdtbx]ualmvsfjwntzbzd +dfeuwphubioymbzuwo[tucongmmrqerhidwq]tjzrtrfhgixyspdsl[tygroajgdzxudheh]oumnugqbzgyilbrth[ejcdurppfugoluctx]rtxzchnbmwvfewg +kyzwhtfybawdrjkvoyl[fzrhzpdsmtmmmvuu]fgbiqggdekddtlpzvzh +irtlqtjyzstyynjfjt[zrlqdodytcoqczaib]brhvezqcuycqmta[uaofbaluqnucifngqd]eeprilhhysftrhp[zmdzijhtuxhysuaye]bqokznpdffiubikgf +nsrehcsbptmpdeskqi[rpcpoctimqyccgnpnfp]peakqjqlahqkqfgoc[irckfbpvcdodsmwm]oxnqnxhwmwflazjv +iuanxnzepawwipojp[bzoxbyrugitmuiutg]wtsagitdstugmsssbc[dvxwzoncffczplwcaw]gifhatzuqdvuwnupmja[wncssuyvhyawbmfpbdv]faluhtnnnvuiwbbudh +fpedlxzxifcuqmvxm[vrfcejeyfkhegliplkr]giqaenxejvscrlxbg[qctzkslosctnoamy]qyjmeunfiiuoxsid[xpbjwjejckcavehej]txgqklgnzqdtimmiqwc +iwkrzpmhsunofgrddx[ecssnqrcjyhmsfh]yrmuqswzgcbxnaa +lacpahmmufjghzen[zkbpbownspfqxnclzk]yjnyyjnabyhsrggji +vgxbpddjqotuvzbakan[vnagjxrcehlhbxwdw]kxuenaclhrihntgwjq[bgqywyrrhjzjqdnu]eirujssxedivdmvlsby +tsqxgzovbjzlwpcbv[rgaywjaothmsswcdrtp]owwnjohtsgegsgtah +xzxejmuyfhjmgoxfl[hyafuepnewepjpy]lbdbsoxevfzdpnwpfk +moucalsxxvhjiyoceol[gwxofnqdrtxzusk]qjosxisditclyvucbm +bjgdyrlrhtkbqrjohwj[gcmcelqjvjadxqnj]tlupekhzidsrscrf[oqadjqqatohbjwxrneo]ykhccsunlyamcmmk +vgihvcltopalggrjzsv[hmrksbhlxuzvtbnuss]yqpcbwauqeduyse[oojtsldylgtokmdwsy]intpovuqazkybvjim[qbqspjlovnizurecdj]fkxluehqgdogxdofnq +mhwhttcwzcntsbufi[afretswhwxhwkptb]srrajfoeahmhecarmu[wgjragqlbpfbfpd]epytkbjxmblfnkwhlhe +dgpphmjzkoobitcjyoo[nzkzbsfktzftpmgwdcd]nbezurwvzkhwskfq +epuokjzxtxphttxtkz[xcyaposdqcfkcxhncz]hcupnojktsvxrfwlyv +xfoshshomwdgssxla[uhshvhbfofuhdsqk]zbzynuiyfagqpemuplr +hycladrjbjuyieejeg[ajsfbpoakutelvhdak]hjejfrmmzslupsepozu +ksputfunecibpffwovl[xteycruesicuhzai]sqpunyzatnromjeq[xlzamstzzisboayh]gzlnqcjacsbkkmgzi[aonbwutxuesczgwnr]aflrcbdkkgoyumfakb +gjgmaueywnbqdvgf[tpheftnkpnlyujv]tvnqzdugoyjybxfpx[lnhefqkhesyicqqgvai]dvdgtlsayhtscupgikg[fyjgjzcrucldwdd]ohlycgvvdatuyvduhuo +emkefdmyurledfdd[dxzytfxcsdxgjcwxjzb]rqwwzvnosuhkcplv +fpmhvozxaaxsyxcpx[yohzimahvewgvzucn]ztkenzkvcryyrmo[drnglpsvnlefqhx]clawabytpjiwgqflfbv[xvqqglnkzkxlevq]dhpydxfqbclvcjtdcn +itvuciuufdkcgdqgo[mgwnpeydayczlvjegm]jyrwfakomakilgvhd[mslududkqwtcsojaosn]dssdnwxzapuchnxz +twopcscmaiqhzsepel[qhydrqfqwvjjvinlq]tfmaoxgmccymtrbecjk[zkuwqiccdgoubccjoc]pepwccwqlxzlvuhb +dingttjebuuxtxrxt[jmgffmivzzxvgvefk]bqxyaoqiukfungsvu[sidxinaokekzqpqz]hekuuswyvznavhuvk[lnmhqeaujpofmdzub]vcufrufbmgwvdwksqn +mlgkvlqtkpwzcjbrr[yzhdcawedycuwdw]ncjgthabbqmeuji +oqybrhgapxiiaxihexa[gerjxleappelousidd]dblyflqmoarwpne[enariawxfzzpeqdvj]lgjzpkhkrumhvap[rtcetzkiztcmyyjzs]adjuxkqsxrlyjgf +hqxmuovloocgcgjlajv[hjbhghstuvarcwhfy]wldxggmqrrhiwdc +yelxlqwqeiqqwwaitp[uservmlohjixnqtl]cocskteueenenkfmy[ehpleyhokmlzslrdlh]lyvwccjeqrqiofplw[pcsjxogpwmbhrpvvn]ncmxjsoxflyiderh +znmujbypnozpjpkqii[iydnrowiwhgazihmxxp]lvehdleutcqbwwan +lympkckqyhgbaumc[oodkeqjyhckceptyqui]ejkkqbitfscazcx +sxvzcdelbmcqawvour[jgrjmuzvknqddwawl]cfdxxgxsviiyckx +nrsjamicxprsigw[iywcxzvebsemowpdmn]tbmisagklgwliuuin[ztbbbdtyfonwumpl]cjmddkvsaxzaszisyy +tllvdxtvmesnmauwk[qaomhmguwvmsjbwrwz]gvzyhjymfhmheexe +jqiffwykdbqbfcz[nzzfstvzsrtshctbwt]uazcksxgiyuwlkbde[nvsnfriumhwznjfdual]beqjfgyanriagjl[mkwaqdkmtnrzfpszb]mrqgyvqvyqabnugoc +kyvjsbdoorblnmy[wxackciwbnwvsggfoxe]pbufyorljghrayitwnf[orktaokqgpeenjyk]xdldvupmoyqwylb[aljdjuvxqagigdbti]erzojwkjcoxvuztbqw +zuceocflmwjxczrua[gpdqtptmhzmrumm]lvmswwevpotdyrrztzl[pkzxcpcqxpbfmznn]zoaxhfddhvfzxmdreww[roilsmnfdmogsvyyr]inqfvvkesrzgzwsnwya +lihowzmdtujxkokt[czwvzrilryxqxqm]appqwnbyvtxjysxkh[wpjuzvceldxgvsx]hkyptytryliycwhpbkk +ccyquivxwnsmzvurzl[gatwkzfmiuzvlxqqyy]twruqhcerhppziydvey +kfmpvuwkfbczuahpr[uhtwcsydtbjjfcyu]mltkvudoyovjipwmptv +yzuinluayrwqgezu[qbeujtuehlcqhbz]qwvclzkjxuficbgqv[qrzlculckkjhunba]gemnanesaovxzxatvm +ytnrkypitsppgols[boldlbadecdiaeyp]miwxcsnjabbmlfz[nmfvanenygvwqmgpiei]dqwnubvfbwzdptj[ormimocwondmsyrk]eptdchejhezxzpqimj +bpvimxocqygiyfak[kocimiojschpxlmlbh]oeohxkrlnaramquwz[mvodjkrtgwsyshboxo]jmxqxvydlieugen[qsqvwfzcowdvxzeflfz]eoysyaomzucvprpm +uhanxfxnxmoedczj[pjqlsouqdhqhforcuk]wgqlbagmjmtimaewh[qlnvfdicashjzjjmmwe]wrtbmpniixypmei[hnikhifbzacymvga]cueedmtiokuuauro +rmwtcdtidmhhqvlooj[ibfeikfmamtpxld]tvqxdwcislwdijaa[znpzxccexnnkerzseb]cvyteeonwbckvkmw +xtrkdnwsvlqfpzb[fyqeealbxbpjxohdssv]eomkcxpzhdzzchmg[rszbjedcqvxmotecne]arebcunvopesercpsif +wpmgxfiikbeczkih[cjfseyjqbnprrzrc]vmofgvrwxiitjsy[cdbplfeqqrpvyoguuqp]gicntinbexxdcom[bhrrykkursqvyepyy]lhpnuchjkxczxxvqp +qnaldysjxpygshfd[ggbsrjqdcbppktpfk]rfapyzecbxeoluhop[njlupwxmsxpopefrwl]xhmjoasimqrdlgjwm +acajjiclnscuxdsyxv[axykpgkepnjhrhfgqvr]slbbdyluiqetchbrhrm +ryolywtcfhaxzpu[cihbqzqvoqwayjwqtx]cpnraqtbqozlcrvoxn[ippcsfxvbyrodbacgmg]gfmqhdjmgnfisex +etevnoklfebubfa[kjvpcomfcdacfhthi]nfqsxiilqrwqianlsex[ugqfrpggyrmumjf]utvcyluzwmzjygnta +tvqkpekrujjfpzlot[kgoaglxyitdkwjmf]mlihujxyrtwfmzup +ktqkqvqxohypotivf[nsytklzqsdqgtjsrved]beidsrlrqlaaykv[bhalrlzjhvbdtjcmig]awjesirwjnmfjdslc +axgwliaxadkosbsp[hpschybkdbrmhmm]sslipdgrubjiifxzze[sptnagunoyiasvcunvg]fywdxjoeyzvwrpinmf +rhpxrkwvbmiuoks[ynxkvorcjpyldmigt]juvdfreyownzxciopxa +qlmnvnzbswfkadrm[gvgyozcjgthimuxze]ewpsviwopsrqszjq[odmqbtcagnixpgasn]cywfvmbtfcixzjmyue[ekxllezjdqxkqfxkflf]smxhvcoojkrwvuiv +mrjroyadyadcyppfliq[xunpwmmutvwiewlkyye]ppcjwembftkaakdig[fycllhoijmljdas]ghnbcqzccvagpgplb[eafwmpftuwwwoln]qbxjdgsbyahqkxqzrlv +fzfcqlltfzjujqeym[jeaiiecptdpgfsfccuc]sfsekysmcjtdxjc +jjynfbiotihgcbrojww[vrxthptqnzbjegjxzru]yethaiycpixaqfb[bplbbjoveuznxlgvooa]izorgiwsvfgporxo[lnktkblkgpenjuqu]hsizqsxbuadccikdw +qgqbnxfvfobowmipa[pgiycstlgkcvsbi]nuvfvhbouoykamjuttp +evroxuhzulkndbn[lfllzavhyovpvvcvg]kihcrzllseowjwezs[vpvpwqtlbykudupl]qrmhrwziizlifhb +zgnewkpulzskmghubbx[matncbjczcjofajeilk]gimvlsfgxcdovxelxsu +zgznxyobzrrgfnipxlx[gsazrixylwsicyquamn]isxlagxgkbtgrbjknn[qxjewpiicycnpta]tghqdldoiwdennnuha[wpwsawddkuxonmxv]bmkekmujdpmibjrg +geeoheswegiuwrrmii[hbthbiwayyxkftmbayn]olgnlfwlixhqjgjvgsr +crxkwxwfcdjitekzrdm[duvbsycafjsvivy]ysrnkudiueyakhpydv[totferyeflbkxuz]nyrvffrgktfpmwsmaig +shfruolertwzhwvfv[oaeslwnysponjvpne]lzvqqieleintnev[jdhnbbkdwzksbijpsle]svtrwqftbwtkzzixrlf[wzxzoplqpcybbhhfz]klsezcnzpvgvbxqeedp +rodljmmftzgdnxxcufa[jgqmtuwqkermnrimyb]uouynscrkxdkjhrz[hpihpdzqgzcmawkdsw]dlvcgdmdmupcmuduu[xyjvfzjaypcbbeettvr]pnqhcmdgguswinpxmqo +yrcxqglagiyyhpt[fudlgwwllpsimkfp]esvhuezhtkwulzmut +qwiwjsxdiblovdjx[evezbqlggluydkth]xtoftegxpmgjsgn[dygxbbfgcnrlaebugya]jvcmiigduerloizkyzq[oyfqcvstibjtqcknk]sdykrdksunkdurm +mlublposwxvdmcasb[mmvoctlqinqyogj]lblnmvdegbddxjuuij[vlkyfhcwrywyksv]epprdwoppwnazhbfxs +xidpschespoxuwka[lifyliiagwhtynahwr]mophvutwbflkblhzp[ngfdfvwwlfuyujsy]pqgdfdrrwonjcsxyb[txlrkdplwmwanoxhveq]sirdziimdysnzdrzt +khglmzmqqlgtsoyuyk[ckwowqtfatmitmx]cqsnmpgwitnlycvr[hcjwrehoqrluifbx]dvorwhvznwutwctl +lsjtzcpwlhruhcyvu[ppankbohskraacy]xriyjykeufmypvpcg[khfkqffqnnzsskbvi]exldjyjnsnxqgfxg +cwilddndcerivvgcot[pwnjzedgzbwjhwdngiv]budzscutbkzehgi[swgapyqpuwuqitke]aihrettehkbulnndniz[ladvxuqplmfxnwm]zovkncitewbtnxao +nwkbypvbwxrhjccd[tzjkzmgvioaqorgsan]bghmwniqqnnugulkcq[devmzttwdxjayueapxz]pigrhvuthflwfvyghl +zxoysnouzggrhhygrn[wvovlnwttrpgnub]tflqcvvfrhwiikpfp[fmvlpmktaybiodqon]sawjgpmqugnvancar +sfhshdpjhpscqgmcx[elzcuconpnmipksf]qebfhzrzjddpkrwy[mtpfmfwynqlzlcavdjx]olgxbalbprtdnjl +ribazjlrsqqorxkipi[rkwdafpcbgzcvveipl]jtutooefoewtkwcolek[pddkdpvzyumbkuci]qyeuvqqxiqrwuzygf +eobvoofynuxzuaudo[icwrahzvyvejahwlbq]ewwnptijkewsppx[bmqxtgqmosyeyhcbsvv]ojsamjjroupnfxbygrm[yqqusonrkvfmwpiwo]nueolsbydgeyemas +vdmbxyiptwawwgfxzh[kmxqzdwjfyspqkptz]hkkuurdkmfzivckdwp[ncwldxetviygsqga]oxlfsqrbntyltzp +gewjydarttmsjtqn[zxbhrkxlalwtmmrgfag]ouqpvnvhrcsyaepju +iogmaqbbnpknpihgdzr[xddekzhpwasgjya]qvqeqqyfgmcjqlljhn[yqwhbjjgtlspllovxu]yzvhuxwuqjnqqwu[mnqqonpvybsaxob]emyjayuxxbvtumvsc +ompsdhuyibxinkeelcw[vcyphnznqaeqzcdm]iqpgmmktiakqfpiejnm +ciowlwsiatdaewieita[sjaasprpfvlolpah]bpeqtpttkceukaef[rprweenazfnwtmfqh]wedhtjlhyntjrqw[hyrqbnvfdzilazmclcl]cnzbapdwalrxcbd +duvtrfezztrbcbrpkwm[vtrqvfcxuueqcpbx]xmjukrhgfutvtcyd[ptqlpgejdqamrwxxbl]aavkmmqbqdkxyuwpllb[cvtooqdwzcluidljfni]pohomwwnjxhohmv +ieozeqgyrtjpfix[opyearfnbegqcgjqve]ljeerzciyhyvukdifu +awjmnojyjmqatcnnr[hdggsjlyjznqadyuwg]gvkbbwfvbtwwfjjnpa +dvtdsunzfozfzmgbost[cvhhdpznusqmedy]ayllrpvroikxhxetks +jyyboehdjvkufzixpf[ijsadnufldjduipx]zmcubrihovbjtdych[vtmkafgmqunhknoqttz]amdwppzqbnylhsi +gblfvnsmtqowxewqrzx[kzyxibskmbrkunl]nqajypwcmviecsn[fvewudrwzvqashspitb]docgbflbdpnxxtin +evhfjidivoswuxhsbd[wmxbybthkqklvtfekms]xnnifuivlakbrvkfaau[upixryknmsroqfh]tfaezdhmvigabvwfgt +dvdsnwpipghloop[diwimibgyehecqflqtd]tnfzbffdhkvhfsbhq[rtmprhoebqdxppae]gczergujhbzsgdxupd[ezswzkaawaqhjcdgfl]jgwotzkgibphpas +oyuvlfvippqkkfxsgsi[jkfszneoxbhkxlorzz]rmotcrnupuzltlqurcv +olonicnsustzovmd[kkmgnznlwjgwkkytz]usukziqukpwigcfvxw[uveqyxukqkusxuz]aqojtdccmpwlluelsyf[clqnppgmfzwrtlfh]obgkzmtyhlcounaf +bgntejhmisbzfrblik[nitcxhpegfmqugmlw]rcwxgxofqbishzhq[jyzbrgwyikdrbof]gdxdwgpsfmmqejfyodp +suumjpqhafxvgmgdokb[lmpsinjodlukkfk]jhehvjrbweyoeivfzt[ricjsiwyhcomnsgltrs]iysygfjrdfebsny[irlxudmuuykkcxj]wndlninlcnixabgs +xusauuaaldibtqcyn[hvjidaemmzaurmyyk]qxooscxoynakekchbj +xilzzdiyoqrwzcnwklx[jzmgqccfobvufhdfgha]lzkfzklxafmroamh[xxdzjoeflrhqibidync]kuodqrpntknogybhh +zfogxhqdfspdmvxtuwp[fshligclkdavscty]tkvaozljxenzeoj[txujxbzywfgqkyfrjh]fwwjvdiaceuyumeqscq +iqqislvjgveszvnb[qbfceykxhcelnwes]mgbeubhjgaydsrrps +unvvlzfszuuztae[ytbzbzacrvxlksvk]aeaoeugpmkydbixbmv[nzznffshspwmlkqig]hwamlnoeyfmzhrxmbi +eyrqyerdzuptlwfz[pgehfansstewngd]vdlfglsqchelite +irwhlxxczsizolo[mgrotoelpfspnben]xuboaosbbqvskeooh +mvvsstnbgtaripcmiv[lqhlubezzcqsqoh]ofqbajkawszexqw[pytqrosnsskcgmno]ceyhqvutvgwawrao +aehuceoazqppxdvj[fekwbrgjolkkssozjr]ovwtwkvvxtwlatlhc[anrzzudeipqtlgvtibj]djkyozdjetkxaxrg +qdkosvyshtjamlw[nvupkgnksmlfyivlaqz]vzjxmxzwetvndab[rjtknjbarestnsqar]emeeqkvpkwwwbpbyho[fxsxkmlskjyvniynt]yxdwuxqranfmwae +mpkajmbuiqyysjiqxg[gmhxmogelodamttt]aboupdcqcaggrmjwo[uqmzyshqeruzquxxez]agzfrbsajxlgzgfueb[dxxqiqrjkpgalcp]qcqyeyosztojwikdqo +cwzcxuvjuongdoellki[pqzhljdqxosuhdgqc]qqxxrckatnjwvmdjvty[qdlnrwhhbeldxrirock]kzsfmkvvjexhibpjfpv +xqxcttuxwhriomnnarc[hrkxvrjviqxxeih]ofnkwkzmwkwfbflu[bsjloysawmfoigzrsa]kjajcjknclhkjofvh[jtocrkwufebomaervq]hawuelpfzimwdnxens +axhzhgcgbqdeauomnjz[hbuvuiuidkykmvbd]yjddakntyygztrc[mgxbjwjbkzwnkybcgch]orbyhhpqxylsrzu[mygxsbzjoicfneimx]jddqvyyavgguqlqk +sstrdkfdyahmpmolvuh[nuhocbdkubnidqy]fnhfqdyorbtzefo +youjjtvznztbjozve[vcsiywlpdylxwpg]saiwvtogtdayorhni[bcbwjvcnlvrcqbeexf]cxmaphpnniedclqd[ilghtvdoebmgoykzmjc]gqxcmtfqougbpixu +jypsrripwfsirlizywh[qwqvrrfaltcifzgrzk]urwxtgxsivdxexc[hxqqrmnggugvdgdcle]sirkwolflgudrrwfvnr +jczbvdpvkmrklaxdh[iqwzvnjtjhmulvo]amkhoscjxrxkvtrlm[nlvnfnszosucrhvafm]dpkerwgcehqnmxmny[xabxqyrisiuhudad]egbjvaumucthookv +shephwsolmshfqhuslh[iqeoxejhscbjknjkgk]ytigxjcdexjgptz[mdcfmxfkyxnaaoixuv]ltysxdcxashhzrhfzcg[jrjzihjbmjzwwikgrj]zkrlixaauhydpmvpggc +hdwtqxvelsuakiujcgb[vrzoeqcoqwpdvdxrly]fieebtoboyeztrohbz[unoqhtonsyzptmpgo]bxsxkyquwwdwyhpxcan +wbxdrndbjpmgdewnt[hnmfgladivxjjrhgx]hhwhdeyhnhtngzasnm[eanqualmsluacqejow]wtycyvqujeitvrvtkhk[vfabcjjiloownkmsa]xqjgahkglpsjfcryzv +psxpjyoleoctcjgpwvw[qkiussudbvamcbw]hbauvxvnrwhyupg[jbuclksbbwmdnddkn]phqrldjcwlixcghiau +oeiqnisrrknnuqczk[qhtdnexhjbgdaplymaj]fqqywiecdftfcpfnkrd[lvlesddgirngtuo]mfvvfvlufkoqwpwl[hljsgiuexvjatvztcp]ixguvozijkebslzjaco +dktnilosvtkmvltdwd[vznigqxsgvlquhbquk]uinsbypzarhkgsgce +ljjdiiuiikwufjnnvjm[xjbujiikgaghrijcbsc]escofoimfyedoist[ltrrqmdcekykivhaz]xdiijidhpxdgqbtxue +lfwumqctskgwsfvhl[sgtnklskhazwypsys]bvjxbzrabgfrvyvyv[rlityjbenmcoigrfmfh]wczyjwqulaqxapozcnz[uqbunpfwhfrvgqcozw]ktvibesxhbrooqt +ammvknbggljpkwpr[vnrtrxiwcitskywiw]ubyickjafcfifgupssy[cbkzhebhjtdbsgct]cgefqdgpdpcjlzrz +wzpaqedqkmltsuij[jjuasmpwngjrynzettu]dtmgfvwtyxdfqce[usljscrncmnvrbb]tnevcveidnyskzs[ttmnmxqodycaikjio]qfhvrqvqpgjhkaaicj +apdywyijusgxzfj[sgbhrwbwywwisyg]ssiiosnfconncgiy +grownnednjxvuew[iniatygttcdaelocols]iyzwgdboxuadbrbooe[tojrecocburpdzi]oelyopkilwnsejur +hfdpohrtqqyfntpfk[trpnstnxymqupxjri]lheljryczqxgvqip +iielceqagqfksuqpzr[ollobpkbzanfxcjuhrz]jnxizyaoygzbzciu +njpftdmpmkjwcngeot[mocqjgcycgznvcqjv]aixpwfggjyqyemoz[fmklzletfvqdyvvg]mznoxpgwowvjjmus[prrehzdyfwwuxvhl]hqppujbqaizlzvv +vbjenrifdqsyzlwga[wmjenjnqufhqohvgc]uhrzouilmqjnjigwpa +vwooqueyzrusban[gjwcwiagfwpvrct]vfqlgxbhucjhvobi[bkbtechiapvschnh]vjzryzyisyzyzewdy +udumujkujngtkcfv[klinhdudyghspdsga]gxavvcsxqxvaziqrmsm[htseffbehxafyhoars]ghilivgeuuzjlmih[vtjpcrmvldjluqdazun]mebwzbxywmrfhet +cwkfdzyxoayxukcgdv[wamyytyfmfaucrko]dchdvtpdkeonmdqc +zklwcknfrvlblaamoo[ndrnobufquyjknl]dnxgeqvqwezfwky +zbqgtpvsqcteltrs[uwrmlyjkcidsfdpx]cgaobtbuuntwyuhxmjx +lbbyafbvhsilwmjivv[fkftqvaahnrokuhu]dvgaejsxgjuwiemu[yqopsyejqtvmlfxm]gzuulybydsrzhigldh +ficlcqjefsddeds[kfkmusacvnqualtppxh]drbsbqefpdoossbkyng[uvpyqnoidjnssjobt]gsheeufqtzrdsil[jbvevjzeugpmopo]nrgxwajuatycddzwr +xnhrhgadoziectoigmf[jwudbvxzwdfuubhjlt]lupnypmntyrvwqzlb[vvfvttkizuxshnhhw]lfdrjokdrbrcldjfs[wawjpqzozodmnmah]vdbjaoofkmhkjbphx +fsymutmdbqyguwut[qvxhywjtposhjgwuhxg]ftwhtxqxeicsrlfye +fglgkrjwulmkxbzolgn[vurpqcvuydmympiyofl]nbzudjasxeknjid +nbtrkgsywnudokk[vurfuvkjdvnsukh]vkmqsmcrotppqorkah +iqccpqvhiesnaohkhao[xykqfbmojjnscqhdv]aqlxkvudzlrncmpy +dtlwnznjqsixssrsaii[vkikcmtsepgtyqhica]ovcpoaucnwravbozsg +nobwzchgrycgkxc[tqoxhzxeorivdtdkde]ctdtkwzsvuxfgjtjg +zsknnbedctklyuxngn[jjzvkixpfmskcagh]fkvhsfuckghltyqk[hmygppkjpcdicxw]mnurqampwwoiiynr[jbkvqeqrhnksizlssff]xhkxiwlzgvjdfakjg +gqbxrvghncjdllxtge[bjuwjsvewzvrgcujf]tkrdrbempmwqujk[pmbtbgbrgzpxeoqsxw]nfvaaumgpjysgtvk +clfcvnwzcbfaqaj[prmpnpjwklodeukzznp]zukpytpqzgmlbvidv[qhfrkjlsbsqufgnet]pfhfcxzeiowmgiyksj +vogrpuzrevmatdbqqx[qolpybjnetsxcqfcvbc]ixxogojluwsdsldl[bztslfanuylwdld]xanhrzxetowrgift +dqrkbymiudzhkgf[spvsqvyntikovrefqc]bzltachhfylbrzl[znefllzixypjdkmfcxn]mtpikjxqsppxlal[oeyhdcnpxvhawqbmkzy]nxhshzdshsiercr +xmgedfiblpeazvgkss[cwbtqqjoaqbrgbptah]clzsinbtqsrkudymf +puwqcxmsuxnmneuzrhj[dbljkganxzmjvtxgr]ekmomoccimbpbieaf[khezmkkqdwkouzb]cpkfuyzfdfxhhhuhk +thfdbnkmqrektilpc[weshzvpsyofygysio]bffomelkkwvfsdxa[owhidyrjieeietzn]kmeqgnvyclngrcgquc[ieikyuuoliuiczq]nnqhogvlhwqipvpiao +zsdcvcbtwlzlzlmteky[nrqtpxoefofrjeaf]myjmnezlzkfcpmik +afyxnybelqewnebaai[ddjgeajpzswwdrg]qfwfqryofesysiuznz[ouajwvymsxmxzvgdx]ryuvawdhfmfvikye[kuovduidpcdyepuoq]didoelcmjebmytdyke +oopihddimztsopfcia[udmncuvhkvvbcmxzey]fpehwxjiczzhqcxxi[onmizmkoyhadrxpsemf]htycdbotvmomguwbttt[gjsdzuveiuvudbyakzw]ramxommwjmpkihl +bwlccfsaovlozdqpsv[dniiqfcldfhjiex]cdzbfrecwehrluxzprd[xpyzvlqwekcyglksq]dncoqoaakpgnbagf +uxoopzavjdqdkaz[exsbnpbaeuvusypih]qgojfhbprpoavcbxysa +mailxensjcsuodzpd[ftitdguigzeundytyp]fgoitzvujhkjynr[hnpcvussglqshxn]debsveizfcuroqrm[yeageekyjhilfwr]ozgpzusfpbyanxnzuak +vxjnjaguqlrwoxlhfbq[zlqpitkigwihrikvr]dysutdfrbljdzjgcw[eslbaxzslwoxscpgoy]sudodfmlfyuczzf[vsthktidtghtmazbip]jfyoxxiaowptvosevi +lgxmivlggzfdpductjg[qxgoioxsurcwayndy]uwlgoodqsjoxsjqqln +qognhfgzowjikeqz[nkwezojneylzwfdm]omduvysmcovvpvse[bwxvkzoqsykfils]jwgfmwxajhmggos +pvuwgxmpcrqknzpbkg[qbpmfthtmbkmljnsqs]zmplrxnulurhzvijupv[tgsommhtbbujbjpf]qaxqxdxmpqwduwwxpgg +lzlrgghqmetsmcxd[fjffxsqjqctkxnw]zlzlpvksrpnatxmh +ayirfkbsdyssjjpqmi[vpkvhbtreetyxstwcqp]rjbuxsgsrlqrdnpyg +ukqefgljywjmlce[nqjcndjjdwohtizoed]njfgjjqkdenohbwqm +kdwzhrslryuexdgbcr[hmbcvmrrmbsvyaii]bqprdkrgdlwjvoiyb[mqbaokwptkfmxzqr]wcauinrezkhduhcktrd +hbtuzqvyldtvwgyumzw[dibedlwdcjyfngungt]towfeyxyxixyxee[libuilcfsdkejjl]wzzxfhwcgawuhskreyh +oxjkoqahhqqcxcoxksg[bouywtiajyfmanxcx]xgqpjxtkaejvmqckkuf +prhqbaccndsoscdm[cuayhbnfywztddbvww]psgyhytgosopvbbp +dxdtcskiowtdomepjp[islofsowtuyqvcqwb]pjhyaudkqxxlwfoo +vdatepedgnvgpah[jbooucwxtveomnpmyx]ixgsuidbemgmahtlt +oncdjplunkvqphbyb[uvivlundxhdiwjncfq]dvhypguriulrangqwr +vipebvitwbccsnahjhu[kpwtbwddwqgyhnkjsv]acfaqhywmwbkmgh[nryplosnxtbkpwxtkfp]njzhnytzwlprvfcv +csvlzvkinldedsxt[dbxoceaaismltmspg]yomriudrxzmlbbbm[qilkpyxcxlvtfzqmw]rhwekeawwpyngqxzc[akqljrphobjicoco]utlunpkuptawrtfcccv +acfepkrkhnviixe[cvksybusnhacmfoy]tmqqmgfdharutrqvdpm +hjehtfbextjkaxilhaw[qvavsivlumfavaafhqz]ahdjvprlhlmuneewyxi[rzeuqtjkiuacirxsw]ucmfkrotfprypzuyqe[rutydtgtkppegdgjn]hmvzjyquxtydoujq +ntosjqtunrqfoboek[aogjyqyzxpdgopkpbx]sdvftoxtcjefotm[jivgsxjogxklwkhm]cahcjmgzepqebtn +omkznbrlrodmtmnhwsu[ysoinknpnzrjqkf]ybiqtlzoiohtldgoaud[fbzfiajeahzmiplcih]qimubctnnrmtwro +drdygweayxraomiblsc[oglpuxzweqpofwi]mbipxabkjqcdscltkh[axbvkumlaforzbqy]ircpsgstqyzpwnv +jefmuplsptisjqguywe[lkgtuysseapteszy]wzcehypttzjhjfp[nkwvzebjrydcwfkqne]tnmaxtrhvwvdnrhpxne +elfqfvbjutssktxpdo[paguttthfghhyktkjjy]wkpqdurcibsvviqfqpu +suzpbjqdiebctwhb[gwnbzgajwrorqcx]qoqdgemwbkdpsqgjds[qgozargzosdgbgo]hbsmqrwnlqsdans[vhppwpwwamtuurulc]ylczevsobuxtdhvyg +qfixarbnawmgjcga[dhgdmxcpwpvycmwl]mkqfghairqabhmokxk +srjvnnbutjaeikkbsd[flieajbdmghmuzp]ieimmehrnixqjynp[rjxiepmrhwrmrpi]yfrfmlgakaehvqm[hucfgczbwdpxxuhk]bvgmehildjqbjdu +qcmjtgmmgybxhde[fvpxdzdmzkhxdzjfkf]qfnaclxnryinmvpgr[pcsmctnmmrpxtfgi]oszbhmhynpzqvtxso[qhpljywydqpnksmwzdi]yqwxnvgcwsdwuluiouo +vhvuumgtzbrbgazpo[epktoekzvomswsqq]bbkntocwjpaxaoc[rnlzbqxqcuyltjxepz]iaelcpyexpoqavcbepy[azyksbvkvgmgimw]kvknvptkveiacqnzll +pkkcmeinlwpoupwpu[qtoyfabmibfrubvepwx]atgpzcehuidgikzn +srwntduyxjkpivzkgvl[hmenzrmnnisxgodof]lpuawirahbvibfki[gazzozitxhvxixvc]knbuydfpbjzupju[emzrzykcaeukvec]grtwlnuzmqivnvknug +vzlbpuiceftddittp[srespcesbfprkwuku]bslyxxcynfqywwu +icolypvmrgrhuvj[fgpeakrskxaljnakz]bqxravyjmdodsvhf[cjyehkcrdetiknsttv]dhoghrdxmmzxbjtbql +nowswrulawbgqkmcee[qsktncayiihoxiu]wtsjxnvcxdriviyn[tebqonpavhbfnwxvjc]tvpwgpgrozhtqtiy[lhagntjbctcsdejajh]aedpfftlvvtmaqneaxd +phiopnkoxulhkaddkxv[ueqfevwkcjwpcmsfspz]zkcoexersqysbtqdpc[nmcsonrswjxvdtuk]xdrsvfxrrdrfdbny +aosrkxvljnapvnux[ldzgwtxmjbynmlp]yrxxllppgosniqv[prtvqenfqapocxdrlst]gypcighnnppaytp[azueqhhtymzpujx]lsgvwvvgctkiyvlc +rketxmupdbmrircajep[xfmnkumekemjnwki]zurvxfxnrrvkmkrhbxh[lsrwyjtfjairiuwbaw]dyvmozkzkcvmunw +crxtvtdwdxejpebbv[xthcfmihpjqbhrvqfkd]hztqefpqdtgyhfzqsi[nlaeacaqscestvv]ylbteskdlwjfwru[morvntwyebnmswguff]othonakykxxajuj +zclhqcnlmxsurcrqaty[stohpulyrzcbabnydyp]veajkekzuxjmecdzym[ysujzinvkawzoqi]hfkcorxooelnfididyu +oejzfesyaxeittrdh[yziovimnkfkadiplm]arzmtikoiveyvlsdkwd +wvdwkqqmnretidj[smwnemzwzqhclpkud]yzguktkwahnuabs[bbyhgwmhhbpbwij]qstxwyfjjagyqvdaexg[nkerjbdjlikfgdv]qortpkyhpqvvebjdzw +apdkznwjfxwdrsm[fddlqepbyrbrfgmyeiy]fvymcxblcjkcvpcyup[szsfswjdzmcabwuz]hmutpmhknvwrlwbvs[vpfcztrelzjnqzq]gqbpttcrakuedsp +sujqaghlxszzfxf[jqybozaufdtanwa]rthiqanlennnowvdkm[elvfekcowitcout]ntjaqinnbwtqsctwrz[axpnqwfjmkocafoeadn]aplpjbnhkrcrbebmo +hzkbvadkdojwmdmdxq[ohmqkaainyaufipcso]zojzxelggufdascjz[zlxncckagxntpzqa]kindyikavjkmhopcnek +yjcsnegfsmmnfce[ueladqjdaqflfas]wcifctlledgnvodtlzw[zqswolvsfhpyrcivk]vemkuyjebqxyahb[ydjhmgjxmruwwmq]cufuqsyyytlgbpwrj +jkkrynqxqlgxukyfv[fugivxklerausdl]shcuiixkbmzymoxv[thtakgbdzvjsjsera]lmpwzqhthoottxvp +ncmijtczixmeyfuhspt[ixlxgrsyxrebpupt]sdoinvpfizdezpc[xckbxvncmseucrzjo]rzxfgqlionzaeocj +xmqnycsovydhyaqiv[iuvymmaguzbrtgs]zhvxodssnpnhajwzy +rqqzaaswdepcnnmqfif[pzkyyjprisjybnnjcq]kqpjhykszghcripq[vgdhuqujrkqljuc]qhtxqkqygazsvuh +qynvobsdeutfrvb[fddgwzhlhryauxzb]etznfbueibykerqfugr[rviezfaehsvigssm]nwhvctxhqvfdmgqe +ihonnjncwrkvglabk[pnjachlnpyonivmjtc]uoxellmcbixrdsisuhb[nkwsdmhisjdqurn]bowvauofupqfmxf[liiytxrcuwwnimdurys]acluoarkxopwppv +ipqsfckjkqxkxyuvxje[arswyomsnfueuwmcbev]mmlwwcviicdmllylq[jnqpolrlwmmccsd]nfobgtdlxveuuldt[uebjwwikiebtttgqss]ikdxnjdmzbrpqqvw +zhjywcsrtcadzdrby[ynasiklerbnlgidest]xhzwkwypktpkqgfyh[fuuxtaekwjpobdjfvdh]jcsrxmtbrqkerkrc +osahjtbzrqukvphpe[guutbgosbfkaurvuf]baiwluaouikebnlgf[cgssqcbscupvvadpbt]lxwmvxorsfcaorccxp[jcqzcrfdkncuoqj]gbgdolqdrauivfnsyti +vvqcdtcodesyomh[efjjzleahiejvczmsd]naeosnsaltqgjrk +yucpovujdwslgdczxzo[fbnfueoeatnphvv]gwegeafilsbwgor +thfmmzylspbxupt[asfhmdmkqwnqppnmu]awoxkgkgtrkdjzz +ghbifboivgelqxkfeo[gtpozhzqfntyyoodc]yjqcvpimanwiunamfh[aglylsuuakjkmqx]edfukuqcchtbhtblcf +qzonwqxjkpwqier[qmrnrkkwruteiijirkf]xhnrnahamaegfla[fzshmzjiczdyzqhwx]acjlrknukkbewao[afpeaepzoljqxcwvs]dlvdxhsoljmqgmvzf +mzibkpddgkilmcwcshm[sgpxutpcqniuckl]kqiwkwdgydpnjcj[exyhorurvawneziiy]njznkaphsmgisqyujms +xgzabblockmothpuxc[mhiwwhtpmtbxowbnp]aucpfqmnquiggenklcx +rnhfshqrlxczmrcz[agxxpteadztvdfeo]zogmjfpebldprrmqg[zppblhkevlkqlyie]mgovaojjsutbwtpzsm +kjgtqizmvuqerhb[dmhtzazyzqwjhpn]knmrbytrwrcsonmshb[oiazannnreojooa]hkhackgpdqgyqsgnb +orhnenfhsjyibqacq[tznvydkguvcwayiwmi]hejujxsitqcaabjwskl[qhpfmxgjdfgtgmy]ahilwlhjkfytezctsj[ewxepeeisacexgtc]paxwwhhpaukgjnafuwl +mhmfziehhppfqoocvju[hmfnlywpplffsxwzg]bkhkauhasnuoglve[oytxewvmknoqchvy]fyodxbpsytyeltnfsl[wojcbkfsswlcuqcz]izcrkyxzjclhkfuv +slabudcjhktddar[cvkvaakjffjjovgus]ahgxzdctihvboiarn +degyynefmxidnbw[zcfgkvupltxmbhroi]dbnaezqekcegyki[tjrnhpsmfftiscppybi]qgyifwlhvccshdiqfx +sxszfjmiathxoqnxg[smizlxpwmelqjlf]etoglecoddmflqma[hsggyxsxkhhshucgtnw]oqzadjxenphyexaqrb +kqwjndajvawmwxs[fskyhhktkilzwjtkt]ufpvkdnhygmuzfsfiso +iqdscwzpnnwehtqmwrd[fqbmsfrezrkhqcw]gqkpkiqhtrjpusoefg +bhwbuaqjofxcbuxrqub[aaanhuielrhxhlzscv]fkgimzkootysfzwcan[svktoznaqxkkibhigju]fmqhtjgxbrovymq +pjybsukpzvvyouum[rzeunjnideaseer]ltquzytuezonpowuhdn[wzwlbeegsgtwpzo]hqivrviswwfsdmpgnz[fhabjemewetsjrjhy]lgbwcozirgljoudhng +ampiucjqxwrzbdtcjnr[ufubjvykdfixyzqq]mcxabdvjzhohlcmcu[xihctxapmjpmrev]mggwuizzzxymhypmcw +pprbxhbjbnlqecvmu[ewuffgnuylwmrcvkbku]bntyrptthpmexiakh[lswyqkuxrfzokacp]rvkhcgbfnjivaagp[mnpbbcgrakjlmdqt]bujykhlbutiiqyke +xtcidzkptvkjakxl[kwjzzydtkvjmqdz]httbqtbiyxwryblrfd[cyjwthdmalqkqvso]knfncfebbbueoqze[zuruluaalfysbnmf]vodfiptptwqpnllvbdf +wtjthnkscjzzqrbpc[eirytrqekucxajz]ghycghnyntrthzkechc[eiylrukgxsqpetjfnv]xuiymnuzydlawjygi +rjrldatkdhvzvgcux[iuhectextisybzvz]vycerefkzhnmdyg +lqftkkvpvepilrmyty[uptcsbeqtmcljaziisb]himkwiqkrogoyhjpru[wxocqzrdgaclbeefd]mtytxwskqznxgpfex[whqbcssppfhqedhv]cbtiuzgbvptcticlbcg +pbotpqbiqdjzsmpbki[zqcshqinikcszjm]xjxijypculvuoavvg[nltkubwokrppvzifi]dmedgmkonytjzzk[obonilwwerhchueuf]mlfqiwmaicuecljj +exlndpqjplyfdbmvlji[fzzvnaszvmpwpdcovj]ymothxghgfddmzqtglj[wyfqyqwrhanponsr]ydpntagauckmdqpjb[icumanaybbefssdjnqz]owhsbdpufodsqezginf +ukfirftsouqdsgbgmht[nrkpwksebkijlha]zfkumnifusjysuzt +uyzxwkcgjfsekdhktx[qhgrmuyjmfmunghm]mgjbupndudwultdnnt[oczntpgnyanxxgdqx]oryrlqkmroilyca[xbevednhpnvzzwmrorm]bdozfrabvamfxae +toqvrteazudmppbrxct[cyiebroauwofshvceeo]fhoxdufwnvmlwhhp[xykvdatsfccxlfmn]zpqqflqttorrmjs +ltkcveeqyawjrryerqa[zxoihtpkswzjrhnbvz]cfpirvnjowhsnnbehd +gdiyzvnydjwhfzrimq[lvieihnyxtdrgrbs]kpotvolpjgjtfiqf[koloumkhoyktylql]cxgmdumzkygpppqe[aywuzxkrvrevgnnihh]uplcpitzxbcqkmfgsy +tskqojnfadpujfxym[xomwfoclpvyejczgyy]lkmawlhwgnpccotaetj[fvhbgpqqvasfykn]xfxmjfyoygcsbxl[ldveqjhkzxczzgxhbxh]tfpibohzhgrythjgqor +xkduagbswofivadpo[mxlqngyjwbqfsszj]xoxngqbxwsttknmtcyk +zvmlodxbacmwvdti[itdxiimzuvluomfxq]ymrkoyojdnsjqvl[dihqibcaznldgoteyx]thrrpohvatzogxrz +soetmauqgsswblf[hlkchnarzzrgjawosj]zsghpkoexwcujpakaou[wvfxggiskbpgntosh]zbohdymojoxhndfr[qhyzatgvedhoibktw]iggjhmravyoswvu +mwjmmmeiclpjmvishbx[dbmbrjcjcmbnqxq]mvhzexhgdmmnduc[yiccjcrvmzjvygs]uyvqfjmiyccasgzlz +dsfwjqahjoozkpei[olrrkslvxvijsyopa]jmzojmvqtzvkhaxukkv +kudhszsgsrenjqcrbp[ipvxqnbradyxoline]srcnihnhywqlietbgqv +eklfpuufieqqdfrgouk[ycxgdyairggpehtkim]sdfhxncpiqxguzlqw[ysjhhepmruqaegxp]wklvpveoxxfyizmf +apdypwjfmxhjgojtb[zojzoufhucunvjr]zjpuqiciaujfbjta[wlusnbuvcffrnac]ecaccicpvcmbomsvf +wenmnejyihmxaxdqwqw[rckytszqrgaxmjpbqh]pngxudjgdtbshebyv +ieyarudhbjrrevfodgm[grmjubbiqdodhae]mhzexlzijmzpltsxjfa +byfyxjxqlcpjxbpd[pdqkhutluqjoelb]pberlwpeqxmovie[zkholwknvgbfxcyymye]askmwovcktpqhcg +ccjcygsnanyvdss[frpxggwvfjuugdysypg]tuqczwtmobkusalqusm[ignjrlsysasfmzasa]nfpomrlygzjyylhvypi[lahpgasntfymdoub]rlvsrtudkvhtwhycf +omuyrkrubieiduzegr[gcigoszvylmdrlrc]jtlrlsgqxiqtciehh +hqeghunlieoqhetnh[unjtmdurovonejpsjtq]xtatdniykzzxpufps[ysaytzqvcxkvimhql]tyfkttaoythcttexrp +ciyuspkrywyyplmlro[myfyzvlzntivldrquq]eighmudngyiwlsme[eukgbrmtghntxpacth]pmvxbxswfexsnkxmm +gdbeqewbrhyfbfpeti[yvyiclmkwzelbqi]sktocytuvyvpcia +gnfkqxrtauwnkhfoyc[msfhopavdyhpvpttg]ewuyaxehxbyziwmxd[iyqrfiudsalpmpk]smpmubdejyevdggead +rqvcsivlxhfyboxj[flvvsnglektzosreb]yrfdzdgvkzgrxqoyv[rygmqeiccgtqqmni]frypfnzvhkzvlabrr +idyqowifirnwhkk[vloivxhtkdzjrbuuzmi]beozwodgehayklyr[cptxwcsgsapmprrp]hfrdeefhyehwwvghgdq[prcadfsulvamytpsfo]tyodjlxziwyqtqmi +tdwoqxlhhaqkdmv[cxayaazioswycmwj]pkenayaygxyrtqrqugi +vtqeqlrohgalpwrqig[bewbjgeryrvhzwetm]hpccsjcgunkysntpwp[yefsyqedopuhssgo]jjkkuwoyvhzzcmdlvv[uqczrglqumshdhkdkut]dlfilxdlomkvtjhv +fezgzsmmxdvhtmy[rrmbxexyopsrhxag]ezltorfyxclstzhp +ytcnqprainktcjei[phwarjaicrgistkt]qdtijjhbywixrie[llwwjrzrxhaqhie]ufaezqgmmdhhzjzrza +uyvaorvuqwbbexmafbj[tnpwadyyakeawtdextg]tiqechjccyyczpvbf[vaqfvvcbrowtjxyu]oqswjgtolyixytoj[ismczyxhizrzbbpscus]rtlaqgqrcxpjgmih +jzamkswiztvnelaqnqb[iptcqxmvbgyaeiwob]xnhehagwcwdgsvpomgt[jsasqvgectyfdja]dgjdtjlzbkyyckvy[fobafodakfhhiem]thozlpiakivgzzvemu +owfgxupnufaiuovcesw[jeskiymcmexnjbxrbp]obganlgvlqdczqrvwad +chsvqakwmnabitpotyv[eqeyowfftbjxdkpyf]cflqouimlafrxuqvh[vgjbvqafqyzexrzhr]mnywvcxtgsaifufkcu[rtjuztroxgmpkbnim]xsqyofncdrvdpin +kufzqdykjclolpveo[fopvuhisayecxlainzx]wvrhymidhtoldhb[vylhmdjqsdhokif]megnkxywjthliwepc +cqjpttuijfdzott[wubeiefulpuuhweqv]cqxbaudhnmrvrigogf +hkzaqueemmhessqjq[xofafbaefryhwyzzuoc]yyzaekuutvjrwnhonpk +zsgyhvutvjmrgnmar[kbxkhssdsmefafntsr]ocjxtkpqmugcvkopvsu[dsdwezhcblqssurfmlx]veiioiyfnncyfrdwyv +nsqgaufitxefakffd[brdfctppxqczvlohw]ntxmfmrsajxuqmo[pbalhistyzwnbfs]inapnupdvnwtlvvu +krtwywfktmbdobnq[msnsspogynsnwdb]efcftgrjdyygncnqdks +rrasplhwovftrffuw[txyylwsjezcxalx]voncsevbgofoiiolvk[axcouuspjtfzsekglc]qoutiffuqnorbpnlp +etyvjsjqwelcdzpnjxm[eetihszvjrmccshr]uskafocfyjorzhdx +rqfzvsuredndurz[ebgtddsixmgsugd]ilczpjzsukpyekhobu[eeciaduigoflustith]ohmscfdomzprzjncno +jjjarldpnxgwvlxve[yjoqlmnvtslexafgvbd]yngfttqfsebrcwtctf[bwevtymxqlrpqqaage]wdcaqtgkvmzesrjex[svnkfzogwcsyfxoxh]hvrsvxcpdxqmlfhb +ldwuplbjkimdskui[flisuphwbiqphsddaxk]eelzsgjnvecwedneyb +busmmdpbgxvdiytw[kwlhqlohknjgwfh]xgmkafonkyzffqtj +ngtpdikbtooilycy[dwpneelecozfzwwseg]kwkwssbtktxenqbnyfs[lekbaoqzpvjbnuvq]vhlbuorxxxxztocuiq[rscjyzvyznunxnun]jhipkmizwfpoxeuktk +leghszcprzadwpwlakv[cauvyhahnjycqgmslqr]pisyfnajcsrgnvkhcmj[ozrbuuodecumxzbsr]gtqbofuoteafyjk[sodglraziyxhcpm]lbzccqgejtsczvj +aiqnofheehbiqxqlg[wojpqldgrsrkqqpywb]dyxygexggvertuktz[iolnpmkijfefcsebi]okwjyjatnoyvlhe[zbfipzfoszigysxpwu]jitbvwjmknigdnlt +tvxhyndcnfrobfrdvo[vwbjbbozwjpolbmlkwd]kzsgbhkshipoxtfp[sylshvahmztsbngdl]emwcmnpjzydlvvknrhn[aarrocnhsmnzqgozo]uswudvvjntlhqjc +adbrrsdjlpyizfgvuc[qoimvkfjruwpheezeuk]gyjjepfgjpnyajypq +xgkzhzjlkwacqnihyns[bmprkvdabnasxzqzwg]hxwyywhnuntidvpg[mvqpemdfnvvdlpul]ttqocuncdebtomizabo +zztkzvwguaggryld[fgkabjmksknxlfhzpc]iysntrtaaweknzbxemc +ocwsupvhvpcgwehx[vnmhfmgubwbhhrmkp]hqpkkwxwwefzojltpph[bvsvcgwsztazzzjoxi]iasiueagvwjgmcugh +tkxywinosybkrutpu[eluxrinxkarduffy]brxgvdsoguiggjfemb[paaawmhcmdxneql]qtvmkmlldspsheyac +vzcnrbtoegbsuglk[rqhhdwpschucsvlnq]hzjzijxkcoxpwhi[glryptoeiosdosoj]fhduvpzlbptbehtt[yigihwrodvsulsrsh]numkgigkznkushjc +oexrobvxlwbqkrigz[nnbfhaheuublajo]pvlstoxdjdlbroezlbj[ykvlcsvqstxycpp]rxxgokhffgyioltc +cstzrhymnqxwtwpnvh[dzbyzhzvaooswlkdrof]dzxgsohzaxvkiwho +hftmeaqbiiefqtwklr[bmqfhgvsfrywauxq]brzoeoncrvljpjqxpjd +vbnuypzeryxltunvcb[ldnuxdvgfcbbysibhop]ejgwhaxwgnnbfide[okhykghpvystpufnxqr]umdmoixuvfqgecr[rkwsaizjzxjgmmftw]czzteyolfgwkrnkxid +nvflxkucsnbsltnp[iqhnmiyolnoxjzjzjvl]ctdsnjzjaflstsy +glmwwqvembkbsnvs[skbkkvnoycklltrnyrd]irlewhaeagdiojbr +gmzbjlrhyoqkiyrb[nezqwphjfpghjubnw]lflopkhihhamygznxv[zuecanynqmvceqxyy]kddyqjerkeuhuamjxcu +kwneigdpqhtznqaide[ncindqlugpdagtfzf]ctutcducslvhztsii +vhjlncnrshwikfm[amlxjsoevzrlkgoxnml]lztearcwiosrcmhfi[gkdbcfroyrgwylu]mwhzhimfdrflqqihaq +wlswesjcluvzurgrnul[iehnkjghqwvennpj]znqbjbnszpnklctx[pkxxihelrhfkiqizi]dlmwkrxyjxaumvtlbc[icgjedlkxpjwmauu]cpbstqjtdebbywkf +yxjwddyrzrzhqrarheo[dcayrrmkvazrzzlpqh]gkvbwuimfochtndis +cmqdgywvwqpfkixkga[zkcmkmqoxmpzued]iaerrfcfhcaidkkvwvm +uhwbwhbgkrzntdxrw[pchhzpiwclaasygyqn]oalmglktkidoijgyg[yugfmrxigwwqldfsfb]otdsjvxzdlsdhnyk +ctjuabhainyjydm[axxsgakjkreoeifx]qaphofrkpiflusbeecj +hdfthabpjjuxgoh[zskhkbvmwkfmqct]vmqfixzmyefzvza +wnihepbftegtdrtndsc[wtmfxwvxzxorhbj]oqlfpicrqpjgvmo[zyvhvkalgcwwjucnxq]ppatiiiatwbpyiwjr +ojaqpoarskgzmtrj[blfchukdercwzqa]anfsoaopkutqfqltry +ofijvkbfofbyadh[xmlicvxwtnufzpn]jetnmprdolywrbmjes +fosypykuipsqxaud[tbfwtcrdgvidqsg]tvmvfhrepppxxwme[qpmrvterftfxchiv]flnooydpykdzrtfck[omhwxcdomygkbaeqrfg]cwztbmysqwpqfuig +lvojllusjibvayrr[izfttqfhjethscsrghs]egzyjonmwdatznvzjw[mfxjaelqslyvkaqir]ckbkobhykxhocczot[oezwabicsuchjia]ivolkjcvilnlsdnk +acytktosnzjatmwue[medgjpfpvbiqgld]rjsbxcwqhrrklyfuu[xclxdxjcgjwkervy]mspnrnsznpccgcke[ptntxmnzdrorgoexbsg]bovvgignwezlpgoy +wdefvabtqsgstwhdxm[otahaybdinlnszsaan]xgjagsgrnziuqxjasw +cqkpuofhsousjfnlfxu[syvkhshtiyisqmrdp]vtvtzgdxigpsxcpdkt +qwagfdeyxorxoaphzt[kijseqropygskgre]tnpsgfihigocogn +nvppsgsgegzthtmpt[dsjjswqmzkoqtihud]toeoabpfknrnwqxk[hgyvhoktbvmdvwauue]pniilifxxtotvypye +noijjdbzbeowhtut[tlfprbqoqtftqnjjs]fwqyyfzzbzjeykhoje +rewfvmohscszlog[dwgnxketzlgefgf]fmvoxbzpxywaicq +pvtakzfeeithcogo[mbktbqqelkzddsmn]nuydimwmhdyhrls +qfzdrtjoipdlwkd[fsymmkclzvcdvqexr]yrhwcyjdzgwhmuijhth[zgturekjlobpmcje]eywzpwpfahsrwpwl[bgyprfkbmyaixrqj]fvhhmcltucokvqba +vbpnikyhvhqnemdo[lnyocyrozyteoxalil]phhqtzpbgpzrusr[yygaktzkmithtegl]cskivnspoecsaoi +obaxlisumjgehbkpea[ehzysfspgzssttpebuy]vwceybunjzvlqevd +fpanvbmzhlkcazo[wfnkxffkzmxnslov]gtifhhnlnnxkeaolr[pwkmfvowikzjctrje]anfzfrtlihlyutaq[vbujdswyelmwoudg]lckbqqgkglpkfnhu +ubsustsojocdyjv[obkxihfxtkbaeusurk]zmlqtgokothiokq +fpgjwchgmuuwpzquwf[xtluejeypvgynbsdgip]nyztcugwqufjpakuxkb[yanyavbmpeqlalnk]tknqteuqrnnorhcm[eshuljurljirasr]supqastijujykowxxhz +solyplfhwchyjtchjuk[wuwirpjuevkxulrs]axqqiqzteislutclbzo +oktlpryceitvhqqjqxq[ufupbpapoxovifhqp]xgrwutvfooowfaxs[yxoxzdoqyhxsiwcxrgm]swmalhlzrknfxgnamr +kmmguldgktbolgarsp[lxrqjtqbuhuthezfcfm]nhyafiyealodqrmagqq +jfowosecwpywmrwka[rlvhxlrwehljixaggho]tadphuxhvtyxkgvyru[kdwmctblkvpkral]ufydjpceosbxpcy[qkiwffygsjragvq]zlvqihgbbhdojkgjgj +fjnehklshlckrcdhxk[umipduxaengqrizo]obuxhxbrybwifedma +dzeftgulomkuwyrrm[aphjorxpuphqsqmp]nnslfcfiblaexsbftwi +eypbooqqyvqucqvyys[rcijvtatnyzpafpqhwi]jrpwrlhuiihzfwt +zikyfwsyxwrtrgdkjh[netvaemiverwhfctosi]xwdoncumksuzsryj +jxtpnxhjudmsotudd[lgvfscyjpngmela]wumifhvbwbmmticp[dvxmvcccimvvcrvpist]czyqdmwoqjgnfvjuxul +fvmjytywcfdqfmfvj[nhufehmupvzkcrtewz]hyxlzunwnjccnnphrsg[hrfqmrewnweuyulb]hmqxiwaqfebkvxhv +peqyzkuviznbwojhtys[svfilvdawzpmtygynd]fpfggygzketpcrrqx +ttcupspyysrbukznk[rpewzuewspsqthbqb]yszbsclsnmbgoazsfl +vwoufilgfhpaqfxt[dmlwugzgaywwzqb]rkwtuggupfsffridmux +faibpioziimdefafugx[unrfywlgqlxqmwtxrb]owzarstubtqbwwjlh +mvgbokjnhpcnsgcpm[vznublzcbsgzahkjprq]qdhqdlpftbetdzckvs +dgpkamepjkfizyaknmw[ctdimkbvwctjqcbl]euwsfdqpvfkrxuwr +rjcdwjzbrqqqqljqj[vsrppwgvlsokgpn]rxpddxouefplfnctudb +lhbnntitpjdtprbd[cctbkujpuoegzrijpus]xbkzdntmvzbzfxljvt[brlovkywclhnnoyrz]rhixzndklgudnxkr +byahaivirlqxulwdoe[otyasqivnfuwxmpn]vzsqfapigdecsmaqd +myozxxksdnucpxq[jgpjjngigboxsoy]tidzlszxsdbqxba[lctczcenpuntfjnf]hzdlcamkehorgpz +uoylyvyljpnzqimzgh[umieqlmcsmhnnxle]zvxwqjbaemhtoexyzr[gjyxtenkxacukadvhfh]kwagkgvaqklyfurjnar +rqzfgsolwpyfzeg[fqbhyjayacblhmm]egufazwxlncxundcyyw +eexntdgtjwjtizhlc[havetzocjnmfnpgzl]rmeusmuumcpbzodie[efuqzkuscnrbxwef]ehxrajahcfdggjyq +ozakiysvzkycefw[dcjsobqhxqyxnvwz]yuoszalpobgzxqk +pterhsdeyetokcbtzn[cdooadgsexdxfzjmo]xdxrkcynckoeirmjnlj[matsfmymdliwcqlqf]llnuahmiztvbbpise[egvzoittbupbbqrvd]bantcrmtkbvvbxi +tqpfhtrunndzpsd[zjzqvvckxscqzavcig]zquncdjejdyzegvcm[sxxdynlbdymictrfspg]smgkjimutkedknlppsa +byjykuzyigqofolpgf[cybrboapdfgimjwjm]oczicilrowczdlcy[tyaduotkhfvyatb]iklhgcjvfdyypdrdbz[dqkfqaadlcnxfofsvw]syuiaqaemufewlijxk +flbmovywhikcuedd[xyzunixgypmuhyj]loihlyylswpxtenh[jadvlnlzdpmoghiir]xbiwlfkwxtthlimngnl[vgtvhphgxfsshkgkb]vttcixaajhdcjnqx +xxxluypjxxutqoozzn[gufawigbmnhtmwhcgry]yaldvqcedheoocj +seczijwqqpigqcchnz[snihttcoqeotvsvxtsh]zzgbjkslldiespjeejy[dxpgxigvppgnnddyd]hcwgvtogqdyllyhkqj[hbkamssyyusrgbg]dnnseuhlwkwnycktlu +xeupsswdnrpzqvl[tmaszjcshsavymzuog]svjeaxmdkgbimlv +dktkcbqwdeomyrp[fqaiihosklfctvufhw]kscgwrylrgbrxjzogj[hqvwmstcpchcqkowtxp]xfooorpnwwfrqstxft[zclwozroattjxczqx]uwnclgxymympirm +yohglmwqjxpcgozvfc[ojnlrvpzwcwgnfbvf]uwjufnumsvqwxpg[wrfczzmahjdxdzhifs]psipfjeacaysvubcqqb[paeelhpmpjlvbal]buinqeedxmiijkxpcpk +ficdlwimcpzelkxcb[kyizgumxqprpckyyh]lcwwypjwqbzhtozovh +bycnifysnrtdseez[xombfbujijpsrccccl]tbvuubyduxnascxjkds[gteskflapsthkzigcet]otggllmgcgfgqloehf +wvrrowjovflnwpjhhrj[dqfmznuqmmttqtdqnp]wevjmhhfmorcrvxvw[cnjtxcdcketvdidcbu]icghhdkudxptbdcdhik +wquydkoyevtyfwqyimg[bhbhiqnxwfrcvqcsdq]hvcjbihyziwvmqr[phnejggzeulkkbdxb]uzpvcrhqhfkdkwvxcku[piqegxvplepyfjff]xqgfyfmlqqgcsnngmli +aiufvoznehafclsi[ynuiezokzxlhzsnlnmw]buhvbbmikiczqjlfhg[qfqcudscoobzjdwfyu]dcqxfcrpnhywlcabobo[piypuleecpciydz]xiendyljklimrwaexac +bmcenbqijebgornj[kskdxdmdlojqtjtw]kqpwfyitjbkfubsh +wjivpitbdiigvkhfpjf[ijhxqgwkoctfiyf]ezeuczihdpeegpnppj[rdcsrurelstudtzqv]afvyxjglfxybwff +rypyyznanxetdychyd[srdvpypvsmzquaeec]qzehxnsvvccjqbjres +disgynuubaeuiwg[qhmjwkqbmmjhjze]zgunyyctwtucdho[xljnbisahxahllyiob]astxdjwqultlphiijvh[zmhdobafwbzdndlrm]hwcwvfxwjynbaxidj +cdhvflnylxmmlsgo[oollmpblrqislxgmvvp]nivfytkylfpufcdxun[bocnmaazerwhgtzt]txxystvwvrsyoym[iafzkvskmhqjdtk]pgdgojbemypqbkofwf +sjtahdwpdhuosbqyss[lopwkbhedbpxtcw]bvtrmrjxtncfnrw +tdofrfbhpawcjokb[ynloiqgijuwanfekxsz]fdpwynqofzqumlrelfr[orxakqzzdjfnzlgywae]udzboibfngqztfguv +huwdaehvnyhbowsp[kbskeavlxslbvco]sekeunfcfnrsjqgqpcd[xrfzxupwqfrobegw]ndphbckizbunwqmykse[qyoqnkrhdydzuir]romctjjzwxjbxyqm +eyutpqnxiqygxwt[wxsiplbaidmlgph]vhlavtrefmbfpdfbju[owuuvbqjuailmgynkqa]setuzkegazwdjyzskty[oaqtnegjwglqnyw]pyizfgyjbebfacjexkh +bxpzupefyifcfhkv[fyllboalhcmvoctf]bvfifvthhaovzixpx[vtppcxdmlfbfgvgolil]gtyweatzcejbwtse[prplzrovjaeczsyxc]jkylsdulnhfilbsqh +eedtujnpvzzzdpgfrm[uopptnavfamhccc]qdnckczikmbwkxfmst +hzpjojvdukrnakxzkdv[gychyosqibeedkj]efhirtkgyzjnrqn[egmuiotfolnlyjg]nbleytvfmuvypkpabt +xadnnqlykhisnky[hvfudohkwpthdtyxe]xumogpuzbvdpbnapcw[gaavnafcpfbycdpvz]xlgtfefhzyskqazl +ohnpejtztddevoitaw[hoixesaghtpruyayyzu]ksyuxpootryqgsfctcx[yoazsorvwpkcrjqq]allrvqctxxhldwwzil[rxxioewpnqttrzaevnw]tjgvhfbpninpzwvxtl +qhapfqjbpzieybx[iobyolfvekomzeelsd]ygcprxtqzmwotja[pheachmbpziycyhykp]yhlmlzbdngqpvfcjt +egcxwspabytsgsbam[hewsugjwdvnywgjhrsb]gbxbpxonzzllmmkags[jylmvbwwjvmvkkgvusd]fxckijyjjwfrmlzp[eiohquiromkekgsbp]bpimyywlklqwdpfasc +iypuotjzbcsafzclwb[mudgawqgospvlepaexc]bsqftdoatnacbnpqk[bxaxwphnmcxlptaz]yhbsqduzzzkviyxmv[cfeyjhtefuxjqndg]rknngkyxrldxnqxfil +epqhofdmbeblgqjcpan[tuffplppwdkoimwbu]yiyfzqemymmtzevrvtb[vzuuiqvvudpedkbdgq]qzkbzuuvgzujipvh[etjfbbzkhkhvlslkjg]sqkdjmgjilbpvmr +cukbhochuhppwcuwwh[ziuieaxmtjrcovi]egmfefvbqztrinknvh[tcrdwnuqobusvhhhuw]llwltqrtuzujeuatp +uegokkxxfybcozva[hwnrfpsyzbclsubdc]kxssypkvfyghukcsted[uvtzwttuxxztqwwyjx]lhlyeezyttvgxgtz +vgriivdekqhhyzgmc[lkzxlushgdqezkwkbv]aqtzbkzcfxrkuwkw[aeubxxnhyhlolauhnu]qphfpphyptbmbvcyutk[xscabrjhmsfredzulrm]torgsvodiuuxkgcp +blygklicgpngtpgcldl[melaiuchcudinutcx]fldhqlhwyjqhgthjsrb[qnvfdzzszgaedjqky]amhauyjuhdistfgbipm[irrhdtrtvlhanuhfb]cszydrvyiahzwegkdiv +yrncnxrkuamoung[vteffidkspotxmwhna]lohvncugddeuevq[ueuixhkoouhzzfucs]xgwgddhczhiovgacg +gowzwidadczncgofqsa[gzkezmlagbaetlf]oochwgecelkuokyunem[slzawxgblqhorfpezd]chugkzdgaukccbeoi[apmckbkkvlblsel]tokgjnxyppksnep +zyqnagblhgoyiqihy[oisqkkmqfxdtvfx]qrpxcdxvmtlqbgvm[rsoqvutimhujjhbwaf]xtdayhoscopmejfxz[sqcpfrehprvngyagm]ecwgbravfceaajqg +nntkrxodbypdodgtj[lnlglurkrynztgae]twtxdcskknbsbinlnnu +meztofjunuxbkfx[cthbsibrfgxjyjawtv]ujhnboyhpoyjprrheg[qmjwvltvyjgntydrmeb]dsbnlksebapwyfrtr[aoyswieertsyvbfijuw]wfzftnldrfdpnmnn +aanwuubqnptyoryyrw[izbhposjoffhknmia]pmpudrwiwouwspqnozk[sojpnvluazibqcqkw]veawduaoceyxmzwbgd +aenjhairjysyrfylli[ksygiscororwmpcbpl]mdggayipjsxxfhz[zrovsdxuwyxjjbfm]vpmedxtfdporoono[zfnnenxocrbtapmnezl]odykztbwvuvlngxkwm +aetllelassgaxxhspd[knioznfojvtrwjtnvfj]zmdmmmgudgcrchsuufw[qowcvxqgjaoptskz]qyrfhavolkmidaul +gkevcmsegjotmpa[yjvykufplocymkaq]yhewirtmatswhjud +kaerzsgqzwhdrlzk[fgmfnhjaylhdvepgdr]smkwpurhnnhaqccuho[cznwafhuvozqolaruqx]ktiyadiryeclynr +qnfeguqpvoiadeipxs[tuodvfpmqdlndroq]ruumxxencwatfiv[otgvbhlyuhtbtyfews]swsjtpcysedmpsgwao +mpxuvhlsahhdmtwlhz[saxrupcdkcfpmpvzk]rctxchvmeqnqsxqizr[isqtziiuucctgioof]vdlchnruvtuupzvukfx +czxihwpinbwjaatnmx[quuiszmtsnqdsugbr]fhhhwhvrnenwekmyi[phwhrltyjkmdffqyu]woxrbiznmygdqbptf +qwqniztrmqkkiyg[yvknzntvwmikawjlgh]izdzijciztugcknoi[mqpjeordqprhefbbsdj]rtwjvqdagpycdsxtd +pyslrefucxvqpgtnfd[guaqdwpjlwhfmmyzxln]unlgsygdedtpfrpz[uxytlfxsaeouxxdpdb]ufpwpasnaiqyqnex[kiulyoykitwlllexti]cvxikzspuywpgaud +rbzuremuvpunjopiw[evldkwtjsfwgvdl]unsafmnksqehiore[ipvgyeheeuobibga]ohwjoehyibiihubwuo +zlxdszmzwikrjfjfh[rmzbjspugrnhysidi]impguvxjhbhtirmdihz[wlpaqqnimsearxzka]fftirrvfdqzoyusjucj +yvzxaecltitusbcfqv[witiggtqtgarfrq]bhnbijcfbhoqpojeuqw +peyeydbwowzleyebpqs[abxvydhobwmlksefjy]hntuuskjfvsfwnmh +gxdajcawzfzzhjbzpxm[nxdsexkhsbaviwzw]kojsiljoybqxuvi[razmescyfxecbmzc]fdayjgkrzsmzngiszt[sdqgfgolavfqmuzqag]uzbbbcwcizcmhntiom +gssllxegqicytbgko[imezntkypaaclprdo]hojadqftyszdiohirac[wcpiroednqmsrywvxsh]gkfmxwfuaykpwmdukm +iwdziuryoqkhqzukcbq[qdoppjrevjmjuod]jewewfyupjnuydkn[ysbuocvxflmhbdhlb]ggjdqbzqfekjbbf[ubywismzabwewsrl]fufmyromzqrxtxsijkl +tbmlgasrsqjxwto[mvoqzbghnwpunzvxu]wxnwrrzdalxjlflva +hlalpnzdmwlhuwewel[uqawlldafxwhejwbxj]vkktsmliwswarsq[isoseemfosjusoo]bjbjwogehxaqhasloxq[oktpqmpxmsnvbnsubz]ekgpiztxkkuvpszb +xfxkkivnffdwrqecja[lvgeafomwyqhlfd]uyvvthewoyqjyoo[dcoayhnhnhakcuv]sfucrodbqeqcqhpmc +iqfduwigwfxgkhbge[qojiewaocberonshm]toxtpcpkallieefn[swenxuejqehdfutw]oaiceeyuhhzpazuyaiw[gqbyuetdmvtttffowv]neqopgkvwqemnrmauc +bbwxyipchypnmsk[lefobpxeokqvfglny]rwdgvzdupkxjhppcqp[onrpulkcgonndkfq]eegboakcdoqrmdgfta +yxeegoeubfjhijn[pmdjdggehnbtvfqkdk]ofdoklopgeznrvssgdc[jidbyndormgpitjsl]ucucnufigpzjuuxdq[phajlefstzyysdkdrh]vziqmjzpeeqnqholz +pnlllqydepsbgkrhm[ltoscinqrrvkdyusds]qwwtxmmexgsfqgoh[uucslmiboquvlso]xmbeigfpdmodrodwbp +jatdtuzlcxvgwpryf[dvyuqxhxkurrpblehq]vowbsishfgkjtvicd[krvikdxyqlwdjjnd]mujppmtqzmeviflf[ihqppwgfywzrqyx]aobhudzykvgwwhirfiy +thmdermwtxojztany[xcohmubhlagpuew]lnlsiczemaohvjhhknx[spnegzrtgilojpnoxs]spnvmefqqzpdfzset +jccjsrpjiyokryde[gfwdanjjnbycygt]iqiuzghicmveelbxp[tzugzompmkteyydyeb]bkvntycebtvjlgour +rzskdzdoxsdqinbmjlv[fnwbduvtemtogsfi]oayebzmwazggkoo +hzpsgtucyxemkvmfxy[duxikzpqdgcmkbl]bluegvpkqmjiyzibglc[qruyknjgybyboyvmrsk]pqyrdevwrpeatgkyo +uubdyuzvtcfrrdl[stntntweakppdrbqk]yoiwxzsdefzihdnilx[vvvsontntjvgcvanni]sqdbtjoziwfolwbby +tdpetsinuufpbezbgpt[hpklzrbaryhnibm]ucetauqranqexnfdstk[sadfrrjazeweeec]jaozzdmvmylzatlon[gyrmfjwewarvlpsh]wfojorkgrvraihwpaf +sarrhlzjldgzhyuvefm[braqtukjacxtcbrgtx]rpfporiksxcacot[zezcjaonoyzxnbgd]jmrjkrugljonkzb +hclqtamrzmzkhhwcd[hcxqnplterhqgbude]kduskujldxotldizi[ashjjijtmbppyhgxo]ozdvjfhxmojeqagmoa[dppzupkveblwydh]qonltaesyzvczgyng +urvfscylyvpyvpqwl[akngblyladvcuwa]pauygcletxnisgriad[ovsqsgvuccmdzqcwn]jjugrvjyydebzrjghae +ohvihbfwdsvpzohtu[qsxghcyyscnxwgnspni]kxlgrkvsbjeomgckk +gzywjgljugwxnrv[mssfmontfbahkya]gfmnxglcggnbrpvuxv[poejydksxougrcw]tiqmbdmjniaqnqgptk +hillvlrgjsewmjkoha[iighatessfoqwexqdc]iqwztbnauifcazihogj[xgovsowyvdafqch]qfjgljkcgkdmrnlrrmv[hnjcrfgkftyitryole]muemrwwikauccsregut +vmdrttktgqkyovr[myycrednrrhozjdhiog]qrrfvxcqpthdfcls[nipthbalwkyqrmqy]xaprggoudqizdkqu +ofmohzqodnueziyemx[njkghrspckzhduwsrg]fxxnmxloclzfmlkebpl +naurkqfrkpbbfkmbe[cpttgjergcoemawxjtl]cdkngakkemsmtgtwyzn +xtwigprawkooqitoy[dzapkodeyqhkixy]zrtxkzjqgqeuagdie[vnieacbchbgexzaf]ezbpshpznqosvuk[mcmcfwuzlyodiqez]bojvjhtatwvmxsxhkbs +muiyjlnqtepriyly[cnrfxiwdlkrqsarpc]hdlysxsdtpqxquhnz +clmaeawlvsluxfrhl[rayxcpbervctzew]syqcakahftovtzcdl +ljjlywtzejfslouih[hmsyjqsqljnppyv]bxdissuzzauueguk[xhyiqeotzpbtzsrd]wapoxmkfmxhbykdv +duvdnbsaqzqemzc[kfefbyefuptincfaw]jhuvhgdqrnjwmlfrmr[niprevfcbwagwvewhj]hdhrwocbqysjstefldo[uelmkdqczcnlmaefjms]bwszcueianjsjhiywwh +yrfewhgpkihnhct[pxzsdirhdakahwdxteq]ygayoyiuikakdqo +wjrmypbsxqajzbtwl[pvltruknhkznchej]ypobvzyforzyiihvzq +pdchmvgzmxaspkcwkpp[kekolrkqgqcekeitv]xwpjbdcxgoelowm[wxdhdpqotthaeay]ovvuawitaqelckg +fcqvgochyglldipl[ryndsmjdhqvikwnexf]smwbuebgfzzmfftrdck[ynaegesquznhgmisvri]hwbktncquitjaqs +hcbbiznmlcfgdfjtgc[xqnepuustubktgck]jspcsloqtblxprd[mudjqeoagjqcfato]vgguzyxablhnrlye[rvzjejrpykdzzqcpgmc]okcylioamjhremephbh +ihlcdgalqwvznxl[afsqmxduvmdjftmrjeq]ekvaovqjvajxfdutwhv[zolonpiqednbtfpsrh]vurkbqdeglqdsml[jivoaiwnfpbgbzzc]neycassstykebswqao +bsgrhhzfgwsgzowrbj[mvkzjwkxsuwxnioolfq]yobngzosyzkmgrphxc +edoabezjjyzijqbgxup[lcxkqejwnnslgykokx]wihvmpynxyyhaysxvrq +wmbgvnekkdivugwirt[yuioeaoerarbpcmbwk]bdlohxkfgdbthtxlc[zqpipkuumpyyioewz]xssqnavbegcidoenex[xvcirztjwasastitiy]mmcxttawlbzdztesk +fmfwtjsguazrodvdy[uuzglafbhjlwujwr]rjttgtqakbrloqs +mjtlntwhjqjoxsbhk[adswsdpwqnvqtuj]uwzfdezklxcvhvhb[rzmgufbrcamkvsl]imtazflkqvdgqvfthc[pvktfhdynocqbhqb]qjtlmgsjspdfgoazn +hfeiexxrkdehqttaam[uinfvckvhatgmlblj]rhksgzqfcizyqqx[ofgjnqhqhveobpzva]qaxdjvvaibeenyuzpzl[ktwkynazrcnewdnb]yzmotgipaelgbsahicf +djhinybbfbbvidnyest[zougucdzxpenqpoi]vvxbocdotanwdrjks +poulgwkphlvqfjplgw[enhvwdoftxrnowdy]jfepitixnyjgvvl +agbtjztsonrgwzivf[igqgvjqttujviljk]pmqphqrfzfdiinxhy[hjpgkjjwxgfsiki]fqgfwrylhecwcoowxsi[fygonoznhkmzcjcpm]nwouwxzbpqmsxnfhedh +fnukiqycmrzcije[optroggxrsbsokabplj]vlepcfzbmvrqptyx +pdteouejbrhsicugggj[dipcyddhrktybch]rsynpfyiklwyhvlzoxz +yuxxurstojjfnoft[obornuhvvdtcyzj]kivbosojivpliva[twgyjecwqsxjmgi]hbphkpnfffzpbwjgf +iuauoxmsalkxobrgb[blehxxupivauaxkahxf]torbqoddhsksgtnps +sjgwxpuwloyujust[psqoquaifhrgmah]vpaddscloldhahh[hditsfewhihijrpf]ofjdasdbjvfrwefs +arpvdepqyadnevyphg[kbpdnghrphvogmn]wrzcskupnydzepdmxkp[beeaeyelchimtyrq]yppeqczzpjsntfytp[aofegesxpscjbehmcr]wkhyeeykbgemqgcynxs +ouluccjlcbcurdpkzg[flulmqooipvjzhip]qkxrrgvodksuivbspr +zfmcvmwchidwtgjmpoh[ecthaqwuytzvxcfk]pwvwrbzdjqdtxlq[fwbcqsvdosnolronvef]sbroultaoabvbtvh[ziihpfydzrkdqsz]uydoxylhbdlicydahf +wyvxswplnabvdoeshds[zhrpmmoiilsleemryd]pgkwuzialwbqkiw +ehkebgpllhheumhf[pfovxzqmiqoxdmywhc]qpzsvhisrjgjfqnliw +bzizropqhokoukoxz[ahvweuhqlrysrwu]sdmyzgqcevcixtomzch +kfyocamgrbgzslp[bclztdzvmbyetlgjk]llzxtjeauatwnnpkrvp[pxshjlevsleipkfkmf]xblovddfkfhviqulap[zhqfznscbngsaej]rjfncwzuuqwowdhfk +biaunelzsqaxohte[zyqygmhjmwigxsfi]lmdfmblocglcxaszya +ngxgqwjnobiygnm[jnhtcpyfpwpwkxapib]lyhgjgvcuwgbxgxwn[rovvgibkfcahiyn]dyojmojklujquiqfsj +tqdbdrqgfyumjwktbg[weesraucasfagyailb]ilhskphxtzaqesynmi[stfgxrouxicascniwpo]yfkxnhvrwkielncq +twgbfgwbpygvbfnyy[xhwmhyacxxleyadli]wffogpkjkmysxzlmpuv[qnjizoqydldcwubtux]askyjzovxsalrrgo +yunqqhjmfpqqycv[vamwyuzotttqgdzgj]lmuivwjmlbeqkay +qhquozlhiohsyzwv[utxfaionxyjgcnpulf]nkmfgjxfobxmrydyic +wehhwiznslzkyncnkc[dzxeftrnxfhrwprllke]imknddjnfrzanslzdz[dfqldjhkxhowubxs]ojzmgmludytadwespep +rbkqkcqoxrfczfwte[poemreldxewfaif]vehqkzgxcwmvocban[ffpechryektpzbdaivy]emfkcgsqpqkqxiitol +eidbkaxexnexudiembn[xyiztwlbqvoavomnlwv]rrfwfdixzpzvwkhwlw[kjinrqheqjsynha]pilasnmhghvvgaxor[nrgzhlsetahyskduscq]uazoholzvqjdaovgjr +ynlcechniybypvzubo[fupezmnrswguyjysfj]ckmilshpttvobgoux[hybhkdzvvhelhyvoynm]amrybybroexntrlcmvy +qpmlcmgstzjfincjh[axvarrnhwnkyucrz]wbbpucxtqbdjxsug[tutypessbhpshlyt]wwlkakvsggtbzcz[rypxpzrrmmohyowkja]aeuhylvosccpatslhp +hrdlnpgexbirsepd[waphktwkfccnylxg]hgukjgxutuzfovpazhx[jzgspycuftkivlpx]bhfazqqagtfpljr +ciyqjrkwqlwtuhh[lknvhwchhuntllyvjb]ontiepkrlphiydhyir[pdcojzrccoatarrqj]rwmyqonvfiexmbnjy[nhknsnxkwatatfhwa]qzlqiiovmuukmwypy +tjxbenxjlgozxrtqdp[fqimqatlktqjwjdzuoc]fedjvxnqivqaxkvcw[lskccrwcsxulkabzp]orszzlxhimwlzfawjw +yufbensvlqaxthui[vplidvdhajkxfkledbz]uposqezqxglywtlxgg +wacgjknueqomqccqnkf[erdhexyxtcmmvhums]bnywbavxkfzbqwlppv[bwdbqoqfxejqnsgjd]eafoepuyabzlznxw[etyfwvldfchsrdsjyec]apzomripffavakswd +conwdmtawpjnzrjlkrs[lfssaruafijkmgdp]izwehdqwarvfgxi[stkwrpsrwwucxlrpvd]sucqudlqvvklrfdgac[gelbgtycawlilemxamk]zmdjppqtsdlqfbhmm +ufwwjiajxhcorfa[hrdobejvqrdojftlnj]vamxyyehcgnupky +eonddfixsvjssautqun[kktlnrsxhmhwisd]drpflrvwelqqmdrcleu[vefzppqxcrtevyv]yeayirahatkufcjvax +gipuuaoxlxfkqld[kytubcrnjxvhdxjto]kwpqrvvtjopyigmq[urijeznvkopxtgkd]infdbnklnolvaqwwvo +bdqprkxthvsgqlp[qtcbdifrlnjdpxrb]xqmtwugptmssrivqb[zlkwptpsqnljxxod]esxomobcnfjuxxdmsmc[tifraqareavetzrpw]dlpsxjssqzyqwhd +ylwhvgowletbcqjgr[tnhoxqhrnytlbnwifx]pyzwjmotosezztkqd[ejfcslurfhiompqindp]kvbfdwfmwkiswfm +bqlhxpzchtvwcqc[jhpqckkyntskugvua]ylakfwmlerklrxq[wjrmeexzlljednrxho]rdobmdgxkucmdrk +ehtqwbiyigxjvkp[qujbspkhxogjrzskfm]qebesubhovwonqudy +sjqrkysnnbgtkhwe[ibgrjvqztrkknsr]mnbkbbxvfhsihzkbsqz[hxxhvxonqzrgcant]kbkvnbphoymseakbxjf[yjkdvhsscxggtyyk]tofzfukarcsahrmvs +ndepmgjnsgfsttp[rgrcqahcpnsyknjkd]uablhivltavxssnx[uwjmrokgisrjukeoh]wollclyotaektyjg[tzbziofnztlojbros]qvbgoapfzbecqwjsq +lspiukvizecamzh[vgaxbxgipyodtbxb]qpnkwuqxsgnihgd +khdzfhioeykvnvxuhic[lhfxiidbrwldhvfav]rwxsfwhshazzaxvk +coaljuoxfhvirzhedxp[femqrflktuakhveiiye]iabhkrebiawlktxmbr[pzvgzzcfzhswxitunrj]kqpbmoluwjetvhdcr[tyqdtrnkdmvdpuf]skrdeadiylehnbiyvws +qimxmesehwdrqskwitd[nvgxgwksihjcplpl]bxnyyafyzxludvyehd[hswtrhxmggpcpcvew]cucgudrfxfbietibgv +moiyvifvvucewfqu[wuzvazqcictmsbtq]nktfnkfjbsejorafo[vfreizeqljwshfafwdx]xrtbsdzcfkdmskiiuwj +kchuwlbokzivzlzvib[izbibinxysyjrvtapis]vugjoxtigdmbdqjn +xbclcahcqnbzwpvshao[qkamrpzzmssylpxb]tjsufvzaorutvdu +hraytavipeznkuoi[jmllyjddfakuxwfsx]ofoxhbhnucmiztrtcji[vebzprplbxwqnzllu]peaegqqeqbjikxff[jxzebruqgpoqmklz]liakpsmvutnpufovqlq +omtbdjlfagkxdlntz[mhwuaqvyldixapgoaec]aghmtjapinrxlvem +kbvvqlrdswbturvx[qpkrbbaxhpljnhlytou]xsogoxibyznqcpqgygn +orqcxbycauryvjxq[ijorpddboqkyznnnm]rvildjpthqvtdrzcq +hvttzyckbqjbyfdn[lzeulxlidymszjl]wbbmixifmqzkvypqola +eizqnqqixewedcvcit[ohtuntptfbovbsnl]uuswevyvyulevsfnw[etmfugdbznyzikdtx]euprxmmhcrdoefvfjg +pvxjhbwdlshqkth[gwmtamzhtucvbkmwacs]uyephbahzeptqmif +zitdlkpouvntzndz[iluwraejfdnwafe]fuevzmqlsflfcht[suumoqktussjsze]dawzltubgawnahpd +krskxctpuowviqiqxu[xunkhvqyyqiqhyx]rcdhdjoqrutobnjpimv +frsjlbcvuwydaobhii[bdatbysbolkcpzcxoyf]lwsfakbmjilithjrls[fhozecjhruquesmkca]oorqtbaamburjorhy[occzlzfhekgspeep]lilnnsqheytwakzah +ragajrztetigfkm[egetcjedsnrseahrxr]cblhtdmtcnoaank[fzhqephlcyygbwt]uyqlhhlhmnfyfcts +nklzxesmrrdlzyakdk[pfexuhulnvbmndvyat]xjvspjnesqugmkngn[vmzvdrheaknqmzyrc]xfncycggjiaqvirfvnn[aqeinzmbaijlafd]pjojbnvismokshrs +urteecaminrqiohs[rskgnsdfpksfznqpphc]yaxixbacbtysdrnwixf +ibvmhqpmnpzmghdtdpo[djdzntakacvezlr]jtdoweayvyiaskblc[qhwimwixemjmqsu]rzekezftftlqqovnq[hzeyrnhbrrducxz]ceiqewhcqqmqluro +joqwthpcrccoovxrvq[qjlcrltwaxkjenbbql]ovebjdqfnfkomjpswn[qhwrxhvbaattcrkvff]nmytfcchpqktagojhtf +jeeuutsrxjlqegcdlrm[chrtabpzdcoetzoopc]axdhgbwmwhhlrvc +djcujdyidkcgwygy[zfpuoobkfdetgiifrpf]uxzlkhxzqgiuyvuc[gboovijloiwizfuuye]wimticbreszjcpsls +ylpbdnvjaavulnhg[novahskycjcruokxbrc]gzsmxnvpupgxwhx +qdarjsoimlwxduyp[nghlzeghibocgcbhqb]vuoixghxxsxftuztlxs +ikdnbajyzpzbtzjdey[fiygpvlyluerdjvcdc]hheswtvpmtvjochdsih[kmjnhhmbpokaxsrf]byzdcdlvgyorjvkujyl[ttxlhbnifbfgmvs]onytmkodkklacgel +rcpgwlbaskiorvxhgsb[xikxwyiageqvilea]rhkkzuqtuxbhuygcxya[prteqotsqfyypus]mpdedamsijgmdktn[ptlcxgtlxfnvychnwe]mdjujbmrytfbzpslad +edjzqlaktolcrbwboup[bvmtkmfmidimoohq]kpsgyntrgidclnq[ohqjnvirkjlmztem]smtywugfaobbpvmzj[aksdrqczxftjrzuylmm]ffyrsvfwtqlmwbw +rkgutyhaonmyick[udryocpupaohqhrmmsk]lmusznhxbkbagotha +ebtiyamyxtfcakoku[tfggedpatfzjvirou]iwbguywvekoline +vjyzycrsfycfrookru[iszkkyvwngsskic]bnnqauaqcfxctnyofoi[tlegfofrqiuqlgkld]biryppugzufezftpjra +neipbfcjvrnrmpijwhq[eppjsmrnolpscnfowe]crsmezklwmkbysajb +quwdpyfsllgkwtj[ercxwsjcfkbpohokuc]isdjfklflnudrjetf[fuxsclqmfyplxxvao]xflfujjqnglxzxlxz +vfxrgmnvontljaodk[pwtwiqibbceehlnhf]lwzkbshrmagzhwqyq +ecfthornfevsngitzhb[pblbvztbbsbsxxuwec]jtjnnhwkekrgjanoxbe[osbstvuwyjietzx]xiordmxphcsjnzfnrwe +tcnlllsrvzoxupp[ficwiahpzqtauuk]whxfguillhkpxitoqq[ovsdwbddmfojvkqrxb]bfagfcimddodrtb[lghczsmdqufswoayezk]ctkmauzrnhgotbibbb +qahnaxgypnpjftgu[bghbgwqxwfnfrcybzd]qinmtddfxbpkhqnna[rheeshzhyxfbcfxkd]awwsrosrkyfqcvtx +siffwvlfljwbcndns[cawuqwatfhgwsphjn]twfwwneebgzxmqyrhbr[awxuvozbhlohuaxim]dykizkumcmmnwiwdx[dikxuxtmacvaxiwih]mscklmepmcgjemwtvv +nwnwxbeggraucwj[ygdjhwgskclfginltdy]ngfxeqsonadvobrnwne +ceulusceecbvzesfpia[etyucdrmmbsstudbfo]jjzwvaqsiovrgro[msadpldzcxurzije]mjrrrqwmyqxpdgmp +aiwctbwfathsnst[ymcmlyeojcaokgf]hchdxsyquapjjgncfq[adzpesdwzpvcksioys]rbfqvkxsicnkphd +hnbounecoxhinavuro[tdytxmzudgjmyxmm]fovpxazijvtvirqfrup[qbfsslqkpyioabrzhlz]htlcbtysbfxurnuqgs[nybjnpqgugmtfculk]zxdfwtbtbvhxyrtcodd +ecszlqenzswzeujn[aymhmhqkvzbuabtr]qasueshfbfducoit +bmvypnceplfbhhsko[eypvaebyvggpcmzum]ycwgnjvrjmdrkiao[hdkledypozrgbkexls]isuydppzigzqtfo[onvsgjzwozxcvgkukez]uhjisxtizfjiaebue +ljvtminczzipicxg[eqfvilzenlbztef]hpdptelqvvscyfqjbk +kofmsmvngqzdobeg[atcxvdptaufgfpec]rbyvvgagylqgryjmdz +qrqirixxxpivzyxidp[vanhxwefpeffrphvwm]awiajngjmxhscxctxt[hnmowanymdizdow]lqjbxcvbswqatxyp +baeknzdxlkxorrfi[tiqhvwvqoyavllfk]uqqdkslrjsueklu +usgfgiqvoudfsdyov[unqciexsmnreobavmoq]kcboezrfdmoqrgg +xrqjdugnwddstnr[gbnpzkldpjyfady]edvtrvipwheribydmaq[mwzdiuqdstogfjy]owanzbjqvaqgsgf +oumjseobbaxvipit[ukwqpfaqohsabpd]twomizennyccksgi[hszmrfksmdcycyda]connwmiollbtvgh +skyizttcnisqncq[lcxdhawnbdbcptj]ocvhdptvtfnwqcdmjff[sqbbfcaufseolqwcjt]xlnlzmuciirvedlni +nwlhzupppktailtktkb[bzdpulmwswdaqrv]kncfgfqmxoohevsxfp[vgabgahytpqzalhap]bbubtzxxzeysqyqp[nhpmkotpzfifrfpmk]fruxnzwuvonfoxc +yedymyfylbzvjfwst[woezxcgsurflqnrmvt]qsiblcwatgywwbktdmh +gnbeeaxxlvupyacdpl[dhgikxwvtnhllqs]dzsbgvmgvhcbygjkxz[qmayyikkpsqdoukt]kdfbifunpwlbhsh[qrqskqnysxtloxs]zudxossasajrdeanct +rhftgsygepdspzqbewd[lcmdbukbzwdesfroixj]oblwwxyfconxmhefjow[fvutwgcvuaemgzqanrz]xtiuegikggcimaobg[uhqwmtpowirexexim]txoyjvcawbfxprxf +viebpcquqeagmuavf[kxfkxsoijrjklkgtahh]gdxrwirjrvzjcykax +uptdisvspkluwgzkti[omvlmaxnyxyzwuian]pmieocovsvpfcveurx +ejmnzzuuduhzoze[xrdlxozvhgiofrc]sxtycslunhjmvejtkd[pakbfwkagujukiybe]adudpcxmlamtkwak +lqyqdhuldmtwbvydji[okhzffzbmlvqiko]wdcicvzpzkaowwqnztt +imnhospjiqsxihx[utoykmsvdetrkdxvzti]zgdfvtmfjggwyjef +lwsirsmcseswkfxh[izotdhmoodsvpsp]jivuksxahorpwcgxnn[plncjtzvyamfyxzst]nnpdtmoozfzuemdcenb +puavooykfwvhwzmkglt[xutftanpuhgsdznc]rvzdveoxydbctczqu[hetpqpdgohitmgtgyp]koiwybsyijhmmqxesqk +puivygxavmlrxwkst[qvtxsgezqcquyae]brdptsxbxnobkvcqclm[ibxfeuecufosgtzhxg]vziaqziqriftdfrpnll[bjfubyvxxrbsjbqvi]nnlbiuncvdtnnarm +tlzooyjugzfsomi[robsmcwkpeprtatddr]taktjvhztdlygkj[vbjvzeeznvmamus]sformulcgeirdihntt +zbcyicsjcmpicotmt[tbrfctpfnqspmvnv]edzcoymhzfqwbuyuyu[jhauxxgwnguurrviws]rfkagjqfdvhjiavoxtf[zdejarfvfodyslh]pzjedvtgzwflpduq +dhbhmlhsizoeldofqs[qcypvphfozxibpjdo]idntecorhucvlufrwu[naoixcxuqlgsytnt]ehsyusyugbmahyrn[djtckrolqitsztwtuq]urantneyeodhvorgsx +cnsrdanbfjubsdd[nwynwjxiyygvgdlx]gyyuqjjvumvquvzib +otivcdfzmsjivefwujc[yiveblxrayrkmfjwd]mbwaroznwihbnbmjp +fwanqgdmtlsezhtvat[bhxmmztvspchqvhovae]cnjyjntrcijkmnjwnlp[rziosbsufkiamqmqnmt]mvxhzoxxibbkezhzlks[hfessxjoefqfbgxhc]kdgmlomxtdfgdgku +ygxiiehdqiqtqjzj[cwbddmmlczrgdgpibge]tartaeajmndarksakye[qnurjchyeijxcsdpc]uguxoncwdrojsyszsib[mlwwasmjacumzfqr]sguglzsozcdjzlooexl +ytyzugjtaxtnwxkns[aclewmcdbbbwyyu]hlfhrgrigvwsdmdethb[osohbeuazmmffxyeq]ygmbsfwcmyqowdvh[pqpwyutdqwwunfqt]ppkundibovmqwjwyll +vcrftmfliijtpaqsoy[zcpypxlyshsruwbclj]mnwgypyvzdxnnie +fmfdmvxkdupjadbxh[tauggdjujfbeogtsgzs]pygzoyudakrlrlba +ysxiybmwpoygkyle[xaaughrlqulsertp]iukezabalczvwieegzj[wlycqpkbqptraajl]mjevizxosnolkxnfwxc[veialybabbpytrf]tpgpqighdqgphcwoysw +cnxnptbcjhgrxrtremt[tjguyerqizvuobq]honeukqpcsoiapswdgs[hcroutdslvvzypfklj]owxcxqehkqqyeflgi +ypgeqbggpntconrgr[fmsyjvaninmkfqekne]ykrmyjpfwlhnsvgehop[gvltviftpcixosamy]xlsyzevtwaokuvneo[nbfcynlfsbmmweiml]nxuzmhrwlucgvfy +zagsvkbkhcrkvnukl[pyfiiavqjgonrarga]antgzbmtohtndzgf[gkvovvdgppcnyjifrc]lxdhpometcwlkofze[fpxwacqdussynpwd]mymrmftjovoqtkuae +xrtjipuirgczdlrrlnu[xdczaqvzsfgavmzq]luocuzuztdgsyxbcy[agpcmbiyqxfntvnmzn]atjschwzmauidumzxru[gvmmftvwtfsvudtd]vhmononuocptbuvorau +fzozmcmcymohndlq[rnrgxsywctnmxxd]unfjafhfgeexfykym[xnldroqvnecyhhcwel]wagagwcqljxduzebjeb +efvejswssxdrqggx[iqwwyhgngmwzwsw]dlkdcjxurmpsoceomp[scbledaqpgsgynjo]rsdxazcyjgcubfxlbb +rlkrgjrxefztgtho[tphpsircgzsauqfew]ridnbmerksozxzwx[lcqwhfgiihdzgtgudp]whskzgdpjubkztb +qbtcopfgkbhzhhglhh[ostebaqylyggiyfptkw]bbuaatfqlpxstpgwg[nydgrdgyazzfwlagrz]fiiddplgxeyyntyeb +bogowskdtwkyhtdpzw[uxvrferconwfnnj]eukencoekwwahhefvs[xtrpjeahwpxbwgogfmh]axqvtgibzojnfcku[zhkpmdtwlogmypeqc]jzqywlhocshrdrlgd +rdmpdlidbkplejoikjc[iqzadghltpndooanzp]ltizdvolnhagtlvr[rqcrkoaqwfwjpsrj]rtlcwqisvkznpvrjrbi +ndbtkvzkgjsuyfibsn[gbfhvruiotbnbtvuxaa]xihrrhcnbnowthpdge +vxtgjsiuodbsuhg[updgogkqrntiedefvh]xwgrhmgmpzsxyen[tbhogopfepprmtewkm]fmrtnudhysikudz[rrdmqrctpwlcykzr]lpbvstnhcmvnfcpngja +eoaqeiqpsqdqkdvia[pdyuqgwuhxfiukmpvw]wsjyvdabhrdsxij[puikfklqhrmvfrwomu]zvbbuuromxgpnmpviw[fvfilnspmeoxozaba]yaouxfprxpkvkit +qpaksrcracxnyuozqc[evqvzzqomyzwufkvxx]vmbkqqkzjskcxbmbbp[alqaapbcvzuxchmaa]pzxrooiyfqprfaucxue +jmjvvyxljzznmaarmau[piytxuyakxaropkfnfb]txaaoeuvlqiwynhqlt +yrgxyekmldicpvo[wqcvsbptigcqvzoet]jjwvbjbshgmwttac[ymvjkuxxoojchqomnj]tsapoddljyrehrxrke[ajspkmvbrzxrxlpzw]hwymrguaqnefpsza +dmlshfvkrzncuuoo[fddyurlzqbpqdidtkrs]kcewmacglikdszapy[fltgxlltlvysvylrl]rgovwrvccixdullrof[bqkrpxjupbbrdnahf]ebmiiwmxkutltuxwrds +lzklscqfbovjmjbo[rhwheqhkaseohohelh]msyobgeiybsbyucus +olbjozztfeowxftbsx[oefyqpxsebyfawerwwb]uyfpnsvujqenwouagc +hwhbihujnzgayah[euifzicfxexpxir]lpgjmexgfyseevwjpqo[nniwslmnmrgybuelwb]khkudtujoigkyyjipu +okiwsdqqwbijptpjzl[ktibxjcdrjvsgxzlgg]cimquzswgbhabcf[gictypilnrboctfwls]oiofteanmgnauid +hdwokqbmfofrujxvf[gcrxxfsxmycedcfr]xwcmtasmlcvfmezvtk +gcxgyjgbqhtcqznfuoh[yitqnwqdcpkgwzayq]oqbiabducwietmxira[kuxdaeohprtnmpfniab]wddlljbeofkomijydzt +gnxobceomvkecom[oedsyavphnrvulwlqfk]klkcrpigniietqecrc +bgzhntrrxvjvhyqhf[tnyvbggtjvjfgratfo]hltqszvzgcutrdcvddq +sgzcemtrlzdjijht[wtvzogdoomtmhxcwckm]nmvftmtbucjnczm[hkqmnugntbrrsphbmn]yfvwwzebdqjkryhm[ydcjwepsqqrwnhkpup]tyssdovqgkhvvstvd +buhlborygnuuklh[haftitnpydnilqbqabe]gemzbfstwlhejmjoox[awjrajspxybgdkbl]nrkncxgvjhuwukw +suckcafpmeixlavp[ehmqotytcsxzagjq]vfwmytywcapfwlljl +vblctxriewmbbpxo[xsgdnvmcmfnuejlrtz]iltofzajbcezlpy[wnfixwfqqgseisa]buystfqzokvletbzv[woumxjkmiqqstnt]ciarbpnsahayntnv +cjsgiueunqlisps[zurvijydsqsdtktm]xhlpspwgqlwqfvx +bobcmszgphpejiwlwdm[wwjrxebfctqobojw]hyrcpguihwihhpmr +jlyvxnexbisiiwyjjf[pxpqjtfgwysrewmrv]xcfaninzgmdidqswt[spnysxcfdiwijvfqitl]wigmjtxvsmwlquxew +qqtluuthgrubwpqzr[kgebpbdpqekehnnuyuh]onnyuyxeqstunzueapk +sizavpqzmcfexfocoxn[dwcfbufvxxousaeah]hymczucocssffcj +ldupymvmttlywlxbbs[vsttjksdhwfdxclitx]hfvkvgmtmaxtifvo +tbgqiatbujypfbjha[catabtthtrydcjbt]aujolgbocqymyeqfr[apsuwlktuaukokmldw]qllsjhthoqdlpykgwz +zqtpkzchpnnmyzygsaf[zuokmkcncefsioenp]ynympbineurlgzkdys[nhrjzpmbwhwcsuowx]hzawgwukxrerbljm +navcmnriavzmexm[xdvtpfcjdxlbsyenvtx]byqzubujbhvpwfcme +kookhqsmbrpgpsbctfp[wlbmttbadvipoyrojd]cqmhhdfaunlqkre[gqmltgpxfyljdyo]zvzerdpqmktqmezf[npidrfvvtdeqgzhojn]hzehtqonmwoahdakvve +tanngpmswmpddgfpph[egmymqydmigpnpr]bymycsueiolsfyfey +uddmrzbeefaxbulsm[ieevtshivgygbvsiwpd]lbxhzadyduakugey[sqywcrjzoxbbgadoqne]xngapfdfzbwcrkd[gurtymibbzvsbxtpypw]elpexxrljomuxnybuxk +diqvdzizaoprrpzrovy[cbayiwiifklhjkw]somecbyhptpmhjvkrba[gczcezgzlsyowteraem]xkjkakyvwxbgmybzj[htxdiogfsahudae]hhbdrescqujtyeyo +kzrqpxxtetqkqqfxild[tenlubsvlvxwjgokm]zxfixurqybohvhfa +pjhbxnktknirbwjp[arlmosnekoqwtpysn]hexsbuespjgsrzbvpf[vaacxsepjnqxegwqq]owuxuohhzxqnoqepvha +pumaevegtbjlzsijtf[cjpsnszjnvoexufcgxy]dxngvevsnjzsbuask +azhhrcrptkuqsvxa[hwxldisbvxutspea]tiqwqugkmslokmixx[wzqlcgyfzacbyoguk]klpprvhtplelelsmx +dumehssexnwcppac[gucpccbmtrdgoee]zpcpjjuztjtgxxhzroz[iizviarbucshvccj]xlypepsxxhxphttgc +deujoayipwnugheu[nnyjneomcvpfrvfu]sfspbwylbnzbyqh[innsmlncnbxrbfuhu]tldwbficslnxpkzlrtw[kyfmnucfyrwlvbb]wedvxsifdxaysaw +lcvkjzckpkeyzyjgtwy[osncmhyofupofwscd]rysnhkmiqoqulyu[lqwjsxrgpkpkgxnvhf]ftmywmwfpckoadd +pixbxvhtlxjxzpm[nvmqocftgaxxgejke]npibmenishbqrxtavc[jzceumsoxcyqbfv]qcdqqbwcueyyqptc[egixgueerjonkmigr]teecwbxvwhgavdfjxi +vhtgslxovrpmlojcyiu[pngyxboltgfaskge]eawigmpxrezdxtau[osjcsdhppmqtqxixkg]gkxhhsphrnkjyxgmp[khnpkxghpkaxnvgxqe]zpedrsevlishcdbd +ixnbejxsfmcjmqh[pagzggnbjxxwktstf]hcjdsogfetpzoucuxg[gsnpjjdmrqzojcozi]csxsgebagjjgxqjx +mekdjtrwhgafduvnmwn[aaphpbnxrwwkhzxn]jqzcqvefysuegreqcw +wbpogjbyzelmxqeaazu[djdqdlmpfmezzehvjl]qdquppvgjweftqvph[equcifktaceuqwoakk]uxemheczqpboerwq +objhlxsujoqunmhip[bxpjvcdqedgvqrv]rvycwulyrrllbrxlbty +ckxcgnosnlskecyq[lcbisjdelotgldlea]edcebpmpxvvgktuxq[pewmfvnkiiulfehy]electgrfvkbxiic[emqhtmrsqfbebmykzv]jfdpefifxcptpfzvovc +leyueicungygchlce[fbclcyopnajqvxey]jcwvhehawbpflgddtn[xlozeiujqbiinjlvrt]ljmnnzlebbjbccao +mblrhofhihdiotvy[nfatavuoewnlsvc]gtuqdhyxielngaci +eyzlvgyolwwobcg[vaeslqvdrjthzho]zdakaychskakuufan +ukqgdhxdohzgrdfc[vfxeqopkydlzdehao]cormknsmtbidhgml[ceialgwruscjsapfc]erjsjeuxzxjokxct +szronkojjdgnfzkpqzq[xpzmblnarrtycgglkw]cixtddybdschdshenjl[gflkqtgzlxeesrfvx]erpfhhlwbsdasjljnqh +crndgetyvbvxhujqtu[svhcpjoxbaacvpqf]ohhkqbbwhtbcatwopz[nzfqzdbjhixrtpw]dpyfzrpxayfoglzji[aynmktzgxtegbucrw]igvfejgptghxddj +efswwtohurobgbpvlhr[sbgfgmsrjsrjblwr]xkswzbsgmboecxc[odmohossczkqjwtrdi]gvdjrovgilpgrdgt +qihgnzozzcedhgivz[wfzerbwlgrjbwolsz]ehnxlqolcgghtdfkeus[isyrflbjdelvbgz]eblyrmmkbobefzo[baowrnzmyctfmoylu]bzhtmcwxpcqhubyws +tjgkgtykbfdogfa[tixjoqenpxjbetz]oybvzsgugsucpvid[qukesagikwrrpuesq]xodwkyngdrxadgqz[sigwgfluzksbqqpvueq]rlgcptipyfrgihzn +tbilszajwwosrhs[rewcahkzssatddmv]wtusvesduewjvissr[efusbpnhwnrdjwgjthd]dunuqtpzocqwyqbysak +spvqcisucqxihmincf[csjfurernawvtia]vzarehconlkvnhbpsaa[mttsrsqoluowbizxrbk]pewqfgipuxqzsfj[qznswrhnuvmmqtbq]mbjqscwfpmkejjowy +eqeycwhpzzryclb[mvthqzizihyfvtdgon]maeannxtfakrfmg[xlxbqdqlglfspvyqrx]chjokbtqngjjsidqdyf[nnmqygvepumttyp]zipyquwulqtblevg +etutgnamoiukjadrf[phwftwicxcpgdegzkr]lafqcmydwbvsxlegc +kbwfmffiylhmwisrb[wvoulhoyvagzmgxmp]heupruovkypjtzkilqm +hjgmjhzizaeqewp[fepsjuqdjujbjpnooe]rnovsbmzwqtukgy +rlxvqkugtcovejm[vqlkivalxqfohnwz]afmwxjnymstqmem[ynyidmrgyujdkmjq]cliodisdvotckoatva[ysfxjtwokboitvhi]xfxomfghbnfnkobval +oxsmqxhljzdjqtx[eavkvuusdpcbrlwmr]kkpbxnnmuqigfvbrf[qrfzadqfcladouu]irmuceccvwsazcydh[kvkeafmibmbgpjoc]kgmkohjtzjqnfwxkv +hvvzujphepxjyypzp[isabpxdneywzpzr]rjbcrfhnidqlywbgvxf +ezfeilvlhanyhfvd[wgbqirhrycdzzbu]wpwvyghpwpfykgdt[drvcvbpndcvrcirig]qzcdvhfcxqdxubat +hjkktoruvvqmuauitf[dmygsosigufbzkm]rjbwsccifhzyhqk +zazrvwupbrzlepfcc[nzlsrlgeovdbndxwqv]yhjwjlnravqgraen +fqjubgphparanlll[avwevtaigfdxgjet]mgftlttzuhaqlvwqn[cnxupkaxahrlnjelty]yqgaieunjkxlhrha[xexqcuvkacjayozydc]blhjzcfcoyiozuajqxw +nacvyqozsyqgnvkvw[urqhhtybjqfpqqcrex]pxfufqzfghzxinnnlq[vbxhmpntjgivfgzgmq]vgsmxbkpphhjvzqdirx[mrnmmtbamdhoved]zziaxsjdqjfvqzq +hdrdsknkwrtejdgeqg[wbvycsdyecvuclhi]owhsjsujsqjachyh +jwfxtraepnpxwmziud[qhwoewcswwusdqcvfh]czaiemhwpbkflzqi[yntelahhkwcytedvpe]kpkuxgqygwicxoh[vuifmbkhbycxqiv]cfyzggvhpveafhduk +ngiytctkauehibctccr[coszigxgcttxzoqrhvn]hfrpsylypetiwrggzg[xwnfgwaxrjabzmsqquj]gxdqtprloqdojdthh +rhhicddiuxdobco[ihkmummwydkeoqp]seubufqphohblrkn +sgslfpeleveakroo[kgpoljsrrcfwlwyzb]zeacrfqqaortgdv[yoipuknesgpwoscvguw]ubrzxeqpijxuflgsgpt[allsdtgmdlnupofjb]brnjhlzxmijpicty +vbcaptabloujxkqwnsc[iujlwsczjefkoewao]yqwmtuetinhedenovhm +fcswktnxobrvovrjg[qsaxxwxgrenkdcpfvx]bmivhngglvcwxwgjz +nhmxhadaretplflb[eaaitxsycuqarue]zzdsqhjjnebzptm[znupjbepvjzujwj]djueiauiobywmclemio +lzgmurmbxidxqofgvy[nhpkiprmeusixtqhfid]zlpmcgmvjfsqhddfzu +aziympesgvakqhltci[qdofqedxvlvpyqat]txvwrspujxyuqsn +ezewtaywtinlcbrn[idtmhvforhdxgcdy]ohpcvnchsamehoewc +ayzzozmdklbhitpd[xwlznwdbvtciozoykoy]ainwvvxkreuvsgdatbm +kvacickhqbjjwkk[fryxetyntagtppzorb]gkqgbqhjykyewipbcj[zdaanxpihogooeeqby]lxdkkpostipynvh +nzngguddxyeihkkyt[wamdyvzgrnofprps]znzgitnmvvvrrzsb +vnbogcvphumewlx[cboxtlpwdmfbtfegkai]zlxznqxwahbghxz +stwxjgiqglghaaot[gdxpnepcgstafgt]psljddrwgewawdc[snbjvfbagexsbpyh]wqqhsxerdjilgln[jyqcqbxxikzmrguo]sophymnkilydvivcdk +kihnifnjfzhvlinqrqi[bcgxtjpdyxtgejzrdi]avzbrcqlbmaadrrvazb[ntmnrjhiklfwujlg]pifpvzbirqokamrmd[rbanfbdlrtmtkxca]udilckezqvrehkz +liradbqjmqeaifibll[yrfnryjrscfrxgazpzc]vxmlibidbmcwgoygn[ojkunzztsdudqhma]dvmtamzfaanvyivxqrq[yqypfcmwnezorcnbzy]wytsaklpzfftqat +fhaxbfjherqxbzbrtg[nabthakgwjarjsfhj]iokwyfrrjtwulhwi +asundudwctdvninxpag[opdvadcnjnbxptahj]scynlgwnmzdtmudu[bupcfcyqmmcwsqfffb]rjargbcgxvonfgjco +zwzcwjnudozdektxh[wesqhjkthgohlufhrf]mwqrvudkqiysxokugz[lcjiemidwqbdnohpd]psvhnbkuptpjicdmb[vfoerfpkymcjmhzicwm]pwykcpzewskfmho +zbhxhhqfeurqurm[buuctguwokorlkfq]extdceaqdkokhdaxzqj +qcrnmtdrftlnyciul[qvtjesglscjradq]tcoobnfosubnnrps[qafsnrpijrnjkemz]urgzkcxptagwndzug[olhgasghsicjvswx]higdtidzwjfzlfkmxbf +ymvlttwormrtliwoy[wrcafamahrcipugxxgy]mjzzpdkuowbrbqtmr +swwktdvpgkbbntq[jujwbyzbmzktmpag]uinhisqwpyszittfqe +qrlfgtcrpyanzwfeuhl[sstllbrafqeobsocmsc]gmfmnisxdoqqctof +znfoqfwiwmxdiixycul[tsxegdjmxscgpfllqvi]fhwwrpconfwceqv[gqpboszvyuduzehsun]hmydskzdmmifotkn[jurqmnkixknhmwj]vcjomeocgzfhftqq +wukfxspnkhedqdbtfti[cjcrwokxqxfqbvfatie]eaohmttcidinhxqtcu +usgxfhglhuknqauzic[jlhntqhcyjuoywthv]hbskrwccmtzgyby[pijipgraqquvxhso]hehkqohxirecivlxnvo[lawgvpbmozisammvpcx]vuchsyinsehynzm +dgnciyptfimtrbmfbcd[tedeoxadobgoobffh]iucidwknmfofwia[bbtbzcwjwiphlcruw]ukwczycabezutqdcc +huxitbsdoqaffnlyxyn[vzcnvdddtezaeymzrr]bmovgbcqswsdmjacezx[jjdtfpukrwhiafcy]fwlhrymiaolokojdkx[ftqdrarkfhfbelc]yfonqpoegjmmxkwhz +ldedcblvfbdacsy[rksxibwzdatluua]agxedenvctglzyvpu[qkwulxegyokwljso]akjfktolnkzwsnn[lfhdwjomyhroqkkzk]mtkhpnffxrrwipsrqet +ajwscynjeiagnubeew[ftyzkgsmsevmdkpyv]ufeszcwnhqpwsep[rinrtwoninoxbqvlgy]mzacylokxrhxtbyut +rdlragvdebqlteu[kitphkhhnrssleu]chisqrsnofxmmbegi +sjzglwvefnntfgofuax[htbkuezcjsfgohzynlp]wquzxtqerwxlperau[kqnbhymijqtvtzxbra]tcwbvbockcilgvn +bdqyqodloytjtcylu[xgwgnadrhxshcyhd]qshqmfdqpzbruygmmzc +pnwkymgknqqdwzmymmh[vcnetknxxjvihfrlvq]cujdvtwltkpkzwkc[owjyboqcsymigajgish]bdklpwzslsjvadacm[mmimdikciuetfjeece]dxwoxjenzguercr +vxgoxslogbrjaxbjg[qyyckvarfyidktepi]odfkcgodqdusnjs +nmumnqunfnuhvtucy[voatnmasscuvwjth]grckxjhdzzoqtpgwm[qwmgudaltzavyrchqy]bmxedeqkwkgoqyrmlx[uqzdpkjekjgfvlnfwh]tpsfewpellmljsakhea +dvvwqujegsgarow[rkjpzfvtrtlpcdlc]kvpqbvyshmoemkhvq[hzbtnbzhmgaufkfvwh]ipdgirduhpdkhcwzfid[jmxetzvqbkrhkices]yzrxhfcakriippr +xyijrstjowvehnp[ylbnnbclmipxjtxtbb]dtynyczfzgqozpa[rmontkapaesmlvuasig]qmuqzwqsoipzutdwz +bdwyvvnsxojfzifhkr[mfdopzhxfakffhoudpz]vqnrhwzqbahbztlynpi +hymeoolncfmkblqrd[ifbyrijjwxsjvmhql]vgybqqlmoilegcrcp +arqsuxhcivbxfiuf[jfqqzwkamooqvyj]awbpyjrtunzulggzmh[iipnlkhwzzmzcdi]ktvdnpdmzmkrqavxsxy[dnoqbxknjvouymfz]brcemvbpovqjdvps +sxhcuagminkkyodlma[zkcpbofatowxfdddhv]iydjxsbzyvvptmrivf[thuzxghsyyrkqbjozw]zicredtdvmavltqgeg +qgvauvsmewyfypvgx[bkzpxdkwztxbpak]ghwmldmcmotjcmun +ivnbdeggumwedodrru[ejwxagdnszmvpyxtsfv]eaabhawecgtctegy +nylnblglukusyetuly[annmbyywmkzxoxcubb]fwslxffcquyfzezst[exsgjgeufpzlscazuw]rebffdvzignmrpriw[qwsiovjdtaimkun]utobenmeyrtxlorxjx +eivxnczlgqbmybivjx[zrbbxnnjprbaknh]gtfbkkxqoowynpt +botxfdjpvcayvpxmf[jysydtitavnzahbeg]zwkgkehpvxtocktco[iodpobnripiqifmexh]zpnrcxntqwwwucz[nwrxbbqtsqmkaiysi]pecfziyavdcfehr +bmfbcrmibywamwmic[npcluivjtbtwmwxmx]mxyepxnjdabcuiexhwi +kezzmzrmfsmhwxfhy[euevwjfsullybtlul]edrcskoqqmtwbhhafnl +yywsnxvznbcockrn[fnmwrszfamgerfhocoa]uxfgnvtphthtmeuyy[houdomoboxleqhrf]zznqyqwslypolnqef[ttbcfuirmlnwevhzw]dmohemntzpwivaab +xfrmjbgozdwamlqe[rdrfdfobgryckvow]gzbnazpqaqxcjdro +vdxepylmqqekuqe[hagzuweczkaioxyz]sndgjumcegndnuwwukz[ymkpvinydrrvfare]oplwhupwenqwloy +paikbyhegnbvcqa[kawvebmxrhzszrncq]noltxgnszsqxfbxbrk +hwifnlppmjawmyb[gulsfllyemlqkcws]wfopsunpcakhzkz[fcpmxchdgicqido]tlvnxgdsecuxsux +yogujlygnpdyhkxpdf[bawcwagtpbuwaorpa]noyoqlkcbsytnzywva[zvdbrjsxhozvyrugdnr]yyehxcwcnepivtjntex +ukkuxsacdvwqkgwu[qfhnxatswcchleqaeg]qynrnkuwuynramm +srvnvdghsmgtyvvli[gujzqjtjtrdfeandy]rypduscceqqfodndh[bssbtbzcdoiygtdse]klhkfnjidkombeom +hrxpcidpccertdnde[iubpwxhlmbnofumjnk]tzjinnaqvzhuqmjgzqs[tbpdksrgbhbhscpnns]kgaslrsilgklgukanif +xhrwvvblyiyyjithaqj[nxzhuqjrftquwsq]juvsrstyudnsyjxqpko +qjjtuuqdjaovcgs[klwmohvmeyujgvauez]faqyixqvshgpkrgvac[hzjbtsvreecwygo]vluysvnbqjuroaondag[qqaysmxakrfjdrpvj]lteebmjrrlysmwocpg +fkemhtixlciygti[babpytzqdpoovfy]ptjooannebsdcfrs[ismooacbkqjciwrfw]wsawvmoxxzwzloxunq[wrjhadcbmeslujxk]zckevlidqnpsdordy +ikapdixlczlrtpab[xyfywwygclrvxmc]tugwitpyopgfhucrrp[zjnmpndgvwlqnsfnemv]xeahjahtuyjwjwxfdv +wjbljlhlkfhhkhrz[kfhvlihkiqprhjno]mhceaicjbnvajugy[rvkrsptmdupaylqsbv]nptyjetdstrwmqjav +nqcmyiscwhuiafdyg[njnrwedfdsnzkyg]rsxrirfayriqxvyqthn[alkdpteuyfothxvyeow]smfyaybytdibkus +msvwpibrptekclckgdd[gdowictxfvmjmdtyimm]nlrlpatlusnrqcydh[zqiivotvmzapjjdzhx]eqxxguxozcbzlfkktk[amsfzydattcuqolcoaw]exjpttscqgketzhe +uqiaugsvrqenozqcnry[hcmsmwdqjcoohwlu]morsyizcifxpoyzes[tdnfcmzkcxkltvom]jbkvbwcolkcpkxdlhy[joounotcqahwjvx]teeotmpwnuvnrgdxscb +xsejzfhwsziaedxovv[accbrvbghrsomiv]glmkioydimjfcneh[xejzphhekszjpec]qfetmjhsfagbzjurrr +qwmyiuonuwttopaz[esdvdnqxftkihzblcc]xxfxmkdxigfxfwadl +gnvhardsrapmlpmlg[gmliinpyvjenkrnnh]kovjprgbyfdknmnbfme[nhzmroniytmwwfp]falokmiuiibxhheszok +zcczeqrlhunbfsxu[ifzbbveczjlfwppp]pvtsdxzdoxrrlukmqmh +rbgkskquxcvswaf[xihgvfvaxkptizohvn]tbntgfbhclvkdael[zuxdeparbafjpwqvg]cpfuexhjmkrdurlbnis[vfmoasavisksmltggm]hsnrpmdkogfxnprmvxu +abttallvhutezhtr[beucmccowruviwqjxlo]slskvryjaodaowc[vqtmaqykahuvoqc]valnulizvgiciruetx[rbhcdafdupnswhn]bppfeuexkximknecfq +hlnjhkjucpmxmguhb[gtoyutdhjwfudqnra]pipjkprnypqtglf[phovsbawbyxsuwsyopo]phkewndekgucmrrbw +bikqggafubkrtyskep[eugvetcxkbfuajpuz]drgqdldmenwxyldlwd[klwzyogvokknfwdqw]ffojmxeeurqxasxgf[qdjndihaiuwjqie]uaatdignzrdeyjddxzg +ddjhxhnkcrmnaztvps[crzhufiibsjerulkslh]snirbjgmmerlrucjlv +ckxphmsmljtplee[mbrperwqumwnitb]aikxmbbxmgsmsfgeni +zwmouppnlfbatcigqkh[kahnxdhbhongbfgmtxy]kfictxvtzrwlzvxees +gfrgqbgweickiocqas[urgmzzgkrwpkfhpf]aazsfnctfvvdrrf +sgndtkclbxdovlte[ylbolooanippjrmyi]lfydwbjkfsgdrecxzn +gfypysbhqsgyoxrtxxp[vdfjphnhrphzphdia]ekhgpckheqjkjinexuu +tagvhpldzimodoca[odnlmmdinuwyazwif]hsresddnysmuldvv[zpnjyvabzrktghfvtfx]jbzsfhvzaglqkstj[leniqywipplvkues]zumzesiphmejqufbn +qhkrsmlwyoxfawk[egspgdlxbrdcwvoeje]pxuytqzjiabwebbmu +wsxvnbuosiwcutjct[nzthycbqcazrnqppb]keasqheprjcqwac +jyiifehztqkdshfuj[cddnloevonuheydyle]tftddpechuzfagnww +zyicuknwqxtzzzy[mqgzslkciigsugirbcu]vadteaxyvnpyhwbec[waifsdqtrcbdnvrl]dygogwgquwnouhc +jltdbxzvwoxlherhs[vuuwuslxdkthbcs]ujzniwntplzaaldguqb[zdcnhufvintzrxm]cunexbzfbuzomrv +huikyoqqhcabtgosej[tqbxkfxeqyclgcqqsu]thtunfddczjfocqmr[vddedigjifexfqgp]otvsknxemvtrpbxw +sgukpjkupqmgtmj[qmvzpbebkypfmje]howlgwptfegdnqp +wnomkfqdtyobjkmd[goockdzswfoumhiavf]noshgjhgufjxgxiro +ivzlyzlnqpslrbldxqw[qmlmhingxmcporfx]bccugkqyzoqaqbv[msgojkckxyuihysrhp]hdmzempetgwwycoy +xzyacqjyialgkmmcj[aqenwwtnrupdsmitna]bhbicwoaervlixo[cggrwmpqsyxfoidjm]yawyxhdkscodboohvvo +aoywrlzjkqkzcmmicvi[lhwojrkhqdearhac]zwhrxrrrmfpkjvrnd[zwdpqkomjgjvkcndhi]cxpctyvgnthrsarfhx[clnierazieohvgsy]eydbsvaautujuqqsr +zfozpdjsfxmbwyb[ignvlhfnrdhybkwhxq]qfxolqnfiyokzcbdy[ohvvpuipajnqwml]rybjvumgzqgzfveqjvy +gkvxesvhovzoekxbmgh[hjnizppxqxtlkdj]mqvvrcdepnalllarg[urffyistzzqlhimfhi]yhndztrezwcapskbkz +qbuqvobipnbazji[qypkenwigkvsjhfdhd]pafhisczyaozydialh +dkocroswvahrephwueh[qtiawejyhzlhsnlaxz]yyelniorfgcpgfxtle +uyuylzyqivmpinpi[nxooflqcmtftzosn]vwxiscnnmmujalwegzl +ewyjffqwxipurwkejav[yxcfacgyuuqpjqxgn]bsxufukndbljizkbo +lglancnskvgdozzuuy[eossyfcrfjnpqtim]mvjbtylaisjdcgyn +lxrbvlmepaibubsqlc[pnndwclekhualwxbpg]cxaynaselbcbisw[evtpqzovucquqbgg]lsscjpanobjuqlpkhtu +wqcqpnmdhfupmmaa[qawfetitfsotgsibhg]vanugoxziwlnbda[apowiuucwbqxkcxry]kithnvgmjbuevopx[okzohlobuxbbjxeul]wrcnqenrhpvmxzp +qwmlncrpjifxmtyxjil[evgtbhnhavfwyih]ganxbqprffolbtg[pxidrhwgdqsycynecqe]sukgwvxkhbzolomvx +vmgykxaeppaasupwolg[pqkilujgqcoxpzys]vtmypzwtqecvidu[nolweceicrhwtvov]uevlxruhysbiedfibc[ytdalspbuzpagzjr]yrkwrgdaptnoxcqqr +fgwnpezirnabdiwcknh[qnwczufxpwtomgr]umwdzmivstlmecryoh[ogyfrrqklslzcqoo]yohswnizpisqpvpyu[bmwnspsfofxvrvqkc]itdkhtuqsybuiom +ynbnpjgaoammxaoagp[xkivkmwwiejjbbgk]ongbnbtqtcxqipe +gxuxnshdgyttcjzvk[lsxpwpvsoquxuazidye]mfihmxgxumzfhnm +ngwlkbdsfkoopeugbf[zkcrhoyehnzszjl]jwkxolilixmiake[kcoazkmvlmmlxhlip]urmeqvldopqdrvrdd +hnlkmhqgkitizzp[dgtnogdyumxjgnh]gazsmgjzighgwpided[vaxfshfsqkmebtkceye]ndxcvfbzddvksncrr[clhmftvehwzwljbp]tooichznleiqlksnv +jgnvwreomaddorfbnna[oedwzjkpxolayry]wdkdtjlmdviveeog[tkbjzabxaqxvbnasst]lqttnyqfnirsajb +yiuwebgrrtctqhvq[dmddhqpukxspoiaua]egktbjgjcfzhltkjtyu +sbfvjniiethddwbjx[guajrdwgcphepysv]qntvmggllbcquzfu[qtlrmikwlmlzfpqufgk]tjwivdcycoacfcwwfyl +mxbvlmxjhiorcnni[ubvkvylqtxbchszgp]kzxkzbjtogzujapfq +aezkzdgfurigqcdxt[kkjkjuyowyhylcxzs]maogxmmqteaectjv[aocufmtewquabwa]wlidntwbxueqzbql +gngwphszdvmcnjj[qvbontopydlzjywvaiq]jbrgkevvbwzvkcpz +qtdsnkqlmcwenkzxodb[wqmskmdllfarzicsce]dmubpplnmipygwqjim[yejatlbffcwmlyrek]gsvwxfaeblczgpdvhhm +ktshrikjzljpacyux[omqqrcsqtbtdqsupfvm]bggungenwwenmztg[kacviemyqpqmwmiivp]petgeydeoygoknl +lvvozapyfvdohboxrt[sqedcfculzdrbsafvg]ioohxzwwppkserbkim[bytwtckhnlhtxgmes]uzwrmuczkofyfgv +ocskfzkwwmnkize[wnjrhvmcynlydnbvn]qbykllzinrgwfvod +eqnrivojtcjljsfcj[rlxxybjowtdptsg]rnnvkyrsxzytscf[mbykscjmwlryaiictd]gmfcxwtjljrpihljll[gxrwqhtelbnpguyvw]lpbbvcxyokowlqfih +sujejaymvqavyvhwpe[vzobezygmsxvqwnnu]dmuyhdixfuqfbnehqve[gwdapthzmbpwtui]hxhsorcfmtmrdqqrzf[dqrxkbkttpsjkqpbnl]qsmueuwxsrnejednm +vmqbwehpqesssnps[jkyzwrfofkfqkse]glwxlfrqaamjejrievu[jhbggigitejevdzgqsm]sqxbxgyvfpqtxrlbca +mlbhjbelhzgprdshat[zcytqxmfhuyriabyr]yzhvmpjfzkhgxavltdz +ctdohoakygysybf[loxbfdhctlnhggxpoq]bimosyslpbihbwqp[fahhvvdfkiiucdf]bbgugrcsmoasoxyymgz[wjhbkirawxanrqf]palckvdfnlhficazmwm +qoetptacgfcrdrstl[gpcfptpchpeiicbmfd]vsjqqgbwiqlndgmop +dmlzhkeleeqkgqvriu[qxzssbjfthbzhdf]inuernrmyomwyre +pcezyuyfhpyebmvanp[jccebfvhvicqksgwyqy]nssvudrlhkckath +mrpkkivxuuozfbxejfm[bkwbwzhwwkfqqlupltj]ngrlyucvbmdilkke[qlzntmxfkeapmlbumu]ynjqdpmonwypyjpalvh +tkqhdmjsbnhbvkdgo[jufmjoypjidudkbcvy]olrsjedkqdbeijypjp +brnhsqltbrizrohj[dlzumegwwcbonaa]llqtbxfulkgjeqw +vxjgwcccalsesmngkbk[owvdclfjsyhgchpt]zgqonnjsnsqxxvqzmqs[wsmtnxjpvzcdpobat]rkgwlaecswhucndgv +wkjmaneymsjdyjd[uvgaxovnqgsvamsbz]naumvynxlnbgksk[mmjeguwrwppdwmdjlm]puiytitjsyskwomrfqj +fquaiztteofhvsbcba[hvstcffflwbvchn]ntvqaedorhoikidi[cpypurqddikmaynmxzx]qkrvwfsppcglqejkn +cpjplvpmbumvgsduald[sowmjselnjpjwhav]flufpydujtzuzusyrr +jfhplkijkstxymvwgz[kbsytlilpsegzanvlee]ywcxnydvgcxzuibxvu[ayieqmzukhoxmcli]rsyubeqkgvobehe +ocsbswhjtvywugym[twhemgyfgdfegogpj]xamojomgxvyedia[rukhjizwdryazdtdsb]fdiecwglfmtfjqxocw +vywxxiyjfwsjhvjmk[mwjsyhoifeimjqtmx]ribwktjvuvxakqqznf[izcdtybzxfbyubfbckt]aocntguubagirsgvz +ursnbtivqkjfkcbls[ckjjoszuogsdnficmhy]wwzjkspwdvilshnzg[gzuoexgingreqktak]ywmfxtqooxdgqaa[bmucdllxdktiifoqp]pvxrfcknwxdjivyym +ebtozyepluaazxsuoi[mocwxdgmeyxmoulo]grazonsbnsnczptl[rusiwrrcbqpybtjfxt]ewazwwjculbvwjgc[jmoyjpbznvzlvnzu]ghwsmgrsqjgragu +cmbehdhyvukkufctwpl[toklbggcxvjerfqozbj]wqbacnegquxmszdul[ggzaznwywpswuxmlmg]swowxuqlmlfvxmznm +qbebmodvutfozxt[macysosjlpjhykkb]qdewwbokbiqofejcsj[ddzpouyuxgogajwmuk]iukkhkmjmrrkefycw +adaobhuodvmkfzrbk[ucroxtaavsmpvfd]nvrnzhxozidrgvf +yytzgmmuqrfqegalpow[eyefbjmsyximixd]sgxjxpfncigzmft[zuwduxnhjiidywvsm]qmdvambkreelttqmv[mqhlvabyxnmnjfpkigl]vuxmnunvxclyhkxi +qdgaknszcwxvyhlrfsr[kbbxnitytjopwtruar]ucanrksrycnoqlcvrd +nqwjdcnwfxkdglllft[gbawkxvzhyiprfenf]ysybkzwywpqwerm[cwsthmeytiuialllzxx]plcctxffnigyhdfmndc[kyyvjcfkxfofxfsrw]cwynasabqneione +kqthcqbvfsncuenmqx[rpokleyrpkohzefrw]txvckiapuezhimt[rrfglfzarznwgchlej]vpnrufinbaqrbjtu[hypcxgeuiotonfxvuf]cfpjwonfyqddtogr +aaxuojwascuilsqjt[aqpfsummtaolqpdi]qoqnuhfpinypgxiex[peasbtrzdkneuriyt]dbhohenosanaxkqqxq[fwvbczhithdxtbdpd]bmncqvxnaijxuexu +mgiepbqfrprbaqd[swsyfijoncrtrigly]bzdkfgrsmwamezhp[minqrxxklutrtrfxps]dacjpwxdrbxhumh +shdjdexuhgauroqwtmd[jpvifgjpgzmjlrnuyj]svvjpufybafcjsoppia[albycpxsvxdykattdos]ewhcfugwuovgnepvovv +ldwjwyzaqxwfrelh[rzkhymugnnpmowx]xufycgvikehdxxggp[mykgpsmatnpimovscqe]cpdwiemofukofnauyh[iicxbleijoxlvml]dxzlvafklkbfhqke +cqdtbwoinxghfrwulij[wwuuffpfxzcckuf]zeayaofaskxfueiq +odegrvwiwncavmxd[smgtzidklnmlnltytx]psknhjsrxwqdqlw[kmejoinwatytdkz]dfziwicdcmfwawwf +jzioqoutlwitjdcb[furuyivyebozkvcny]gfhakdfpfouliybsvk[vfrykghujsittpcxjnj]vjekmvdvwkaffrhhr +rclnyybawbizurp[cptbsqptpvcuchcyncy]rlqjeblagqogxwy[mwexxfjhkiyoihog]slgmmhvjhpomcvgabu[xgipgcmbydzmayywci]tptdbfqkemdnuzvuz +junsrcleteqbngabdh[loajbjvuielphzeel]yquxjlecdumepsr[lktbtwjmyeqrurys]ralurzrcthwtkenjtet +zgykbezaearyhzuxhta[pqtjhajbyttwqzfozi]dzodljvnchwsytat[wrdvidyboznzzbgvxc]fnpmjaiocpucgucwh[kiqymnngzdrlcncpw]xkjzheobflinqcxu +kbaghyebhrmquslcfc[ukdaffinqagmwhvhl]ruyaqrvavvfrzwiyit[jdhkzojqtxymxoaval]qfxsbqwjtsudcet +obscoqxaeartfjmeue[dtceaealpasuxsdoo]zhtpbqqfonksrcpu +bphcztpaoqfofau[wlhtxjzhyooevsax]pvktnvejsbjwsizugxj[aijfjqhoxneawmq]dlfbjynbvobrkyur[swgyiujwbafngtiql]nepaaduwebbpsrew +fsjxwoamqjhjvyyr[johjhabbsofojaxccga]tqcnhtvkimixbyiqt +lrasfxkclqtptlt[bmwhuwhzvfmwxxwla]xghbszjpdbdykjmfvhx[cerzilbrtilvfptwid]nkzdvndlbgkwkgzwatw[njpjupthwiwffesnct]cipyoqwmxtiugbyfmk +txfqpycfderhwnqtrp[cvtdbizqhlxikkw]nuxymppbyfdpayjxt[sfsnmgqrjqrlfxh]dgwdxoveamltzalgyw +ntfdficysbefpup[fvdhtaqmjosqoxosu]pwrbdoceiweqrfyrx[ftlwubetphczbxhx]jolpetpuszxjkxuupke[mbcbzrxeoqpibuyjsgg]cpdzzdzkwbucybc +pwwzjoakzydrvkyn[xisfgbgguunevtbg]ntzbwgeohmdvitrtdpj[fzkkujhplarmvzckn]whvdpxzietgdyfhok[hlmsjxrxxrdjfrzncyi]xvvkjroullhawqdj +pgazkqglbbjzrofkpy[mkeiyuwlxlmgmeugcbb]oguzgbkaasscxhict[lckibbhqnkatvzlqcw]ulilgiydzfsdwngr[qcrozfdctltxaatyajh]ojyzengehkhylgh +zdatmhxwkinjiumoy[qwhfmokowsvzgcngeax]uqebryzrbawakjz[ltilidihghatuhi]lljxtazlhxbrnvwsrc[updgoblisisvpdqngzo]tjvlrlfopjdoyoisim +tfguxgdgurymskwxk[ngtycndepeqrcif]gttrbjkhsbrfczdwxo[xulqdcmgztpjgiajnkn]pgwsbrzakmvblfsvlsd +lclevdvivjogclcmn[kpxlegarknivgdvfymk]kygexxjbzqppiywvxtz +zadpyjsswjcfimejbc[htbpkbzsmbkfeqww]ydwbivnpofvmzvw[archeurcpsapgylrf]teidjxdxdailsbb[nmoqxuhzymlxxqykol]zbesrnrszqdpsbchg +ykwptdjfydxfdue[svxdapsdzsvmsifz]omdvdqwkswiktcwkma[tprmxhwqpdycftzlsz]dyfcmpaaokppkzvoa +adfqjdussbzlxfvlg[hxktcqjmyqctyjnl]ouyrbuvumwwygdc +rrryoldbjkwnauaz[uarnttzxeuurzokpa]clkjazjocprwqti[krkcdnwldqexavrpo]fdegufvailefzfi[izadiszyerlbhwd]myayzynvrymyobbfdc +krttvoiaszqvnme[hlywolnuxbxjhzmnt]lwcvxyuuugaqribebi +yrznsouskotcing[jnttzbfwdrpszrcqr]dhxidpojntnwrrsjjc[dlvjkiqqyrrougz]bjhjvlhvrefihomycx[veomjtdhecgcvsshcwo]iboybnggfhdhymyukl +qtvgzpyhogqojzi[vtbmgswqkcpdzhxwzo]jsmnjadclhgsofgrq[lltxvswaeqdbvbyqj]gvrdvrgygzhbetbkjq +oqmbdnnrpqmjasc[hzdfeapdznngjzjchow]fdoxpevjbqngxrhhlhj +ujszwtyancoxbcga[qzpevsjkmozdbeqf]bdzegnfxtazxdna[wyinvjijbvudlvkwvg]mrgzfijgyouxyio[qehebkkwomsmozoojy]sqhbhyonrnjocbjzfl +hinhkyqfttbnnou[luuiucbkkrnwiuqbwb]ujfitmunviqwhkiziy[wqbetolmyaceofd]wbwbxudxttgmtuxjeo +schrxkylmxpwphllds[iijplekwtutqrdkmsrt]hvejiqeylhoxdpkxz[gbhczsfvoidbktsgbqu]rtfwgjnvhjhemkkvbm[lxojvsbvcnlbuofvwg]ruakyrabueflgsnict +fvqtupyapfmstztmbe[zxtzrmjxlmgshjlfywb]tdihozcziyvstvdtvd[ifzqxsyyhgstjwlr]xihkbuvismdtqtfm[xtxunrrzvtuhjlzoji]zotmlgbjircyvzgcxkd +shkjoyjuiufvxbluji[saofjqdwpwodltmra]xldohzmyameybbnw[zwaispolnanumhtz]hpobrxhytzqmkrkf +jgaozdtecqmpueg[bnfjhfyhdndzlkxrcb]esbfjomhfrfvzgm[wqvhdvpvrbsazqzgnw]lkmrymdcupndnoktuv +mehlgjudopvrolla[ghqzncojnxbdtupn]vacvkbpzsztmzhz[tcvqbgfvrehiycr]unpokrfctcwqexbgo[hbigocuneutkffaka]dwwclmxsripmvcluve +rkdurapdxvohktm[idaisubzmlljyfbblho]kkkxhnkaiaxxyivjsna +ujdjbvlqoavnuoeeilr[tpiehldutfyewbqv]crvmofwdjdesxrl +ptyvtwbbmoujjbvsf[avhpwnutnjkysjdubd]ysgpwvxugjswjzhw[fvgohaphbuqpbwzr]sqvpubqxxhmfxvlw +sslbaaxswqcqfln[nmdfjxyyrexvtxv]wavnexwpbgnrbrwyrf[deouszhzjkbxxrhvkn]xtfqfjexnqgdiddxh[tphqtpimimjxxkkndng]ncngkkzdnhmbqohupgr +kcowklgmyivdmreahg[nhhhjuxwoafzwur]jokzmfbbnzsobiahlhi[qgzkumabuuxqhki]ubnjasaqscrxdjy +ccofivnvzaxcise[erfolydklxltrildvth]sjprbxbfldbsozha[lrbdfwialwqinprra]wqresduonlpwaamhj[nmlgvtrcuqvsirfhwi]qjtgpekylrqmxxbm +fugomjlqyofxoij[prndifttmowgenapio]jpvcsgonnqmvqrxwo[yuioijkmnwkyiba]gtosuvsrcszwsotg[zvtndiccjofwagevdcb]qpdjgtopkcimpfyqw +zbzstwtngoozwdgtkme[mrcfdmgpywwvikyrto]ktlmqekphuekemo[wenupyuqahrgisu]wjyyqsuatrkzlohmo[judqmuzbdrqamof]qiovruvlcreoircteb +yyclnzxvjfymqgrzup[koyfzianzwtvdjga]jtfmxjxehvwejfl[xbebzfwcbmjrhka]oqnpqgevsokznwo[briagugdtzfswfbq]dmnccxrswiebtkwao +muxweanabaymbamknkz[abtqprtejlmchtpy]nmrtnrjxewbqynvbe[rtxnzbwcjbtmvob]segkftbvlvczkgubgp +hkihivjdrqvywhwt[xpciwwigazxeddp]vkaysmwlighihfka[lcyiuojfjmmhltubrj]spandymlggnmqiact[xizoxzguscxtsut]cmjecsmmjasgpvx +kasrdhbhmrlwiczlyp[sfvdefhihrtmmgele]voszgwzdjlvkejvrkn[ahwvipvknuyzrzbrmkk]yuhtxgfpaipuupqep[hezjazdypaguhxkwud]bsfgurgwdetewwg +mkxpacxlrpbfqio[axwgpntpusujnovkpxp]afzkmjvcysdkbfeli +mspmqxwmjhzxqmbhbj[zniufuwcidklzfpuoxs]uvlrvuhbhjhudvx +nrgtmsqbjxlnpsc[hpbskrvswufaucjmjv]pkuulesksyygynxyku +kmopgjfjwvvrfgvo[qsigvjyusqjqziiuwxf]ewkbjkiqfgdwhkot[tbrynegplyfllxcqaar]cybelgkyrndjodpf +wjzkfwmrsnyjitglauy[jnncpybddtktmehxz]hluaspiawjwywug[ujwjjttoevainaxqmer]gewchllvjclaahplb[haewxwlxjjnfggtg]uxmnawcpzfwhfiefo +jogfshkvmshdacro[anluswkewepuhbemk]rwfxbxtmtfgxatwj[lwqompcrkgqzkajgrqg]ckjftivpzkflgbifzx[autylalyokqqlxgu]chewqmwkwewmwoby +vhqxmrwadjsfoprv[imclvgvrtvqfbcllpr]kmgvgofdlkarrusoo +kwkqhpdsrkdlhuq[njldfvflplvygnihg]hikxtejykexrghupbqz[tanglgtyodyncabh]ennzrvfvgcnlehci +hmibwhrmzhcxvzgt[vrdwkryugziqxxfv]tcgmqhirboxwvyy[mjgojhlpjolsjtcu]tphrqucjxjpsdsi[ahqidqxdgeucevqinms]edzoyewnqweqkla +deizsskvkzcsohdf[plhmdlimpiduxfdyzv]iaodhxioxasudzv +aepgcwcwlpdqric[xyxiplpunvajsjk]dkragqziaqxgbwr +keocoxwzsscocdxcf[lvdnlggndlqzvxjo]cajmnvjxphmfopy[bxfnemakuysdjvhzv]ymuttirruskkndjlpw +rrfoglacqhfucnjkhsf[ejgwoteprdneomyqphi]gtsffeskyegnxzfkssz +awgoetenjdtwnpw[hflbiyqshareqvcc]qxwgczjnzceffwk[eumisjskpmnqfmox]dtsifzhnbdvlfaqdkwe +jezzkwqvkbbcskih[cxqpssjfttcropqrk]eqkohazzfagyqpjt[qveehpentvwwdazsmdc]enufhtsnszihemkf +zqokauntjcoqolc[kfjplmodgrkaeuuvq]fqicoryxfrkubee[fcncbrofqpyxdnejn]yebngpgxcbjnivisgza[bpwzrwupgpmtbhg]ufxyezblslkscovzaqd +vdrhbvkjchpslgpwwdt[cfslokjhwrpogwmf]qkxlvkrswbbbhudgk[ryazzfichahhigijhc]xbxrwruzjhyjlwxf[xlulxjmhxnhmkflqw]xtkuftnstlwxwiirwko +qwbqncrimtxfjspgyyn[ysolszsumngdzijn]stfhvhqwymtjpauip[lnucccqwwzenxlytrb]aumcvdswfuucagbkel[skoaaxgeqadxehwvjt]jrjzozvfrrjrsvmov +akweexwajqyahlpq[pjxilukjsvzjerrcdcb]qsptnuxrshmerfccxhb +xbnsmtgyhitmtounl[msqlrxysydxdydbtyho]varxjhsmmqlilsprkq +udmbexywtscnesd[azofuoboewwundyif]mykxybobvefathvqkfx +gjedwdykwqbxqpsb[nykqvlfsckqcgfhvbd]xdactphykfhbpjollax +tinuplnorykjcuete[qqwstzqrupgcliapi]durprlvdyucmbkhceq +zrfmusbfbogbrsin[gaayijtuqfbfnxb]cgjsibujnswdmuhfez[rhatyymizrxrqud]wpvajerbhxbtrva +tpjpjlmhvuorwnd[vnwdgopuigazzwytzbe]uaplhgdvedfaiboz[rqkafxfjjzjwbzwung]cqwjlakbfpqvxspia[chyrracxefgkuznb]chigmcxzjqnzsdn +badqhtkxeokdbres[wmdthitngyoujdumxfb]lnafdeqakaggcdttnq[acuhhjaemkakovqq]vfvloofttmvvolbpgb +myaunxirrlgywdtyrlp[nxinrircujeyezto]tdzynxmmbhjybgz[sxbjlwhbkhpplbveqk]oplketzgeeoczpadvhj +wtqjkfmtshufwfiux[njjvqujaetzgcihtxvi]fapfzhffwqovrvfpatr[hwjfoqsbiothjtrbg]sfwifkjkimjnyzaui +milzoncxkgtbsgtxgb[zvskfgfsgefelbjckwy]lrdralfxvtlupde[kvvibrstieyneglniu]pfyopkpteyovtkahwby +sjwqwumquvxpwokonnd[wooozqoxtlhwsfhtcic]tgzecomscwuxgazattf[dmaxzgxonbkehxgymq]xbqkxgbziuumwex[csesnsjiexhypqrxjj]dbscxozezqgzexrwci +yqgpqvteubzxsmjb[bntiezjqbiywrsq]nrgpewzpshvjwdx[qifsblzcgkiqfmele]oypyewwjmytlaujp +bxlsaiblatkrxpcr[xxnilxrehixaglra]apwnnbwgatzwgmr +rqsogjhjijafydmr[krhzamyodyfpbdv]jkjdjxgdszznhiv[ywihxdwlgdadayqm]cjvrvelwbegtiqswzqr[toujknandbegjga]wvdikqjnnxpuxtijios +dqlbbhlsllmcdejnme[fchpcehhwkjwkythfc]shnipixrreczdblufyb +pljkshxmvbpvswl[gbuflmmaywvbjwibfud]mexysgjrvoxovxtvici[svuosbkwxjzhvmztiq]cvfjfnisqtyomho[jvrshoymwbzcpgxtxl]ysdystgkeioszdbora +ooyljflrcdoujmfajfu[qvnbylveipljcmgrvl]cjfvbounfvjfpsxmbnj[mohdhwcdrykexihcgvb]gfzxjkkqdnspzbqb[jkoiqbqtbjxgezxvsgn]juvveztzrtcxhyp +ebfbaesgsxjbwhkmpxp[dzkhyyykwhayaztjt]xkxdjdlfvlzpqbb[tjdqvwygsgoldpffs]uwccbahfnjkhbfzcocf +uayfnudukxaldfgdvh[tshkbhbydlzzndsc]wtjmhgayuizllbngcr[tfglywxclqmgpeatsva]riocgxwsethrhbh[xnerbhkafskywvgxbdl]yzubvjedgzbpqqng +iensavdsekzfncu[frepnzfzbolseio]thbtyqsviqjozgq[mqobufwdnxkzqvqtgj]woxdzihysaypdxamitb[llqsjadcqlogalbice]xwrmwjiednucqqfuy +lgmcluvxcilrgacyc[ozvsjikotkgiepo]ximiftuuulbsghmm[ykwtdziaokecacpd]bvhsjkjycywcuitep +eoefpqghlbkskrhdhv[wkzmafhoocaswuz]iyiulabsaueugqys +noklaptafpgtvzb[hocgskfdbisxdlcdbq]sgwqzdhmwapbbjox[yyjutkzwybpoeea]xtnvxgftzjdwqhgh[nqgarhtwigpfriuq]etonjczcgfhclbf +tyqqeyfkxjcnjih[edtgzfrlpapwoyrnccx]fmsegnaucwnvsyrsj[lptzjaxumqhbwhmljyv]rugwpouagbvimws +enpywofbxruqkma[lesuqdferlsfxqis]tqkchirhakakvbgf[ytrxxjwygqwaauwjsg]ncrkbikcmvtbtrabvqb +nticpuumzthsihk[asrmrtlzizgsvnvcxny]wjntjizixwyedcrh +yjkotqgkximxcbpa[ttuenysknomggwwvvhe]htzkgoilhlqrpmbcvh[zucaclqaevmjqfuy]pfkvmsbcslkjxyydhk[obfcguogfxfimowk]eczitrwtnkfqyvxco +nbrsaktghjdxrhul[kmtgawzkmntyypqmw]jggmopgbovomadux[pkwngsqopjftulu]ymmfdmimjpxufntd[hnovhrnfsloivbbueip]oreyglwcjkylphqtwl +ufynjbkocygleqwskw[yuykssufmvmdkdntk]opbcqjxsioqpkzbtuhh +nkxtoheqxycxqbp[nmjgqytppiuscyylrm]ezhiobiihpmhkqjc[bewnvjufjzxgfwhy]hslvggdrixjquaigzp[dkaylzejrwivzcl]mxzgkigdgfhmczixkrq +fgcsqpmignjsbxxzt[zoatnmdxtjwltkazbep]wiadjhqakemepgfh[csuxhgjcqjsztsrwb]wdekgrxgngaaqcequ[kjlsrjjtidezpuitng]lhibpbcwjndstunhfff +ozgymklbikxnhme[bbbbemtxaxyxnnazaxm]jszcoclvxluigfgdlq[bkkxgjapnrpvovq]tdsakecfolgpiynztiu +tytomipjwhuqwshlvho[ewcfspufoolvxmeyodk]wrrxjaexfktctmwrkvc[fwdrputsdfepfvglfq]fqhmqffdtqahfpyelce[elfiaqrgaqxwpjbxcig]jmlxcfxgjkteodsufs +zdfxveufnuenptljiet[bxzgimeczdpygyen]ptmmjlitdsoncpjlwh +yfyzedhbbtpqiwmri[uqxjtkmjcivoqatycbc]etqdfgffuplikkgrug[ezipcwmudtfakrrif]kumvfsiqqyfrbcbvgf[upsfgrzgndzpzxhmx]aewrwjwdquhsagmgwah +tkhbexdnhdkmlogvk[rvuvfkiqrvxwewnhihc]yytysizvrtytoqznokd[cyxenputwxkuesw]qukaxyqfxbjvgdcy[rfvlqyyapixtzghha]sjazfjtokjizlxiim +ynwzzgtnjmfjhbys[enxaumsepjmyaapa]tctribvarqtdaceq[omcmnkckmzjjdhjiwvj]qlkbuktkubixegud[bbvvgpocsbliknv]nivyswbiijvnvvkuw +dwncikgxhzvktwgwa[nwmhqzwlvntxvjv]dmbsieiwdzgwecq[uvutvspxpxwfafv]vauzasizdqputolg[ncsglnqbwjshyxa]dtgwditcpcuncdcxn +kupmpwwjcwmmrhum[aakppoytxqucqfncv]gpuyruwkndprpqjqwup[lrcoaodsmpmlhnhnyq]zathwgfvwmumcjwaa +ivdparkbqlazewoujo[tzfulakdrwfncibtnza]titrajiplrfpbsar[rnjnbtkpwadofahdfvv]uwobxeoluadvnxyxwl +kkoyqwkjdgcvqaufnj[qucvzomguivuynsg]cbhahcwrhchflfuc[czlxnbidfvtovgdl]jmyougddwlejoyrfsfm[kcuqcjogcjrhvjpxx]khnizsdkqwzdzehlpe +wzeknwbkawxgvgtq[wmypojfjlgomvmk]tfwjzxvhrbxpkuyk +ivalkzrbqzhiqmjo[olluyctvwisrwwt]ndrunxditvvundvd +zezjmfpqesoftjufk[tdueprzpghkckpq]fnwlbwrhqmmayee +jpmhszgjuxnpjdsbtk[cpzosccgpfbvzuretl]nfpjzsqdvzkcszid[csygzwucakziegi]laqibhadzxurnulc[otxsegwpopkabmwbxzd]ymmsoiqsjnlnsvlsq +srgtzegqicrsutbpfsh[wfdoodrpmioayoa]kfqtpkwcfgyvjeyhvsj[yzcyshhziwjudxmm]xnmgrqxumondortjbye[nyajdyykzhnmolyv]zbdkvkbjavamxrafhbl +ifwabdpxckluvreesop[dsyliwtgkelyyam]hqwleigpcnogipr +bpaukztdyuwjkjrqj[dnslgwpwsanuxvtyn]fxkjtpifmtqzrlok[vfcgvkrunowkiilyok]ypgxcltrqbuzwiqom[ikzgjcafxhxmtgril]btdnvecxukjskjkndz +nghqjtbvhviyatzaz[guzxivxizjukrxwaf]vtggynfcmuttsnrvm[eqvzxmtlkaigaur]dmfhpohcbyjikjl[kxaapmbxolonwgbw]uektjdecblphouwitdv +fxefzaiaeclqyvka[srznplyazbvctgfdr]xakjubrnnbfykcep +rwlthwstbsaxphlsrz[ihywtcvcfdeczmy]lpxfewmiwnskbnv[ripgyxpgczfvxkzp]iltpwldaivxkwwcb[yiejtwqmnnnzywks]krnbkndouhoakztwzh +mwaxggiakwqnbihaaj[pxslpnutqpgdfvhvwgp]nhhnvftzfwdfnrqisfi[hgroxibwekbugif]btrhjqipvkpfvcf +xmxlpyuuqssmtmzqyb[ybwrbnrgkansaodfap]cihlwrfxgbaxddtja +fahbkbakvcwwazgioub[ouuvcmqsmykbkhfhj]gntumiippgacbcl +hqkuhmrurcqtkzusgu[drwgthikmebvdcjapw]vdxfpjwqlcvwpgsflb[mmaxekmyvkxfxye]nlusofrecbdvhbruu +tjyqhrxlyrubiuwl[voyszxwudonuwiptjoy]xggibveyrclwxsq[aolwexwhfxpwcuavvwr]bwkkcnpvsiynoeikmlb +cxpvpcjhfbokvuh[sdkkaewwgkvniqymkrl]emeetymmtcbrivitvn[bvyzmgaorsfbsmqoka]vodjpeovgjpofkq +nupojuxxbgjvlafg[uhfrugmmacqdsap]nxuunqzbasceyiz[ircwdmgmysazaya]qwsmsdywyhklvniiq +mxujioozxlybxvyjcmj[afimhsdzsmtxszd]fsckiqksntizegvxgz +htyhhcuqdfhhniloe[iqslmejacjbynzkw]nenyirdlormvppyym +jbphnkbvlextsaqnid[xdebmjhugwvnodt]spdqamgmvsuftfx +mpdupjaxozerpkit[pcivcugsbsqynoz]zrxxjvwswbpuylnxi[tjoxsullllulompfxhy]zobcdnaypuabmzfn[inubfyjlhoysdjath]vufswsypjkekcrb +qsbiexorinxuevkoad[tjzedsasyapfnvwa]qbfrkhbfmaxcgmovnif[evrexsygnumrldt]serpxomgczhbzjix +ukqzagjymparwzqvw[lnkduutsjulfxuqug]lvupmgsyiquqeepmgsv[ekenewopqmddlcqc]rhnwektxgccickla +ezrytvzepmzxbjapim[knaxuvqciriixgji]epksyimofrrkgawirz[tewvfyplzorvkyeog]bwnejljtelcigsqfx +fngkrmmwapuutwtn[pjrinpthoymdxemoe]qoxhlklweoscgcagw[pyrevdqrznakburr]fnsowwitbsxsdsdv[hzbrhpemwokvyhpohjw]jppmuxhrsdsmmprl +wfpphsvqgdaostxg[abwxepvuvujjmdbhees]uxitcdrdkyaqgtyrdr[rqdczpmmmisomtmop]lnqpzuqcyrdgzrcc[cvzwdsaeorgdzzklrx]ekwjqzkeolvlkkqtj +qzhiltifnugunsngzg[fxfhjhvijjnhnxkbl]bbaftchmgjrfuanns +isducdmcjzbiacltx[jvkepdvzknnyqegqte]zbuvzcrrsbjsqkf[dowjjsipssfisalqwmk]uzrmibeeevzeuxtb[ajzixsnzrxwpekzpy]weogtsmtsuxvjyhy +dnxhdwkvawccsfvncy[odsmukbcbpfyjqeau]ugusdxmjuxjosasg[ouwrwzplzttepynf]avhgcbmjesyqkzjgms +pwyizorvifedguhjqrg[zsafqttsqlygzwmqv]hxilzjvsuyfnyck[dnovwvccguuzizrjw]qgbluurgbxnollv +meqzvrprpthaebpd[htamsljskphtldx]riagbpmpasjnjefv[cvpfevyvpivbals]tgxiqxmhvqhhmrr[cgeamacqfrlrhaoz]vficakheeoprpbows +okkhpeexympjqvlamxu[mvjvngmxhkbiaygi]pnwoitpqlyqaiwdpf[ryfcbkcyzbvxuyngw]xxgknvjauivacqxr[tqmanixcxxbolxf]orhkvkwpyrwbymux +ipwcjobowzgrgzmnf[uahjinxxnmyyibzp]badwoisgtafnkgnp +bcbwbvyvqpozfig[twwsbwyhvfaddwo]jogvkczzowocmkwwlla[yedsazzkeklftvohfqz]tghtcjemmehumuyxar +bevtohpxkrlrjjen[jxnohlogvkugugmk]nrxomawkgbwlnqwb[rtjoeivssknwelkhv]dihcnpigtbnwfdlxhm +upuufvskhseazwfttq[kkipejrjmxwmqjsh]xquyqplziwgvkkiyv[iirqohxpmcxsjryb]ajblnptlfnukvae +sijztjuwnyftelgytm[mgirqlkcbaigiyx]wgbeoandnwaudhgvd[drhbrumogcajpxnvqov]vwandmoxgzsokgfs[xwgtfizcmyjrfzgejhv]nhckviycimfezwefw +gfgrgtizxajkaicjcc[mftrzuftzrgrwilsv]uckwgxywnamzjglbnts +znbgncjrhyxaxgd[xyyzkorhakwqubjzk]wrsdvjsrsdorwkgr[krrqukxrdobhkzmr]mdebvnlirbtdbavpj[adbczigmaoreudvgns]yqxeoeccdlpuwyvf +ymjcaobrviuqtvxjqq[jwpvalizcmbpfdjk]wmxpzhqvcavedvmhtn[llsefbpkphhetqhbj]qryznzcexwgvxni +ginmrsljkrcminltayt[iarzxlzixokzfxiazwl]aircthhepljgylm[wlorimkebaxcvcwanlh]bihvjtofcsnvuem +zdegfhthlaitfojyj[bltnoljmwcfdvle]gnadpzusiepwthtv[ieuoyrprfkwonhwjt]wwfphscvjchvrab +kdnddjueyrofzhjdzcs[asdqcpbunitvxrwi]usylnhwfapvczeb[ozrrpkegwtbkftyeusg]pncbcdrovovzozcazn +lkksyjqoayppxtvns[csiuzvhklkfijem]xpsmnkdmivkitka[djmnmzweqxrkfomzqhr]wkzmhoiasanmhez[wojpalkldcaopeg]murhvjrgpwxpbveekq +jawznxjorxwvflmkk[gafmrermlounwjqod]nalazknfqhepgnelal +wlszezwacdeehnlnoj[njlzbwkfnvnbwim]fydgpvvovkuardng[gqxvckevjodockykp]qsbtvwpwaaeatbd +bwwttxctuzuezxfdz[apvuanhzemgcupc]qcfxkvevimwvwpu[zhhorxgplrpuyabae]gzabsprhuhwrtkd[sqhumhfqwdgxthu]fyebhdninkahfyy +hhttjuhgvcgkisaqof[obpleewrfrrsgpumz]umcmeaytqjlqkyrawp[rhkhciyzmxciiysv]kszzqcmcylslhlpqjag +fnevugmjjescvvmbmt[bjzdquqohnusozz]fwlevkwzllmptbcelsh +hzqfveaxrqycvuolynx[ztsmaipixbuhbmv]ebvofyoeponbpip +utmnuyowmxipzhde[yuvqwfsuyhonciiepq]ynjvqvvifywnecwzdk[httqooeiilokkjghwjq]znixikpswkpgxcchuyg +goojhvcnizyiukzgmwb[euyvjdmnjjrkjwpu]puidllwqpsddlrhx +ysglduipsofxegb[kzrbdzimejxkyftyuz]aekosjomszyegyy[vpkwocloupebnjeo]ocdaynpnnytwrgkn +anheyoxddpkmqla[isqzqeuwwitvtqy]jnchwevvrgyznqsomum[kribzkkrxawjnfsmiux]mlerrnvwcydnfckydfm[hwouaafteeabtgflb]acwwvgztxwcanzizha +kaqernqhzefzthuc[tiuifctajhxawtoi]kyqdkeudzkihvfsn +vwwekuavrftztxb[aywyoempmajrdkxpsc]eibnjbszsfsapujqn[rxpcsihuzszefcdzl]gsahdvozzgxjhontxk +ymjyffbcgimsalujegr[dnppglortkqlowskj]wxwtxtdaaopcyvp[xfsnsdrlopdotuqx]sprrvphwennltlddiw +lguyxqxdnirprljpkec[gevtjwbiofgesdwil]phnydixjjjcprpxlpj +mgjnnftohavesepu[slwhvezajhvdukghl]hdhtlheqzqqrsqmfqyz +iapqmjgrjnecxylopbo[pnbvgmbhbcmcnpsf]opurzpqoyxdxfkud +efuoofbuyjoaqjd[achnmlslfvovmgt]xcuyvikslsewgqlx[gjxolnhgqhhglojjqhy]iarxidejlgphqwaei +uxpcurtzqgpgtzkvp[mibqtgwackcedfri]otnnsgolldyzdpbew[tmgiijgjuvjykwahml]xxgjgzmnicxmywdubrb[hwhcgbzhuoankdubft]rxqzywfyuliatahn +uhmufcxuptehmuf[sygthxldinztzudvs]bdxukzqaxeavvrbqmuz[wovugtpgwisttusjlet]tpfbcndafwhdnolv +kwknefvhmzbtjezkh[zcvncbptzekirhqo]qvgnyfkmrnxlgxzjjxl[twxzjkybjlrpurfmufa]lclhwuylibekjjxc +mspxottklkidvlomd[rhiachlbqgpdhfnxyc]ekkxgijnueonlkpfkm[dnwcjiihmpjqtmb]dkknlqniolowydd[dyqofryhvgracxeuivp]pbsgttbtgksqqevytrb +pjvdfpsdlampeztecfq[lpqshzeegwiouas]nwxqaoryigyvbby[iiddsczjoxentwv]weexunkmtaaufurjz[meywmosucyrxzlgxi]huqfmfpxdmcmqfk +abbhujqyoaphnruaih[yidrkxgrxeoarph]fvryghhzqrobkbsck[dnokdwmkbktlfoihxl]ttptfiadsswiwsfbvf +djwqivpbexyvdquh[qmmdydhjbmunyjixviv]nradabzesdavhasjbjs[lsabjblhocebvyhfee]hwbyvnzltgezasg +maxofygcnygnwefsb[gdfccusdbseqsqfwva]cxdmwhnjitaazhjftn[kcratndpffdnbopd]wocybndplnotqgctr[ymceqbtulsezvftsi]eggtzhqojksdjapnv +lzihlroqvmeohnun[wskcytlimfagjyd]tnehibbupupuhepqz[hschjdjtzbvavum]zstmglsltkovvckpmqr +syzoikkgzplleoaz[ccpsffhupzpuhjcw]kaswkcoyhlrayhikme[qnjnztjupvbwyns]ggmkqikeziailzpuv[ugqgbpunztgvsxsp]mntxaumliefzkpnia +dxnkgspqhyejogxstsk[jfgckouqypxttst]axtisjbtaviwafh +baxazxlkzlyzvbdvtlc[yhegkwrrluxcnaahyl]nyegiipdjrnjobyjp[ulhbizabyukfvhmdg]hgmxctzxzewckasi[fuvwuolxkcfdkmtcngk]xvmvoydeiuaeawcz +bkomgyefwkmwwpsayb[rozknmkljogphrqywyo]vlpasefojmrzbpox[epogjnrjrntbcnzha]okfkagkfyagcszueu[gjpfnuvnazbnqylfm]busunenasatqeieestf +dwlbzijjdujfhotvj[swplsznswlgnaud]bgedlfxgjbwxekq +ffjhdorivdezjdb[tqkfrzxthlxadqstmqe]ttmrscyvbrresartqnh[rfztsxgbedcdecgv]qxcsxdqhshsqtjtl +zwosebsoogknldkh[mkcucbphbvnaqyxjope]aibznttouadentsy[xfucuvnlnchuawcapcq]jqherkgzqodpzydtgu +xondkuknycfwyenkceu[ugjlxueqtcyhyhni]bbofydvkhtjgxxnyrc[gpnwoarvjltzyhhe]qebolgjnwnstokco +cygilweroxmbmbmx[hopxissehjarmezawol]exywzaffjuhehvmbm +nbndomwcaauiluzbg[qjxqxhccqsvtkwm]oazwbouchccdhtrbnbv[vetwfilwgnxxxrhxar]mrbcnwlpciwpizkxj +xuabbxdwkutpsogcfea[tgetfqpgstsxrokcemk]cbftstsldgcqbxf[vwjejomptmifhdulc]ejeroshnazbwjjzofbe diff --git a/adventofcode16/data/advent08.txt b/adventofcode16/data/advent08.txt new file mode 100644 index 0000000..e6aa6a1 --- /dev/null +++ b/adventofcode16/data/advent08.txt @@ -0,0 +1,193 @@ +rect 1x1 +rotate row y=0 by 5 +rect 1x1 +rotate row y=0 by 5 +rect 1x1 +rotate row y=0 by 5 +rect 1x1 +rotate row y=0 by 5 +rect 1x1 +rotate row y=0 by 2 +rect 1x1 +rotate row y=0 by 2 +rect 1x1 +rotate row y=0 by 3 +rect 1x1 +rotate row y=0 by 3 +rect 2x1 +rotate row y=0 by 2 +rect 1x1 +rotate row y=0 by 3 +rect 2x1 +rotate row y=0 by 2 +rect 1x1 +rotate row y=0 by 3 +rect 2x1 +rotate row y=0 by 5 +rect 4x1 +rotate row y=0 by 5 +rotate column x=0 by 1 +rect 4x1 +rotate row y=0 by 10 +rotate column x=5 by 2 +rotate column x=0 by 1 +rect 9x1 +rotate row y=2 by 5 +rotate row y=0 by 5 +rotate column x=0 by 1 +rect 4x1 +rotate row y=2 by 5 +rotate row y=0 by 5 +rotate column x=0 by 1 +rect 4x1 +rotate column x=40 by 1 +rotate column x=27 by 1 +rotate column x=22 by 1 +rotate column x=17 by 1 +rotate column x=12 by 1 +rotate column x=7 by 1 +rotate column x=2 by 1 +rotate row y=2 by 5 +rotate row y=1 by 3 +rotate row y=0 by 5 +rect 1x3 +rotate row y=2 by 10 +rotate row y=1 by 7 +rotate row y=0 by 2 +rotate column x=3 by 2 +rotate column x=2 by 1 +rotate column x=0 by 1 +rect 4x1 +rotate row y=2 by 5 +rotate row y=1 by 3 +rotate row y=0 by 3 +rect 1x3 +rotate column x=45 by 1 +rotate row y=2 by 7 +rotate row y=1 by 10 +rotate row y=0 by 2 +rotate column x=3 by 1 +rotate column x=2 by 2 +rotate column x=0 by 1 +rect 4x1 +rotate row y=2 by 13 +rotate row y=0 by 5 +rotate column x=3 by 1 +rotate column x=0 by 1 +rect 4x1 +rotate row y=3 by 10 +rotate row y=2 by 10 +rotate row y=0 by 5 +rotate column x=3 by 1 +rotate column x=2 by 1 +rotate column x=0 by 1 +rect 4x1 +rotate row y=3 by 8 +rotate row y=0 by 5 +rotate column x=3 by 1 +rotate column x=2 by 1 +rotate column x=0 by 1 +rect 4x1 +rotate row y=3 by 17 +rotate row y=2 by 20 +rotate row y=0 by 15 +rotate column x=13 by 1 +rotate column x=12 by 3 +rotate column x=10 by 1 +rotate column x=8 by 1 +rotate column x=7 by 2 +rotate column x=6 by 1 +rotate column x=5 by 1 +rotate column x=3 by 1 +rotate column x=2 by 2 +rotate column x=0 by 1 +rect 14x1 +rotate row y=1 by 47 +rotate column x=9 by 1 +rotate column x=4 by 1 +rotate row y=3 by 3 +rotate row y=2 by 10 +rotate row y=1 by 8 +rotate row y=0 by 5 +rotate column x=2 by 2 +rotate column x=0 by 2 +rect 3x2 +rotate row y=3 by 12 +rotate row y=2 by 10 +rotate row y=0 by 10 +rotate column x=8 by 1 +rotate column x=7 by 3 +rotate column x=5 by 1 +rotate column x=3 by 1 +rotate column x=2 by 1 +rotate column x=1 by 1 +rotate column x=0 by 1 +rect 9x1 +rotate row y=0 by 20 +rotate column x=46 by 1 +rotate row y=4 by 17 +rotate row y=3 by 10 +rotate row y=2 by 10 +rotate row y=1 by 5 +rotate column x=8 by 1 +rotate column x=7 by 1 +rotate column x=6 by 1 +rotate column x=5 by 1 +rotate column x=3 by 1 +rotate column x=2 by 2 +rotate column x=1 by 1 +rotate column x=0 by 1 +rect 9x1 +rotate column x=32 by 4 +rotate row y=4 by 33 +rotate row y=3 by 5 +rotate row y=2 by 15 +rotate row y=0 by 15 +rotate column x=13 by 1 +rotate column x=12 by 3 +rotate column x=10 by 1 +rotate column x=8 by 1 +rotate column x=7 by 2 +rotate column x=6 by 1 +rotate column x=5 by 1 +rotate column x=3 by 1 +rotate column x=2 by 1 +rotate column x=1 by 1 +rotate column x=0 by 1 +rect 14x1 +rotate column x=39 by 3 +rotate column x=35 by 4 +rotate column x=20 by 4 +rotate column x=19 by 3 +rotate column x=10 by 4 +rotate column x=9 by 3 +rotate column x=8 by 3 +rotate column x=5 by 4 +rotate column x=4 by 3 +rotate row y=5 by 5 +rotate row y=4 by 5 +rotate row y=3 by 33 +rotate row y=1 by 30 +rotate column x=48 by 1 +rotate column x=47 by 5 +rotate column x=46 by 5 +rotate column x=45 by 1 +rotate column x=43 by 1 +rotate column x=38 by 3 +rotate column x=37 by 3 +rotate column x=36 by 5 +rotate column x=35 by 1 +rotate column x=33 by 1 +rotate column x=32 by 5 +rotate column x=31 by 5 +rotate column x=30 by 1 +rotate column x=23 by 4 +rotate column x=22 by 3 +rotate column x=21 by 3 +rotate column x=20 by 1 +rotate column x=12 by 2 +rotate column x=11 by 2 +rotate column x=3 by 5 +rotate column x=2 by 5 +rotate column x=1 by 3 +rotate column x=0 by 4 diff --git a/adventofcode16/data/advent09.txt b/adventofcode16/data/advent09.txt new file mode 100644 index 0000000..3ccde78 --- /dev/null +++ b/adventofcode16/data/advent09.txt @@ -0,0 +1 @@ +ORNXNQJQ(151x7)(5x9)OFIXU(27x3)(21x9)VDCYQELDJQUAFZUHFZVSU(34x15)(12x10)SEDIUUVFPEKY(3x9)NHR(1x11)I(15x6)(9x13)CMNDUYGYR(40x6)(4x7)RMNG(25x8)XPDSEYNCWFQFAKUMITWMBLMIK(7x11)(1x10)N(109x1)(101x15)(28x15)DYKYFCKDLFYAIHXSOAZKTPCPBUTX(18x13)SOZMWOSIQHVNMRZYYM(1x4)W(11x2)AJPKYMFRDJZ(11x11)SYIQBGHBNJL(26x9)(20x7)XLNTFHRYHLOYBBGMRPDH(269x4)(2x9)ZG(79x7)(24x3)UBTEBZLPYEDFINUQEQZUSXWY(3x5)IUH(15x10)LDDUEEJAWVGNRYA(3x5)FAO(6x3)ORDEIO(47x2)(1x10)J(2x13)DW(1x8)V(19x14)IJAAZPPGBZPFERJGOYI(103x9)(60x11)GKYOEUBZWAFDXEGWMPXZEOAQCUFCTJCXROPMNEFMJUWGBOUZRAXKRNHTBXHM(15x15)BTYXPHOQZXSBUVT(9x8)JQLNIDKMH(9x5)(4x4)BQRL(4207x15)(1464x12)(305x10)(159x14)(71x12)(24x14)(9x1)UJXIVHSUD(4x15)MAWK(26x15)(19x15)YFYDUJPUZQCKGVPOXKD(2x1)HN(2x6)GH(20x14)INJNODCLPWICQFIERROI(3x11)JUA(31x14)IUDVEHRATPGIEGELRDOZMBKZQFONCBD(130x14)(28x15)(22x7)(5x11)PHVKR(5x10)KVTDO(88x12)(8x12)POLKYDEX(27x8)(9x14)APMRPIHKQ(6x11)QTLLQU(1x4)R(29x3)(4x8)WBRL(2x15)JU(1x6)Y(1x2)U(1143x9)(364x14)(262x7)(6x9)EEJMXK(100x12)(5x1)RXXSO(5x2)VTESR(6x2)SXXSZL(49x1)OFIFQJKSCOXPXTHVWCUJVQMDBQELBLDYRKIGKHOEWRFNXNRLF(9x1)XRUFFMDVM(29x5)(3x8)VPW(6x3)WWFWRC(5x7)XMJEJ(46x9)ZBWGRECVBOPHVFQYBPOBHTPOMTYQGVZKQMKYEHCJYSNRQY(50x1)(10x5)SFPYPPQKDO(27x10)DNMTTNUGOQNAQLRBKDLNRVGRMLJ(23x12)(10x7)LCQWCIMTSV(1x12)X(15x9)JMJMKCIELUBETER(38x7)KWZVVWPBHKSBWMQWBJKCRHLIEHZSQBRAEOBRHE(130x13)(123x7)(75x10)(9x2)NUSXXITCS(11x2)JWHCFBJNEYD(10x1)QJNBNHNNDF(5x5)RWBYJ(11x10)GRRSDLTEZAW(35x9)EYHPPDLIWUITRPLKHXFBCUIQZZMYCDKWPNX(326x11)(130x1)(76x9)(9x10)TBCYBWJLT(4x8)HTQB(35x8)FUCOLJQAFSWAYTACMFRACVWDLZYRGSUMZAY(5x15)ZWHCN(17x14)CRUBDKGWUQCGGAIOS(10x7)(4x12)RWFL(3x9)TFR(27x13)(1x7)R(2x14)VY(8x2)DZMFRMGO(94x11)(61x15)(1x14)O(25x14)IKECWOPRWQBVRNEDQXWFMVBOI(15x10)QVTWMBNCISLOBJR(20x1)FIVILFBNIPNRXAWXGAMJ(32x8)LNPRYYKSLCXOEXFWZKAXERCQKDACFNYA(10x1)(4x14)WRAN(292x2)(168x7)(10x8)HQSTVLQCNK(89x4)(9x11)XCBGNGENA(22x5)BLUEARYFSAVBWTDGVHYWZP(21x12)KGRSTMCVPYJXIJWXVXREW(12x5)NKTUQMXCLFNL(17x10)UPUPBQDSHOXKHLGCR(10x12)ALIFHIZXQV(10x1)KEFBFHAOCG(100x2)(9x4)(4x9)MKGZ(80x5)(20x3)DQCKBWWUZDJICWUESBKY(14x9)EFXIDIWRKZTVUM(6x15)JRDKSE(2x14)AA(9x9)MJFTTZMTW(5x3)VLDNV(411x4)(397x1)(390x8)(46x4)(18x7)BLBFCJNGQWPSJGPOVU(16x7)(10x2)FFZWESCTXC(6x3)EUNIDH(56x14)(28x5)(2x8)CJ(2x1)EA(9x9)FLKGEMFED(10x9)OLOMVPKTRZ(1x5)R(202x5)(88x9)(6x3)VRZHGK(20x12)KKZGPZHKVMLDUKNRPDLL(7x2)CBDBTRO(3x15)XPR(23x3)EHEWCFLEUPCSTSISPKGXIMK(32x5)(16x12)KENYBOSVRILLLTVM(3x14)DYH(19x4)(7x8)FGHRXWB(1x15)E(39x8)(9x11)XRLWASPXI(17x10)RNFIHAQMBBELSLNCT(49x1)(36x4)(18x2)QKRMYMDFPSVDXUXXCH(7x3)SBFHWUF(2x6)BD(2x6)HN(1047x3)(450x2)(10x4)YQQDOELWCI(48x15)(25x7)(8x5)KUKZDUYU(7x6)(2x1)KQ(1x4)K(6x3)INDERJ(284x5)(92x7)(86x4)(13x1)PSVECPHBPYEPJ(3x15)JEY(35x8)RCTZOHPJAICRPRVAYZZLUKRZPOOPFCBCPAQ(4x9)TETC(2x11)ZV(179x5)(95x6)(8x9)HUGVMXOT(9x10)MFDYGPUWF(12x2)PSBNZPCWSANA(6x1)GICWEI(32x9)JCBCGJIMZTQUSVQDRHWMSYJYUHJIVYIV(71x13)(15x3)SXTGVVIWXDWZTZO(9x2)RASQPEQUN(7x10)TPHSDTV(7x15)EPAHSDZ(5x6)BIOZT(7x4)KYMJLYA(69x11)(63x5)(3x9)XSS(37x9)HTZKRPESNZRIWPGWAPHBOIOWAWFHWMIXWYQQC(7x6)(2x1)FA(273x3)(245x12)(39x9)(8x13)WCKBPVRZ(18x10)(11x10)VHBAIPPIWXD(2x3)XD(1x11)Q(6x15)WCPPQC(167x1)(23x15)DYHQGULKPISILTRIXNEJZAV(65x12)(2x9)FZ(14x9)WWCTYVLVAOZDAG(15x11)CZYGTNAELLIRKYW(10x6)IEXFBJJCLQ(42x4)(9x14)XRPJHVVME(6x8)XAVNCD(10x9)IBVGVWIFUD(11x7)(6x6)LSMIRR(14x4)LFACCTXVWLEDWE(287x5)(280x2)(273x1)(7x14)(1x15)U(109x12)(7x1)TPNMYVS(46x8)TWTINTRPDOQKPDPZNKXIVISRQTZODBXMSPPZKCQFAYCJCS(5x11)AKNKA(18x14)DKSKSQUAUTPZPNHIWP(4x7)DOMY(56x3)(6x6)JBJORX(7x11)IDJWUCZ(26x1)XMRHHVJEZBAIOCBKTLKEWRQHWR(46x3)(6x8)JDOJMU(5x6)ELYWH(1x1)M(1x13)Y(7x9)XRTOLWT(22x11)PXZRLOPHTRSXFEGYCCCKOZ(1x6)I(4x11)OPMW(2x11)ET(1244x13)(8x9)(3x8)ABP(1x13)B(188x1)(6x9)(1x5)H(161x8)(115x15)(15x6)(4x8)YQCB(1x1)L(73x9)(2x15)GX(25x4)NTANLQJGDHTCOIRAFZAKXQHVB(1x3)R(10x5)VDXVAGTAGQ(7x3)NKCTQVK(3x9)RRQ(1x15)C(31x15)(1x2)G(19x2)OAUAOISPSPTMKOGJEAV(4x1)DQTV(229x5)(2x4)EP(124x5)(117x6)(109x14)(16x14)UDUBGHIWRGGHYVJU(2x1)DG(7x14)XZCOKGR(4x15)XDVD(49x10)HIHUJRXURZHGHWJMFTGUQUBGCJVLZSGLDIANTUIKYZWXHMAZY(84x14)(6x15)IEUICQ(13x5)HXIRLHFWXDSIB(2x13)XU(39x4)(25x10)(11x14)MWHAQQMPPVR(1x13)R(2x9)UL(786x5)(38x10)(1x12)S(25x9)RRXFLAJRHOUZPDTBWKIZHUNGA(471x12)(54x8)(34x14)VJZSILTGZWMCZLOJSZHTQVVAZSPWHAKVFO(8x3)XCYTBHDX(221x9)(60x1)(1x2)M(17x13)PIRWGCEZQNSPPUBHK(23x10)YJEVBSPQYKPLPDOSCEHYSSA(78x12)(2x6)YY(21x5)TMWGVWVOZDOFGCFEZJRJR(32x5)ENWXNGFHIYQHCBWQEDTMBOWQKJIHAZHY(1x1)E(18x9)(2x1)OD(5x11)GGATR(32x11)(13x9)VZVAFSADAUIGI(8x2)JOUUXRCU(1x11)I(8x7)(3x8)PCV(75x3)(46x4)(28x9)PJXDTVYIRKASKJMXDIGAXSQPMPWK(6x11)SUYPHC(4x13)CBMV(8x7)QAUWLDLP(83x8)(19x7)DDNWFTSHJSTPWECIXWZ(6x5)EQWGSJ(1x5)O(20x6)(13x10)MNFVFUCESZDMF(9x15)(4x3)JZSU(7x12)(2x9)UZ(228x2)(220x15)(49x2)(1x10)C(5x9)TCPJZ(6x7)FJSPSS(4x14)FYQF(5x15)XBWKH(75x10)(5x15)KTHBO(12x5)LLZEFONZKCBI(28x5)RGMNFEEHBHZJKTMPVEPHIOJUXOMB(7x9)YWTZNCT(60x14)(3x10)DAN(15x6)BHOSLMFSEQKOGEX(1x4)D(17x11)SULIDVKKLXIWAJXRK(2x7)PX(4x1)TKPO(9x8)QFXUEZUGP(2331x2)(2323x8)(202x13)(10x13)(4x14)GFSR(178x4)(101x11)(21x9)(5x9)SWRRL(6x8)TYXYPJ(68x5)(4x10)QMJZ(19x15)APBTUGYPJQFQODZRNAC(5x13)YIVAO(14x14)QHWPZNQSRZJIEC(63x2)(32x10)(5x4)EVMQL(15x12)SAOYGPDXFSDOBTB(6x8)(1x5)C(7x13)MILUDKF(144x5)(3x8)PLQ(129x7)(27x3)(7x13)QLVZTAJ(9x4)JNLNRKPXA(4x13)EEXX(17x9)(11x9)SYQBWQASJPK(57x8)(29x8)(15x11)CFVXGJKXAAKNRRT(1x15)A(1x4)C(10x5)EFFLNXDEVJ(664x6)(357x6)(82x8)(7x12)LPCKKIX(55x10)(6x4)KXJNIR(2x4)IH(5x6)VIUMV(11x10)TCNXEQRMQJZ(4x7)DREZ(2x8)IV(119x7)(21x13)RHDEMDBNRPLOTSZRKZSHA(47x2)(22x2)ZADHZNUARPTFHKEXJKCWXY(7x6)OACRTYP(1x15)P(31x10)(5x4)VSWJT(7x1)IGAMFHI(4x3)GOCU(26x5)(19x13)(12x15)WGYBKVRPMWJT(15x7)IFUICWKGGCLHCOO(83x12)(62x8)(20x10)TJBGZCIWVKOROYITLBUA(7x11)UDSMGLK(6x3)FWPTWW(6x4)JECWEE(9x13)CUQMJOFWT(292x11)(68x14)(61x13)(28x10)ZRYXMSXXTLGDYHOVDRDVOCFJTCXJ(20x7)HZCFVXJATHXTNPHWFSIS(65x4)(11x6)BETMULBEIND(3x11)VLU(25x5)UYRFOHJXRRSJXEFEOPROCVNOA(3x4)GQJ(95x8)(81x11)(30x12)FXPGOAGXMVWAMAKJTQKJEUZNGCKDXU(10x5)YFDYGXCFTD(10x5)USWAFQFFSA(6x10)ZFVKMB(2x8)SF(16x8)MZPGUBATXFXXJOJS(17x4)AJTTIOULZONRGGMLK(448x2)(28x11)(22x2)(8x13)(3x1)TMQ(2x13)IP(5x6)AJJXN(290x1)(109x10)(5x12)CUMMS(7x7)UEWYDSN(59x12)(2x12)FP(26x3)LWFPYEPAANDDLIOJQBYCRRQYRT(1x2)O(7x10)RXDHAJH(14x6)(9x6)PQLSJTFAO(124x4)(56x12)(12x10)DOOJHOYDOTLM(10x7)VKUFQDGCPT(6x9)ONBPUY(5x5)CMPUW(5x13)WWWWM(16x9)TOPYYTZBFGFAXYBO(14x15)(8x10)FPVBQPNJ(1x15)O(18x1)UTQYAKMVOBJZDLTOVO(12x3)YHILDGGCGZXZ(20x7)(13x15)RVSYRCEYESCUC(73x10)(21x5)(15x4)EHQBVPUAJWTOZKA(22x12)FIWIHPWFDOJTMAXRCKCJZE(11x5)(5x15)PDHSQ(828x13)(1x8)P(161x8)(154x4)(11x3)DAFIIEMOBYZ(6x1)EGJWXU(107x7)(13x2)SRTDQRBOGITPI(6x2)VWSTKU(23x5)GJXMEBCGSIYQNMFLISIUFTB(1x2)D(36x8)GKPPJHVMOOTOCTUHRGVVQUKNHRCZNINYLJGB(6x11)EFSGDL(327x12)(6x2)QAAXCM(5x9)YVLGN(86x1)(10x1)SVFCLDTQEO(2x4)OA(17x15)OAEGSJHUTEFJXDOTD(7x7)HGXVBHJ(20x15)(2x6)XQ(8x5)KDXCQOFM(90x11)(14x15)(9x9)DTJSQPKYW(25x7)(12x11)SYLBSZEMQSQA(1x3)S(11x2)(5x13)KWHSE(4x7)MFSC(7x6)(1x12)F(110x2)(10x1)UIIOJNJJJI(88x8)(10x10)PQCUFWXHMC(15x12)OVVASAWDIIOZYIT(17x3)NLLLZIVNOIVEHGXDP(19x11)CDJEUHEPCUEYVLGYLTJ(311x11)(165x1)(16x7)MUMPDQFLGFEGIYLU(9x11)(3x11)FNP(1x14)U(60x4)(4x7)KDWX(4x1)LKMS(27x11)MIELWFKZJUSUYBARAGTJAZIBEDH(3x1)LDI(48x15)(10x15)DUUYAIZHKY(5x8)KEMNC(14x10)HZTAHRSCICOTIR(4x13)AUNU(45x2)FRDBNRZYFZLCAIEVZWSAIMLGBCDSBHXFPWRPYJRQHNWUZ(28x8)TCHELUEWWRHMIGBKEUCWBTIEVNCB(37x10)(30x11)(6x9)PLWKRH(2x3)PL(7x2)MAFSJHV(6697x8)(172x15)(164x10)(1x9)N(151x2)(7x2)MOYJQSA(24x4)BSZRAIBTDPFAAHQWOWDJJRCW(34x10)(2x15)QB(1x1)T(4x3)ALVX(6x7)SQFSKZ(2x11)JX(54x2)(47x14)(6x12)HOALAK(28x10)DGCVKLTWNKGAGRGSWPVEUGRDAGWA(2577x12)(88x14)(82x9)(48x2)(41x11)(4x5)KAVK(15x4)LCMPETDQZUWBRCL(6x9)CFZJGS(7x15)PGVNKAY(9x12)(4x4)NHID(827x3)(259x9)(153x12)(27x11)(21x4)PQNSUYEFBRAAVCJFJPPGZ(13x4)(7x10)NNSUBSG(70x11)LOGUFNQNLSWWQXBPQIWNJIEDRFUCRCUAVANHFGDEMQZRGSITBSBLZXVWJGXPPDZEXZQCEU(7x10)DTIEEXA(4x13)DDNZ(44x13)(37x14)(8x14)NIJOMVGP(17x1)MDXVVVWIZSXMSGJMC(4x4)ARFY(31x11)(10x14)RVZUREXEUI(1x7)M(3x5)LXC(170x5)(114x3)(83x3)(19x10)UUCHMGESOOTJCTEJVRM(3x5)ZCP(2x10)IU(25x6)TNLNLUTXNPNDWMXGVVGIPVWJL(4x12)JAAA(13x1)UFQFFPMZGZNNN(1x1)V(27x5)EDPBYCEAMMWAIPWUZODVDAWPWIJ(10x1)(4x10)VJHN(73x13)(66x12)(5x1)TAFQR(11x5)(6x8)ATBQTY(5x8)KZYJI(23x1)(17x3)VSDOKMWKSGRRIRXWF(297x5)(11x6)HTGQDOGJQSJ(49x13)(43x1)(8x5)ULVVUCJI(6x11)JAITVW(12x3)ISRQLAPACLXU(25x2)(19x7)(13x2)SRBHDIAPWUMER(51x9)(45x1)(8x9)ADOZRIJD(13x15)JXWDDHBYCJKMO(6x10)SKLMKL(129x8)(111x2)(5x10)ATJGD(22x6)OLATWNGTXFJMTWCJQAQDDA(19x1)WLYAFVAKQECTNXJRBVH(20x11)DDWDXGQEZBKJBDJBAKJB(14x5)TIZKGCXPPUBGSJ(5x14)SEHYY(1410x15)(148x5)(24x2)FHQUELWXQDUWLIBTXEPSQTJQ(111x3)(40x13)(6x7)ZAWWAD(2x15)GI(3x6)XJY(7x14)SCZWIKT(10x1)WMCTELCITD(15x12)(2x8)OD(3x3)IKM(12x2)(7x4)BEEDJSC(2x15)SZ(303x5)(89x2)(70x4)(3x7)ATQ(9x4)WSWYIUPAG(12x8)KDWAUNHURPWB(3x15)ESP(15x7)DANNZUDKDFXXSBO(7x12)VUNUHBI(1x8)M(180x9)(66x1)(20x12)MOUJOXCMCZUPVKVXPKUB(27x5)QHNMIHMVJVBBVCDGHPYOWRHTCLT(1x8)Q(22x13)ADGXYCQHWNAGCLWNPXBPIX(73x9)(1x11)J(27x14)ANTTYLYVSVWEAPXPGRRVWVINHFM(7x10)ZDBZWVE(3x12)ISL(5x4)YDXBZ(9x14)XBPBWAQTR(407x3)(186x1)(36x10)(1x2)W(23x13)DBNCARJKKIAWVQVKNOIPSJO(57x2)(6x9)VKZMPB(3x2)JIZ(22x2)AQWQZQOKXLPZSJTNBJKCXL(4x12)OAOJ(8x8)(2x10)PT(29x3)BKPFZBRCXVJUJJHVOIMJELFFHHBUR(26x5)WUACSRCIRADIQKCXKEESRJNWKU(10x9)RBSMRSUWMK(177x3)(1x10)Q(28x8)(5x5)PQQGD(6x13)LAGOEK(1x5)C(71x13)(16x12)IIAWONMLGHMCHWIH(19x11)KEYESARBBXHWWQWPQVC(1x11)A(9x12)LMADFIHXJ(6x5)MZVRQU(40x12)TOSAJVXJHKVWJKLTVBIUKKESOFCKFOPSXHYCMDXQ(8x15)XGHEISVJ(68x5)(62x3)(4x7)OOWZ(7x15)QNNVWUX(5x10)GSLOA(14x8)(1x8)B(3x3)HJL(3x11)EIK(450x6)(101x9)(30x8)(2x5)MM(17x8)GHTHOCTDDQAYBUVWP(59x8)(1x5)R(3x11)HYR(21x2)STLZXNENUFTGYWNQJHFUK(10x10)NGMEAWPFBI(28x3)LNDWFXKPRAOWKJHWZZIYLJLOOBKK(110x6)(14x2)SALGMMEIINEJOU(40x7)(4x13)AIMA(5x12)GSAFV(13x7)CSLJJRZIBBUMF(21x1)(15x9)THPSZDCPWASRUYR(2x5)EE(5x7)XDUPK(13x10)(7x13)SFWIYYQ(163x10)(26x15)(13x9)HQJQXZQCIHSAE(1x15)K(4x15)FMWB(9x12)SQVQTEWMD(41x3)(13x1)EEYHHJQCDSYRO(9x2)YCDDFHWTG(3x9)LGW(51x12)(7x14)OITBFQF(8x13)FZVMIWUM(9x8)XTZCNFOTE(4x15)KTHY(221x10)(213x14)(32x3)(26x3)GEUNPCYFYLTFFXOKWXFBDYLBMK(77x1)(41x14)(7x11)XBMCCZD(21x11)KFOJGBJCEHPTKBLUSTERX(10x4)IZWNLBDABA(8x3)IVDWYIMO(50x9)(6x5)(1x1)H(4x8)VDKE(2x5)QE(17x3)(11x7)KGYMJEMQVWS(9x4)EVWJYLBBQ(16x8)XZDDQZQPCOLVIYGD(3001x2)(724x14)(235x12)(227x11)(25x5)(1x10)N(3x4)QSO(5x3)XPKCV(24x8)(11x10)XXOIOGOKIOD(1x8)B(88x4)(1x12)I(10x6)CEIKKPKUJG(1x11)Y(6x8)QAYNKJ(41x7)BGKQCYZZGRQGCNXSGYHAXMWIJOPDKLMAQRKGFRBML(66x9)(14x12)YTKTEIISOWYZWB(3x13)UDK(12x2)PXDYSSCHAFSE(2x2)DA(6x1)UZSORT(309x1)(107x1)(81x11)(23x4)UHLCPASWMUWBQPYJSUHUFEO(5x1)NTMAV(26x7)JDNTOBRNEUELJIISZGKNRYSBRE(4x10)FVKZ(13x8)SBNXXTKLMDHII(138x4)(62x12)(55x12)OMRRSQWFPEAXAXHFHHQBWGCESBLWZBVYEQQKYRGILBNJJCAOXFHDIXU(19x13)(4x5)CVBF(5x9)EBLEV(15x1)(9x13)BATHCHMGP(16x1)BGSXRPQUKQJYDIPV(44x3)(8x1)(3x1)EWQ(7x12)JJIVUYJ(12x7)XJSYYYTSZBHD(7x14)EDHTGLH(144x13)(130x4)(12x7)(6x14)CYDLYL(43x2)(4x10)DOTG(4x8)ELJI(6x6)QGMRSQ(1x4)K(2x9)GS(40x2)(11x10)CDHAMRCSTVC(8x11)WMZDTRTD(2x14)XS(11x4)IXUNDJVBLSO(2x3)CH(7x7)(2x5)NF(1015x9)(204x1)(20x10)GPKSBZZRRZGMFICXNMIX(141x9)(24x9)NXNCFLIWVVVQNVKDRUTQYNJB(3x8)AXD(33x6)MDGPOLEPZEUNBDWGBSAFRPEMTKUXIJDRA(33x11)(2x15)PY(5x1)XYUAI(9x14)UPOUZTFRQ(17x10)YAMBZLTZMBSRFZOUK(5x10)NXKJE(11x15)GNJTBTSXLTN(299x9)(29x1)(22x10)(5x13)FSAYZ(5x14)MWJOX(178x9)(79x14)(21x12)WXTCOEECSKHDITBOAAVSF(6x15)INXWKB(8x11)NTSEQSMQ(19x1)UTQUQGUDXSFROLQWKVZ(76x6)(3x2)QOL(10x15)UIGYPYAWRR(7x7)JEELSVH(13x12)RUBSHAXAWQGYF(12x12)PGQUXPKEKXRN(4x15)BQEB(8x4)(3x1)AVE(59x15)(11x11)QGBFDCZTADF(22x8)(7x7)RJEZNHA(4x11)MMJN(8x7)(3x7)GNT(174x1)(166x12)(17x2)ZDOBQSATWXMNNJDCV(17x13)(10x14)CATNORVTYK(95x10)(9x5)LROSBZBVM(29x2)ZQBDHDVQJGZTGKDBOSHXOCVXYOSKC(22x11)FXLGIAQRSIJQCGUQPFJXFM(3x8)HSE(3x11)JVV(11x2)(6x7)YCATPH(206x5)(133x6)(31x8)(8x5)YTYSRRBZ(4x13)UYBY(3x6)SJW(32x4)ZCNRDWQGEMLBOCMJMCAJJVJPLIQXSTSG(52x3)(12x10)ENCLYDJSGEYW(13x15)EXRYDALLRZKCF(8x1)RIVKPAAB(8x14)GUSBQGHU(46x2)(1x5)P(34x8)(16x3)GDVLVDXNKOCDWQJI(6x15)YGGNZJ(98x6)(91x10)(11x5)RVKZVECGFPV(8x12)(3x7)URB(54x1)(11x12)JPMMFXPJPMQ(5x1)ZKRGP(19x13)ZJIYXFENCFNAFOEFUNL(1225x12)(534x15)(214x13)(64x15)(5x7)PZQBH(25x10)XSZONMJVANCJZOJPAAEJSRYGT(16x5)PQPCLAYGZUDSQKTZ(83x8)(40x6)ZKUMBQGMGPGEAKSJHFSIPNWEKXZEHBJUUSCVWYMY(10x5)CMXYJOWZZN(6x1)WPARZQ(4x14)FAYY(16x1)(1x11)E(3x12)MLF(25x11)(3x8)BRT(10x14)OGKXRSWWPD(4x1)VFBM(227x12)(150x2)(25x10)YFBSVADMLPNYAIXAPMBRZPTCO(8x14)PKGEMLYV(50x10)DKUPPNRQKKWAJIQCFKGQVRSXTUWPVNQZESPGLNQWMVMAOCORMP(9x6)HVKQYKZAH(26x10)RQQPTHCFQFHIBMEATIAVVKWDWG(57x9)(8x10)QVILTCPK(36x13)LUDTUSNBRJNJCTXOFFMWIMAMWBKXHMMENNSW(2x7)ZQ(62x5)(25x8)(5x15)GCZUZ(9x1)JPDRQMLTB(24x13)YTTGOHFCVHRRGLESEARVNFPQ(178x5)(42x2)(21x15)(8x5)RPZICSEL(3x4)YIL(8x13)(2x11)GF(84x11)(70x2)(7x5)MWWDPMK(7x11)TEYJOFJ(31x1)TWNBXEDRILLPRUGJDBIVBFYNVHGLUED(3x8)VDU(3x9)YYV(7x4)(1x12)L(21x1)(1x4)M(1x8)J(4x3)XJGN(491x9)(148x8)(36x3)(2x9)MG(13x11)EDWPZURXZWLML(4x1)VRBX(31x11)(14x8)KBLQBMRGRGKHCT(5x14)PRDLH(3x8)CQB(32x15)(10x15)RLWBNSAEHH(3x3)HPB(2x2)PA(15x2)TKPIZXDBJJMAZDR(133x8)(1x6)B(83x8)(13x10)WNSKNXUSTCDKE(4x8)NMAW(6x6)EJRNHD(4x14)MLJN(27x5)ZQBFSJWECOPVETZPGXQJPPDQZEL(22x1)(16x1)ZSEPLZISVDFRGRJB(4x13)YRXG(39x2)(33x7)(16x9)HMRXYWRBVITBVWTG(6x2)LCYRSW(123x13)(31x12)WVTWWQZUYGBJOSPKLUQTAGWXXURUDLI(34x10)(7x5)ZTTMEQS(2x8)YX(9x13)ROIYTCKSX(28x13)(3x9)WPV(13x14)PQHWCFNXKFFOH(3x15)EUZ(14x7)(8x15)UHHVOLEJ(914x15)(782x12)(448x5)(118x6)(26x12)(4x12)BLTT(10x2)REYZXYJJFQ(39x8)(8x6)XEWKRGZT(3x8)ECB(5x9)GOBWQ(3x2)KKM(34x7)(18x11)QSQRCJXLCKUYJBPSWG(4x9)XOSJ(34x5)CIABSNSBNQQKAARJOOETKSXJIPOFQOMAPK(24x13)(3x7)ADL(10x3)RVSLAIXAJJ(67x7)(52x9)(3x2)AJH(3x6)OGK(4x9)SQFL(1x1)T(14x14)BQZZXEWSTOKEUA(3x13)HBM(171x14)(25x9)YKLMFOEYQHSODISORNEKDIGVY(12x6)(6x13)OFJBKW(53x7)(21x11)GINJQDIXMAWRHIHJLXFIP(19x8)SVTFKYTLPWYEWWFIUPB(16x12)(2x1)PB(4x8)TMWZ(33x15)(5x3)QBMUH(10x5)UHNESLDFMY(2x4)WW(9x2)(4x7)QTKW(94x10)(47x10)UUVWDQXOXQUFEROVLOZRXIHEPHTWRPSGHLNSYGNIVHEDQGV(34x3)(21x4)(7x9)IMCZEIB(4x2)TNMA(2x9)DM(192x6)(2x7)ZF(2x3)VU(6x13)DODXJG(158x15)(1x4)K(42x12)(2x8)RM(4x6)YMIM(5x2)BXKIG(10x1)ZWQMIAOBEY(78x8)(7x1)XHAETJV(28x1)QPKULGVENLMJWWEHOROJEESLKYTA(3x5)XMZ(18x1)FZBLVDOKGEZKOBICEO(13x9)MWICPPUEWVWKH(7x10)KVNGSWM(116x10)(26x3)(20x8)(8x12)SSVBYWJX(1x9)H(77x14)(12x3)OWHWKICESREK(1x11)D(46x3)(11x5)(5x15)ORJRA(1x13)K(16x3)XRJXBYVIUITRPPYRRNHU diff --git a/adventofcode16/data/advent10-test.txt b/adventofcode16/data/advent10-test.txt new file mode 100644 index 0000000..e9ad2b4 --- /dev/null +++ b/adventofcode16/data/advent10-test.txt @@ -0,0 +1,6 @@ +value 5 goes to bot 2 +bot 2 gives low to bot 1 and high to bot 0 +value 3 goes to bot 1 +bot 1 gives low to output 1 and high to bot 0 +bot 0 gives low to output 2 and high to output 0 +value 2 goes to bot 2 diff --git a/adventofcode16/data/advent10.txt b/adventofcode16/data/advent10.txt new file mode 100644 index 0000000..bcede34 --- /dev/null +++ b/adventofcode16/data/advent10.txt @@ -0,0 +1,231 @@ +bot 123 gives low to bot 191 and high to bot 162 +bot 191 gives low to output 9 and high to bot 192 +bot 182 gives low to bot 175 and high to bot 196 +bot 113 gives low to bot 172 and high to bot 94 +bot 78 gives low to bot 37 and high to bot 25 +bot 187 gives low to bot 125 and high to bot 45 +bot 71 gives low to bot 108 and high to bot 61 +bot 154 gives low to bot 2 and high to bot 64 +bot 142 gives low to bot 110 and high to bot 163 +bot 109 gives low to output 0 and high to bot 43 +bot 198 gives low to bot 101 and high to bot 52 +bot 138 gives low to bot 9 and high to bot 47 +value 5 goes to bot 189 +bot 179 gives low to bot 176 and high to bot 14 +bot 115 gives low to bot 82 and high to bot 181 +bot 101 gives low to bot 90 and high to bot 5 +bot 9 gives low to output 5 and high to bot 149 +bot 181 gives low to bot 0 and high to bot 27 +bot 119 gives low to bot 207 and high to bot 65 +bot 202 gives low to bot 69 and high to bot 154 +bot 100 gives low to bot 206 and high to bot 169 +bot 72 gives low to bot 205 and high to bot 12 +bot 146 gives low to bot 8 and high to bot 106 +bot 58 gives low to bot 180 and high to bot 123 +value 37 goes to bot 1 +value 61 goes to bot 144 +bot 205 gives low to bot 169 and high to bot 3 +bot 91 gives low to bot 76 and high to bot 84 +bot 93 gives low to bot 122 and high to bot 100 +bot 76 gives low to bot 147 and high to bot 89 +bot 102 gives low to bot 11 and high to bot 23 +bot 43 gives low to output 11 and high to output 12 +bot 128 gives low to bot 15 and high to bot 85 +bot 137 gives low to bot 112 and high to bot 2 +bot 88 gives low to bot 103 and high to bot 55 +bot 162 gives low to bot 192 and high to bot 141 +bot 183 gives low to bot 49 and high to bot 81 +bot 127 gives low to bot 113 and high to bot 207 +value 11 goes to bot 165 +bot 28 gives low to bot 62 and high to bot 42 +bot 95 gives low to bot 42 and high to bot 32 +bot 50 gives low to bot 160 and high to bot 194 +bot 68 gives low to bot 133 and high to bot 142 +bot 20 gives low to bot 208 and high to bot 203 +bot 178 gives low to bot 182 and high to bot 54 +bot 120 gives low to bot 102 and high to bot 99 +bot 131 gives low to bot 67 and high to bot 83 +bot 21 gives low to bot 111 and high to bot 69 +bot 27 gives low to bot 46 and high to bot 193 +bot 98 gives low to bot 63 and high to bot 22 +value 13 goes to bot 7 +bot 121 gives low to bot 155 and high to bot 146 +bot 41 gives low to bot 153 and high to bot 53 +bot 75 gives low to bot 100 and high to bot 205 +value 43 goes to bot 4 +bot 206 gives low to bot 151 and high to bot 77 +bot 0 gives low to bot 95 and high to bot 46 +bot 208 gives low to output 14 and high to bot 126 +bot 40 gives low to bot 187 and high to bot 184 +bot 184 gives low to bot 45 and high to bot 124 +bot 60 gives low to bot 188 and high to bot 202 +value 67 goes to bot 198 +bot 145 gives low to bot 22 and high to bot 108 +bot 197 gives low to bot 195 and high to bot 190 +bot 203 gives low to bot 126 and high to bot 51 +bot 87 gives low to bot 51 and high to bot 179 +bot 64 gives low to bot 128 and high to bot 85 +bot 1 gives low to bot 198 and high to bot 173 +bot 29 gives low to bot 71 and high to bot 168 +bot 47 gives low to bot 149 and high to bot 113 +bot 165 gives low to bot 80 and high to bot 135 +bot 112 gives low to bot 162 and high to bot 174 +bot 149 gives low to output 1 and high to bot 172 +value 41 goes to bot 80 +bot 5 gives low to bot 136 and high to bot 62 +bot 143 gives low to bot 97 and high to bot 41 +bot 86 gives low to bot 145 and high to bot 71 +value 59 goes to bot 147 +bot 57 gives low to bot 30 and high to bot 188 +bot 36 gives low to bot 150 and high to bot 30 +bot 135 gives low to bot 44 and high to bot 117 +bot 134 gives low to bot 16 and high to bot 35 +bot 167 gives low to bot 28 and high to bot 95 +bot 22 gives low to bot 127 and high to bot 119 +bot 26 gives low to bot 81 and high to bot 16 +bot 33 gives low to bot 6 and high to bot 78 +bot 171 gives low to bot 186 and high to bot 17 +bot 16 gives low to bot 96 and high to bot 33 +bot 118 gives low to bot 117 and high to bot 56 +bot 199 gives low to bot 98 and high to bot 145 +bot 188 gives low to bot 21 and high to bot 202 +value 29 goes to bot 164 +bot 169 gives low to bot 77 and high to bot 140 +bot 96 gives low to bot 181 and high to bot 6 +value 71 goes to bot 201 +bot 194 gives low to bot 87 and high to bot 150 +bot 160 gives low to bot 203 and high to bot 87 +bot 15 gives low to bot 158 and high to bot 105 +bot 42 gives low to bot 166 and high to bot 39 +bot 133 gives low to bot 54 and high to bot 110 +value 47 goes to bot 13 +bot 31 gives low to output 8 and high to bot 9 +bot 159 gives low to bot 74 and high to bot 155 +bot 157 gives low to bot 12 and high to bot 187 +bot 176 gives low to bot 139 and high to bot 58 +bot 35 gives low to bot 33 and high to bot 78 +bot 90 gives low to bot 148 and high to bot 136 +bot 122 gives low to bot 70 and high to bot 206 +bot 114 gives low to bot 72 and high to bot 157 +bot 55 gives low to bot 40 and high to bot 184 +bot 37 gives low to bot 193 and high to bot 25 +value 31 goes to bot 13 +bot 107 gives low to bot 99 and high to bot 93 +bot 14 gives low to bot 58 and high to bot 38 +bot 77 gives low to bot 86 and high to bot 29 +bot 116 gives low to bot 79 and high to bot 170 +bot 23 gives low to bot 132 and high to bot 70 +bot 148 gives low to bot 144 and high to bot 120 +bot 195 gives low to bot 170 and high to bot 185 +bot 185 gives low to bot 138 and high to bot 63 +bot 62 gives low to bot 107 and high to bot 166 +bot 174 gives low to bot 141 and high to bot 128 +bot 7 gives low to bot 91 and high to bot 11 +bot 3 gives low to bot 140 and high to bot 34 +bot 12 gives low to bot 3 and high to bot 125 +value 7 goes to bot 148 +bot 70 gives low to bot 161 and high to bot 151 +bot 89 gives low to bot 116 and high to bot 195 +bot 108 gives low to bot 119 and high to bot 204 +bot 201 gives low to bot 1 and high to bot 104 +bot 18 gives low to output 15 and high to bot 208 +bot 66 gives low to bot 177 and high to bot 130 +bot 189 gives low to bot 165 and high to bot 177 +bot 48 gives low to output 13 and high to bot 18 +bot 186 gives low to bot 189 and high to bot 66 +bot 82 gives low to bot 167 and high to bot 0 +bot 92 gives low to bot 201 and high to bot 49 +bot 144 gives low to bot 7 and high to bot 102 +bot 97 gives low to bot 146 and high to bot 153 +bot 104 gives low to bot 173 and high to bot 82 +bot 74 gives low to bot 83 and high to bot 50 +bot 49 gives low to bot 104 and high to bot 115 +bot 172 gives low to output 20 and high to bot 48 +bot 163 gives low to bot 41 and high to bot 53 +bot 117 gives low to bot 26 and high to bot 134 +bot 168 gives low to bot 61 and high to bot 182 +bot 65 gives low to bot 131 and high to bot 74 +bot 180 gives low to output 6 and high to bot 191 +bot 126 gives low to output 19 and high to bot 19 +value 19 goes to bot 186 +bot 166 gives low to bot 93 and high to bot 75 +bot 193 gives low to bot 59 and high to bot 88 +bot 81 gives low to bot 115 and high to bot 96 +bot 207 gives low to bot 94 and high to bot 131 +bot 130 gives low to bot 118 and high to bot 56 +bot 153 gives low to bot 106 and high to bot 152 +value 17 goes to bot 92 +bot 110 gives low to bot 143 and high to bot 163 +bot 192 gives low to output 7 and high to bot 129 +bot 156 gives low to bot 10 and high to bot 68 +bot 83 gives low to bot 20 and high to bot 160 +bot 2 gives low to bot 174 and high to bot 64 +value 23 goes to bot 91 +bot 10 gives low to bot 178 and high to bot 133 +bot 103 gives low to bot 157 and high to bot 40 +bot 61 gives low to bot 204 and high to bot 175 +bot 63 gives low to bot 47 and high to bot 127 +bot 105 gives low to bot 200 and high to bot 24 +bot 79 gives low to output 10 and high to bot 31 +bot 73 gives low to bot 168 and high to bot 178 +bot 19 gives low to output 2 and high to bot 139 +bot 125 gives low to bot 34 and high to bot 156 +bot 56 gives low to bot 134 and high to bot 35 +bot 44 gives low to bot 183 and high to bot 26 +bot 4 gives low to output 3 and high to bot 79 +bot 155 gives low to bot 50 and high to bot 8 +value 73 goes to bot 101 +bot 38 gives low to bot 123 and high to bot 112 +bot 151 gives low to bot 199 and high to bot 86 +bot 17 gives low to bot 66 and high to bot 130 +bot 13 gives low to bot 171 and high to bot 17 +bot 190 gives low to bot 185 and high to bot 98 +bot 161 gives low to bot 190 and high to bot 199 +bot 139 gives low to output 16 and high to bot 180 +bot 99 gives low to bot 23 and high to bot 122 +bot 53 gives low to bot 152 and high to bot 60 +bot 94 gives low to bot 48 and high to bot 67 +bot 132 gives low to bot 197 and high to bot 161 +bot 150 gives low to bot 179 and high to bot 209 +bot 173 gives low to bot 52 and high to bot 167 +bot 45 gives low to bot 156 and high to bot 124 +bot 30 gives low to bot 209 and high to bot 21 +bot 67 gives low to bot 18 and high to bot 20 +bot 84 gives low to bot 89 and high to bot 197 +bot 8 gives low to bot 194 and high to bot 36 +bot 59 gives low to bot 114 and high to bot 103 +bot 209 gives low to bot 14 and high to bot 111 +value 53 goes to bot 76 +bot 69 gives low to bot 137 and high to bot 154 +bot 46 gives low to bot 32 and high to bot 59 +bot 111 gives low to bot 38 and high to bot 137 +bot 196 gives low to bot 121 and high to bot 97 +bot 52 gives low to bot 5 and high to bot 28 +bot 11 gives low to bot 84 and high to bot 132 +bot 204 gives low to bot 65 and high to bot 159 +bot 164 gives low to bot 92 and high to bot 183 +bot 24 gives low to bot 109 and high to bot 43 +value 2 goes to bot 171 +bot 51 gives low to bot 19 and high to bot 176 +bot 136 gives low to bot 120 and high to bot 107 +bot 147 gives low to bot 4 and high to bot 116 +bot 25 gives low to bot 88 and high to bot 55 +bot 129 gives low to output 18 and high to bot 158 +bot 152 gives low to bot 57 and high to bot 60 +bot 39 gives low to bot 75 and high to bot 72 +bot 124 gives low to bot 68 and high to bot 142 +bot 141 gives low to bot 129 and high to bot 15 +bot 85 gives low to bot 105 and high to bot 24 +value 3 goes to bot 90 +bot 80 gives low to bot 164 and high to bot 44 +bot 54 gives low to bot 196 and high to bot 143 +bot 34 gives low to bot 73 and high to bot 10 +bot 175 gives low to bot 159 and high to bot 121 +bot 32 gives low to bot 39 and high to bot 114 +bot 140 gives low to bot 29 and high to bot 73 +bot 200 gives low to output 17 and high to bot 109 +bot 106 gives low to bot 36 and high to bot 57 +bot 177 gives low to bot 135 and high to bot 118 +bot 170 gives low to bot 31 and high to bot 138 +bot 158 gives low to output 4 and high to bot 200 +bot 6 gives low to bot 27 and high to bot 37 diff --git a/adventofcode16/data/advent12.txt b/adventofcode16/data/advent12.txt new file mode 100644 index 0000000..538e9ea --- /dev/null +++ b/adventofcode16/data/advent12.txt @@ -0,0 +1,23 @@ +cpy 1 a +cpy 1 b +cpy 26 d +jnz c 2 +jnz 1 5 +cpy 7 c +inc d +dec c +jnz c -2 +cpy a c +inc a +dec b +jnz b -2 +cpy c b +dec d +jnz d -6 +cpy 18 c +cpy 11 d +inc a +dec d +jnz d -2 +dec c +jnz c -5 diff --git a/adventofcode16/data/advent15.test.txt b/adventofcode16/data/advent15.test.txt new file mode 100644 index 0000000..3683605 --- /dev/null +++ b/adventofcode16/data/advent15.test.txt @@ -0,0 +1,3 @@ +Disc #1 has 5 positions; at time=0, it is at position 4. +Disc #2 has 2 positions; at time=0, it is at position 1. + diff --git a/adventofcode16/data/advent15.txt b/adventofcode16/data/advent15.txt new file mode 100644 index 0000000..d2463d1 --- /dev/null +++ b/adventofcode16/data/advent15.txt @@ -0,0 +1,6 @@ +Disc #1 has 5 positions; at time=0, it is at position 2. +Disc #2 has 13 positions; at time=0, it is at position 7. +Disc #3 has 17 positions; at time=0, it is at position 10. +Disc #4 has 3 positions; at time=0, it is at position 2. +Disc #5 has 19 positions; at time=0, it is at position 9. +Disc #6 has 7 positions; at time=0, it is at position 0. diff --git a/adventofcode16/data/advent20.txt b/adventofcode16/data/advent20.txt new file mode 100644 index 0000000..222a0d9 --- /dev/null +++ b/adventofcode16/data/advent20.txt @@ -0,0 +1,1029 @@ +1397985562-1399927095 +3833336583-3842601761 +155087348-169525214 +980790001-1002844256 +1977065361-1995466542 +36411396-50881439 +3640866817-3644930814 +2920060305-2932561292 +2865550534-2890593328 +3904139550-3908601694 +732092457-735186747 +1787486182-1806545011 +1491600386-1521258835 +2566773511-2568507598 +2201927929-2217336001 +948934267-952537088 +2146567862-2152339711 +3301828099-3306223909 +476027067-495966189 +2724939184-2726302873 +2270442513-2292973307 +1889038911-1895488302 +1578483230-1586330750 +2640456298-2651236024 +4254290660-4256486512 +1399927096-1421446962 +3253590561-3255525299 +4165315034-4173427102 +2875463797-2888803426 +3656533491-3659451752 +1995466544-2025204494 +3947779886-3987268039 +1521258837-1538635254 +735486056-744123494 +230221149-237996554 +3652971511-3653104884 +3019667516-3024190047 +969642901-977292032 +3645248112-3645595401 +3107902888-3148345903 +3202431537-3216963208 +1220746925-1223070151 +3267241325-3270573499 +903635659-931632639 +2847235008-2856948110 +4224654922-4236958325 +856464812-859836714 +1804748836-1825290046 +4082899236-4091369419 +953634177-954158487 +185823994-190243500 +1964052811-1976412955 +2420916052-2424566745 +953985134-954947310 +2584348542-2614406629 +2191157950-2198152569 +792721019-802271235 +3791161572-3800845341 +1864843815-1865425121 +1974124152-1989195256 +7825290-22939478 +440787397-441318113 +43830518-44800277 +3060173435-3065634268 +3165692093-3169381847 +1833191664-1858547431 +1931833201-1935239219 +57759373-67515020 +4113876528-4114024438 +1942285042-1951328312 +1604942683-1619936021 +853121890-865841853 +1837742103-1838104083 +3653104885-3680835942 +461163769-461467242 +3154277391-3159331043 +1689521647-1696389379 +4132416435-4154260806 +3575213588-3600527150 +962221692-989154668 +1935239220-1964052809 +853763614-856527667 +1529882226-1553729207 +2908870325-2931754108 +2317225465-2326207645 +550660010-557063544 +2362374340-2370047564 +3154439917-3169895876 +2971931902-2973888167 +3915276202-3919826635 +3443104535-3459421692 +2452320784-2463651682 +2645465344-2652262587 +623576471-624671363 +251678316-253256260 +3892899041-3898838343 +464002012-476960875 +3778510328-3794259788 +1032494594-1042075604 +1726869059-1729493515 +3050865580-3058403387 +4096451268-4105743850 +1794978532-1818366498 +1687963887-1693429657 +1919840326-1931792580 +3890085195-3896657673 +687727514-697989805 +2130251157-2132529361 +3709755147-3710261877 +2103854130-2136933959 +1240822471-1247567713 +2490928812-2517604025 +2792885084-2793563605 +4033319760-4037319553 +643767762-679821627 +2244191155-2263679816 +783204448-826857019 +874202754-876456673 +944792902-949779600 +1014490072-1020320091 +3709667893-3710060580 +3034067373-3060173434 +2380617387-2398492444 +3913418161-3925664598 +1327421559-1355573458 +2029296660-2060654925 +1015438314-1024776747 +758467105-766508249 +3196737715-3203535886 +4113219652-4113918216 +1900161068-1903498607 +737196603-742913680 +2762651281-2782581391 +1241724970-1273412553 +2234377553-2234408980 +3485475801-3485850742 +2823889184-2825719103 +546429220-552909166 +3889312069-3891497364 +1402469948-1411853934 +1612881279-1613899725 +609769932-611526589 +2821381184-2837715581 +2793443367-2793757783 +3865830130-3882113243 +2302840856-2330280758 +1587820493-1589487382 +1925168590-1930014298 +139238032-141721873 +3159767763-3165446614 +3124692923-3128639222 +2270740594-2281991663 +1338789977-1355677780 +1748641567-1751344173 +1416549076-1421417040 +4096185893-4097103352 +2627343873-2650750532 +3948622110-3962424399 +3734105837-3770337993 +557813236-573792261 +551603476-555886358 +1030836305-1032494592 +1839182718-1840151300 +833662859-842106273 +1375985004-1393778055 +1219332117-1221436570 +191846359-198587644 +984829875-987740125 +3262588159-3269982376 +4113255424-4114203177 +3754035901-3768277382 +182356017-189508231 +4235072872-4237128944 +2423845665-2424035634 +2247134633-2249391253 +1857070653-1864762228 +2960971255-2986516950 +3609807449-3629876533 +4232009521-4238664410 +2517604027-2532315540 +2284458125-2290950480 +1864762230-1865525184 +1534410012-1552842249 +1413197933-1418525745 +943004746-952141611 +3692615771-3699711756 +1641152229-1667111341 +3747007580-3765218619 +2379349853-2380702573 +2147254282-2171495074 +1839659452-1840812997 +3895746954-3895831312 +1969771475-1979046124 +3083853152-3107315352 +3503489045-3537546786 +2926162506-2931745365 +1533535067-1553811000 +4201206086-4201731554 +3151335418-3163702483 +3589540929-3593463200 +1469107231-1474901685 +1696389381-1748641566 +3910219915-3918863153 +3431523383-3432952214 +4219640842-4234037045 +2150930801-2173615229 +3364393582-3403187084 +3294593092-3301828098 +690072645-725395887 +1123029535-1135646014 +122125578-124303606 +4157086822-4157139009 +3561413702-3569934827 +3814389694-3815485217 +1931792582-1935186677 +3601713750-3623094300 +2322435284-2327697391 +1362099577-1366674586 +628898939-635522883 +3117359644-3135324932 +1119748429-1139457622 +3998554882-4014887284 +2837930003-2838092963 +2123885505-2126641084 +559576606-579617582 +2712491763-2723761235 +1391544337-1397769783 +3416595318-3422405875 +3403187085-3409221687 +1096346351-1099114997 +2703273295-2705328183 +4113785067-4113908859 +206706372-209083880 +3270160481-3271551430 +3285776930-3292794583 +461234099-461937747 +750957483-775003729 +4184090903-4204400455 +362276042-362676210 +4249953310-4250510076 +3477313433-3479866795 +3421127715-3428203812 +900263617-943004744 +835969757-836263940 +1368935057-1381717988 +149206242-166300349 +2154227228-2154605899 +1906507809-1919840325 +305745049-306370999 +1726861064-1728699678 +1357107426-1362288056 +799761595-801167452 +229374054-231369444 +1529834231-1535566821 +754999390-757160209 +1889190091-1897618002 +2138256423-2146567860 +2295710373-2336599718 +1019914990-1023404843 +969695821-980184547 +1443906340-1473362681 +833198360-836801840 +1598512205-1604942681 +3199387842-3210382637 +3895688557-3895758051 +1377900216-1382117658 +3504189983-3527083803 +3577792742-3598561740 +613575187-632091293 +2551456957-2551799726 +4058092124-4103653807 +3381308208-3381342063 +13984873-15227949 +1727002523-1727443872 +2357289728-2361812594 +3876054666-3879516291 +3278228783-3281894754 +1640252019-1649137061 +2372620720-2374166948 +4109383543-4110464683 +2069304258-2091857479 +4107063052-4115320079 +700724903-704038468 +2443015838-2445045788 +2487239190-2506741363 +2840932452-2854276703 +3023346911-3024737732 +855982891-864879970 +3794259789-3803801069 +500728802-502979928 +2043915271-2045977041 +2883286342-2889401600 +3645471325-3645615199 +2570503460-2572567939 +602978860-611682641 +3014237470-3019165777 +82763197-99917251 +3459591973-3480841023 +3726344670-3753436804 +778825357-781459133 +3501129290-3535003794 +2110603192-2124722020 +783458439-789801399 +3244733157-3257526606 +3107315354-3107902887 +3485245437-3487101327 +2981323037-2986657197 +4250870060-4262722661 +402547398-411983817 +1723037247-1732297154 +2168632715-2175630061 +35807058-48835050 +3967606126-3981776003 +1175337592-1177759663 +531093126-538642617 +3639437354-3641516465 +2313078075-2334991622 +2166324817-2172350995 +4271478996-4279496401 +4224492579-4228356386 +213570433-219586693 +3577738508-3578878626 +2004747361-2023251091 +638907979-651338734 +2042269899-2052960282 +3459421693-3470010193 +1255554697-1256876442 +547623253-554247422 +1091999863-1096115712 +3603876264-3620115458 +3743564125-3764787998 +1727097235-1727512693 +3360184134-3361837705 +2693328393-2699639043 +944625756-949285354 +2867948986-2885571238 +3815862045-3817192748 +85521215-90999860 +3492959364-3496450746 +2370047566-2373514273 +978064227-982934994 +3002922234-3034067371 +3702198906-3708772192 +1762248212-1777087215 +3200048313-3217284316 +310731268-314864040 +4256139187-4257030493 +4225267250-4242760473 +4236421277-4249953308 +456593320-464031864 +4173427103-4219640840 +3415471996-3417373524 +517786225-518353134 +2348225752-2349209975 +988767498-1002507583 +251787031-253294331 +2049843175-2053651832 +3272267359-3280700773 +1880334878-1897812119 +2180116083-2181662625 +1325501561-1332569991 +1977956589-1980243809 +1419475215-1429076341 +1571066989-1593324419 +1908591293-1926977363 +892862026-900263616 +2375708935-2420847226 +4252569311-4259706067 +611682642-636576980 +4069864506-4088316591 +3429899073-3443104533 +2881173909-2904242568 +838248538-839457347 +1040048945-1048427339 +2790325698-2817756908 +259065357-260284546 +4251177319-4254787503 +1727035024-1727220036 +1750189264-1751440819 +1182854783-1199103982 +1565110550-1598512204 +1870272544-1906507807 +2294404836-2313311754 +605934295-611508831 +3164119802-3167924307 +1833545461-1834287253 +2077509652-2090604632 +2880238444-2890262424 +1142031337-1148518669 +4005987455-4006591959 +1570054798-1576009746 +2071505543-2096650688 +3485106835-3485722365 +577813461-602978858 +2776866362-2786901141 +652895584-671838947 +3299449839-3300020065 +1623460193-1638054811 +3340666115-3353087971 +2160043893-2166478186 +1096507969-1101378526 +800088830-803013264 +13565145-17743483 +85024888-98806837 +3823224649-3827480049 +3931062541-3938277752 +1012892921-1030836304 +1565255853-1583189516 +1647708193-1660811906 +657010776-666847464 +1839278378-1840330117 +1008973854-1015912839 +1910283066-1913763928 +837557263-838411350 +1282815406-1288995029 +3980611-5584893 +3148345905-3165692092 +2742421263-2776592447 +229688447-231610502 +2743245719-2776866361 +3878098271-3883221309 +801316931-804135040 +1471664269-1473302685 +1667111343-1669791317 +1610947175-1617629889 +2003085048-2013051153 +3307457133-3360184133 +1195340209-1203343093 +2025204495-2028453665 +32923438-47156091 +3168696227-3170592073 +3235742576-3255614827 +2266729227-2280080556 +775349160-775813901 +1473362682-1482720843 +3572312385-3575213587 +528189743-538093910 +2448613175-2454994921 +2843283603-2855830818 +2890593329-2907911642 +153191907-164713586 +4043150608-4096451267 +605875663-610305444 +3021650-3111593 +2420847228-2420916051 +4105743852-4113419273 +2460397045-2462412256 +567585936-602788586 +1727082530-1727671255 +4033434900-4037286987 +4144511592-4162791978 +3075535768-3080851776 +1639907267-1641352662 +920282814-940069234 +3826936712-3829839713 +1916925688-1925357559 +1845213589-1860279111 +1854550234-1855331759 +3065495280-3066648567 +170353613-171186253 +3212824412-3220097963 +2853141261-2853700351 +3556640-3614471 +1976412956-1988224560 +3296627900-3297163117 +725395889-749479392 +2233996777-2234267091 +1757843247-1759325879 +4279435928-4280514617 +801130429-802441496 +3751681078-3760769957 +2347982977-2366662085 +4235682663-4235983270 +3496282296-3499776408 +3821333501-3824224274 +2723761236-2742421261 +2827790660-2835001032 +1935288812-1941728417 +1726855325-1728050569 +1726544710-1727430469 +3940016790-3941936080 +546101318-552097193 +4184013882-4199809831 +2425846522-2426458497 +3361306788-3362865310 +453108094-456181406 +860613212-892862024 +362299769-362572315 +17407637-23147236 +3504547466-3505717615 +985733821-987978530 +2735458050-2740276231 +270737999-279345075 +1787997707-1795677405 +3680835944-3709667892 +3818408771-3825605323 +16201770-24236234 +1158649495-1176112357 +952141612-961131855 +2690399120-2697050905 +2837757591-2838004534 +3487101328-3501129288 +3888980907-3889308041 +3139002312-3144216973 +1812389934-1832528171 +4062104130-4081249321 +4109985868-4116611691 +261499681-305729049 +414982559-415941657 +2837715582-2837939443 +1612314605-1613532579 +1847293843-1854555869 +2048771211-2052518908 +701565294-713634431 +208666820-210559343 +2827420738-2834300681 +4141218867-4154796647 +1970845509-1978651442 +1552842250-1565110548 +412226938-422230809 +596789633-599083332 +571536075-580257978 +4162791979-4165315032 +2578608882-2600367385 +2953753655-2967704893 +1620638998-1623460191 +3652181866-3653081107 +1226734954-1263413684 +208300600-209821102 +3019452277-3019912348 +1614701447-1620638997 +3941936081-3996282520 +3237157247-3249234449 +2348186235-2349807460 +3562813382-3565898388 +3710261879-3738818624 +2629772693-2635508362 +2443958025-2447376004 +399974274-423562472 +1778846705-1790086524 +2234646109-2266729225 +1668227842-1689521646 +3549361830-3564965209 +1286877599-1288249900 +2117171419-2125943104 +3620689032-3652181864 +3299261942-3299688775 +1490791491-1514099208 +3817192749-3833336581 +3410915712-3429899072 +541342032-546429219 +918411171-924314929 +2182745019-2185607312 +2212606518-2214621946 +1779983196-1804748835 +1936162035-1950945741 +3704618658-3705051939 +1764680564-1778846703 +2698697285-2709059938 +1326793529-1329535111 +3702328552-3704015912 +2008848662-2015608293 +1231732813-1247626190 +1750754899-1752420348 +1093229127-1099058712 +4234037046-4236997947 +3493552026-3497919102 +3235053958-3252106974 +4018470466-4036608102 +701727470-719544055 +574115703-596179511 +3202587506-3210265222 +698102469-706160479 +1832528173-1833853020 +441673267-452453492 +2911169435-2921998083 +2229856423-2234646108 +2196901664-2204841238 +1675352425-1691381949 +4250455374-4250513503 +3237515102-3260318492 +171161905-175877664 +2581539215-2596898898 +4004311193-4012385537 +1324083574-1324546090 +4096883078-4097164771 +780817620-784569858 +208242283-211110211 +1330525084-1336070077 +4008229513-4009226682 +834427868-838848257 +348999024-350410733 +467200453-500728800 +4121379695-4138903168 +2949401565-2976409803 +3917170902-3926057375 +3071781061-3074945017 +3299433864-3300019479 +3894069601-3909653487 +3741129648-3770933677 +1337537272-1347157874 +216818049-245842326 +1626689836-1641152228 +1112292760-1131928222 +1651219196-1654305795 +506374440-513152599 +430626871-453108093 +3297525469-3306042698 +3256944-3556639 +2937659849-2949401563 +3915476081-3917349752 +170273133-170386354 +3896834322-3906255111 +2911101673-2912870470 +2383625542-2388030504 +2202988069-2215864531 +3931566185-3938787313 +3893325063-3903409791 +1677593295-1694860962 +1726429432-1726959531 +550814749-553019695 +328183437-332828273 +2463651684-2490928811 +2532315541-2561777512 +902393943-906380753 +3255012511-3262588157 +464031865-471880579 +987894291-990856994 +2994108099-3016224261 +1464668452-1468573067 +3817599599-3819192240 +4281205900-4284988083 +1610485824-1614835930 +2922504894-2943149643 +1366674588-1391544336 +2716673569-2724196148 +2136933960-2141630673 +952929934-954132488 +102430362-103410808 +1097408788-1102041819 +1411884657-1413275434 +1569519099-1595018443 +3314630119-3351858696 +1159063633-1161383669 +1306210365-1310168207 +65606761-70210379 +969367195-1005028750 +305729050-305810398 +2964351925-2968998528 +2586831864-2598752947 +2717800067-2732550815 +1357733985-1357970980 +3142078167-3146050939 +836110255-836394578 +2855830819-2865550532 +1854118661-1854889002 +3275779087-3291457029 +481061771-497879373 +2572567941-2573814074 +3653825904-3656453968 +1752420350-1764680563 +3381301699-3381332932 +1499205864-1508841960 +2568948534-2571512127 +124303608-171161904 +834540652-842353886 +3296634137-3297348568 +756487393-757398433 +2920277931-2929967348 +775003730-775425950 +4006843235-4009222380 +4173461462-4180792939 +2573814075-2627343871 +3379943605-3385769428 +3613135813-3622915872 +456181408-463675190 +1679128363-1689145745 +1771462652-1775663407 +3896043704-3896601721 +3668521412-3670169542 +3189676166-3211906595 +4178058206-4197742264 +649282356-651528503 +4118830219-4151607552 +3403081369-3405163204 +1295416035-1327421558 +3535003795-3540392660 +2521028658-2521094946 +3378794770-3384471028 +3876141848-3885724936 +3415436447-3434089766 +3236961463-3242080308 +1289735149-1320942247 +20583890-31053879 +2039793197-2062178184 +3361173897-3362649522 +476445996-491796622 +2305715287-2337252117 +1407865145-1413213862 +100343325-122125577 +4259473250-4260027959 +1539624652-1558856769 +3388893007-3406562225 +3815438953-3819219050 +88644450-100343323 +2838092965-2853295826 +2298582785-2308283977 +1911552487-1924425897 +3486137486-3495337804 +3087487707-3105123828 +2449249575-2459990446 +1114195378-1147840884 +3084130783-3090098247 +280604127-291812349 +251655795-252002640 +2065738411-2068050329 +3540392662-3561413701 +4108709270-4110339849 +185357325-191846357 +2988550972-3002922233 +2008583503-2009174592 +367514957-375053863 +3738337-5109287 +2068050330-2103854128 +2185761689-2201113375 +502979929-541342030 +437711847-441825502 +763342493-770307022 +3891568242-3896055908 +2771403009-2783873057 +857296477-865365400 +2372996602-2415318753 +209779549-212434153 +3904992626-3910219913 +2976409804-2983591595 +3614472-4019606 +3429649651-3432451145 +2312224052-2330392688 +3889124925-3889312068 +3368044346-3369236254 +2485542419-2506962662 +3703774963-3704692844 +249324444-259065356 +3038718563-3063082755 +2348008128-2348750596 +4027659985-4040018381 +4020167637-4028011463 +631597603-638907977 +156806924-163856510 +465625162-475575707 +1653345924-1655794173 +644029368-673749955 +1342645425-1348056082 +754961620-757509941 +2185607313-2229856421 +2430693014-2452320783 +2423618253-2423991135 +2578007008-2593849390 +251455290-252167220 +2141431440-2145256393 +461551382-490688234 +1280627802-1282187341 +2447416346-2448485092 +801034819-803950109 +3803801071-3817168598 +2791159575-2797552524 +2444538618-2447695611 +3656900217-3658497760 +362424586-362913246 +2315692184-2318703938 +2658294991-2705851874 +758225777-762221309 +3220097965-3253590560 +3918863154-3937848140 +3842601762-3867989792 +1362989964-1365638761 +2669543622-2698580716 +204441701-216667513 +3337068522-3351226708 +2910214082-2911637865 +2887286425-2894235722 +2556506098-2564781736 +3660974732-3670236178 +3738818625-3765658510 +3926612436-3931754899 +849660339-860613211 +3878152839-3882588354 +1198564716-1203493708 +90563967-91509385 +4113419274-4118830217 +2421569872-2430693012 +1380512818-1382191639 +2171495075-2182745017 +2346496816-2347982976 +2773187116-2776527627 +3264380514-3275779086 +2795335811-2807483836 +1255625643-1259049524 +3039851327-3062062714 +3477125643-3485106833 +368161721-385647773 +557063546-567450813 +2662245837-2698867380 +409471723-415008368 +2692399192-2709671522 +3289361982-3294593090 +2444382077-2446243156 +995864334-1008973852 +1485359185-1511483438 +3170296689-3173219013 +651528504-684359142 +2799805080-2819283989 +2745894337-2761860632 +4021069786-4034189388 +2423235028-2423776100 +1161581883-1172788321 +575303235-584246627 +1323324671-1324380624 +423562473-430626869 +3173219015-3207487851 +256367467-256655264 +2729359684-2736808477 +2979779055-2988550970 +1482720845-1491600385 +1057830454-1067468142 +107593407-117739880 +251911362-252150667 +3569934829-3575123572 +2241251261-2263701349 +2726382705-2727247227 +4037319554-4043150606 +3718405500-3739070428 +2364203325-2366532950 +836023031-836878401 +961131857-995864333 +3961933297-3977917454 +3180447251-3212824411 +3124189059-3126106003 +793312386-802938899 +3873230388-3877536365 +2841402828-2852690950 +2931754109-2946377103 +4097161122-4098833023 +2953494240-2963922968 +1016080923-1023809512 +2305965588-2325470268 +1726429959-1728139098 +1725984972-1746517984 +2280080557-2294404834 +1453817212-1468119920 +3343366097-3354792825 +2726120736-2727168410 +1726047629-1726491275 +2425599810-2428632507 +1127809348-1136655248 +784569859-830872706 +3362865312-3399674855 +467374870-490345878 +2028166733-2029296658 +3793434985-3799550158 +4113324238-4114378130 +2768224805-2776292356 +3076910664-3083853151 +3795367294-3799559727 +983334314-985924731 +2566325429-2567644886 +2079828370-2095628301 +1355677782-1357107425 +3139807-3256943 +2297016509-2339606996 +3937987517-3940016788 +3111594-3180044 +3408799234-3410915710 +2736163676-2737085107 +2927299659-2930923781 +2828368238-2835482134 +2924361649-2933817173 +3278336262-3282205864 +209200196-211114889 +1089312986-1101840140 +2426098602-2426594407 +3761524602-3771101074 +4038400571-4039718550 +4278817904-4281979539 +1971790010-1982080495 +2482451447-2482859303 +696142504-708558552 +832751897-838668629 +522885199-537712867 +3854296653-3860724814 +4250257176-4250870059 +1098058891-1101871591 +2041494246-2044474847 +3379302636-3380200608 +2823631138-2825091086 +3114946479-3141035176 +2564781738-2570503459 +3066648569-3072839529 +2963998950-2966815574 +3996282522-4010140708 +2609189498-2612898027 +1398040334-1399196426 +2705851875-2712491761 +3303896197-3307457131 +3072710194-3078315569 +2650750533-2658294989 +125494120-152726161 +1799712687-1813651344 +4113647358-4114354821 +914689746-931400632 +2334991623-2346496814 +952020939-952231689 +3279484720-3279924084 +826369329-829381680 +306371001-356731744 +2545936899-2562194811 +755902693-769100113 +2423872436-2428440493 +1040252532-1043084518 +2531373947-2564360722 +3758158314-3765326552 +250882458-253102421 +2445299323-2451474922 +2845734926-2859990778 +2571586320-2571725933 +4010140709-4018470464 +1397769785-1398762710 +3812038748-3819957572 +2446738279-2447892957 +3600527152-3609409007 +260284548-271403358 +108405773-115248353 +1910315960-1918268562 +1323436354-1327278720 +2234068374-2234384404 +982370550-984890793 +362487749-363332785 +3703404287-3704710600 +511536791-531472470 +1204860806-1211356557 +1280824569-1283027536 +1864956505-1865664159 +1264539978-1280627800 +838668630-849660337 +1039302291-1048802154 +3820162182-3829891468 +252725400-258978812 +3811611218-3815532558 +5584894-20583889 +2571534738-2571657850 +383938370-391077230 +732225856-735643042 +2968582589-2972324720 +2379822184-2380941432 +775813903-782941501 +836283753-836553990 +2786901143-2790325697 +2907911644-2910586722 +3879031171-3883342655 +2446835992-2450584620 +3604970524-3620689031 +3656986634-3664253237 +108870276-116802953 +50881441-82763196 +830872708-834595234 +948787824-952327285 +3554278607-3558372901 +1411483095-1443906338 +1305613100-1306576996 +1171167570-1175215348 +145365808-166164576 +3344972328-3354937927 +178346121-180017093 +3487950867-3498067707 +3455826248-3468331688 +1357654405-1361499079 +2373804146-2375708934 +1682091088-1685006321 +2532666674-2554100432 +3872534964-3888980905 +684359144-690072644 +31053881-36411395 +749479393-750957481 +1233001829-1257233242 +1109953682-1114195377 +175877666-185357324 +1283027537-1289735147 +3374715947-3381800912 +1283434504-1286474690 +1402640030-1423128613 +1426046568-1440437597 +3021217411-3028438706 +3449839444-3455646128 +2192814747-2207353667 +1039244541-1044508076 +363332786-399974272 +620349463-624462815 +3118427268-3142548507 +1177759665-1219332116 +1223070153-1264539977 +2469319931-2491726485 +1101840141-1109953680 +1048427340-1089312984 +2577948853-2584544199 +43965520-47689181 +1833568506-1857070652 +356731745-362276040 +4262722663-4294967295 +2632338905-2641519671 +0-3021649 +1148518671-1158649494 +3562116150-3562242974 +567450814-585792807 +198587645-249324442 +3756871898-3778510326 +2815453754-2821381182 +3562113904-3562138636 +2567358294-2571273144 +2061605698-2065382934 +1865301101-1870272543 +2565458232-2569021972 +267026988-275785393 +2570888765-2571620263 +179248341-180073497 +267066134-277088479 +2060654926-2062597974 +2065382936-2066893485 +3298704119-3299564801 +2194534845-2218883408 diff --git a/adventofcode16/data/advent21.txt b/adventofcode16/data/advent21.txt new file mode 100644 index 0000000..b445817 --- /dev/null +++ b/adventofcode16/data/advent21.txt @@ -0,0 +1,100 @@ +rotate based on position of letter a +swap letter g with letter d +move position 1 to position 5 +reverse positions 6 through 7 +move position 5 to position 4 +rotate based on position of letter b +reverse positions 6 through 7 +swap letter h with letter f +swap letter e with letter c +reverse positions 0 through 7 +swap position 6 with position 4 +rotate based on position of letter e +move position 2 to position 7 +swap position 6 with position 4 +rotate based on position of letter e +reverse positions 2 through 3 +rotate right 2 steps +swap position 7 with position 1 +move position 1 to position 2 +move position 4 to position 7 +move position 5 to position 0 +swap letter e with letter f +move position 4 to position 7 +reverse positions 1 through 7 +rotate based on position of letter g +move position 7 to position 4 +rotate right 6 steps +rotate based on position of letter g +reverse positions 0 through 5 +reverse positions 0 through 7 +swap letter c with letter f +swap letter h with letter f +rotate right 7 steps +rotate based on position of letter g +rotate based on position of letter c +swap position 1 with position 4 +move position 7 to position 3 +reverse positions 2 through 6 +move position 7 to position 0 +move position 7 to position 1 +move position 6 to position 7 +rotate right 5 steps +reverse positions 0 through 6 +move position 1 to position 4 +rotate left 3 steps +swap letter d with letter c +move position 4 to position 5 +rotate based on position of letter f +rotate right 1 step +move position 7 to position 6 +swap position 6 with position 0 +move position 6 to position 2 +rotate right 1 step +swap position 1 with position 6 +move position 2 to position 6 +swap position 2 with position 1 +reverse positions 1 through 7 +move position 4 to position 1 +move position 7 to position 0 +swap position 6 with position 7 +rotate left 1 step +reverse positions 0 through 4 +rotate based on position of letter c +rotate based on position of letter b +move position 2 to position 1 +rotate right 0 steps +swap letter b with letter d +swap letter f with letter c +swap letter d with letter a +swap position 7 with position 6 +rotate right 0 steps +swap position 0 with position 3 +swap position 2 with position 5 +swap letter h with letter f +reverse positions 2 through 3 +rotate based on position of letter c +rotate left 2 steps +move position 0 to position 5 +swap position 2 with position 3 +rotate right 1 step +rotate left 2 steps +move position 0 to position 4 +rotate based on position of letter c +rotate based on position of letter g +swap position 3 with position 0 +rotate right 3 steps +reverse positions 0 through 2 +move position 1 to position 2 +swap letter e with letter c +rotate right 7 steps +move position 0 to position 7 +rotate left 2 steps +reverse positions 0 through 4 +swap letter e with letter b +reverse positions 2 through 7 +rotate right 5 steps +swap position 2 with position 4 +swap letter d with letter g +reverse positions 3 through 4 +reverse positions 4 through 5 diff --git a/adventofcode16/data/advent22.txt b/adventofcode16/data/advent22.txt new file mode 100644 index 0000000..8821df9 --- /dev/null +++ b/adventofcode16/data/advent22.txt @@ -0,0 +1,1066 @@ +root@ebhq-gridcenter# df -h +Filesystem Size Used Avail Use% +/dev/grid/node-x0-y0 88T 66T 22T 75% +/dev/grid/node-x0-y1 85T 65T 20T 76% +/dev/grid/node-x0-y2 88T 67T 21T 76% +/dev/grid/node-x0-y3 92T 68T 24T 73% +/dev/grid/node-x0-y4 87T 64T 23T 73% +/dev/grid/node-x0-y5 90T 64T 26T 71% +/dev/grid/node-x0-y6 85T 64T 21T 75% +/dev/grid/node-x0-y7 93T 66T 27T 70% +/dev/grid/node-x0-y8 90T 69T 21T 76% +/dev/grid/node-x0-y9 88T 69T 19T 78% +/dev/grid/node-x0-y10 90T 69T 21T 76% +/dev/grid/node-x0-y11 90T 65T 25T 72% +/dev/grid/node-x0-y12 86T 73T 13T 84% +/dev/grid/node-x0-y13 92T 67T 25T 72% +/dev/grid/node-x0-y14 90T 70T 20T 77% +/dev/grid/node-x0-y15 90T 66T 24T 73% +/dev/grid/node-x0-y16 86T 66T 20T 76% +/dev/grid/node-x0-y17 87T 67T 20T 77% +/dev/grid/node-x0-y18 85T 64T 21T 75% +/dev/grid/node-x0-y19 91T 67T 24T 73% +/dev/grid/node-x0-y20 93T 73T 20T 78% +/dev/grid/node-x0-y21 91T 72T 19T 79% +/dev/grid/node-x0-y22 86T 64T 22T 74% +/dev/grid/node-x0-y23 85T 73T 12T 85% +/dev/grid/node-x0-y24 93T 65T 28T 69% +/dev/grid/node-x0-y25 89T 67T 22T 75% +/dev/grid/node-x0-y26 94T 64T 30T 68% +/dev/grid/node-x0-y27 85T 69T 16T 81% +/dev/grid/node-x1-y0 85T 68T 17T 80% +/dev/grid/node-x1-y1 93T 69T 24T 74% +/dev/grid/node-x1-y2 85T 68T 17T 80% +/dev/grid/node-x1-y3 89T 69T 20T 77% +/dev/grid/node-x1-y4 92T 70T 22T 76% +/dev/grid/node-x1-y5 92T 65T 27T 70% +/dev/grid/node-x1-y6 87T 69T 18T 79% +/dev/grid/node-x1-y7 93T 65T 28T 69% +/dev/grid/node-x1-y8 85T 69T 16T 81% +/dev/grid/node-x1-y9 88T 64T 24T 72% +/dev/grid/node-x1-y10 88T 65T 23T 73% +/dev/grid/node-x1-y11 85T 66T 19T 77% +/dev/grid/node-x1-y12 85T 69T 16T 81% +/dev/grid/node-x1-y13 90T 73T 17T 81% +/dev/grid/node-x1-y14 93T 68T 25T 73% +/dev/grid/node-x1-y15 94T 68T 26T 72% +/dev/grid/node-x1-y16 85T 67T 18T 78% +/dev/grid/node-x1-y17 87T 71T 16T 81% +/dev/grid/node-x1-y18 90T 73T 17T 81% +/dev/grid/node-x1-y19 86T 66T 20T 76% +/dev/grid/node-x1-y20 89T 71T 18T 79% +/dev/grid/node-x1-y21 94T 69T 25T 73% +/dev/grid/node-x1-y22 90T 70T 20T 77% +/dev/grid/node-x1-y23 92T 70T 22T 76% +/dev/grid/node-x1-y24 91T 70T 21T 76% +/dev/grid/node-x1-y25 94T 70T 24T 74% +/dev/grid/node-x1-y26 90T 64T 26T 71% +/dev/grid/node-x1-y27 92T 73T 19T 79% +/dev/grid/node-x2-y0 88T 72T 16T 81% +/dev/grid/node-x2-y1 88T 70T 18T 79% +/dev/grid/node-x2-y2 89T 68T 21T 76% +/dev/grid/node-x2-y3 89T 72T 17T 80% +/dev/grid/node-x2-y4 93T 66T 27T 70% +/dev/grid/node-x2-y5 92T 65T 27T 70% +/dev/grid/node-x2-y6 91T 66T 25T 72% +/dev/grid/node-x2-y7 86T 70T 16T 81% +/dev/grid/node-x2-y8 94T 66T 28T 70% +/dev/grid/node-x2-y9 88T 71T 17T 80% +/dev/grid/node-x2-y10 90T 64T 26T 71% +/dev/grid/node-x2-y11 88T 68T 20T 77% +/dev/grid/node-x2-y12 86T 70T 16T 81% +/dev/grid/node-x2-y13 90T 68T 22T 75% +/dev/grid/node-x2-y14 85T 70T 15T 82% +/dev/grid/node-x2-y15 93T 70T 23T 75% +/dev/grid/node-x2-y16 87T 73T 14T 83% +/dev/grid/node-x2-y17 92T 66T 26T 71% +/dev/grid/node-x2-y18 88T 70T 18T 79% +/dev/grid/node-x2-y19 89T 69T 20T 77% +/dev/grid/node-x2-y20 92T 64T 28T 69% +/dev/grid/node-x2-y21 85T 67T 18T 78% +/dev/grid/node-x2-y22 89T 70T 19T 78% +/dev/grid/node-x2-y23 94T 70T 24T 74% +/dev/grid/node-x2-y24 87T 72T 15T 82% +/dev/grid/node-x2-y25 91T 73T 18T 80% +/dev/grid/node-x2-y26 91T 65T 26T 71% +/dev/grid/node-x2-y27 90T 70T 20T 77% +/dev/grid/node-x3-y0 92T 72T 20T 78% +/dev/grid/node-x3-y1 91T 71T 20T 78% +/dev/grid/node-x3-y2 93T 71T 22T 76% +/dev/grid/node-x3-y3 89T 72T 17T 80% +/dev/grid/node-x3-y4 88T 68T 20T 77% +/dev/grid/node-x3-y5 92T 73T 19T 79% +/dev/grid/node-x3-y6 86T 64T 22T 74% +/dev/grid/node-x3-y7 86T 67T 19T 77% +/dev/grid/node-x3-y8 85T 73T 12T 85% +/dev/grid/node-x3-y9 86T 72T 14T 83% +/dev/grid/node-x3-y10 88T 67T 21T 76% +/dev/grid/node-x3-y11 94T 67T 27T 71% +/dev/grid/node-x3-y12 91T 66T 25T 72% +/dev/grid/node-x3-y13 85T 67T 18T 78% +/dev/grid/node-x3-y14 94T 68T 26T 72% +/dev/grid/node-x3-y15 94T 73T 21T 77% +/dev/grid/node-x3-y16 92T 71T 21T 77% +/dev/grid/node-x3-y17 92T 73T 19T 79% +/dev/grid/node-x3-y18 86T 66T 20T 76% +/dev/grid/node-x3-y19 88T 69T 19T 78% +/dev/grid/node-x3-y20 90T 73T 17T 81% +/dev/grid/node-x3-y21 87T 71T 16T 81% +/dev/grid/node-x3-y22 92T 72T 20T 78% +/dev/grid/node-x3-y23 87T 71T 16T 81% +/dev/grid/node-x3-y24 93T 66T 27T 70% +/dev/grid/node-x3-y25 94T 65T 29T 69% +/dev/grid/node-x3-y26 91T 67T 24T 73% +/dev/grid/node-x3-y27 88T 69T 19T 78% +/dev/grid/node-x4-y0 93T 68T 25T 73% +/dev/grid/node-x4-y1 93T 67T 26T 72% +/dev/grid/node-x4-y2 85T 67T 18T 78% +/dev/grid/node-x4-y3 89T 65T 24T 73% +/dev/grid/node-x4-y4 85T 73T 12T 85% +/dev/grid/node-x4-y5 86T 72T 14T 83% +/dev/grid/node-x4-y6 86T 66T 20T 76% +/dev/grid/node-x4-y7 89T 66T 23T 74% +/dev/grid/node-x4-y8 94T 73T 21T 77% +/dev/grid/node-x4-y9 89T 72T 17T 80% +/dev/grid/node-x4-y10 86T 66T 20T 76% +/dev/grid/node-x4-y11 92T 70T 22T 76% +/dev/grid/node-x4-y12 93T 69T 24T 74% +/dev/grid/node-x4-y13 85T 68T 17T 80% +/dev/grid/node-x4-y14 93T 73T 20T 78% +/dev/grid/node-x4-y15 87T 67T 20T 77% +/dev/grid/node-x4-y16 86T 66T 20T 76% +/dev/grid/node-x4-y17 90T 70T 20T 77% +/dev/grid/node-x4-y18 92T 69T 23T 75% +/dev/grid/node-x4-y19 93T 71T 22T 76% +/dev/grid/node-x4-y20 94T 66T 28T 70% +/dev/grid/node-x4-y21 88T 73T 15T 82% +/dev/grid/node-x4-y22 93T 71T 22T 76% +/dev/grid/node-x4-y23 87T 68T 19T 78% +/dev/grid/node-x4-y24 89T 70T 19T 78% +/dev/grid/node-x4-y25 87T 69T 18T 79% +/dev/grid/node-x4-y26 87T 69T 18T 79% +/dev/grid/node-x4-y27 89T 71T 18T 79% +/dev/grid/node-x5-y0 88T 66T 22T 75% +/dev/grid/node-x5-y1 91T 70T 21T 76% +/dev/grid/node-x5-y2 91T 71T 20T 78% +/dev/grid/node-x5-y3 90T 68T 22T 75% +/dev/grid/node-x5-y4 85T 72T 13T 84% +/dev/grid/node-x5-y5 89T 64T 25T 71% +/dev/grid/node-x5-y6 90T 71T 19T 78% +/dev/grid/node-x5-y7 91T 64T 27T 70% +/dev/grid/node-x5-y8 87T 71T 16T 81% +/dev/grid/node-x5-y9 89T 72T 17T 80% +/dev/grid/node-x5-y10 86T 68T 18T 79% +/dev/grid/node-x5-y11 91T 66T 25T 72% +/dev/grid/node-x5-y12 89T 69T 20T 77% +/dev/grid/node-x5-y13 85T 72T 13T 84% +/dev/grid/node-x5-y14 92T 69T 23T 75% +/dev/grid/node-x5-y15 88T 68T 20T 77% +/dev/grid/node-x5-y16 92T 72T 20T 78% +/dev/grid/node-x5-y17 93T 70T 23T 75% +/dev/grid/node-x5-y18 87T 65T 22T 74% +/dev/grid/node-x5-y19 86T 64T 22T 74% +/dev/grid/node-x5-y20 89T 68T 21T 76% +/dev/grid/node-x5-y21 89T 68T 21T 76% +/dev/grid/node-x5-y22 89T 71T 18T 79% +/dev/grid/node-x5-y23 91T 67T 24T 73% +/dev/grid/node-x5-y24 88T 64T 24T 72% +/dev/grid/node-x5-y25 92T 73T 19T 79% +/dev/grid/node-x5-y26 94T 64T 30T 68% +/dev/grid/node-x5-y27 88T 73T 15T 82% +/dev/grid/node-x6-y0 88T 64T 24T 72% +/dev/grid/node-x6-y1 87T 71T 16T 81% +/dev/grid/node-x6-y2 93T 65T 28T 69% +/dev/grid/node-x6-y3 90T 71T 19T 78% +/dev/grid/node-x6-y4 85T 68T 17T 80% +/dev/grid/node-x6-y5 93T 70T 23T 75% +/dev/grid/node-x6-y6 91T 70T 21T 76% +/dev/grid/node-x6-y7 89T 65T 24T 73% +/dev/grid/node-x6-y8 91T 65T 26T 71% +/dev/grid/node-x6-y9 92T 65T 27T 70% +/dev/grid/node-x6-y10 94T 73T 21T 77% +/dev/grid/node-x6-y11 86T 71T 15T 82% +/dev/grid/node-x6-y12 87T 68T 19T 78% +/dev/grid/node-x6-y13 93T 68T 25T 73% +/dev/grid/node-x6-y14 87T 68T 19T 78% +/dev/grid/node-x6-y15 85T 71T 14T 83% +/dev/grid/node-x6-y16 85T 70T 15T 82% +/dev/grid/node-x6-y17 85T 66T 19T 77% +/dev/grid/node-x6-y18 90T 66T 24T 73% +/dev/grid/node-x6-y19 85T 73T 12T 85% +/dev/grid/node-x6-y20 92T 73T 19T 79% +/dev/grid/node-x6-y21 90T 68T 22T 75% +/dev/grid/node-x6-y22 85T 68T 17T 80% +/dev/grid/node-x6-y23 85T 67T 18T 78% +/dev/grid/node-x6-y24 87T 65T 22T 74% +/dev/grid/node-x6-y25 85T 68T 17T 80% +/dev/grid/node-x6-y26 88T 70T 18T 79% +/dev/grid/node-x6-y27 86T 65T 21T 75% +/dev/grid/node-x7-y0 89T 66T 23T 74% +/dev/grid/node-x7-y1 92T 67T 25T 72% +/dev/grid/node-x7-y2 94T 69T 25T 73% +/dev/grid/node-x7-y3 86T 72T 14T 83% +/dev/grid/node-x7-y4 90T 68T 22T 75% +/dev/grid/node-x7-y5 87T 72T 15T 82% +/dev/grid/node-x7-y6 92T 71T 21T 77% +/dev/grid/node-x7-y7 90T 71T 19T 78% +/dev/grid/node-x7-y8 92T 70T 22T 76% +/dev/grid/node-x7-y9 85T 73T 12T 85% +/dev/grid/node-x7-y10 92T 68T 24T 73% +/dev/grid/node-x7-y11 94T 69T 25T 73% +/dev/grid/node-x7-y12 88T 71T 17T 80% +/dev/grid/node-x7-y13 87T 73T 14T 83% +/dev/grid/node-x7-y14 92T 70T 22T 76% +/dev/grid/node-x7-y15 87T 68T 19T 78% +/dev/grid/node-x7-y16 85T 65T 20T 76% +/dev/grid/node-x7-y17 93T 64T 29T 68% +/dev/grid/node-x7-y18 91T 67T 24T 73% +/dev/grid/node-x7-y19 87T 66T 21T 75% +/dev/grid/node-x7-y20 94T 72T 22T 76% +/dev/grid/node-x7-y21 85T 72T 13T 84% +/dev/grid/node-x7-y22 88T 73T 15T 82% +/dev/grid/node-x7-y23 91T 66T 25T 72% +/dev/grid/node-x7-y24 94T 70T 24T 74% +/dev/grid/node-x7-y25 85T 65T 20T 76% +/dev/grid/node-x7-y26 88T 64T 24T 72% +/dev/grid/node-x7-y27 93T 69T 24T 74% +/dev/grid/node-x8-y0 92T 65T 27T 70% +/dev/grid/node-x8-y1 89T 69T 20T 77% +/dev/grid/node-x8-y2 93T 64T 29T 68% +/dev/grid/node-x8-y3 85T 65T 20T 76% +/dev/grid/node-x8-y4 91T 69T 22T 75% +/dev/grid/node-x8-y5 85T 70T 15T 82% +/dev/grid/node-x8-y6 86T 64T 22T 74% +/dev/grid/node-x8-y7 94T 67T 27T 71% +/dev/grid/node-x8-y8 88T 68T 20T 77% +/dev/grid/node-x8-y9 94T 69T 25T 73% +/dev/grid/node-x8-y10 91T 73T 18T 80% +/dev/grid/node-x8-y11 89T 73T 16T 82% +/dev/grid/node-x8-y12 87T 68T 19T 78% +/dev/grid/node-x8-y13 89T 70T 19T 78% +/dev/grid/node-x8-y14 86T 67T 19T 77% +/dev/grid/node-x8-y15 90T 68T 22T 75% +/dev/grid/node-x8-y16 92T 72T 20T 78% +/dev/grid/node-x8-y17 89T 68T 21T 76% +/dev/grid/node-x8-y18 89T 67T 22T 75% +/dev/grid/node-x8-y19 85T 68T 17T 80% +/dev/grid/node-x8-y20 88T 64T 24T 72% +/dev/grid/node-x8-y21 90T 72T 18T 80% +/dev/grid/node-x8-y22 93T 73T 20T 78% +/dev/grid/node-x8-y23 92T 68T 24T 73% +/dev/grid/node-x8-y24 92T 66T 26T 71% +/dev/grid/node-x8-y25 93T 70T 23T 75% +/dev/grid/node-x8-y26 92T 64T 28T 69% +/dev/grid/node-x8-y27 85T 64T 21T 75% +/dev/grid/node-x9-y0 94T 71T 23T 75% +/dev/grid/node-x9-y1 91T 71T 20T 78% +/dev/grid/node-x9-y2 93T 66T 27T 70% +/dev/grid/node-x9-y3 86T 73T 13T 84% +/dev/grid/node-x9-y4 90T 69T 21T 76% +/dev/grid/node-x9-y5 85T 70T 15T 82% +/dev/grid/node-x9-y6 88T 67T 21T 76% +/dev/grid/node-x9-y7 90T 64T 26T 71% +/dev/grid/node-x9-y8 93T 66T 27T 70% +/dev/grid/node-x9-y9 90T 73T 17T 81% +/dev/grid/node-x9-y10 90T 73T 17T 81% +/dev/grid/node-x9-y11 89T 69T 20T 77% +/dev/grid/node-x9-y12 89T 69T 20T 77% +/dev/grid/node-x9-y13 93T 68T 25T 73% +/dev/grid/node-x9-y14 94T 64T 30T 68% +/dev/grid/node-x9-y15 94T 66T 28T 70% +/dev/grid/node-x9-y16 89T 71T 18T 79% +/dev/grid/node-x9-y17 89T 69T 20T 77% +/dev/grid/node-x9-y18 86T 65T 21T 75% +/dev/grid/node-x9-y19 88T 71T 17T 80% +/dev/grid/node-x9-y20 90T 72T 18T 80% +/dev/grid/node-x9-y21 91T 71T 20T 78% +/dev/grid/node-x9-y22 88T 66T 22T 75% +/dev/grid/node-x9-y23 93T 69T 24T 74% +/dev/grid/node-x9-y24 502T 496T 6T 98% +/dev/grid/node-x9-y25 89T 73T 16T 82% +/dev/grid/node-x9-y26 92T 71T 21T 77% +/dev/grid/node-x9-y27 94T 70T 24T 74% +/dev/grid/node-x10-y0 85T 73T 12T 85% +/dev/grid/node-x10-y1 92T 64T 28T 69% +/dev/grid/node-x10-y2 92T 64T 28T 69% +/dev/grid/node-x10-y3 92T 71T 21T 77% +/dev/grid/node-x10-y4 89T 71T 18T 79% +/dev/grid/node-x10-y5 87T 72T 15T 82% +/dev/grid/node-x10-y6 93T 68T 25T 73% +/dev/grid/node-x10-y7 93T 65T 28T 69% +/dev/grid/node-x10-y8 87T 67T 20T 77% +/dev/grid/node-x10-y9 90T 64T 26T 71% +/dev/grid/node-x10-y10 91T 70T 21T 76% +/dev/grid/node-x10-y11 86T 66T 20T 76% +/dev/grid/node-x10-y12 90T 71T 19T 78% +/dev/grid/node-x10-y13 86T 65T 21T 75% +/dev/grid/node-x10-y14 93T 69T 24T 74% +/dev/grid/node-x10-y15 87T 64T 23T 73% +/dev/grid/node-x10-y16 85T 68T 17T 80% +/dev/grid/node-x10-y17 89T 65T 24T 73% +/dev/grid/node-x10-y18 94T 73T 21T 77% +/dev/grid/node-x10-y19 94T 73T 21T 77% +/dev/grid/node-x10-y20 88T 68T 20T 77% +/dev/grid/node-x10-y21 93T 73T 20T 78% +/dev/grid/node-x10-y22 87T 67T 20T 77% +/dev/grid/node-x10-y23 90T 67T 23T 74% +/dev/grid/node-x10-y24 510T 491T 19T 96% +/dev/grid/node-x10-y25 90T 71T 19T 78% +/dev/grid/node-x10-y26 94T 67T 27T 71% +/dev/grid/node-x10-y27 93T 67T 26T 72% +/dev/grid/node-x11-y0 91T 64T 27T 70% +/dev/grid/node-x11-y1 91T 67T 24T 73% +/dev/grid/node-x11-y2 86T 70T 16T 81% +/dev/grid/node-x11-y3 87T 65T 22T 74% +/dev/grid/node-x11-y4 86T 66T 20T 76% +/dev/grid/node-x11-y5 85T 71T 14T 83% +/dev/grid/node-x11-y6 91T 65T 26T 71% +/dev/grid/node-x11-y7 86T 65T 21T 75% +/dev/grid/node-x11-y8 91T 71T 20T 78% +/dev/grid/node-x11-y9 94T 71T 23T 75% +/dev/grid/node-x11-y10 89T 65T 24T 73% +/dev/grid/node-x11-y11 94T 71T 23T 75% +/dev/grid/node-x11-y12 88T 64T 24T 72% +/dev/grid/node-x11-y13 85T 67T 18T 78% +/dev/grid/node-x11-y14 87T 71T 16T 81% +/dev/grid/node-x11-y15 90T 71T 19T 78% +/dev/grid/node-x11-y16 87T 73T 14T 83% +/dev/grid/node-x11-y17 89T 68T 21T 76% +/dev/grid/node-x11-y18 94T 64T 30T 68% +/dev/grid/node-x11-y19 92T 68T 24T 73% +/dev/grid/node-x11-y20 86T 67T 19T 77% +/dev/grid/node-x11-y21 91T 73T 18T 80% +/dev/grid/node-x11-y22 91T 69T 22T 75% +/dev/grid/node-x11-y23 88T 72T 16T 81% +/dev/grid/node-x11-y24 509T 493T 16T 96% +/dev/grid/node-x11-y25 93T 68T 25T 73% +/dev/grid/node-x11-y26 86T 72T 14T 83% +/dev/grid/node-x11-y27 86T 65T 21T 75% +/dev/grid/node-x12-y0 93T 65T 28T 69% +/dev/grid/node-x12-y1 93T 65T 28T 69% +/dev/grid/node-x12-y2 86T 68T 18T 79% +/dev/grid/node-x12-y3 92T 65T 27T 70% +/dev/grid/node-x12-y4 87T 65T 22T 74% +/dev/grid/node-x12-y5 93T 68T 25T 73% +/dev/grid/node-x12-y6 90T 67T 23T 74% +/dev/grid/node-x12-y7 93T 69T 24T 74% +/dev/grid/node-x12-y8 88T 72T 16T 81% +/dev/grid/node-x12-y9 90T 72T 18T 80% +/dev/grid/node-x12-y10 89T 64T 25T 71% +/dev/grid/node-x12-y11 85T 69T 16T 81% +/dev/grid/node-x12-y12 90T 69T 21T 76% +/dev/grid/node-x12-y13 94T 66T 28T 70% +/dev/grid/node-x12-y14 89T 69T 20T 77% +/dev/grid/node-x12-y15 92T 68T 24T 73% +/dev/grid/node-x12-y16 90T 73T 17T 81% +/dev/grid/node-x12-y17 85T 67T 18T 78% +/dev/grid/node-x12-y18 90T 67T 23T 74% +/dev/grid/node-x12-y19 94T 65T 29T 69% +/dev/grid/node-x12-y20 89T 68T 21T 76% +/dev/grid/node-x12-y21 88T 71T 17T 80% +/dev/grid/node-x12-y22 87T 73T 14T 83% +/dev/grid/node-x12-y23 94T 64T 30T 68% +/dev/grid/node-x12-y24 505T 499T 6T 98% +/dev/grid/node-x12-y25 86T 67T 19T 77% +/dev/grid/node-x12-y26 94T 64T 30T 68% +/dev/grid/node-x12-y27 92T 66T 26T 71% +/dev/grid/node-x13-y0 89T 65T 24T 73% +/dev/grid/node-x13-y1 92T 65T 27T 70% +/dev/grid/node-x13-y2 92T 67T 25T 72% +/dev/grid/node-x13-y3 91T 71T 20T 78% +/dev/grid/node-x13-y4 87T 66T 21T 75% +/dev/grid/node-x13-y5 92T 71T 21T 77% +/dev/grid/node-x13-y6 92T 67T 25T 72% +/dev/grid/node-x13-y7 90T 73T 17T 81% +/dev/grid/node-x13-y8 91T 67T 24T 73% +/dev/grid/node-x13-y9 90T 64T 26T 71% +/dev/grid/node-x13-y10 85T 73T 12T 85% +/dev/grid/node-x13-y11 91T 65T 26T 71% +/dev/grid/node-x13-y12 94T 65T 29T 69% +/dev/grid/node-x13-y13 94T 73T 21T 77% +/dev/grid/node-x13-y14 91T 71T 20T 78% +/dev/grid/node-x13-y15 85T 65T 20T 76% +/dev/grid/node-x13-y16 88T 68T 20T 77% +/dev/grid/node-x13-y17 94T 65T 29T 69% +/dev/grid/node-x13-y18 92T 70T 22T 76% +/dev/grid/node-x13-y19 86T 72T 14T 83% +/dev/grid/node-x13-y20 88T 71T 17T 80% +/dev/grid/node-x13-y21 94T 72T 22T 76% +/dev/grid/node-x13-y22 92T 66T 26T 71% +/dev/grid/node-x13-y23 90T 69T 21T 76% +/dev/grid/node-x13-y24 510T 492T 18T 96% +/dev/grid/node-x13-y25 94T 73T 21T 77% +/dev/grid/node-x13-y26 87T 68T 19T 78% +/dev/grid/node-x13-y27 93T 71T 22T 76% +/dev/grid/node-x14-y0 87T 73T 14T 83% +/dev/grid/node-x14-y1 86T 69T 17T 80% +/dev/grid/node-x14-y2 91T 71T 20T 78% +/dev/grid/node-x14-y3 88T 67T 21T 76% +/dev/grid/node-x14-y4 88T 70T 18T 79% +/dev/grid/node-x14-y5 92T 73T 19T 79% +/dev/grid/node-x14-y6 88T 66T 22T 75% +/dev/grid/node-x14-y7 85T 68T 17T 80% +/dev/grid/node-x14-y8 87T 70T 17T 80% +/dev/grid/node-x14-y9 88T 71T 17T 80% +/dev/grid/node-x14-y10 89T 66T 23T 74% +/dev/grid/node-x14-y11 90T 69T 21T 76% +/dev/grid/node-x14-y12 89T 71T 18T 79% +/dev/grid/node-x14-y13 89T 64T 25T 71% +/dev/grid/node-x14-y14 91T 72T 19T 79% +/dev/grid/node-x14-y15 94T 69T 25T 73% +/dev/grid/node-x14-y16 86T 73T 13T 84% +/dev/grid/node-x14-y17 88T 70T 18T 79% +/dev/grid/node-x14-y18 91T 68T 23T 74% +/dev/grid/node-x14-y19 91T 67T 24T 73% +/dev/grid/node-x14-y20 85T 65T 20T 76% +/dev/grid/node-x14-y21 85T 71T 14T 83% +/dev/grid/node-x14-y22 90T 70T 20T 77% +/dev/grid/node-x14-y23 85T 70T 15T 82% +/dev/grid/node-x14-y24 504T 494T 10T 98% +/dev/grid/node-x14-y25 94T 69T 25T 73% +/dev/grid/node-x14-y26 92T 64T 28T 69% +/dev/grid/node-x14-y27 86T 73T 13T 84% +/dev/grid/node-x15-y0 88T 72T 16T 81% +/dev/grid/node-x15-y1 91T 67T 24T 73% +/dev/grid/node-x15-y2 90T 67T 23T 74% +/dev/grid/node-x15-y3 90T 68T 22T 75% +/dev/grid/node-x15-y4 92T 70T 22T 76% +/dev/grid/node-x15-y5 89T 69T 20T 77% +/dev/grid/node-x15-y6 89T 70T 19T 78% +/dev/grid/node-x15-y7 93T 71T 22T 76% +/dev/grid/node-x15-y8 86T 64T 22T 74% +/dev/grid/node-x15-y9 91T 71T 20T 78% +/dev/grid/node-x15-y10 94T 72T 22T 76% +/dev/grid/node-x15-y11 91T 70T 21T 76% +/dev/grid/node-x15-y12 93T 71T 22T 76% +/dev/grid/node-x15-y13 94T 66T 28T 70% +/dev/grid/node-x15-y14 93T 68T 25T 73% +/dev/grid/node-x15-y15 85T 67T 18T 78% +/dev/grid/node-x15-y16 88T 64T 24T 72% +/dev/grid/node-x15-y17 94T 72T 22T 76% +/dev/grid/node-x15-y18 93T 67T 26T 72% +/dev/grid/node-x15-y19 89T 68T 21T 76% +/dev/grid/node-x15-y20 93T 71T 22T 76% +/dev/grid/node-x15-y21 90T 70T 20T 77% +/dev/grid/node-x15-y22 86T 65T 21T 75% +/dev/grid/node-x15-y23 90T 68T 22T 75% +/dev/grid/node-x15-y24 506T 494T 12T 97% +/dev/grid/node-x15-y25 91T 71T 20T 78% +/dev/grid/node-x15-y26 86T 70T 16T 81% +/dev/grid/node-x15-y27 87T 64T 23T 73% +/dev/grid/node-x16-y0 93T 64T 29T 68% +/dev/grid/node-x16-y1 91T 69T 22T 75% +/dev/grid/node-x16-y2 89T 66T 23T 74% +/dev/grid/node-x16-y3 89T 68T 21T 76% +/dev/grid/node-x16-y4 91T 65T 26T 71% +/dev/grid/node-x16-y5 85T 71T 14T 83% +/dev/grid/node-x16-y6 93T 69T 24T 74% +/dev/grid/node-x16-y7 87T 69T 18T 79% +/dev/grid/node-x16-y8 85T 72T 13T 84% +/dev/grid/node-x16-y9 92T 67T 25T 72% +/dev/grid/node-x16-y10 92T 69T 23T 75% +/dev/grid/node-x16-y11 93T 72T 21T 77% +/dev/grid/node-x16-y12 92T 73T 19T 79% +/dev/grid/node-x16-y13 88T 70T 18T 79% +/dev/grid/node-x16-y14 91T 71T 20T 78% +/dev/grid/node-x16-y15 88T 66T 22T 75% +/dev/grid/node-x16-y16 88T 70T 18T 79% +/dev/grid/node-x16-y17 88T 73T 15T 82% +/dev/grid/node-x16-y18 92T 72T 20T 78% +/dev/grid/node-x16-y19 90T 73T 17T 81% +/dev/grid/node-x16-y20 94T 73T 21T 77% +/dev/grid/node-x16-y21 86T 71T 15T 82% +/dev/grid/node-x16-y22 88T 68T 20T 77% +/dev/grid/node-x16-y23 88T 73T 15T 82% +/dev/grid/node-x16-y24 506T 496T 10T 98% +/dev/grid/node-x16-y25 85T 69T 16T 81% +/dev/grid/node-x16-y26 90T 64T 26T 71% +/dev/grid/node-x16-y27 92T 64T 28T 69% +/dev/grid/node-x17-y0 88T 73T 15T 82% +/dev/grid/node-x17-y1 87T 65T 22T 74% +/dev/grid/node-x17-y2 90T 64T 26T 71% +/dev/grid/node-x17-y3 93T 71T 22T 76% +/dev/grid/node-x17-y4 90T 64T 26T 71% +/dev/grid/node-x17-y5 87T 64T 23T 73% +/dev/grid/node-x17-y6 86T 72T 14T 83% +/dev/grid/node-x17-y7 90T 65T 25T 72% +/dev/grid/node-x17-y8 85T 71T 14T 83% +/dev/grid/node-x17-y9 93T 68T 25T 73% +/dev/grid/node-x17-y10 87T 65T 22T 74% +/dev/grid/node-x17-y11 87T 71T 16T 81% +/dev/grid/node-x17-y12 90T 73T 17T 81% +/dev/grid/node-x17-y13 92T 71T 21T 77% +/dev/grid/node-x17-y14 91T 69T 22T 75% +/dev/grid/node-x17-y15 88T 73T 15T 82% +/dev/grid/node-x17-y16 88T 73T 15T 82% +/dev/grid/node-x17-y17 88T 71T 17T 80% +/dev/grid/node-x17-y18 87T 66T 21T 75% +/dev/grid/node-x17-y19 89T 71T 18T 79% +/dev/grid/node-x17-y20 91T 72T 19T 79% +/dev/grid/node-x17-y21 93T 69T 24T 74% +/dev/grid/node-x17-y22 85T 68T 17T 80% +/dev/grid/node-x17-y23 93T 67T 26T 72% +/dev/grid/node-x17-y24 505T 494T 11T 97% +/dev/grid/node-x17-y25 88T 72T 16T 81% +/dev/grid/node-x17-y26 93T 72T 21T 77% +/dev/grid/node-x17-y27 85T 72T 13T 84% +/dev/grid/node-x18-y0 92T 70T 22T 76% +/dev/grid/node-x18-y1 89T 72T 17T 80% +/dev/grid/node-x18-y2 85T 66T 19T 77% +/dev/grid/node-x18-y3 90T 68T 22T 75% +/dev/grid/node-x18-y4 92T 69T 23T 75% +/dev/grid/node-x18-y5 91T 70T 21T 76% +/dev/grid/node-x18-y6 87T 68T 19T 78% +/dev/grid/node-x18-y7 93T 66T 27T 70% +/dev/grid/node-x18-y8 87T 64T 23T 73% +/dev/grid/node-x18-y9 89T 72T 17T 80% +/dev/grid/node-x18-y10 86T 69T 17T 80% +/dev/grid/node-x18-y11 90T 73T 17T 81% +/dev/grid/node-x18-y12 92T 72T 20T 78% +/dev/grid/node-x18-y13 90T 70T 20T 77% +/dev/grid/node-x18-y14 87T 72T 15T 82% +/dev/grid/node-x18-y15 89T 70T 19T 78% +/dev/grid/node-x18-y16 90T 73T 17T 81% +/dev/grid/node-x18-y17 92T 66T 26T 71% +/dev/grid/node-x18-y18 87T 73T 14T 83% +/dev/grid/node-x18-y19 90T 70T 20T 77% +/dev/grid/node-x18-y20 94T 66T 28T 70% +/dev/grid/node-x18-y21 88T 73T 15T 82% +/dev/grid/node-x18-y22 87T 72T 15T 82% +/dev/grid/node-x18-y23 85T 65T 20T 76% +/dev/grid/node-x18-y24 504T 498T 6T 98% +/dev/grid/node-x18-y25 89T 70T 19T 78% +/dev/grid/node-x18-y26 86T 69T 17T 80% +/dev/grid/node-x18-y27 94T 70T 24T 74% +/dev/grid/node-x19-y0 89T 69T 20T 77% +/dev/grid/node-x19-y1 90T 72T 18T 80% +/dev/grid/node-x19-y2 91T 68T 23T 74% +/dev/grid/node-x19-y3 85T 64T 21T 75% +/dev/grid/node-x19-y4 92T 66T 26T 71% +/dev/grid/node-x19-y5 89T 65T 24T 73% +/dev/grid/node-x19-y6 85T 64T 21T 75% +/dev/grid/node-x19-y7 87T 66T 21T 75% +/dev/grid/node-x19-y8 90T 65T 25T 72% +/dev/grid/node-x19-y9 86T 73T 13T 84% +/dev/grid/node-x19-y10 91T 73T 18T 80% +/dev/grid/node-x19-y11 91T 64T 27T 70% +/dev/grid/node-x19-y12 91T 69T 22T 75% +/dev/grid/node-x19-y13 93T 71T 22T 76% +/dev/grid/node-x19-y14 88T 67T 21T 76% +/dev/grid/node-x19-y15 85T 66T 19T 77% +/dev/grid/node-x19-y16 92T 65T 27T 70% +/dev/grid/node-x19-y17 85T 67T 18T 78% +/dev/grid/node-x19-y18 86T 72T 14T 83% +/dev/grid/node-x19-y19 90T 72T 18T 80% +/dev/grid/node-x19-y20 87T 65T 22T 74% +/dev/grid/node-x19-y21 93T 64T 29T 68% +/dev/grid/node-x19-y22 91T 73T 18T 80% +/dev/grid/node-x19-y23 93T 65T 28T 69% +/dev/grid/node-x19-y24 510T 495T 15T 97% +/dev/grid/node-x19-y25 86T 69T 17T 80% +/dev/grid/node-x19-y26 94T 68T 26T 72% +/dev/grid/node-x19-y27 86T 66T 20T 76% +/dev/grid/node-x20-y0 91T 67T 24T 73% +/dev/grid/node-x20-y1 92T 67T 25T 72% +/dev/grid/node-x20-y2 88T 64T 24T 72% +/dev/grid/node-x20-y3 93T 68T 25T 73% +/dev/grid/node-x20-y4 88T 71T 17T 80% +/dev/grid/node-x20-y5 94T 68T 26T 72% +/dev/grid/node-x20-y6 85T 68T 17T 80% +/dev/grid/node-x20-y7 89T 65T 24T 73% +/dev/grid/node-x20-y8 85T 64T 21T 75% +/dev/grid/node-x20-y9 91T 66T 25T 72% +/dev/grid/node-x20-y10 94T 64T 30T 68% +/dev/grid/node-x20-y11 87T 68T 19T 78% +/dev/grid/node-x20-y12 90T 71T 19T 78% +/dev/grid/node-x20-y13 90T 67T 23T 74% +/dev/grid/node-x20-y14 91T 64T 27T 70% +/dev/grid/node-x20-y15 85T 72T 13T 84% +/dev/grid/node-x20-y16 87T 65T 22T 74% +/dev/grid/node-x20-y17 89T 71T 18T 79% +/dev/grid/node-x20-y18 87T 66T 21T 75% +/dev/grid/node-x20-y19 88T 71T 17T 80% +/dev/grid/node-x20-y20 94T 71T 23T 75% +/dev/grid/node-x20-y21 91T 68T 23T 74% +/dev/grid/node-x20-y22 92T 71T 21T 77% +/dev/grid/node-x20-y23 88T 68T 20T 77% +/dev/grid/node-x20-y24 507T 498T 9T 98% +/dev/grid/node-x20-y25 87T 71T 16T 81% +/dev/grid/node-x20-y26 88T 69T 19T 78% +/dev/grid/node-x20-y27 87T 69T 18T 79% +/dev/grid/node-x21-y0 92T 70T 22T 76% +/dev/grid/node-x21-y1 89T 64T 25T 71% +/dev/grid/node-x21-y2 86T 67T 19T 77% +/dev/grid/node-x21-y3 88T 66T 22T 75% +/dev/grid/node-x21-y4 89T 68T 21T 76% +/dev/grid/node-x21-y5 86T 67T 19T 77% +/dev/grid/node-x21-y6 87T 68T 19T 78% +/dev/grid/node-x21-y7 89T 73T 16T 82% +/dev/grid/node-x21-y8 87T 71T 16T 81% +/dev/grid/node-x21-y9 90T 71T 19T 78% +/dev/grid/node-x21-y10 92T 69T 23T 75% +/dev/grid/node-x21-y11 92T 70T 22T 76% +/dev/grid/node-x21-y12 92T 64T 28T 69% +/dev/grid/node-x21-y13 91T 69T 22T 75% +/dev/grid/node-x21-y14 89T 64T 25T 71% +/dev/grid/node-x21-y15 92T 67T 25T 72% +/dev/grid/node-x21-y16 93T 65T 28T 69% +/dev/grid/node-x21-y17 89T 69T 20T 77% +/dev/grid/node-x21-y18 86T 73T 13T 84% +/dev/grid/node-x21-y19 93T 67T 26T 72% +/dev/grid/node-x21-y20 88T 70T 18T 79% +/dev/grid/node-x21-y21 93T 68T 25T 73% +/dev/grid/node-x21-y22 94T 64T 30T 68% +/dev/grid/node-x21-y23 90T 71T 19T 78% +/dev/grid/node-x21-y24 504T 496T 8T 98% +/dev/grid/node-x21-y25 94T 72T 22T 76% +/dev/grid/node-x21-y26 93T 70T 23T 75% +/dev/grid/node-x21-y27 88T 71T 17T 80% +/dev/grid/node-x22-y0 94T 66T 28T 70% +/dev/grid/node-x22-y1 92T 71T 21T 77% +/dev/grid/node-x22-y2 92T 66T 26T 71% +/dev/grid/node-x22-y3 93T 64T 29T 68% +/dev/grid/node-x22-y4 88T 65T 23T 73% +/dev/grid/node-x22-y5 91T 67T 24T 73% +/dev/grid/node-x22-y6 91T 67T 24T 73% +/dev/grid/node-x22-y7 85T 69T 16T 81% +/dev/grid/node-x22-y8 85T 69T 16T 81% +/dev/grid/node-x22-y9 85T 72T 13T 84% +/dev/grid/node-x22-y10 85T 69T 16T 81% +/dev/grid/node-x22-y11 87T 73T 14T 83% +/dev/grid/node-x22-y12 91T 67T 24T 73% +/dev/grid/node-x22-y13 94T 73T 21T 77% +/dev/grid/node-x22-y14 91T 73T 18T 80% +/dev/grid/node-x22-y15 86T 73T 13T 84% +/dev/grid/node-x22-y16 85T 73T 12T 85% +/dev/grid/node-x22-y17 92T 66T 26T 71% +/dev/grid/node-x22-y18 86T 67T 19T 77% +/dev/grid/node-x22-y19 88T 73T 15T 82% +/dev/grid/node-x22-y20 91T 72T 19T 79% +/dev/grid/node-x22-y21 92T 65T 27T 70% +/dev/grid/node-x22-y22 85T 65T 20T 76% +/dev/grid/node-x22-y23 93T 69T 24T 74% +/dev/grid/node-x22-y24 501T 494T 7T 98% +/dev/grid/node-x22-y25 93T 69T 24T 74% +/dev/grid/node-x22-y26 89T 72T 17T 80% +/dev/grid/node-x22-y27 94T 71T 23T 75% +/dev/grid/node-x23-y0 89T 70T 19T 78% +/dev/grid/node-x23-y1 93T 64T 29T 68% +/dev/grid/node-x23-y2 94T 65T 29T 69% +/dev/grid/node-x23-y3 86T 67T 19T 77% +/dev/grid/node-x23-y4 91T 72T 19T 79% +/dev/grid/node-x23-y5 86T 64T 22T 74% +/dev/grid/node-x23-y6 88T 69T 19T 78% +/dev/grid/node-x23-y7 88T 66T 22T 75% +/dev/grid/node-x23-y8 87T 64T 23T 73% +/dev/grid/node-x23-y9 85T 69T 16T 81% +/dev/grid/node-x23-y10 85T 68T 17T 80% +/dev/grid/node-x23-y11 92T 65T 27T 70% +/dev/grid/node-x23-y12 94T 70T 24T 74% +/dev/grid/node-x23-y13 88T 67T 21T 76% +/dev/grid/node-x23-y14 91T 67T 24T 73% +/dev/grid/node-x23-y15 91T 73T 18T 80% +/dev/grid/node-x23-y16 91T 73T 18T 80% +/dev/grid/node-x23-y17 89T 68T 21T 76% +/dev/grid/node-x23-y18 86T 73T 13T 84% +/dev/grid/node-x23-y19 87T 72T 15T 82% +/dev/grid/node-x23-y20 88T 66T 22T 75% +/dev/grid/node-x23-y21 89T 71T 18T 79% +/dev/grid/node-x23-y22 89T 66T 23T 74% +/dev/grid/node-x23-y23 92T 73T 19T 79% +/dev/grid/node-x23-y24 503T 493T 10T 98% +/dev/grid/node-x23-y25 86T 68T 18T 79% +/dev/grid/node-x23-y26 94T 68T 26T 72% +/dev/grid/node-x23-y27 92T 65T 27T 70% +/dev/grid/node-x24-y0 91T 70T 21T 76% +/dev/grid/node-x24-y1 87T 73T 14T 83% +/dev/grid/node-x24-y2 92T 66T 26T 71% +/dev/grid/node-x24-y3 86T 72T 14T 83% +/dev/grid/node-x24-y4 88T 70T 18T 79% +/dev/grid/node-x24-y5 90T 65T 25T 72% +/dev/grid/node-x24-y6 88T 67T 21T 76% +/dev/grid/node-x24-y7 86T 68T 18T 79% +/dev/grid/node-x24-y8 91T 73T 18T 80% +/dev/grid/node-x24-y9 93T 71T 22T 76% +/dev/grid/node-x24-y10 86T 69T 17T 80% +/dev/grid/node-x24-y11 93T 69T 24T 74% +/dev/grid/node-x24-y12 89T 72T 17T 80% +/dev/grid/node-x24-y13 91T 71T 20T 78% +/dev/grid/node-x24-y14 86T 71T 15T 82% +/dev/grid/node-x24-y15 87T 67T 20T 77% +/dev/grid/node-x24-y16 92T 72T 20T 78% +/dev/grid/node-x24-y17 88T 64T 24T 72% +/dev/grid/node-x24-y18 91T 67T 24T 73% +/dev/grid/node-x24-y19 93T 69T 24T 74% +/dev/grid/node-x24-y20 91T 72T 19T 79% +/dev/grid/node-x24-y21 87T 66T 21T 75% +/dev/grid/node-x24-y22 87T 72T 15T 82% +/dev/grid/node-x24-y23 94T 67T 27T 71% +/dev/grid/node-x24-y24 504T 497T 7T 98% +/dev/grid/node-x24-y25 91T 71T 20T 78% +/dev/grid/node-x24-y26 92T 65T 27T 70% +/dev/grid/node-x24-y27 85T 67T 18T 78% +/dev/grid/node-x25-y0 89T 66T 23T 74% +/dev/grid/node-x25-y1 88T 71T 17T 80% +/dev/grid/node-x25-y2 93T 72T 21T 77% +/dev/grid/node-x25-y3 92T 65T 27T 70% +/dev/grid/node-x25-y4 88T 65T 23T 73% +/dev/grid/node-x25-y5 89T 64T 25T 71% +/dev/grid/node-x25-y6 87T 73T 14T 83% +/dev/grid/node-x25-y7 88T 67T 21T 76% +/dev/grid/node-x25-y8 92T 68T 24T 73% +/dev/grid/node-x25-y9 86T 70T 16T 81% +/dev/grid/node-x25-y10 91T 68T 23T 74% +/dev/grid/node-x25-y11 90T 65T 25T 72% +/dev/grid/node-x25-y12 92T 67T 25T 72% +/dev/grid/node-x25-y13 90T 66T 24T 73% +/dev/grid/node-x25-y14 93T 66T 27T 70% +/dev/grid/node-x25-y15 86T 68T 18T 79% +/dev/grid/node-x25-y16 92T 69T 23T 75% +/dev/grid/node-x25-y17 88T 66T 22T 75% +/dev/grid/node-x25-y18 91T 73T 18T 80% +/dev/grid/node-x25-y19 86T 71T 15T 82% +/dev/grid/node-x25-y20 88T 70T 18T 79% +/dev/grid/node-x25-y21 85T 66T 19T 77% +/dev/grid/node-x25-y22 92T 64T 28T 69% +/dev/grid/node-x25-y23 87T 72T 15T 82% +/dev/grid/node-x25-y24 506T 493T 13T 97% +/dev/grid/node-x25-y25 85T 64T 21T 75% +/dev/grid/node-x25-y26 87T 64T 23T 73% +/dev/grid/node-x25-y27 88T 72T 16T 81% +/dev/grid/node-x26-y0 87T 73T 14T 83% +/dev/grid/node-x26-y1 91T 72T 19T 79% +/dev/grid/node-x26-y2 86T 66T 20T 76% +/dev/grid/node-x26-y3 86T 72T 14T 83% +/dev/grid/node-x26-y4 90T 67T 23T 74% +/dev/grid/node-x26-y5 87T 70T 17T 80% +/dev/grid/node-x26-y6 87T 64T 23T 73% +/dev/grid/node-x26-y7 90T 64T 26T 71% +/dev/grid/node-x26-y8 85T 64T 21T 75% +/dev/grid/node-x26-y9 92T 68T 24T 73% +/dev/grid/node-x26-y10 92T 65T 27T 70% +/dev/grid/node-x26-y11 88T 65T 23T 73% +/dev/grid/node-x26-y12 85T 70T 15T 82% +/dev/grid/node-x26-y13 86T 68T 18T 79% +/dev/grid/node-x26-y14 92T 70T 22T 76% +/dev/grid/node-x26-y15 89T 68T 21T 76% +/dev/grid/node-x26-y16 89T 66T 23T 74% +/dev/grid/node-x26-y17 86T 71T 15T 82% +/dev/grid/node-x26-y18 87T 68T 19T 78% +/dev/grid/node-x26-y19 88T 69T 19T 78% +/dev/grid/node-x26-y20 92T 67T 25T 72% +/dev/grid/node-x26-y21 94T 69T 25T 73% +/dev/grid/node-x26-y22 86T 68T 18T 79% +/dev/grid/node-x26-y23 85T 73T 12T 85% +/dev/grid/node-x26-y24 508T 498T 10T 98% +/dev/grid/node-x26-y25 85T 73T 12T 85% +/dev/grid/node-x26-y26 88T 69T 19T 78% +/dev/grid/node-x26-y27 89T 68T 21T 76% +/dev/grid/node-x27-y0 86T 64T 22T 74% +/dev/grid/node-x27-y1 93T 65T 28T 69% +/dev/grid/node-x27-y2 92T 71T 21T 77% +/dev/grid/node-x27-y3 87T 68T 19T 78% +/dev/grid/node-x27-y4 92T 64T 28T 69% +/dev/grid/node-x27-y5 91T 65T 26T 71% +/dev/grid/node-x27-y6 86T 64T 22T 74% +/dev/grid/node-x27-y7 90T 73T 17T 81% +/dev/grid/node-x27-y8 91T 67T 24T 73% +/dev/grid/node-x27-y9 85T 69T 16T 81% +/dev/grid/node-x27-y10 92T 64T 28T 69% +/dev/grid/node-x27-y11 93T 69T 24T 74% +/dev/grid/node-x27-y12 90T 69T 21T 76% +/dev/grid/node-x27-y13 87T 72T 15T 82% +/dev/grid/node-x27-y14 94T 70T 24T 74% +/dev/grid/node-x27-y15 91T 72T 19T 79% +/dev/grid/node-x27-y16 86T 70T 16T 81% +/dev/grid/node-x27-y17 90T 67T 23T 74% +/dev/grid/node-x27-y18 86T 73T 13T 84% +/dev/grid/node-x27-y19 92T 66T 26T 71% +/dev/grid/node-x27-y20 94T 64T 30T 68% +/dev/grid/node-x27-y21 89T 70T 19T 78% +/dev/grid/node-x27-y22 91T 73T 18T 80% +/dev/grid/node-x27-y23 89T 67T 22T 75% +/dev/grid/node-x27-y24 503T 490T 13T 97% +/dev/grid/node-x27-y25 94T 67T 27T 71% +/dev/grid/node-x27-y26 90T 68T 22T 75% +/dev/grid/node-x27-y27 87T 72T 15T 82% +/dev/grid/node-x28-y0 90T 68T 22T 75% +/dev/grid/node-x28-y1 86T 73T 13T 84% +/dev/grid/node-x28-y2 88T 73T 15T 82% +/dev/grid/node-x28-y3 93T 70T 23T 75% +/dev/grid/node-x28-y4 86T 64T 22T 74% +/dev/grid/node-x28-y5 86T 69T 17T 80% +/dev/grid/node-x28-y6 89T 71T 18T 79% +/dev/grid/node-x28-y7 94T 72T 22T 76% +/dev/grid/node-x28-y8 85T 68T 17T 80% +/dev/grid/node-x28-y9 90T 69T 21T 76% +/dev/grid/node-x28-y10 87T 73T 14T 83% +/dev/grid/node-x28-y11 86T 64T 22T 74% +/dev/grid/node-x28-y12 88T 71T 17T 80% +/dev/grid/node-x28-y13 87T 64T 23T 73% +/dev/grid/node-x28-y14 94T 71T 23T 75% +/dev/grid/node-x28-y15 85T 73T 12T 85% +/dev/grid/node-x28-y16 86T 69T 17T 80% +/dev/grid/node-x28-y17 92T 72T 20T 78% +/dev/grid/node-x28-y18 88T 71T 17T 80% +/dev/grid/node-x28-y19 85T 68T 17T 80% +/dev/grid/node-x28-y20 94T 65T 29T 69% +/dev/grid/node-x28-y21 85T 71T 14T 83% +/dev/grid/node-x28-y22 85T 67T 18T 78% +/dev/grid/node-x28-y23 94T 65T 29T 69% +/dev/grid/node-x28-y24 509T 496T 13T 97% +/dev/grid/node-x28-y25 93T 71T 22T 76% +/dev/grid/node-x28-y26 87T 72T 15T 82% +/dev/grid/node-x28-y27 90T 72T 18T 80% +/dev/grid/node-x29-y0 91T 67T 24T 73% +/dev/grid/node-x29-y1 90T 66T 24T 73% +/dev/grid/node-x29-y2 89T 71T 18T 79% +/dev/grid/node-x29-y3 87T 68T 19T 78% +/dev/grid/node-x29-y4 86T 64T 22T 74% +/dev/grid/node-x29-y5 93T 73T 20T 78% +/dev/grid/node-x29-y6 86T 65T 21T 75% +/dev/grid/node-x29-y7 94T 70T 24T 74% +/dev/grid/node-x29-y8 88T 72T 16T 81% +/dev/grid/node-x29-y9 93T 66T 27T 70% +/dev/grid/node-x29-y10 89T 65T 24T 73% +/dev/grid/node-x29-y11 89T 72T 17T 80% +/dev/grid/node-x29-y12 88T 72T 16T 81% +/dev/grid/node-x29-y13 94T 71T 23T 75% +/dev/grid/node-x29-y14 93T 65T 28T 69% +/dev/grid/node-x29-y15 89T 72T 17T 80% +/dev/grid/node-x29-y16 85T 71T 14T 83% +/dev/grid/node-x29-y17 93T 68T 25T 73% +/dev/grid/node-x29-y18 86T 66T 20T 76% +/dev/grid/node-x29-y19 90T 65T 25T 72% +/dev/grid/node-x29-y20 94T 66T 28T 70% +/dev/grid/node-x29-y21 87T 68T 19T 78% +/dev/grid/node-x29-y22 92T 70T 22T 76% +/dev/grid/node-x29-y23 92T 72T 20T 78% +/dev/grid/node-x29-y24 508T 497T 11T 97% +/dev/grid/node-x29-y25 87T 64T 23T 73% +/dev/grid/node-x29-y26 86T 68T 18T 79% +/dev/grid/node-x29-y27 87T 71T 16T 81% +/dev/grid/node-x30-y0 89T 71T 18T 79% +/dev/grid/node-x30-y1 93T 64T 29T 68% +/dev/grid/node-x30-y2 86T 73T 13T 84% +/dev/grid/node-x30-y3 89T 71T 18T 79% +/dev/grid/node-x30-y4 86T 70T 16T 81% +/dev/grid/node-x30-y5 85T 70T 15T 82% +/dev/grid/node-x30-y6 85T 72T 13T 84% +/dev/grid/node-x30-y7 94T 64T 30T 68% +/dev/grid/node-x30-y8 94T 64T 30T 68% +/dev/grid/node-x30-y9 89T 65T 24T 73% +/dev/grid/node-x30-y10 87T 71T 16T 81% +/dev/grid/node-x30-y11 93T 64T 29T 68% +/dev/grid/node-x30-y12 91T 67T 24T 73% +/dev/grid/node-x30-y13 89T 68T 21T 76% +/dev/grid/node-x30-y14 88T 67T 21T 76% +/dev/grid/node-x30-y15 85T 71T 14T 83% +/dev/grid/node-x30-y16 85T 64T 21T 75% +/dev/grid/node-x30-y17 86T 73T 13T 84% +/dev/grid/node-x30-y18 89T 65T 24T 73% +/dev/grid/node-x30-y19 92T 72T 20T 78% +/dev/grid/node-x30-y20 88T 70T 18T 79% +/dev/grid/node-x30-y21 94T 66T 28T 70% +/dev/grid/node-x30-y22 91T 68T 23T 74% +/dev/grid/node-x30-y23 90T 66T 24T 73% +/dev/grid/node-x30-y24 509T 494T 15T 97% +/dev/grid/node-x30-y25 86T 72T 14T 83% +/dev/grid/node-x30-y26 90T 65T 25T 72% +/dev/grid/node-x30-y27 85T 69T 16T 81% +/dev/grid/node-x31-y0 88T 64T 24T 72% +/dev/grid/node-x31-y1 92T 70T 22T 76% +/dev/grid/node-x31-y2 90T 69T 21T 76% +/dev/grid/node-x31-y3 87T 70T 17T 80% +/dev/grid/node-x31-y4 92T 72T 20T 78% +/dev/grid/node-x31-y5 94T 72T 22T 76% +/dev/grid/node-x31-y6 91T 68T 23T 74% +/dev/grid/node-x31-y7 90T 69T 21T 76% +/dev/grid/node-x31-y8 91T 64T 27T 70% +/dev/grid/node-x31-y9 87T 68T 19T 78% +/dev/grid/node-x31-y10 87T 69T 18T 79% +/dev/grid/node-x31-y11 90T 68T 22T 75% +/dev/grid/node-x31-y12 92T 70T 22T 76% +/dev/grid/node-x31-y13 93T 64T 29T 68% +/dev/grid/node-x31-y14 91T 66T 25T 72% +/dev/grid/node-x31-y15 87T 64T 23T 73% +/dev/grid/node-x31-y16 94T 69T 25T 73% +/dev/grid/node-x31-y17 89T 70T 19T 78% +/dev/grid/node-x31-y18 91T 69T 22T 75% +/dev/grid/node-x31-y19 85T 69T 16T 81% +/dev/grid/node-x31-y20 86T 67T 19T 77% +/dev/grid/node-x31-y21 93T 69T 24T 74% +/dev/grid/node-x31-y22 93T 64T 29T 68% +/dev/grid/node-x31-y23 87T 73T 14T 83% +/dev/grid/node-x31-y24 510T 494T 16T 96% +/dev/grid/node-x31-y25 90T 68T 22T 75% +/dev/grid/node-x31-y26 89T 73T 16T 82% +/dev/grid/node-x31-y27 91T 65T 26T 71% +/dev/grid/node-x32-y0 93T 70T 23T 75% +/dev/grid/node-x32-y1 90T 71T 19T 78% +/dev/grid/node-x32-y2 87T 71T 16T 81% +/dev/grid/node-x32-y3 94T 64T 30T 68% +/dev/grid/node-x32-y4 90T 64T 26T 71% +/dev/grid/node-x32-y5 90T 67T 23T 74% +/dev/grid/node-x32-y6 90T 70T 20T 77% +/dev/grid/node-x32-y7 94T 64T 30T 68% +/dev/grid/node-x32-y8 91T 67T 24T 73% +/dev/grid/node-x32-y9 89T 64T 25T 71% +/dev/grid/node-x32-y10 88T 70T 18T 79% +/dev/grid/node-x32-y11 85T 68T 17T 80% +/dev/grid/node-x32-y12 85T 68T 17T 80% +/dev/grid/node-x32-y13 86T 68T 18T 79% +/dev/grid/node-x32-y14 87T 71T 16T 81% +/dev/grid/node-x32-y15 85T 70T 15T 82% +/dev/grid/node-x32-y16 92T 71T 21T 77% +/dev/grid/node-x32-y17 88T 71T 17T 80% +/dev/grid/node-x32-y18 93T 71T 22T 76% +/dev/grid/node-x32-y19 89T 67T 22T 75% +/dev/grid/node-x32-y20 85T 68T 17T 80% +/dev/grid/node-x32-y21 86T 65T 21T 75% +/dev/grid/node-x32-y22 91T 70T 21T 76% +/dev/grid/node-x32-y23 87T 72T 15T 82% +/dev/grid/node-x32-y24 506T 490T 16T 96% +/dev/grid/node-x32-y25 94T 68T 26T 72% +/dev/grid/node-x32-y26 86T 65T 21T 75% +/dev/grid/node-x32-y27 91T 70T 21T 76% +/dev/grid/node-x33-y0 90T 72T 18T 80% +/dev/grid/node-x33-y1 90T 70T 20T 77% +/dev/grid/node-x33-y2 94T 69T 25T 73% +/dev/grid/node-x33-y3 86T 67T 19T 77% +/dev/grid/node-x33-y4 88T 66T 22T 75% +/dev/grid/node-x33-y5 91T 67T 24T 73% +/dev/grid/node-x33-y6 94T 65T 29T 69% +/dev/grid/node-x33-y7 89T 67T 22T 75% +/dev/grid/node-x33-y8 87T 72T 15T 82% +/dev/grid/node-x33-y9 93T 68T 25T 73% +/dev/grid/node-x33-y10 91T 71T 20T 78% +/dev/grid/node-x33-y11 87T 69T 18T 79% +/dev/grid/node-x33-y12 88T 65T 23T 73% +/dev/grid/node-x33-y13 86T 64T 22T 74% +/dev/grid/node-x33-y14 92T 67T 25T 72% +/dev/grid/node-x33-y15 94T 67T 27T 71% +/dev/grid/node-x33-y16 85T 73T 12T 85% +/dev/grid/node-x33-y17 92T 64T 28T 69% +/dev/grid/node-x33-y18 87T 65T 22T 74% +/dev/grid/node-x33-y19 87T 68T 19T 78% +/dev/grid/node-x33-y20 89T 73T 16T 82% +/dev/grid/node-x33-y21 87T 65T 22T 74% +/dev/grid/node-x33-y22 92T 71T 21T 77% +/dev/grid/node-x33-y23 89T 67T 22T 75% +/dev/grid/node-x33-y24 505T 497T 8T 98% +/dev/grid/node-x33-y25 91T 64T 27T 70% +/dev/grid/node-x33-y26 88T 67T 21T 76% +/dev/grid/node-x33-y27 93T 68T 25T 73% +/dev/grid/node-x34-y0 88T 66T 22T 75% +/dev/grid/node-x34-y1 94T 69T 25T 73% +/dev/grid/node-x34-y2 89T 66T 23T 74% +/dev/grid/node-x34-y3 90T 64T 26T 71% +/dev/grid/node-x34-y4 86T 73T 13T 84% +/dev/grid/node-x34-y5 93T 67T 26T 72% +/dev/grid/node-x34-y6 86T 73T 13T 84% +/dev/grid/node-x34-y7 85T 70T 15T 82% +/dev/grid/node-x34-y8 92T 70T 22T 76% +/dev/grid/node-x34-y9 89T 67T 22T 75% +/dev/grid/node-x34-y10 86T 68T 18T 79% +/dev/grid/node-x34-y11 91T 65T 26T 71% +/dev/grid/node-x34-y12 94T 72T 22T 76% +/dev/grid/node-x34-y13 91T 70T 21T 76% +/dev/grid/node-x34-y14 91T 72T 19T 79% +/dev/grid/node-x34-y15 91T 64T 27T 70% +/dev/grid/node-x34-y16 89T 67T 22T 75% +/dev/grid/node-x34-y17 92T 67T 25T 72% +/dev/grid/node-x34-y18 89T 69T 20T 77% +/dev/grid/node-x34-y19 87T 66T 21T 75% +/dev/grid/node-x34-y20 94T 71T 23T 75% +/dev/grid/node-x34-y21 86T 71T 15T 82% +/dev/grid/node-x34-y22 89T 72T 17T 80% +/dev/grid/node-x34-y23 87T 73T 14T 83% +/dev/grid/node-x34-y24 509T 494T 15T 97% +/dev/grid/node-x34-y25 88T 69T 19T 78% +/dev/grid/node-x34-y26 87T 0T 87T 0% +/dev/grid/node-x34-y27 90T 67T 23T 74% +/dev/grid/node-x35-y0 94T 69T 25T 73% +/dev/grid/node-x35-y1 90T 71T 19T 78% +/dev/grid/node-x35-y2 93T 72T 21T 77% +/dev/grid/node-x35-y3 85T 64T 21T 75% +/dev/grid/node-x35-y4 91T 69T 22T 75% +/dev/grid/node-x35-y5 94T 73T 21T 77% +/dev/grid/node-x35-y6 88T 65T 23T 73% +/dev/grid/node-x35-y7 91T 67T 24T 73% +/dev/grid/node-x35-y8 90T 66T 24T 73% +/dev/grid/node-x35-y9 94T 70T 24T 74% +/dev/grid/node-x35-y10 92T 68T 24T 73% +/dev/grid/node-x35-y11 90T 64T 26T 71% +/dev/grid/node-x35-y12 92T 68T 24T 73% +/dev/grid/node-x35-y13 94T 64T 30T 68% +/dev/grid/node-x35-y14 94T 68T 26T 72% +/dev/grid/node-x35-y15 94T 68T 26T 72% +/dev/grid/node-x35-y16 94T 70T 24T 74% +/dev/grid/node-x35-y17 93T 68T 25T 73% +/dev/grid/node-x35-y18 88T 70T 18T 79% +/dev/grid/node-x35-y19 89T 66T 23T 74% +/dev/grid/node-x35-y20 85T 73T 12T 85% +/dev/grid/node-x35-y21 89T 72T 17T 80% +/dev/grid/node-x35-y22 86T 72T 14T 83% +/dev/grid/node-x35-y23 89T 71T 18T 79% +/dev/grid/node-x35-y24 510T 498T 12T 97% +/dev/grid/node-x35-y25 93T 69T 24T 74% +/dev/grid/node-x35-y26 86T 71T 15T 82% +/dev/grid/node-x35-y27 89T 64T 25T 71% +/dev/grid/node-x36-y0 87T 64T 23T 73% +/dev/grid/node-x36-y1 91T 69T 22T 75% +/dev/grid/node-x36-y2 87T 68T 19T 78% +/dev/grid/node-x36-y3 90T 65T 25T 72% +/dev/grid/node-x36-y4 90T 65T 25T 72% +/dev/grid/node-x36-y5 87T 68T 19T 78% +/dev/grid/node-x36-y6 94T 70T 24T 74% +/dev/grid/node-x36-y7 94T 68T 26T 72% +/dev/grid/node-x36-y8 90T 69T 21T 76% +/dev/grid/node-x36-y9 88T 67T 21T 76% +/dev/grid/node-x36-y10 93T 64T 29T 68% +/dev/grid/node-x36-y11 89T 71T 18T 79% +/dev/grid/node-x36-y12 88T 65T 23T 73% +/dev/grid/node-x36-y13 89T 73T 16T 82% +/dev/grid/node-x36-y14 86T 70T 16T 81% +/dev/grid/node-x36-y15 87T 64T 23T 73% +/dev/grid/node-x36-y16 86T 71T 15T 82% +/dev/grid/node-x36-y17 85T 71T 14T 83% +/dev/grid/node-x36-y18 90T 72T 18T 80% +/dev/grid/node-x36-y19 92T 68T 24T 73% +/dev/grid/node-x36-y20 91T 66T 25T 72% +/dev/grid/node-x36-y21 87T 67T 20T 77% +/dev/grid/node-x36-y22 85T 66T 19T 77% +/dev/grid/node-x36-y23 86T 67T 19T 77% +/dev/grid/node-x36-y24 502T 499T 3T 99% +/dev/grid/node-x36-y25 94T 70T 24T 74% +/dev/grid/node-x36-y26 85T 72T 13T 84% +/dev/grid/node-x36-y27 87T 68T 19T 78% +/dev/grid/node-x37-y0 93T 70T 23T 75% +/dev/grid/node-x37-y1 92T 72T 20T 78% +/dev/grid/node-x37-y2 89T 73T 16T 82% +/dev/grid/node-x37-y3 94T 70T 24T 74% +/dev/grid/node-x37-y4 92T 66T 26T 71% +/dev/grid/node-x37-y5 91T 64T 27T 70% +/dev/grid/node-x37-y6 87T 64T 23T 73% +/dev/grid/node-x37-y7 90T 72T 18T 80% +/dev/grid/node-x37-y8 91T 66T 25T 72% +/dev/grid/node-x37-y9 94T 65T 29T 69% +/dev/grid/node-x37-y10 85T 70T 15T 82% +/dev/grid/node-x37-y11 89T 69T 20T 77% +/dev/grid/node-x37-y12 93T 71T 22T 76% +/dev/grid/node-x37-y13 88T 67T 21T 76% +/dev/grid/node-x37-y14 94T 67T 27T 71% +/dev/grid/node-x37-y15 86T 73T 13T 84% +/dev/grid/node-x37-y16 85T 68T 17T 80% +/dev/grid/node-x37-y17 89T 72T 17T 80% +/dev/grid/node-x37-y18 88T 67T 21T 76% +/dev/grid/node-x37-y19 87T 66T 21T 75% +/dev/grid/node-x37-y20 88T 69T 19T 78% +/dev/grid/node-x37-y21 86T 70T 16T 81% +/dev/grid/node-x37-y22 92T 68T 24T 73% +/dev/grid/node-x37-y23 87T 70T 17T 80% +/dev/grid/node-x37-y24 502T 498T 4T 99% +/dev/grid/node-x37-y25 87T 72T 15T 82% +/dev/grid/node-x37-y26 90T 64T 26T 71% +/dev/grid/node-x37-y27 90T 70T 20T 77% diff --git a/adventofcode16/src/Lib.hs b/adventofcode16/src/Lib.hs new file mode 100644 index 0000000..d36ff27 --- /dev/null +++ b/adventofcode16/src/Lib.hs @@ -0,0 +1,6 @@ +module Lib + ( someFunc + ) where + +someFunc :: IO () +someFunc = putStrLn "someFunc" diff --git a/adventofcode16/stack.yaml b/adventofcode16/stack.yaml new file mode 100644 index 0000000..b77fb38 --- /dev/null +++ b/adventofcode16/stack.yaml @@ -0,0 +1,10 @@ +flags: {} +extra-package-dbs: [] +packages: +- '.' +system-ghc: true +extra-deps: +- astar-0.3.0.0 +- parsec-numbers-0.1.0 +- pqueue-1.3.2 +resolver: lts-6.25 diff --git a/adventofcode16/test/Spec.hs b/adventofcode16/test/Spec.hs new file mode 100644 index 0000000..cd4753f --- /dev/null +++ b/adventofcode16/test/Spec.hs @@ -0,0 +1,2 @@ +main :: IO () +main = putStrLn "Test suite not yet implemented" diff --git a/day22.html b/day22.html new file mode 100644 index 0000000..3a820ab --- /dev/null +++ b/day22.html @@ -0,0 +1,208 @@ + + + + +Day 22 - Advent of Code 2016 + + + + + + +

Advent of Code

Neil Smith (AoC++) 44*

 {'year':2016}

+ + + +
+

--- Day 22: Grid Computing ---

You gain access to a massive storage cluster arranged in a grid; each storage node is only connected to the four nodes directly adjacent to it (three if the node is on an edge, two if it's in a corner).

+

You can directly access data only on node /dev/grid/node-x0-y0, but you can perform some limited actions on the other nodes:

+
    +
  • You can get the disk usage of all nodes (via df). The result of doing this is in your puzzle input.
  • +
  • You can instruct a node to move (not copy) all of its data to an adjacent node (if the destination node has enough space to receive the data). The sending node is left empty after this operation.
  • +
+

Nodes are named by their position: the node named node-x10-y10 is adjacent to nodes node-x9-y10, node-x11-y10, node-x10-y9, and node-x10-y11.

+

Before you begin, you need to understand the arrangement of data on these nodes. Even though you can only move data between directly connected nodes, you're going to need to rearrange a lot of the data to get access to the data you need. Therefore, you need to work out how you might be able to shift data around.

+

To do this, you'd like to count the number of viable pairs of nodes. A viable pair is any two nodes (A,B), regardless of whether they are directly connected, such that:

+
    +
  • Node A is not empty (its Used is not zero).
  • +
  • Nodes A and B are not the same node.
  • +
  • The data on node A (its Used) would fit on node B (its Avail).
  • +
+

How many viable pairs of nodes are there?

+
+

Your puzzle answer was 1034.

--- Part Two ---

Now that you have a better understanding of the grid, it's time to get to work.

+

Your goal is to gain access to the data which begins in the node with y=0 and the highest x (that is, the node in the top-right corner).

+

For example, suppose you have the following grid:

+
Filesystem            Size  Used  Avail  Use%
+/dev/grid/node-x0-y0   10T    8T     2T   80%
+/dev/grid/node-x0-y1   11T    6T     5T   54%
+/dev/grid/node-x0-y2   32T   28T     4T   87%
+/dev/grid/node-x1-y0    9T    7T     2T   77%
+/dev/grid/node-x1-y1    8T    0T     8T    0%
+/dev/grid/node-x1-y2   11T    7T     4T   63%
+/dev/grid/node-x2-y0   10T    6T     4T   60%
+/dev/grid/node-x2-y1    9T    8T     1T   88%
+/dev/grid/node-x2-y2    9T    6T     3T   66%
+
+

In this example, you have a storage grid 3 nodes wide and 3 nodes tall. The node you can access directly, node-x0-y0, is almost full. The node containing the data you want to access, node-x2-y0 (because it has y=0 and the highest x value), contains 6 terabytes of data - enough to fit on your node, if only you could make enough space to move it there.

+

Fortunately, node-x1-y1 looks like it has enough free space to enable you to move some of this data around. In fact, it seems like all of the nodes have enough space to hold any node's data (except node-x0-y2, which is much larger, very full, and not moving any time soon). So, initially, the grid's capacities and connections look like this:

+
( 8T/10T) --  7T/ 9T -- [ 6T/10T]
+    |           |           |
+  6T/11T  --  0T/ 8T --   8T/ 9T
+    |           |           |
+ 28T/32T  --  7T/11T --   6T/ 9T
+
+

The node you can access directly is in parentheses; the data you want starts in the node marked by square brackets.

+

In this example, most of the nodes are interchangable: they're full enough that no other node's data would fit, but small enough that their data could be moved around. Let's draw these nodes as .. The exceptions are the empty node, which we'll draw as _, and the very large, very full node, which we'll draw as #. Let's also draw the goal data as G. Then, it looks like this:

+
(.) .  G
+ .  _  .
+ #  .  .
+
+

The goal is to move the data in the top right, G, to the node in parentheses. To do this, we can issue some commands to the grid and rearrange the data:

+
    +
  • Move data from node-y0-x1 to node-y1-x1, leaving node node-y0-x1 empty:

    (.) _  G
    + .  .  .
    + #  .  .
    +
    +
  • Move the goal data from node-y0-x2 to node-y0-x1:

    (.) G  _
    + .  .  .
    + #  .  .
    +
    +
  • At this point, we're quite close. However, we have no deletion command, so we have to move some more data around. So, next, we move the data from node-y1-x2 to node-y0-x2:

    (.) G  .
    + .  .  _
    + #  .  .
    +
    +
  • Move the data from node-y1-x1 to node-y1-x2:

    (.) G  .
    + .  _  .
    + #  .  .
    +
    +
  • Move the data from node-y1-x0 to node-y1-x1:

    (.) G  .
    + _  .  .
    + #  .  .
    +
    +
  • Next, we can free up space on our node by moving the data from node-y0-x0 to node-y1-x0:

    (_) G  .
    + .  .  .
    + #  .  .
    +
    +
  • +
  • Finally, we can access the goal data by moving the it from node-y0-x1 to node-y0-x0:

    (G) _  .
    + .  .  .
    + #  .  .
    +
    +
  • +
+

So, after 7 steps, we've accessed the data we want. Unfortunately, each of these moves takes time, and we need to be efficient:

+

What is the fewest number of steps required to move your goal data to node-x0-y0?

+
+

Your puzzle answer was 261.

Both parts of this puzzle are complete! They provide two gold stars: **

+

At this point, you should return to your advent calendar and try another puzzle.

+

If you still want to see it, you can get your puzzle input.

+

You can also this puzzle.

+
+ + + + + + \ No newline at end of file