From d98019ff8b28ca09d92d5ec57a29acf1eee0908a Mon Sep 17 00:00:00 2001 From: Dimitrios Kaltzidis Date: Thu, 12 Dec 2024 08:27:53 +0200 Subject: [PATCH] Add Day 12 Part 1 --- AdventOfCode2024.sln | 6 ++ Day12/Day12.csproj | 16 +++++ Day12/Program.cs | 125 ++++++++++++++++++++++++++++++++++++++ Day12/input.txt | 140 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 287 insertions(+) create mode 100644 Day12/Day12.csproj create mode 100644 Day12/Program.cs create mode 100644 Day12/input.txt diff --git a/AdventOfCode2024.sln b/AdventOfCode2024.sln index 1917065..f6e0b94 100644 --- a/AdventOfCode2024.sln +++ b/AdventOfCode2024.sln @@ -25,6 +25,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day10", "Day10\Day10.csproj EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day11", "Day11\Day11.csproj", "{FE187D99-D153-4909-959C-FA9C81444D11}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Day12", "Day12\Day12.csproj", "{F07A6D55-53F8-49AC-BD5E-689A0D995C84}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -75,6 +77,10 @@ Global {FE187D99-D153-4909-959C-FA9C81444D11}.Debug|Any CPU.Build.0 = Debug|Any CPU {FE187D99-D153-4909-959C-FA9C81444D11}.Release|Any CPU.ActiveCfg = Release|Any CPU {FE187D99-D153-4909-959C-FA9C81444D11}.Release|Any CPU.Build.0 = Release|Any CPU + {F07A6D55-53F8-49AC-BD5E-689A0D995C84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F07A6D55-53F8-49AC-BD5E-689A0D995C84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F07A6D55-53F8-49AC-BD5E-689A0D995C84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F07A6D55-53F8-49AC-BD5E-689A0D995C84}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Day12/Day12.csproj b/Day12/Day12.csproj new file mode 100644 index 0000000..e0c4c2e --- /dev/null +++ b/Day12/Day12.csproj @@ -0,0 +1,16 @@ + + + + Exe + net8.0 + enable + enable + + + + + Always + + + + diff --git a/Day12/Program.cs b/Day12/Program.cs new file mode 100644 index 0000000..6e52179 --- /dev/null +++ b/Day12/Program.cs @@ -0,0 +1,125 @@ +var lines = File.ReadAllLines("input.txt"); +var grid = CreateGrid(lines); + +int[][] directions = new int[][] +{ + [-1, 0], + [0, -1], + [0, 1], + [1, 0] +}; + +var part1 = Part1(grid, directions); + +Console.WriteLine($"Part1: {part1}\n"); + +int Part1(char[,] grid, int[][] directions) +{ + var rows = grid.GetLength(0); + var columns = grid.GetLength(1); + var neighbourDictionary = new Dictionary<(int, int), HashSet<(int, int)>>(); + + for (var i = 0; i < rows; i++) + { + for (int j = 0; j < columns; j++) + { + neighbourDictionary[(i, j)] = new HashSet<(int, int)>(); + + foreach (var dir in directions) + { + var di = dir[0]; + var dj = dir[1]; + + if (i + di >= 0 && i + di < rows && j + dj >= 0 && j + dj < columns) + { + if (grid[i, j] == grid[i + di, j + dj]) + { + neighbourDictionary[(i, j)].Add((i + di, j + dj)); + } + } + } + } + } + + var regions = new List>(); + var remainingPoints = new HashSet<(int, int)>(); + + for (var i = 0; i < rows; i++) + { + for (var j = 0; j < columns; j++) + { + remainingPoints.Add((i, j)); + } + } + + while (remainingPoints.Count > 0) + { + var point = remainingPoints.First(); + remainingPoints.Remove(point); + + var region = GetRegion(point, neighbourDictionary); + regions.Add(region); + remainingPoints.ExceptWith(region); + } + + return regions.Sum(region => Perimeter(region, neighbourDictionary) * region.Count); +} + +int CountSplitSegments(List<(int, int, int, string)> lines) +{ + if (lines.Count == 0) return 0; + + var segmentCount = 1; + for (var i = 1; i < lines.Count; i++) + { + var prev = lines[i - 1]; + var curr = lines[i]; + + var isContiguous = + (prev.Item1 == curr.Item1 && curr.Item2 - prev.Item2 == 1 && curr.Item3 == prev.Item3); + + if (!isContiguous) + { + segmentCount++; + } + } + return segmentCount; +} + +HashSet<(int, int)> GetRegion((int, int) point, Dictionary<(int, int), HashSet<(int, int)>> neighbourDict) +{ + var region = new HashSet<(int, int)>(); + var remaining = new HashSet<(int, int)> { point }; + + while (remaining.Count > 0) + { + var curPoint = remaining.First(); + remaining.Remove(curPoint); + region.Add(curPoint); + + var newRemaining = neighbourDict[curPoint].Except(region); + remaining.UnionWith(newRemaining); + } + + return region; +} + +int Perimeter(HashSet<(int, int)> region, Dictionary<(int, int), HashSet<(int, int)>> neighbourDict) +{ + return region.Sum(point => 4 - neighbourDict[point].Count); +} + +char[,] CreateGrid(string[] lines) +{ + var grid = new char[lines.Length, lines[0].Length]; + + for (int i = 0; i < lines.Length; i++) + { + for (int j = 0; j < lines[i].Length; j++) + { + grid[i, j] = lines[i][j]; + } + } + + return grid; +} \ No newline at end of file diff --git a/Day12/input.txt b/Day12/input.txt new file mode 100644 index 0000000..bc7b463 --- /dev/null +++ b/Day12/input.txt @@ -0,0 +1,140 @@ +CIISIIQQVZZZZZZOOOTTTTTTTTTTTTTTTDDJAAAAADDDDDDDDDDVVVVVVVVMMMMMMMMMMHHHHHJJJHHHHHHVVVVVVVVVVVVVVVVVVVNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOO +CIIIIIIQVVVZZOOOOOTTTTTTTTTTTTTTDDDDDAGAASDDDDDDDDDDVVVVVVVMMMSMMMMMHHHHHHHJHHHHHHVVVVLLLVVVVVVVVVVVVVYNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOYYYYYO +CCCIIIXVVVVVOOOOOOOTTTTTTTTTTTTTTDDDDDGGAAAAADDDDDDDVVVVVVVVVSSSSMMMHHHHHHHHHHHHHVVVLLALLVVVVVVVVVVVVVYNNNNNNNNNNNNNNNNNOOOOOOOOOOOYOYYYYYYY +CIIIIIXVCVVVVOOOOOOTTTTTTTTTTTTTDDDDDDDAAAAAAADDDDDDDVVVVVVVVVSSMMMMMMHHHHHHHHHHHHVVLLLLLVVVVVVVVVVVVYYNNNNNNNNNNNNNNNNNOOJJJOOOOYOYYYYYYYYY +CIIIIICCCCVVOOOOOOOOTTTTTTTTTDTTDDDDDDDAAAAAAADDDDDDDVVVVVVVVVVSSSSMMMHHHHHHHHHHHHVLLLLLLLVVVVVVVVVVVYYYNNNNNNNNNNNNNNNJJJJJJJJJYYYYYYYYYYYY +CCCCZZZCCCVOOOOOOOOHHHTTTTTTTDDDDDDDDDDDDAAAAADDDDDDDVVVVVVVVVSSSWWCMMHHHHHHHHVVVLLLLLLLLLVVVVVVVVVVVVVYNCNCCNNNNNNNNNNJJJJJJJJJBYYYYYYYYYYY +CCCCZZZCCCCOOOOOOOOOHHHHTTTTTDTDDDDDDDDDDAAAPDDDDDIIIVZZZVVVVVSSSCCCCCRHHHHHVVVVVLLLLLLLLVVVVVVVVVVVVVVVCCCCCNNNNNNNNGGJJJJJJJJJYYCYYYYYYYYY +CCCCCZCCCCCOOOOOOOOHHHHHHHTTTDTDDDDDDDDDDDDDDDDDDIIIZZZZZVVVVSSSCCCCCCCHHHHHHHHVRLLLLLLLLVLVVVVVVVVVVVVCCCCCCNCNNPPJJJJJJJJJJJJJJJJYYYYYYYYY +CCCCCCCCCCCCOOOOOOHHHHHHHHTTTDTDDDDDDDDDDDDDLLLIIIIIZZZZZIVVSSSSSCCCCCCRHHHHHHHVLLELLLLLLLLVVVBBBBBVVEVCCCCCCCCNPPPJJJJJJJJJJJJJJJJJYYYYYYYY +CCCCCCCCCCCCOOOOOHHHHHHHTTTTTTTDHDCCCCCCCCCDLLZZZZZIZZZZZISVSSSSSSCCCCCRHCHCCGGGGLLLLLLLLLLLLVVBBBBBVVVCCCCCCCCNCCPJJJJJJJJJJJJJJJJJYYYYYYYY +CCCCCCCCCCCOOOOOOOFHHHHTTTTTTDCCCCCCCCCCCCCDDLZZZZZIZZZZZISSSSSSSCCCCCCCCCCCCCCCGGLLLLLZLLYLLVVVBBBBVVLJCCCCCCCCCXJJJJJJJJJJJJJJJYYYYYYYYYYY +CCCCCCCCOOOOOOOOOOOQQQHTTTTLTTCCCCCCCCCCCCCCCCZZZZZZZZZZZISSSSSCCQQCCCCCCCCCCCCCGGLLLLLLLYYVVVBBBBBLLLLJJJJJCCCCCXJJJJJJJJJJJJJJJYMMMYYYYYYY +CCCCCCCOOOOOOOOOOOOQQLLTTLLLLCCCCCCCCCCCCCCCCCZZZZZZZZZZZSSSSLCCCCCCCCCCCCCCGGGGGYSYVVYLYYYVVVLBBBBLLLLJJJJJJJJCCXZJJFJJJJJJJHHHJJMMMMMMMMMY +CCCCCCCCOCOOOOOOOOLLLLLLTLLLLCCCCCCCCCCCCCCCCCZZZZZZZZZZMSSSSLCCCCCCCCCCCCCGGGGGYYSYYYYYYYNNJLLLLBBLLJJJJJJJJJJXXXZXJJJJJJJJHHHHMMMGMMMMMMMY +CCCCCCCCCCCOOOOOOOZLLLLLLLLLLCCCCCCCCCCCCCCCCCZZZZZZZZZZSSSSSLCCCCCCCCCCCCCXXXXGYYYYYYYYYYYJJJJJLLLLLJJJJJJJJJJXXXXXXJJJJJJJHHHHMMMMMMMMMMMX +CCCCCCCCCCCOOOOOOOLLLLLLLLLLLLLLLLCCCCCCCCCCCCZZZZZZZZZZSSSSSSCCCCCCCCCCCCEXXXXYYYYYYYYYYYJJJJJJLLLLLJJJJJJJJJXXXXXXXXXOJJJJHHHHHMMMMMMMMMXX +CCCCCCCCCCCOOOOOOOALLLLLLLLLLLLLLLCCCCCCCCCLLLLZZZZZZZZZSSSSSSSCCCCCCCCCCCXXXXXYYYYYYYYYYYJJJJJJLLLLJJJJJJJJJJXXXXXXXXXXJJJHHHHHMMHMMMMMMQXX +CGGCCCCCCCCOOOOOOOALLLLLLLLLLLLLLLLLLLLRRLRLLLLLLLLLISSSSSSSSSCCCCCCCCCCCXZXXXXYYYYYYYYYYYJJJJJJJLLJJJJJJJJJJXXXXXXXXXXXXXHHHHHHHHHHMMMMMQQQ +FGGGGGGCCCCOOOOOOOLLLLLLLLLLLLLFFFFLLRRRRRRLLLLLLLLIIISSSSSSSSCCCCCCCCNCXXXXXXXXXYYYYYYYYYYYJJJJJLLJLJJJJJJJJJXXXXXXXXXXXXHHHHHHHHHHHHHMMQQQ +GGAGGGGGGCGGOOOOOOOLLLLLLLLLLLLLFFFFFRRRRRRLLLLLLLLIIIISSSSSSSFFCCCACAXXXXXXXXXXXXYYYYYYYYYBJJJJLLLLLJJJJJXXJXXXXXXXXXXXXXXXHHHHHHHHHHHQQQQQ +UUGGGGGGGGGGGOOOOOOOOLLLLLLLLLLFFFFFJJRRRRNLLLLLLLIIIISSSSSSSSFCCHCAAAXXXXXXXXXXXYYYYYBBYYBBJJJJLLJJLJJJJJXXXXXXXXXXXXXXXXZMHHHHHHHHQQQQQQQQ +UUGGGGGGGGGGOOOOOOOOLLLLLLLLLFFFFFFFJJRRRRNLIIIIIIIIIIISZSSSSSHHHHCAAAAAAXIXXXXXXYYYYYBYYYBBJJJJLJJJJJJJJJJXXXXXXXXXXXXPMGMMHHHHHHHHQQQQQQQQ +UUGGGGGGGGGGOOOOOOOOSSLLLLLFLFFFFFFFFFIIORRIIIIIIIIIIIISSSSSSHHHHHHHHHAAAXXXXXXXLLYYYBBBBBBJJJJJJJJJJJJJJJXXXXXXXXXXXXPPMMMMMHHHHHHHHQQQQQQQ +GGGGGGGGGGGOOOOOOOOOOLLLLLLFLLFFFFFFFIIIRRLIIIIIIIIIIISSSSSSSSHHHHHHHHAAAXXXXXXXLYYBBBBBBBBBJJJJJJJJJGGJJJOXXXXXXXXXDXMMMMMMMHHHHHHHHQQQQQQQ +QGGGGGGGGGGOOOOOOOOOOLOOLLFFFFFFFFFFFXIISILIIIIIIIIIISSSSSSSSSAHHHHHMHAAAAXXXXXXLLLBBBBBBBBJJJJJJJJJJJGGGGGXXXXXXXXXDDDMMMMMMHHHHHHHHHQQQQQQ +QGGGGGGGGGGGOOOOOOOOOOOOLLFFFFFFFFFFFFIFIIIIIIIIIIIISSSSSSSSSHAHWHHHHHHAAINXXXXLLLLLLLBBBBBJJJJJJJJJGGGGGGGXXTTXXXXXDDMMMMMMMMHHHHHHHQQQQQQK +UUGGGGGQGGOOOOOOOOOOOOOOFFFFFFFFFPFFFFSSHSIIIIIIIIIISHSSSSSSHHHHHHHHHHHIAIIIXRLLLLLLLLBBBBBBBJJJJJJJGGGGAGGGGXXXHXXDDDBMMMMMMXHHHHHHHHHKKKKK +UUGGGGGUUUUOOOOOAOOOOOOOOFFFFFFFFFFSSSSSSSAAAAAAAAAASSSSSSSSHHHHHHHHHHHIIIIIILLLLLLLLLLBBBBBJJJJJJJTAAFGAGGGGGGGGDDDBBBMMMMMXXXXHHHHHHHKKKKK +UUGGUUGUUUUOOOOOOOOOOOOOOFFFFFFFFFFSSSSSSIAAAAAAAAAASSSSSSSSSSSHHHHHIIWIIIIIILLLLLLLLLLLBBBBJJJJJJAAAAAAAAGGGGGGGGDGBBBBSMMMXXXXHHHHKHHKKKKK +UUUUUUGUUUYOOOONNNOOOOOOOOFFFFFFFFSSFSSIIIAAAAAAAAAASSSSSSSSSSSSHHHIIIIIIIIIILLLLLLLLLLLBBBBJJJJAAAAAAAAAAGGGGGGGGGGBBBSSMMMMXXXXHHKKKHKKKKK +UUUUUUUUUYYOOOONNNOOOOOOOOOOFFFFFFFFFFIIIIAAAAAAAAAASSSVVVVSSSKKKKKKKIIIIIIIILLLLLLLLLLLLRBJJJJAAAAAAAAAAGGGGGGDGDDBBBSSSSMMMXXXXXHKKKKKKKKK +UUUUUUUUUUOOOOOOOOOROOOOOOOOJFFFFFFFIIIIIIAAAAAAAAAAXSVVVVVSSSKKKKKKKAIIIIIIILLLLLLLLLLLLJJJJJJJAAAAAAAAAGGGGGGDDDDDBBBBSXXXXXXXKKKKKKVVKKKK +UUUUUUUUUUOOOOORRROROOOOOOOOJJFFFFFIIIIIIBAAAAAAAAAAAXVVVVVSSSKKKKKKKIIIIIIIILLLLLLLLSSLLLJJJJJJAAAAAAAAAAAGGGGDDDDDFBBBBXXXXXXKKKKKKKKVVVKK +UUUUUUUUULOOOORRRRRRROOOOOOOJJFFFFFIIIIIIBAAAAAAAAAAAXXVVVVVSSKKKKKKKIIIIIIILLLLLLLLLSSSLSSJJJJPPAAAAAAAAAAAAGGGDDDFFFBBBNNXXXKKKKKKKKKVYVVV +UUUUUUUUJJJPPOOJJJRROOOOOOJJJJUUFFFIIIIIIBAAAAAAAAAAAXLLVLLVSSKKKKKKKAAIAIIILLLLLLLLLLSLLPJJRJPPPPAAAAAAAAAAAAGGTDDDDBBBBNNNNXKKKKKKKKKVVVVV +UUUUUUUUJJPPPPPQTJJRRROOOOJJJUUUFUUUIIIBBBAAAAAAAAAARLLLLLLLLLKKKKKKKAAAAAILLRLLLLLLLLPPPPPJJPPPPPAAAAAAAAAAAAATTDDUUBBBBNNNKSSKKKKKKKKVVVVV +UUUUUUUUUTPPPPQQTTJRRRRORJJJJUUUUUUUUIIBBBAAAAAAAAAARLLLLLLLLLKKKKKKKAAAAAARLRLLLLRRRLLPPPPPPPPPPPPAAAAAAAAAAAAATTDDUUBQQNNKKKKKKKKKKVVVVVVV +UUUUUUUUTTPPPPQQQQRRRRRORJJJJUUUUUUUUUUYBBAAAAAAARRRUULLLLLLLLKKKKKKKAAAAAARRRRLRRRRRLRRPPPPPPPPPAAAAAAAAAAAATATTTTTUTBQQQNNKKKKKKKKVVVVVVVV +UUUUUUTTTTTPPPQQQQQQRRRRRRJJUUUUUUUUUUUBBBBBBRAAARRRRULLLLLLLLKKKKKKKAAAAARRRRRRRRRRRRRRPPPPPPPPPAAAAAAAAAAATTATTTTTTTOKKKNNNNKKNTKKVVVVVVVV +UUTUTTTTTTPPPPPQQQQQQQRRBRJJUUUUUUUUUUUDBBBBRRAAARRRRRLLLLLLLLLLLLLAAAAAARRRRRRRRRRRRRRRPPPPPPPPPPPAAAAAAAAAATTTTTTTTTKKKKKNNNNNNKKKVVVVVVVV +UTTTTTTTTTPPPPQQUQQQQQQRRRRJUUUUUUUUUUUBBBBBBBRRRRRRRRRQLLLLLLLLLLLLAAAAAARRRRRRRRRRRRRRRRRRPPPPPPPAAAAAAAAAATTTTTTTTTKKKKKNNNNNNNNVVVVVVVVV +TTTTTTTTTTPPPPQQQQQQQQRRRRRJUUUUUUUUUUUTTBBBBAARRRRRRRRQLLLLLLLLLLLLAAAAAAAFRRRRRRRRRRRRRRRPPPPPPPPPAAAAAAAVAVTTTTTTTTKKKKKKNNNNNNNVVVVVVVVV +TTTTTTTTTTPPPPQQQQQQQQQRZZRRHUURUUKURRRBBBBAAARRRRRRRRRQLLLLLLLLLLAAAAAAAAATRRRRRRVRRRRRRPPPPPPPPPPPTAATTAAVVVTTTTTTKKKKKKKKNNNNNNNVVVVVVVVV +TTTTTTTTPPPPPPPQQQQQQQQQZZRRRRRRRUUURRRRBBBAAARRRRRRRRQQLLQLLLLLLAAAAAAAAATTRRTRTVVRRRRCCCPPPPPPZZPPPPTTTVVVVVVTVTTTTKKKKKKKNNNNNNNVVVVVVVVV +TTTTTTNUPPPUUPPPQQQQQQQQZZRRRRRRRRUURRRRRRRRRRRRRRRRRRQQQQQLLLLLLAAAAAAAATTTTTTTTVVRRRRRCCPPPPPPZTPPTTTTTQQVVVVVVVVKKKKKKPPKKGGGGNVVVVVVVVVV +TTTTTTNUUUUUUPPQQQQQQQQQQQUURRRRRRRURRRRRRRRRRRRRRRRRQQQQQQQLLLLLLLAAAAAATTTTTTTVVVVVRRVCCCPCCCPPTTPTTTTTQQQVVVVVVVKKKUKKPPPPGGGGTVVVVVVVVVV +TTNNNNNUIUUUUUPPQQQQQQQQQUUURRRRRRRRRHHHRRRRRRRRRRRRRRQQQQQLLLLLLLLXAAAAATTTTTTTVVVVVRTVCCCCCCCPPTTPTTTTTTQQVVVVVVVKKKKKPPGGGGGGGTVVVVVVVVVV +NTTNNNUUUUUUUUUUUTQQQQTQUUUUURRRRRRRRHHRRRRRRRRRRRRRRRQQQQQLLLLLLLLAAAATTTTTTTTTTTVVVVVVVCCTCTTTTTTTTCTTTQQQQVVVVVVKKKKVPGGGGGGGGVVVVVVVVVJJ +NTTNUUUUUUUUUUUUUUHUTTTTXXUXURRRRRRRRHRRRRRRRRRRRRRRRRRQQQQQLLLLLLFAAAAAFFTTTTTTTTVVVVVVVCCTTTTTTTTTTCTTZCQQQVVVVVVVKVVVVHHGGGGGGVVVVVVVVJJJ +NNNNNUUUUUUUUUUUUCUUUTTTXXXXURRRRHRRRHRRRRRRRRRRRRRRRRRRQQQLLLLLFFFFAAAAFFTTTTTTTTVVVVVVVVCTTTTTTTTTTCCCCCCCVVVVVVVVVVVVQQQQGGGGGGVVVVJJJJJJ +NNNNNUUUYUUUUUUCCCUUUUUXXXXXXYYRYHHHHHRRRHRRRRRRRRRRRRRRQQQLFFFFFFFFAAAFFTTTTTTTTEVVVVVVVCCCCNNTTTTTTCCCCCCCJVVVVVVVVVQQQQQGGGGGGGGGGJJJJJJJ +NNNNNNUUUUUUUUCCCCCUUUUXXXXXYYYRYYHHHHRHHHRRRRRRRRRRRRRRQQFFFFFFFFFFFFFFFFTTTTTTTEVVVVVVCCCCCCNTTTTTCCCCCCCJJVVVVVVVVQQQQQQQGGGGGGGGUJJJJJJJ +NNNNNNNUUUUUUUCCCCUUUUUXXXXXYYYYYYYHHHRHHHHRRRRRRRRRRRQQQFFFFFFFFFFFFFFFFFFTTTTTEEEEVVCVCCCCCNNNNTTTCCCCCCCCJCVVVVVVVVQQQQQQQQQGGGUQUUUUUUJJ +NNNNNNNUUUUUUUCCCCUUUXUXXXXXYYYYYYYHHHHHHHHHHHRRRORRQQQQQFFFFFFFFFFFFFFFFEEUTTEEEEECCCCVCCCCCCNNTTTTCCCCCFCCCCCVVVVVVVVQQQQGGQGGGGUUUUUUJJJU +NNNNNNNNUUUUUCCCCUUUUXXXXXXLYLLLYYYHHHHHHHHHHHRRQQRQQQQQQFFFFFFFFFFFFZFFFEEEEEEEEEEEECCCCCCCNNNTTTCCCCCCCCCCCCVVVVVVVVVVNQQGGGGIGUUUUUUUUUUU +NNNNNNNJDDUUUCCUUUUUUXXLXXLLLLLLLYYYHHHHHHHHHHRRQQQQQQQQQFFFFFFFFFFZZZFFFEEEEEEEEEEECCCYCCCNNNNNNCCCCCCCCCCCCIIVVVVVVVVVQQQGGIGIIIUUUUUUUDEE +JJNNNJJJJJUQUCCCCUUXXXLLLLLLLLLLLLLLFFHHHHBBBRRRBQQQQQQQFFFFFFFFFZFFVZZFFEEEEEEEEEEEYYYYYYCCYNNNNUUCCCCCCCCCCCLLVVVVVVVVQFFIIIIIIIIIUUBBEEEE +JJJNNJJJJJUJUCCCCUUUXXLLLLLLLLLLLLFFFHHHHBBBBBBBBBQQQQQQQQFFFFFFZZFZZZZZEEEEEEEEEEEEEYYYYYYYYUUNUUUUUUCCCCCLLLLLLLLLVVFFFFFFIIIIIIIIUUBEEEEE +JJNNJJJJJJJJJCCCCCUCXXLLLLLLLLLLLLFFFHHHHBBBBBBBBBBBQQQQQFFFFFFZZZZZZZZZEEEEEEEEEEEEEIYYVVVUUUUUURUUUUCCCCCLLLLLLLLLLLFFFFFFIIIIIIJJJJJEEEEE +JJJJJJJJJJJJJCCCCCCCXCLLLLLLLLLLLLFFFHHHHHHBBBBBBBBBIBQQQQFFWWZZZZZZZZZEEEEEEEEEEEEEEEYYVVVDUUUUURRUUUACCCCLLLLLLLLLELFFFFFFIFIIJIJJJJEEEEEE +JJJJJJJJJJJJCCCCCCCCCCCLLLLLLLLLLLFFFFFHHHBBBBBBBBBBBBQWWQWFWWWWZZZZZZZZZZEEEEEEEEEEEWYYVVVUUUURRRRRUUUCBBLLLHLPLLLLLFFFFFFFFFIIJJJJJJEEEEEE +JJJJJJJJJJJCCCCCCCCCCCCLLLLLLLLLLLFHFHHHHHHBBBBBBBBVBWWWWWWWWDDDDDZZZZZZZZEEEEEEEEEEEWWWVVVWUVVVVVRRRUUBBLLLLLLLLBLPPPFFFFFFJJIIJJJEEEEEEEEE +JJJJJJJJJJJCCCCCHHCCCCCLLLLLLLLHHHHHHHHHHHHBBBBBBBBVFFWWWWWDDDDDDDZZZZZZZZXXEEEEEEWWEWWWVVVWUVVVVVBBBUUBLLLLBBBBBBBPPPFFFFJJJJJJJJJJEEEEEEEE +JJJJJJJJJJJCCCCCHHHCCCCCCCLLLLLHHHHHHHHHHHHHIBBBBHBVFFFWWWJDDDDDDRZZZZZZZZXXXEEEUEEWWWPPVVVWWVVVVVQBBUBBBBBBBBBBBBBBPPPPPPPSJJJJJJJJEEEEEEEE +JJJJJJJJCJRRCCCCHHHHHCHCCCCLLLLLHHHHHHHHHIIIIBHHHHHFFFFWWDJJDDDDDDZZZZZZZZZUXUUUUUUPPPVVVVVVVVVVVVPBBBBBBBBBBBBBBBBBPPPPPPPJJJJJJJJEEEEEEEEE +PJJJJJJCCRRRRCCHHHHHHHHCCCCLLLLLHHHHHHHHHHHIIIIIIIHHHFWWWDJJJDDDDDDZZZZZOOUUUUUUUUUPPPVVVVVVVVVVVVPBBBBBBBBBBBBBBBBPPPPPPPPPJJJJJJJLLEEEEEEE +PJJJJRRRRRRRRRHHHHHHHHHCCCCLLLMHHHHHHMHHHHHIIIIIIIFFHFFFWDJJDDDDDDDDZOOOOOOOUUUUUUUPVVVVVVVVVVVVVVPBBBBBBBBBBBBBBBBPPPPPPPPPPJGJJJJLLLLLLEEM +PPJRRRRRRRRRRRHHHHHHHHCCCCCEEEKHKKHKHMHMHHIIIIIIIIFFFFJFDDDDDDDDDDDOOOOOOOOOUUUUUUUPVVVVVVVVVVVVVVPBBBBBBBBBBBBBBBBBBPEPPPOPGGGGGDJLDLLLLMMM +PPRRRRRRRRRRRRRRHHHHHHCCCCEEEKKKKKKKMMMMMMIIIIIIIIFFFFFFFDDDDDDDDDDOOOOOOUUUUUUUUUUUVVVVVVVVVVVVVVABBBBBBBVVVBBBBBBBBPPPPPPPGGGGDDDDDDLLMMMM +PPRRRRRRRRRRRRRRRRRHEECCCEEEKKKKKKKKCMMMMMIIIIIIIIFFFFFFFDDDDDDDDDOOGGGOOUUUUUUUUUUUVVVVVVVVVVPVVVAAABBBBVVVVVBBBBBBPPPPPPPPGGHHDDDDLLLLMMMM +PRRRRRRRRRRRRRRRRRREEEECCEEEKKKKKKKCCKMMMIIIIIIIIIIFFFFFFDDDDDDDDDOOOGGGGGUUUUUUUUUPVVVVVVVVVVPVVVAAAABBBBVVVVVVVVVVSSSPPPGGGGHHGDGDDLLLMMMM +PPPPRRRRRRRRRRRRRRREEEEEEEEEKKKKKKKKKKMMMEIUUIIIIIIFFFFFCDDDDDDDDDOOOGGGGGUUUUUUUUUPVVVVVVVVVVQQQQAAAABBBBVVVVVVVVVPVSSPPPPPGGGGGGGLLLLLMMMM +PPPPRRRRREERRRRRRREEEYYYYYYYYKKKKKKKKKMMMESUSSSSIILFFFFFCCDDDDDDDDOOOGGGGGUUUUUUUUUPVVVVVVVVVVQQQQAAABBBBBYVVVVVVVVVVSSSSSSGGBGGGGLLLMMMMMMM +PPPPRRRREEEEERRRRREEEYYYYYYYYKKKKKKKKKMMMESSSSSSSIISFFCCCJNDDDDDDDDOOGGGGGGGUUUUUUGGPVVVVGPPPQQAAAAAABBBBBBBJVVVVVVVVVVVSSGGGLLLLLMMMMMMMMMM +PPPPPPREEREEERRRRRREYYYYYYYYYYKKKKKKKKKMEESSSSSSSSSSSSCCJJJDDNDDDDOOOYGGGGGGGUUGGGGGGVVVVPPPPQQQAAAAAABBZZVVVVVVVVVVVVVVSSSSSLLLLLMMMEMMMMMM +PPPPPESEEEEEEERERRRRIYYYYYYYYYKKKKKKKKKSSSSSSSSSSSSSSSCCJJCDDDDDDDDYYYGGGGGGGGGGGGGGGGGGGGPPQQAAAAAAAAAAZZZZVVVVVVVVVVSSSSSLSLLLLLLJLMMVVMMP +PPPPEEEEEEEEEEEEERRKYYYYYYYYYYYKKKCKKKKCCSSSSSSSSSSSRCCCJJJDDDDDYUUUUYYYGGGGGGGGGGGGGGGGGGAAAAAAAAAAAAAAAZZZZZVZCCCVVVVSSLLLLLLLLLLLLLVVVVMM +PPPPEEEEEEEEEEEEEERRRLYYYYYYYYYKKCCCCCCCSSSSSSSSSSSSRCCCCJJDDDDDYYYYYYYYYGGYGGGGGGGGGGGGGGGAAAAAAAAAAAAAAAAZZZZZZCCZZVFLSLLLLLLLLLLLLLVLVVVV +PPPPEEEEEEEEEEEEEELLLLLYYYYYYYYCCCCCCCCCSSSSSSSSSSSSRRRRRJSDCDDDDJJYYYYYYYYYYYYGGGGGGGGGGGGAAAAAAAAAAAAAAAZZZZZZZZCZLVVLLLLLLLLLLLLLLLVLLLUU +PPPEEEEEEEEEEEEEELLLLLLLYYYYYCCCCCCCCCCCCSSSSSSSRRRRRRRRRRRRRDNNDYYYYYYYYYYYYYYGGYGGGGGGGGGAAWWAADAAAAAANNNZZZZZZZZZLLVLLLLLLLLLLLLLLLLLUUUU +SPPEEEEEEEEEEEEELLLLLLLLYYYYCPCCCCCCCCCCCCCCSSSRRRRRRRRRRRRCCDPPPYYYYYYYYYYYYYYYYYYYYGGGGGGGWWAAADDAAAAANNNZZZZZZZZZZLLLGGGLLGLLLLLLULLLUUUH +SPPEEEEEEEEEEEEELLLLLLLLVVYYCCCCCCCCCCCCCCCCCSSRRRRRRRRRRRRCCCPPYYYYYYYYYYYYYRYYYYYYYGGGGGGIAAAAADDAAAAANZZZZZZZZZZZZGGGGGQQQGLLLLLLUUUUUUUU +SSNEEEEEEEEEEEEEELLLLLLLLVVCCCCCCCCCCCCCCCCSSSSRRRRRRRRRRRRRRPPPPPPYSYYYYYYYYRRRYYYYYGGGGGIIIEEDDDDEAANNNZZZZZZZZZZZZZGAGGGGGGGLLLLLUUUUUUUU +SNNNNNNNEEEEBBBBBBLLLLLLLVVVVVVCCCCCCCCCCCCSSSSRRRRRRRRRRRRJJPPPPPPPSSSYYYYYRRRRRRYYYGYYYZZZZZZZZZDEAAANNZZZZZZZZZZZZAAAGGGGGGGLLLLLUUUUUUUU +SNNNNNNNEEESSBBBBBLLLLLVVVVVVVVCCCCCCCMCCCSSSSSRRRRRRRRRRRRPPPPPPPPPPPSYYYYYRRRRRRYYYYYYYZZZZZZZZZJJJJANNZNZZZNZZZIIIGGGGGGGGGGGLLLKKUUUUUUU +SSNNNNNNSEEEBBBBBBEEELVVVVIVVVVMIICCCMMCCCCSSSSRRRRRRRRRRRAPPPPPPPPPPPSSSRRRRRRRRYYYYYYYYZZZZZZZZZZZZZNNNNNNNNNNIIISIIGGGGGGGGFFLLKKKKUKUUUY +SSNSSNNSSSSBBBBBBBBBGGGGGVIIVMMMICCCMMMMMMSSSSSRVRRRRRRIRRPPPPPPPPPPPRRSSRRRRRRRRYYYYYYYYZZZZZZZZZZZZZEEENNNNNNNIISSSGGGGGGGGGGGLLKKKKKKXXXX +SSSSSSSSSSSSBBBBBBBGGGGGVVVIIMMMMMMMMMMMMMMSSSSSSSRRRRRRRPPPPPPPPPPRRRRRRRRRRRRRRRYYRRYYYZZZZZZZZZZZZZEEENNNNNNNNNSSSSGGGGGGGGGDLKKKKKXXXXQX +SSSSSSSSSSSSBBBBBBBGGGGGGGGGGMMMMAMMMMWWMMMMSSSKSSRRRRRRPPPPPPPPPPPPTRRRRRRRRRRRRRRRRRYYYKKKZZZZZZZZZZEEUNNNNNNNNNSSSUUUUUUUUUGGXKKKKKXXXXXX +SSSSSSSSSSSSBBBBBBBGGGGGGGGGJMMMAAAMMWWWWMMMMWSSIIRRRRRRRPPPPPPPPPPPPRRRRIRRRRRRRRRRRRYYYOKKZZZZZZZZZZEEUUNNNNNNNNSSSUUUUUUUUUGGKKKKKKXXXXXX +SSSSSSSSSSBBBBBBBBBGGGGGGGGGMMMMAAAMMJJWWWMMMSSSIIIIRRRPPPDDDPPPPDPPPIIIIIRRRRRRRRRRRHYOYYXKZZZZZZZZZZEUUUNNNNNNSSSSSUUUUUUUUUGKKKKKKKXXXXXX +SSSSSSSSSSBBKBBBBBBGGGGGGGGYYYYYYYJJJJJJJMMMMMSLLLIIRRRPPPDDDDDDDDDIIIIPIIIRRRIRRRRRRRRYYYYKZZZZZZZZZZUUUUTTTUNNSSSSSUUUUUUUUUZKKKKKKKXXXXXX +SSSSSSSSSSSSBBBXXBBGGGGGGGYYYYYYYYJJJJJJJJJJJLLLIIIIRRRPPPDDDDDDDDDDIIIIIIIRRRIRRRRRRRRRYYQKRREEEZZZZZQQQQUUUUUSSSSSSSZUUUGGZZZKSKKKKKXXXXXX +SSSSSSSSSSAABBXXXXGGGXEGGYYYYYYYYYYJJJJJJJJJJLLLIIIIRRPPPPDDDDDDDDIDIIIIIIIIIIIRRRRRRRRRRERRRREEEZZZZZQQQQUUUUUUUUUUUUUUUUZZZZZSSSSSSSXXXXXX +SSSSSSSSSAAAXXXXXXXXXXXYYYYYYYIIYPPPJJJJJJJJLLLLLIIIRRRPPPDDDDDDDDIIIIIIIIIIIIIIIRRRRRRRSRRRRPEEEZZZZZQQQQUUUUUUUUUUUUUUUUZZZZZSSSSMMSXXSEXL +SGSSSSSSAAAAXXXXXXXXXXZYYYYBYYPPPPPJJJJJJJLLLLLLIIIIILLPPPPDDDDDHIIIIIIIIIIIIIIIIRRRRRRRRRRRRRREEEEQUQQQQQUUUUUUUUUUUUUUUUZKZZSSSSSSSSXSSSLL +GGSSSSSAAAAAAXXXXXXXXXZYYYYYYYPPPPSXMJJLLLLLLLLLLLIIIILPPPDDDDDDHDIIIIIIIIIIIIIYIRRRRRRRRRRRRRREEEEEQQQQQQUUUUUUSSSWWKKKKKKKZZSSSSSSSSSSSSLL +GGGSSSSAAAAAAXXXXXXXXXXXYYYYYPPPPXXXXXJZXLLLLLLLLLLIIILLLLLDDDDDDDAAIIIIIIIIIIIIRRRORRRRRRRRRRREEESEUQQQQQUUUUUUNSSSWKKKKKKKKSSSSSSSSSSSSSLL +GGGSSSSAGAAAGXXXXXXXXXYYYYYYYPPPPPPXXXXXXXBLLLLLLLLIIILLLLLLDDDDLWLAIIIJIIIIIIIIRRROYYRRRRRRRREEWRREUQQQQQUUUUUUNSSWWKKKKKKKKSSSSSSSSSSSSSLL +GGGGGSSAGAAAGXXXXXXXXXXXYYYYXPPPPXXXXXXXXXBLLLLLLLIIIILELLLDDDDDLLLAAIIIIIIIOOOOOOOOOORRRRRRRRRRRRRWWQQQQQNNNNNNNNVWWKKKKKQQQQQSSSSSSSSSSLLL +GGGGGGSGGGAAGXXXXXXXXXYYYYYYXXPXXXXXXXXXXXBBLLLLLLFFFILLLLLLLLLDLLLLLWWIHIHOOOOOOOOOOORRRRRRRRRRRRRWWQQQQQNNNNVNNVVWWWKKKKKKKQQSSSSRRRSSSSSS +GGGGGGGGGGGGGXXXXXXXXXXXXYYYXXXXXXXXXXXXXXXLLLLLLLFFLLLLLLLLLLLLLLLLWWWRHHHOOOOOOOOOOOOORRRRRRRRRRRWWWWWWNNNNNVVVVVVKKKKKKKKKKQQSRRRRRRRRSOO +GGGGGGGGGJJGGXXXXXXXXXXXXYYYXXXXXXXXXXXXXXLLLLLLLLFFLXLRRLLLLLLLLLLLRWRRHHHHOOOOOOOOOOORRRRRRRRRRRWWWWWWWNNNNNVVVVVVVVXKKKKKKKIIRRRRRNNNRNON +GGGGGGGGGJJJGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXLLXXXXXXXXXRRRRLLLLLLLLLRRRRRHHHOOOOOOOOOOOOMYRRRRRRRRRWWWWWWWNNNNNNVVVVVVVKKKKKKKIIIRIRRRNNNNNON +GGJGJJGJGJJJJVXXXXXXXXXXCXZXXXXXXXXXXXXXXXXXLWXXXXXXXXRRRRLLLLLLLLLLRRRRHHAAOOOOOOOOOOJYYRRRRRRRRWWWWWWWWNNNNNNVVVVVVVKKKVVVVIIIIIRRNNNNNNNN +GGJJJJJJJJJJJJOOXXYXXXXLLLZXXXXXXXXXXXXXXXXWWWXXXXXXXXXRRRSSSLSSLLLLLRRRRAAAMMMMOOOOOOYYYYSRRRRWWWWJJWWWWWJNNNNVVVVVVVVVKVVVVIIIIIIIFNNNNNNN +GGGGJJJJJJJJJJJXXXXXXXLLLLLXXXXXXXXXXXXXXXXWWWXXXXXXXXXXXXSSSSSSSSLLRRRRRAAAAOOOOOOOOYYYYYYRYRYWYWWJJJJJJJJYYYVVVVVVVVVCKVVVVIIIIIIIINNNNNNN +GGGJJJJJJJJJJJLXXLXXXLLLLLLLXXXXXXXXXXXXWXXWWWWXXXXXXXXXXDDNNNSSSRRRRRDAAAAAOOOOOFOOYYYYYYYYVVVVVYJJJJJJJJJYYYVVVVVVVVVCSSSSSSSSSSSSSNNNNNNN +GGJJJJJJJJJJJJLLLLLXLLLYYYLLXXXXXXXXXXXXWXWWWWXXXXXXXXXXXXXXNNNSSSRRRRAAAAAOOOAOOOOOOYYYYYYYVVVVVJJJJSSSSSSSSSSVVVVVVVVVSSSSSSSSSSSSRRNNNNNN +GGGJJJJJJJJJJJJLLLLLLYLLYYFLXXXXXXXXXXWWWWWWWXXXXXXXXXXXXXXXNNNNSRRRRRAAAAAAAAAAOOOYYYYYYYYYVVVVVVJJJSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRNNNNNNN +GGGJJJJJJJJJJJJLLLLLLYYYYYFFXXXXYXHXXXXXWWWWWWWXXXXXXXXXXXXSNNNNSSRRRRRSFFFAAAAAAAAYYYYYYYYYVVVVVVVVVSSSSSSSSSSSSSSSSSSSSSSRRIIIIBRRRNNNNNNN +GJJJJJJJJJJJJLLLLLLLYYYYYYYFFXWWNNNXXXXXWWWWWWXXXXXXXXXXXXSFFFFFFFFFRSSSFFFAAAAAAASYYYYYYYYYVVVVVVVVVSSSSSSSSSSSSSSSSSSSSSSRRRRRIRRRRRNNNNNN +JJJJJJJJJJJJJLLLLLLYYYYYYYYFNNNNNNNXXXWWWWWWWWWXXXXXXXMVXXSFFFFFFFFFFFFFFFFAAAAAASSSSYYYYYYYVVVVVVVVVVVVSSSSSSSSSSSSSSSSSSSRRRRRRRRRRRRRNNNN +PJJJUJJJJLLJJLLLLLLLYYYYYYYYYNNNNNNXXXWWWWWWWWWWXXXXXXVVVXSFFFFFFFFFFFFFFFFFFFFFFFFFIUYYYYYYVVVVVVVVVVVVVVVSSSSSSSSSSSSSSSSCRRRRRRRRRRRRNNNN +JJJJJJJJJJLLLLLLLLLLLLYYYYNNNNNNNNNWWWWWWWWWWWWWXXXXXVVVSSSFFFFFFFFFFFFFFFFFFFFFFFFFUYYYYYYYVVVVVVVVVVVVVVVSSSSSSSSSSSSSSSSRRRRRRRRRRRRRWNNN +JJJJZZZAALLLLLLLLJLJLLYNNNNNNNNNNNNWWWWWWWWWWWWWXXXXXVVVVSSFFFFFFFFFSSFFFFFFFFFFFFFFUYYYYYYYYYCICJVVVVVVVVVSSSSSSSSSSSSSSSSRRRRRRRRRRRWWWNNW +JJJYAZAAAAALLJLLJJJJJJJNNNNNNNNFFFNWWWWWWWWWWXXXXXXVVVVVSSYFFFFFFFFFSSFFFFFFFFFFFFFFUUUYYYYYYYCCCCJJCRVVVVVVMMMMMMMMMMXXRRRRRRRRRRRLRRLWWWWW +AAJAAAAAAAAJJJLJJJJJNNNNNNNNNNFFFFFFFFWWWWWWXXXXXXXXVVVVSSSFFFFFFFFFSSSZFFFFFFFFFFFFIIUUYYYYCCCCCCCCCCJJJVVVMMMMMMMMMLMMMMMRRRRRRRRLRRLLLWWW +AAAAAXAAAAAJJJLJJJJTJJNNNNNNONNSFFFFFWWFFFNWXXXXXXXVVVVVSSYFFFFFFFFFZSSZFFFFFFFFFFFFIIIUYYYYZCCCCCCCCCBBJVVVWMMMMMMMMMMMMMMMRRRRRRLLLLLLLWWL +EEAAAAAAAAAJJJJJJJJJJJNNNNNNONNNFFFFFFWFNFNNNNXXXXXXVVVVVVVYYHUUUUUZZZSZZZFFFFFFFFFFZIIIYYYTTTCCCCCCCBBCHVVVWWWMMMMMMMMMMMMMRRRRRRLLLLLLLLLL +EEAAAAAAAAAJJJJJJJQQNNNNNNNNOOFFFFFFFFNFNFNNNNNXXXVVVVVVVVVYYUUUUUUUZZZZZZZZZIZZZZZZZIITTYTTTTCCCCCCCCCCHVVVWWWWWMMMMMMMMMMMMRRRRLLLLLLLLLLL +EEAAAAAAAAJJDJJJJJJQQNNNNNNNOOFFFFFFFFNNNNNNNNXXXXVVVVVVVVVYYYUUUUUZZZZZZZZZIIZZZZZZZSTTTYTTTCCCCCCCFCCHHVVVEWWWWMMMMMMMMMMMMMRRRRLLLLLLLLLL +EAAAAAAAAAJDDJJJJJJQQQQNNNNNOOFFFFFFFFNFFNNNNNXXXXVVVVVVVVVYYYUUUUUUZZZZZZZZZIZZZZZZZSSTTTTTTCCCCCCCCCCCHVVVWWWWMMMMMMMMMZZZRRRRRRRLLLLLLLLL +EEEAAAAAAJJJJJJJJJJJQQQQNNNNFFFFFFFFFFFFFNNNXXXXXXVVVVVVVVVYYUUUUUUUZZZZZZZZZIZZZZZZZSSTTTTTTCCCCCCCCCEEEVVVWWWWWMMMMMMMMZZZRZRRRRLLLLLLLLLL +EEEAAAAAAABJJJJJJJJQQQQQQNFFFFFFFFFFFFFFFNNNXXXXXXXVVVVVVYYYYYYUEEUZZZZZZZZZZZZZZZZZZZZZZTTTTCCCCCCCCCEEEVVVWWWWWWMMMMMMZZZZZZZRRRLLLLLLLLLL +EEEEAAAAAAAJJJJJJJJJQQQQQNNNFFFFFFFFFFFFFXXXXXXXXXXXVUVVVVYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZTTTTCCCCCCCCCEERREMRRRWWMMMMMZZZZZZZZZZRRLLLLLLLLLL +EEEEEAAAAAAAAJJJJTJQQQQQQNNFFKKFFFFFFFCCCCXXXXXXXXXXVVVVVYYYYYYYZZZZZZZZZZZZZZSZZZZZZZZZZTTTCCCCCCCCCCERRRRRRRRWWWWMMMZZZZZZZZZRRRLILLLLLLLL +EEEEAAAAAAAAPPPJJRQQQQQQQQQKKKKKKFFFFFFCCCCXXXXXXXXXXXYVVYYYYYYYZZZZZZZZZZZOZZZZZZZZZZZZZTTTTCCCCCCCCEERRRRRRRRRRWWMMMZZZZZZZZZZIIIIIILLLLLL +EEEEAAAQCCAAPPPPRRRRQQQQQQQKGGKXKFFFFCCCCCCCXXXXXXXYYYYYYYYYYYYZZZZZZZZZZZZSZZZZZZZZZZZZZTTTCCCCCEEEEEEEERRRRRRRRRWWWMZZZZZZZZZZZIIIIIILLLLL +EEEEEEECCCCPPPPPRRRURQQRQQQKGKKKKKKFCCCCCCCCCCCCCCXXXYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZTTTCTTTCEEEEEEERRRRRRRRRRWWWWZZZZZZZZZZIIIIIIILILLL +EEEEEEECCCCPPPPRRRRRRRRRQQQKKKKKKKKCCCCCCCCCCCCCCCCNYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZSTTTTTTTTTEEEEERRRRRRRRRRRWWWZZZZZZZZZZIIIIIIAIILLL +EEEEEEEEEEEEPPRRRRRRRRRRQQQKKKKKKKKXXCCCCCCCCCCNCCCNYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZSSTTSTTSSEEEEEERRERRRRRRRXWWZZZZZZZZZAZIIIIIIIIIILL +EEEEEEEEEEEKRRRRRRRRRRLRKKKKKKKKKCXXXCCCCCCCCCCNCCCNYYYYYYYYYYYZZZZZXXZZXXXXZZZZQSSSSSSSTTTTSSSSSSSSEEEEEEERLRRRRRWWWWWZZZZSZZZIIIIIIIIIXXXL +EEEEEEEEEEFRRRRRRRRRRRRTKKKKKKKKCCCXXCCCCCCCCCCNNNNNNXXXXXXYYYYYQQUXXXXXXXXXZZZZZZZZZZSSSTTTSSSSSSSSSEEEEELLLLRRRRRWWJPZSSSSZZIIIIIIIIIIXXXX +EEEMEEEEEEFFFRRRRRRRRRTTKKEKKKKKKCCCCCCCCCCCCCNNNNNNXXXXXXXXXXXXQQUXXXXXXXXXZZZZZZZZZZSSCTTTTUSSSSSSEEEEEELLRRRRRRRJJJJSSSZZZZIIIIIIIIIIXXXX +EEEMMEEEEEFFRRRRRRRRRRRKKKKKKCKCCCCCWCCCCCCCCCCCNNNNNNNXXXXXXXXXQQQQXXXXXXXXZZZZZZZZZZSCCTTTTTTEESSEEEEEEEEEERRRJRRJJJJJSSSZZSIIIIIIIIIIXXXX +MMMMMMMMEEERRRRRRRRRRRDDDKKKKCCCCCCCCCCCCCCCCCNNNNNNNNNNXXXXXXXQQQQQQQXXXXXXXXOZZZZZZZSSSTTTTTTEEEEEEEEEEEEEEREJJAJJJJJJSJSSSSIIIIIIIIIXXXXX +MMMMMMMMEKKRRRRRRRRRRRDDDDKKKCCCCCCCHCCCCCCCCCNNNNNNNNNNXXXXXXXQQQQQQQNNXXXXXXOZZZZZZZSSRTTTTTTEEEEEEEEEEEEEEEEJJJJJJJJJJJSSSSSIIIIIIIXXXXXX +OMMMMMMKKKKKRRRRRRRRRRDDDDKKKKCJCCCCHCCCCCCCCCCNNNNNNNXXXXXXXXXQQQQQQQQQQXXXXXOZZZZZZZIITTTTTTTTTEEEEEEEEEEEEEEEEJJJJJJJJJSSSSIIIIIIIIXXXXXX +OOOMMMKKKKKKKRRRRHRRRDDDDDKKKCCCCRCHHHHCCCCCCCCCNNNNNNNXXXXXXXQQQQQQQQQQQQQXXXXOOOOOIIIIITTTTTTEEEEEEEEEEEEEEEEEEJJJJJJJJSSSSSSSIIIIXXXXXXXX \ No newline at end of file