Dot Net Perls
Top 37 C# Example Pages

["+tdwrysd.%bCCST~~}T~~YF688G57556F]B*BXCEP6845755464F*CCXS}T~~}T~~","ToDictionary"," converts a collection into a Dictionary. It works on IEnumerable collections such as arrays and Lists. We can it to optimize performance\u2014while retaining short and clear code. This method simplifies the demands of the code.","First,"," this is an example of using the ToDictionary method in LINQ. We have built many Dictionary instances before. You simply loop over each element in your array and add it to the dictionary if it isn't already there. ","Tip: ","LINQ gives us an extension method called ToDictionary, which can greatly simplify some code.","Important: ","The 2 arguments to ToDictionary are lambdas: the first sets each key, and the second sets each value.","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto","Based on:"," .NET 4.7 (2017)\n\n","C# program that uses ToDictionary","\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nclass Program\n{\n static void Main()\n {","\n // Example integer array.\n ","int[] values = new int[]\n {\n ","1",",\n ","3",",\n ","5",",\n ","7","\n };","\n\n // First argument is the key, second the value.\n ","Dictionary<int, bool>"," dictionary =\n values.","ToDictionary","(v ","=>"," v, v ","=>"," true);","\n\n // Display all keys and values.\n ","foreach (KeyValuePair<int, bool> pair in dictionary)\n {\n Console.WriteLine(pair);\n }\n }\n}\n\n","Output","\n\n[1, True]\n[3, True]\n[5, True]\n[7, True]","ToDictionary has 2 arguments."," There is a single argument and a 2 argument version of ToDictionary. The first argument uses lambda expressions to set the key, and the second for values. The Dictionary used here is an int Dictionary. ","Int ","int","Lambda expressions."," Look at the \"v => v\" style lines. Lambda can be expressed as \"goes to,\" meaning each item in the array goes to itself. There is more detailed information on this site about lambda expressions. ","Lambdas ","lambda","Example 2."," You can use this method with a List of strings. Dictionaries are most useful for strings and string lookups. This allows us to use a number (hash code) in place of a string, greatly speeding things up. ","Also: ","Here we use the var keyword to simplify the syntax. This reduces repetitive syntax.","Var ","var","C# program that uses ToDictionary and List","\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\n\nclass Program\n{\n static void Main()\n {","\n // Example with strings and List.\n ","List<string> list = new List<string>()\n {\n ","\"cat\"",",\n ","\"dog\"",",\n ","\"animal\"","\n };\n ","var"," animals = list.","ToDictionary","(x ","=>"," x, x ","=>"," true);\n if (animals.ContainsKey(","\"dog\"","))\n {","\n // This is in the Dictionary.\n ","Console.WriteLine(","\"dog exists\"",");\n }\n }\n}\n\n","Output","\n\ndog exists","LINQ."," The benefit of LINQ is that it allows us to use fewer lines of boilerplate code to insert elements into a Dictionary. This reduces lines of code and typos. It is elegant and fits well with other LINQ code. ","Note: ","LINQ methods are significantly slower, but will scale equally well. Some programmers may not understand lambda syntax.","Caution: ","Sometimes, using ToDictionary may prevent you from combining the loop with another operation, also leading to inefficient code.","Summary."," We used LINQ and the ToDictionary extension method to quickly transform one kind of collection such as an array or List into a Dictionary collection. This provides constant-time lookups. ","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","3679700504","data-ad-format","link","ins","class","adsbygoogle","data-ad-client","ca-pub-4712093147740724","data-ad-slot","6227126509","data-ad-format","auto"]

%iVBORw0KG;)NSUhEUg?AHY?ABbCAM?ACRS4HL)DFBMVEX::R0dHr6+u9vb03N4B1?ABZ0lEQVR4Xu3ZwQ7.AhF0Xlv/v+f3ai4aJDe0BoTWDOcltimworwM9a9sZ/xK3bYYYcddthhhx12WFvSfoUk+xArhmvk4VnZ17FhHsrXsC5U6GdVKKFu1tUijOVquJzNVckR0rEbGW/gMPIHPkx/+YW3vS4UqEAKZB1o6Zl2DxtqsSctrEItJrqDBa+xBtZ5i/Pb5azKpwIQYJNS5BKDRT02SAYs6HEI6mJFsjmb9Djrche77mSjDmhOA6siqx5WkNV5dlgXWfewG7K7nR122GGHHVaQ1R+w83UB2B9+Of7ld/KCLHn2+Rl3sQqWPm/i7Na9rNHfakM2Ag0RUMPAoQxwsKDLpqm+eEL0behoNnOkiRt1+fSE1WDIlNUTyzK83QgXcrKJtIFb2xU4H+n7c4chKbkSndiM6Oye0WzlVVCXGLvE1HAv3bYZ9EvFLSoroJTlsAyOB4vkMHP5k5Zku3E3n9sOrD0eRUsd7kaAx8c)ASUVORK5CYII=$/9j/2wCE?gGBgYGBggGBggMCAcIDA4KCAgKDhANDQ4NDRARDA4NDQ4MEQ8SExQTEg8YGBoaGBgjIiIiIycnJycnJycnJycB.gI.oJCw@Cw4LDQsOEQ4ODg4REw0NDg0NExgRDw8PDxEYFhcUFBQXFhoaGBgaGiEhICEhJycnJycnJycnJ:BABEIAJIA8AMAIgABEQECEQH/xACH?ABBQEB))))AQIDBAUGBx?AQMCAwUEBwUFBwUB)AgABAwQRBRIhBhMiMVEyQWFxBxQjQlKBkRUzcqGxNWJ0s8EkNHOy0fDxFlNUkqLhEQACAgAEBAUF?MB))AQIREiFBUQMxYYEicZGhsRMyQmLBBNHw8f/a?wD?ABAQIBAD8A9/QhCABCEIAEIQgAQhCABCEIAEIQgASXZKq2+a6RuhUrLKFWergEshSCJ2zZbtfzUjTATMQu2vzZGJBTJdEaKHesjeMi0BMkuyi3rKIp2SYkFFjO10o@MypNPqpBmRiQtFrRLoq++ZLvmS2hKJ0KPeMnZmSiDkWZJmZJmZACpubTkkI2VaSV01uhUXUIQnCAhCEACEIQAIQh?hCEACEIQALG3j5n81srDduJ/N1Dxvx7knD1KVXRhXYhFPUP8A2eGJxycnIyfr0FlTxEpcDpzxLCs0kULsVXRXcs0TPxFHrwkLaq9UO91nVlXSU4P65PHCEjF96bBw24u07adVC3l/R64jUkqxJZOO6NesxeloMPPE6k8tNGDSeLt7rC3e73sy4j13bfaCZ56emkpqW+aIDdogYb8Pb1Pzsucwra2i3+FUGMyF9n4M0x8DOYzziTjTl+EA5eK9NwjH4cbDf0NPO1J/5MwbsS/w9bnq1ndNxuT5+hZcHwE39PE3fikvClpXV8yXC6nH5WL7XghgyN2ozzlIXxW5Cyukbpk84whmK/O2nVVQqX30guL5RZvm7+Hcn40tfUrtOVywpLoXRN7qTePZVI5WkmeOz8AsWraOxX5fRNmxCjhrIcPllYaqoEihjs/Fl7WtrfmjFld5XQmF8qLMk79VE1W/VQzyhmeLXN72nK+rKiVRHmkG/wByzbzR9Gtf9EmP/Q1robQVb9VcCfTmuUfFoRqY6QRM5ZInqMoDyBuT/N9G8Vs0E4VVME0b5oz7Jdbfpqnx4mwmHc0pJ+AivpZ3SBPmbnpZnb6LPgrYaynOaldzEXMNWdrkHPR9ealeVhdhfnZ3+iXHrYuHSi0cqiI1UKpHLnsXhdtfopM2n+3RjT16hho3UIQrBECEIQAIQh?hCEACEIQAIQh?sZ21fzWysZ34n81Dxvx7knD17FOrZxBztrZ3t18FxtXstTYjXRYlXnLLV2fNJmcBjG3DHHHqzNrr9ea7qQdFkVDyRzZMnBbtPe7+WirySerHqUou45Pcxo9mNnYY92OHQ878Q5v813W1RytSRjTxj7EGsAfD5KFydIBFfkkTSqhrlN85N+bs2BkaRuqVxZUIzKN26dFbZ96OhJ4qd9CUTa6lZ2VZoHv2n1t9FK5NHGWtsrO/K/LwSpvYHWg2pFrKg9rq0MoSWDM5vbNqzs/wCajOky31ctXLV7vq97fJJ9zyEaogYmutGnfgWdHRbrLxmXPUnu73e93WhEIkzapVe2fmIOY3KRw+n5KV3aybuBuRXe5flozafRQVcBSxFEEjxZrcYszuzM7Xaz9eSVYleWu+grocTtdTBazKlHAURNx3jEGHLze7e9mv0VmO90qvVUIb6EIVkjBCEIAEIQgAQhCABCEIAEIQgAWM/afzWysIpGzP5qHjfj3JOGPVapjA25a9zpsldTgWTO2bll569FBBW0ldLNTRyDJLDb1iISu4O/LNbyVdzj9tpkmB1bTreivJHlTIyG5NfUe03Raj0sUls7eLav0somw6CP7u/TV76NybVLhGNbEUTBID99ns/myZMcgM4QF7Sz5bWd72u2jq7FTjGzizaXvr1TvVod482Qd7bLntxWbuuklCUlQ6LS0szMKlxKxeuOxR24b2cr+bdysVFUPtAsRvld3EWu/LkysOAg3C1m8FE4hmcsrZuvekUJKKjf9HOcXJ5V0Q6.LRFlcTMW5tq2jO7OkfEqQgKQSfdgQgUluFnJ++/R+afGXE+lm0s/VWRspFiayaXYa61XuMceHld+jKGSaSBiyU5nq2XI17uV318L81eZmTmFOcXvQ1NbWUHKcpmzxuO7Bn6i7u2rA/m9k7eOeqtStoqTvqkqnz5g3enIc6fG6rFIq5T1Ay+zdsvlohyrfsIlZ2KEIVojBCEIAEIQgAQhCABCEIAEIQgAXGSzVE5lHDw6vmK67NctFDuyLzdV/8AITeHPcm4LSxZW8qsip8OigbeSvnL6Mybhn2XWEWKUMYict4zly5SPK/5rQ0VWeliqqaakjZo94JR5xazhduY8tWVelGqS8tXLTMlUnK8TduleijrkXkqjp4QpoIaYSf2YCAZn4nyMw3fr4qaymImIwoIVLZDiloSyqYaKhIEu/7XBl05eXzWlM3D2siiancicifM1m7rdUklf/ovLYrwxMDvlvxPm5u+r+asizrMPaDBo3qx9bDNQi5VQ63Cz5H+ebSyv01SFVTxVMd8kwDIHWxMxNf6pVHoMbssiSWarpqUGkqZQhC9s0hMLXfuuuSr8UxCj2zw6iOZ/s2thLLFYWtLY++2Z/d7+9G1TNXYxs7hOvHVPVSC3LLTjm/PVPCzr5eyqB83V8uyqZpsgKp2ThDRlUeoL1l4ZIyF8zZO9nYnsz3WpHHoyZF3fQdR0aEIVsiBCEIAEIQgAQhCABCEIAELC2p2jfZujhqRpJKw55NzHFF8WVz105cK2oic4gP4hZ/yRegD1hFFxP5rdd2+S5ifaDAoKj1abEacJ82Xd7wdNe9r6KLiq67j4OrM/GMKYJPt2mI/XKQXPJmfJIFtQt3N36c1depOpamp6cminqomlz27A2u/D16K/UwlU05wCTCMouObn2m7lxO10lfsthsGIUtQ0tSUwU0RmP3ceSQny62fstzUGB4vD0J1OODxPON4V8HWU2B0NHUtW5pJarK4b+aRyJ+vgp6mrjpxH3s75RXG41s9imK4I9fi1fL9ow0+eOmgfJAxCObiG1yIu97+Wim2OkPEdnaGard5ZYnMRMne9hN8t+ulmT3Hw+HcilOUn4m7OokxCGGKSWSQRCJnKQr/?s5FfyZcxBjm1e0QlUYBBTUmHXfdVNY5OcjC+VyEA5a9WS7YAFHsviJwCw8MYeNjlEH18jdaey7xRYBQZXYYxpYSMr6N7MSLXzdKnXqN5sxdiMbxjFJcZgxiVpfUcgBGIiIjrKJszi2vYbmu4E48o8Tdli+XVef+jWQJsW2jliJijkmAwLqJHOvRXjD4Wva2rd3RLJU/QVcjyrZ3CaCv2j2jq62MZCoqsnhz3yjnml4svvO2TRnXehVwZWLNlHi4bOz+z7Wngy53YyirKbGtpqiogkihqKp9xIYuLGzSzag/e3Ey6/I8hPy4X068v8A9ST+70Eo4rbpwhDCsajf9nVcZH/hnY/o+Rk+ixGixja88SppWno8PoWACHlvZjf4u/Ldl1ldh1JX0xUtbEM1OVnKMv3XYv1ZcxsFRUsYYvW0sTR081aYU46/dQvwde8nTg1OtaojOY6YX9oAsZD35S7L26KExch3glw9rl3f8K7lG+ezZrdq2tul1Ulk3TsG79lYu5rX0t8nu6ZLJZsclfIoFFH6005EWUBHhtpzexdVpA7JMg25Nl8tEt2ukSruKbyEju1udvNNGWInyiYl5O11aIR6ELA2rLaX1SCPZhg9aOT2pyWyjHlfi4u/NZDA30JkTFugz9rK2bv1sqeMYxQ4HQSYhiEm7hj+pF8I9XdAF9C47CtqNpcZqoDgwEqbC5C/vdRI2bJ8W75rsUiA47GNsZML2voNn5Gijo6gBkmqjd9M284ejXIG18V1VJWUtdD6xRzDPDdx3sbsQu4vrr4PovI8X2dp5fSZSYbiEh1dNXN6wYmT/DKW6HoPAvWcPw+jwulCioIRgpwvkjHz/qgU5/bzaSfZjDaetpoI55ZZtz7W/DwEebT8K6eEnKGMi5kLfWy899MX7Bof4xv5Ui9Bp/uIvwD+iNRDjvSHiNYEWHYFQyvDNi87QHKL9mK7Z/8AMsraLYrAKXZut9UpRjnpYSmCo13j7ts/EXfm5J/pPeWhrMAx7dvJDQTvvfmQH+eSygxva2k2gw88G2cY6uuxAd0XAQjEB9veETW7N2TJXaocqpm7sXUS1OzGGyzO5HusnV3YHcG/Jlg+le32DSfxY/ypV1uD0DYVhdJh983q8QxkX71uJ/m6qbQbPUe0NPHS1hyBFHK03s3ZnfKJBa9i04ky/F3HVkTYoQjhs2Z+1Ebf/Drl9hZoYNlYJJS4QeYi0flvCXXVe73YxnbL2eK1n0tayrRlFH7KPKOX3Bs1mTby7iPmVcUohxvB6ij1j9ajfJmbVteAnbpdmdYWBbL4zSwR4bjGJBJhYk+Wji9/9wjMRPL+6y6sphFubfNMoAhH1fNxZIGMc73s721Q50EVdlPB9modnCk+yI3/ALUY+sSSnmsAE+gjZu4nZbgSy7ws7Nl9y3Nm8UPMHxNyvz7uqYxsV3HVFjhSkPMWdmGP3defi/RR2IhLdnlzu3EzXtyTHf23ETs1nJ2d9NLN/VNKtpwEN2QmO83PA7PYrdl03Es7e+o6nlSJSjqdw8e8Yjyu2cmtr3PwpkFN6pThBRxwwCNs0YDlD97LlUo1MJOQiY5gtns/J35XTZJWFnIXYufDdr6c/oyW1uxM75exKIbuEYgJ+FmHNzfRQHHwtmJy56+afNKMYNmJhzOwjra7vyZUgZ7vlPKMZtm1s1rM/wDVJNrlWlCxT53XYtSxSTRkEcjxETWz2vbXXooSp6iEYckwkAX35TXuV291+7i7n7laAx6qtiJU5wSRyOJGGU8r3uPFoXDyvqklVOSefmCvJfyzidksNxjbymqK7Gcbqhghm3W4gJo83Dn91stuLoqu1OzX/QVbhuN4RVTbs5mGbeFrpx+62rEN73XQ+h39g138Y/8AKjS+l1t7hOG0ov7SWsHL/wChj+pK0QnoUZZ4wP4mb9Fw/pTxTEMKwSllw6oOmklqWjM4393dmX6su2hb2Mf4R/RefemL9g0P8Y38qRLoIeg0/wBxF+Af0XnnpNkabE9m8Ll/u1TVMUw358ccf6SOvQ6f7iL8A/ouO9Iey+IbQU1JU4Vb12hNyAL5bsVuyXc7OLOjQU7MBEAEAbhFmYejMycuMwWL0hVM1OWMzUtJSwu29jjHNLLb4tcrX8F2aEIeV7X4hT4L6ScKxWuuNJFTjnMWcv8AvBy5++y9GwjFaXGqEMRos3q8jluyMXG+V8ubKWtn7lLU4dQVhhJV00U5x9gpAYrfVlYERBmEWYR8NGRQHObZbLntXRUtCNQ1MMM++OTLnvwEGW1/3l0UY5IwD4Rb9E5CWgI5oIaiN4p4xlj+A2Z2dY8UNNTM4U8QRDf3BYVuLCcuJ/NQ8Z1Q+GpPm0UTu3FxP/ojMqjjUZ5CEW4ia2t2s12zfooJS7kiXPOiviMUZHDKbv7O+Ub8N2dtXbqqEUIRzlNG7+0JzLW7XJtbdFpTQ1E45DjF2t1Z26O2qWGgaJm1blpZrM3kmZt8vYJLqENNGRb6QbnbL4WvflyVsI4uWVuWXRvd6eSrFfM8UcojLYS7ndmvzcbto9nZSMWR+J/+E7EtvgMOzJ91F8LXtb5dE4WHlyUIkRFmzcDt2fHrdDCfDc/N7WulT/X4DzY+aGKeM4ZBYgkZxMX5Oz82UDUVKAxDuhtD934O/epYhkE5M7tld7hzvbo6htOcpnvR3VvZCzPpo3a111uh1zcc+QZ8k+pMFPT3It2PGzsejXdn5s6e9PBmz5GzXYm82a1/ooQppAGMRmewNy53dnvq97vpopnaX4m5v3d3T5Jy6w+Ab/b5HSQQVAMEwDIN2LiZnbML3Z/klOGImLMLWPt6c9La/RRDMwdsmuhpm142593RLd6Cdx+QEPHAblmASc2bNdme7M92Z/JQFGZsfte1py0Zr8reSQx3UY5pmiy2ZjKzN+aS2vw+Ar9vk879Hu2eGbOYXV0VXHNLUSz72GKAM+bgEf1FdFTUWM7bY9RYxilGeH4Nh5bymp5fvJD0LMQ/Jl3NFg+FYcP9ho4af/DARV1WqIgWZjWAYbtBFDBikTzQwSb0Y8zjx2cb8L9HdaaEoggiwCID7rN+SVCEACEIQAIQh?hCEACwijfM/mt1VNw11HxI4h0XRnZX6KtT1DyHMBD91Jk6s7dz3/VbW4ZM9XbXK3ionw2PxrVGFXVcA2hNqjNnyexF7sTs+TX9/uvp1T8OkkmiLORSCDtlkkHJJ+.bWzByd20dbe5Tdyk+kLjVVRzYvMFRLXDQuO8sBnf2jtdhZ8uW9tL2TjqJ5X4Kcsty1LR3Zm55X1WzIwZnD4Wci6MzJvq+iifC2l1HY1t7soU0plGOeN47NbXwRQ13rhzhuZIdy4/eNa+Zuiu7jVvyTCOGKXc657ORaXszNe5fJk5RkqC07y5+xXOskGpemGmkLhzb7Td+V7802lKQR9qDho3jq7v0U9MbyQBLIz3Pw0a2j28FZGMd44X1b/AEukUW2pYvK61C6tV/yIGkIjKPKXC3atZnfozqthdQVXTlUWPITuIjI/E2W97td7arTkpXLL8/pZ1I0IxxjprZlIoSxZvcbiVVvRjzA+ZtH4nsoZDaGOSXIZjEz5sjXfnrblyXQPTMh6TRvNL9IZZlxjJZunNRztFUgBzRkUQX5Ws/yfxW4NM1uSe1OPRO+lYKVMsoUCFOMJ0KBCAJ0KBCAJ0KBCAJ0KBCAJ0KBCAJ0y6jQkAkukumIQKOZ3u6E1.Bhe/5f0SN2G8lIhNFIkj9t/wAKmQkFIR7LeSQfvy8mU6EMA6f77krPxD5JEJw0dfXmlvpzTEJQJLuo5CJgd7uhCUD/2Q==%iVBORw0KG;)NSUhEUg?AMs?ADhCAM?ABRErFR)MFBMVEX::8+fr:P304+325/D69Pj26vH57/SjD2a7VY7Ogqz74OzYpsDjzNbivM/y2OTrIiD8?ADWUlEQVR4XuzczWrDMBBFYS3v/Eh+/7ctpQ3BGQo4RIpTn1ndnflWPpDgJskiwiT9ORURXucWkb+zR4zfmRHbbbaHk2S9d5O0n9pPr3P0nnVm77fnemuSfA/wOveWvFtGtYxnLFYAhy35bYl5Vy193rVmNk0iPVrMpkmk1iIWWnq/oAWL+UKL+VSLtNAivd+CJXOhxf0/vStPa8Fi0ySmYqFh3mTBQsPQMFjSL9swNAwNQ8PQMFjcF1qchsHy0nMa5tnDQsPMtRgNs8CCxfNjG4aGweK20OJGw2ChYWiYM1mwJA1Dw9AwNMwVLFjMFlrMaBgsNAwNcxYLDWM0zCELFhpm2xY2zBg0zAUtORZaMmkYLK88u27D0DBYaBgaBsugYWgYGoaGuYIFi69umNFXvl9oGBrmFUfDYKFhaBgsNMzy9wsNcznLR3cyDYPFVlpMNAwWGubIf+BzasPQMFjO+3slDSNlROjnfD+tTNtPL1P3WS2Ssvd+e8Juls/DH/xofLXU+fwX/KulAuq02zz4Bf8vdukgBYIYhILo33QoG03uf9sRIX2CARLwAX9tgfqf1lprrbXWWluxKY1IQzl6cpaKhrvHo9MZm5KTfAERgKk4ZZ3fYgYYKIWBxQR8GMwvxUjj+BYPMIGSJpheyDVMSQN4FYDrbNOjWty/w2Ukge88QjIwHa9aNoNFIiC+F1vVwmUtLzhY7fO1xJUtTnpr7UtlStz3Y4vkUavyADYccJ3OSWgjrdpQ0aRgz20tBtSiLYz0Vsr9RoRu0VprrbXWWvu1W3crCEJBFIXb8/v+bxxKJGphDXQYbc/VRjjAd+XS+UxEcjfjxdw+BJBHM6YxwGLzhYj4MvPdVN0+BJAfzCEW+erCnhZ8dWHtLCJFCzDAYlG0WLSzqBUtaie3ZBYtme0spkWL6QUstNCSWbREtrOIFC1AC0v/hmHDRBYtwYbpY3EvWpwN08tCCy1Rbpj4u4ahhQ2T5YbJCzQMG8ZbWdgwtNBiUbQYG+YXRwtQtMAHWNKLDZNsmD4W4CINw4ahhZZoa2HDsGHa/V+83DDeqGHYMN0sbBhaaKEFYMOc3+J+yYZxNsxPLWoGEdh08/T9lGWuHwKP78dziEV1Aqjq+ynLXD8Eng+P5u0OPSdCoM89JxE)ASUVORK5CYII=%iVBORw0KG;)NSUhEUg?AJY?ABdCAM?ABw8G+n)GFBMVEX:/+DvOv76rDR5flpsu/a3MKayPD88s5VVf4y?ABmElEQVR4Xu3aC2rDQAwGYUv7uv+NGyiw0CwZGjeMgP4n+DCDiXCuj6/13i5hqAKXpup9llOBS1X1Hq2gCgITVOVc/edmqbL2ooYrtqhU+NtVK7BZ1DVKhp85Coafj41y4ef3igWWWdGVe5XCXy9dobcF4ZsPjAPzXRzYvLlGrvfC7zc3bwYmsJ5dGYfAFBaH77A4MIfFLofF4UssDt9hcfgOiwMTWL92jbsDypvh582tP/1J4bDY5bA4MIXFgU2FxW/WaA6LA1NYHFgzWPy8wmI99kplbjcv3NsQ2IhDWLbrmLu/56xGSVXm+vBVzXuOPR/LT54YvNbPqswlsc6qsd+FDusce+45rHPse1Jb7Rz7TkthnbPaKoPFKoPFsTuseBX7uhxW6xC7cFVjVtJVPUFlsDh2hdUgdoPFsRssjt1gcewOKyB2gcVZGSxWCYOsqqrq/CfJV/lZ/cd+n8VZ+a5IUAkuyEpwgcpxQezWAmJ3lhlK7PxRICArRbX3r2IWZeW7ripb@XmApXmApXrusptQVaa6w3VFyLLQb5f38Lo)AElFTkSuQmCC%iVBORw0KG;)NSUhEUg?ANw)8CAM)6w.x)GFBMVEX::w9f5kb9TGyu3b6P6hp+K71v8AIMVWWs88?AErklEQVR4XtWa63LiMAxGVzf6/m+8Q0yR1SPUUmY65PtJEsfHujrm359IPw6N9/jl0L/TabHpCHc5KZwvuJjYZLH5u9sA07QFZz+Akze3AeFiwclbhtzzNvBiA4W53xKONqDED+1PHbIRTpb+HulJGxySs6e92QZnE0Pu/GLInVNuK/jN55Cb5Ugfk45Xmnw/KR+Dwa96HA6mH7t0H85V9fOy3uRHgN0ePbTI9Oa6IvWSyD2Nhl4V17vvr3PMdw33kYolVbVC5peU31XRIN08krIDTrbLORdfcKVrXotbfCDqeEXbwJShRlIlWVCxeSS1UuM+2bsdlB1bwmXa/TIq/E74Wt4KKMDFN0M0bJpwfiPAqiTHHU6wkngKbBTZKNhNwywiVoDpaNdIOFw2lI8CFzW2FwPycN4WZtXKSp90keqf/sXrSpy6+Y+qHO2uJk35kITT/d5FgbHTvnowS3TmlUridy4Mo/LLKqfFENKXj0zWAk9UTJw/SleJkq1uSTiM/7axLIYokjnkrNo3aDhm7MZwPu0uMDQ03mRA+2HIWYIQLotKpW12SpK0gPOpZ8T7qSAaZ7jgZPdiGwdHUSEcvZBwRrhxmvPXLRH6cu1PwNbNQPBTPIITmLL1booEVD6+GHgpDVdKHw0MXp+CXh7AYRz4VU8wb/OWfejLCZck1tiecHwN4UDrbbZTtuckkL7W2iebPA45kMAosBxS+mA5Jhh2DIwrpj3hst8ILrxUQ44kAqMgyyF2CJclfWjiWv+MMs0cEkmjDD2H3JyJa2PRNzEVxi8VlnRoVkDg2eSwNS4O7ww5ZkbmE7aEpmgqgSOfbHQ8i5FOKkHS5WQJR19mG9dHYeljVB+uuWSbXHYDlIX2+w8SLGGyBxzziXQhN2ZiSWSseFEygQ2SNKA+LOGScHDYhMOlWsJjPClxGWJloqNP9uHXhVwZ0l3gsLXqPBdy+ZP4wlBmuZnOKz4lhKPjJNwvQ87HkMt1WFLUJ0Tdms+ouV2Ifb1qi++Ae6GEF58g1dBdzuK76DgJhzqd75m7Zh1Dbl+2GNnYS85yvp6+5FcJ6nRdRITcUMIZco6SAaG5nMXdPX2pbDwd+eSprhmFL+EsTfwiHPtMb+CkfL0WKZMFXBty8YOQk33k8NEr5yRpZvvdyhpOay46Ydec/v9K1yz1Y7MqDgpYB9qDAs/nLWJB0NXvyOuj5lpdhtxtGa96umu2DS5ntilsKgRpQgwNOX2VH9IZcrmKL3bN+Z2SZXzuvqQOTSne1MBh2Tc4kWe7ZsX+sVPAbpSXoaFgfFph7zOdVMsFjndIkt4bvauofn+64w9t5xaKb+Hz4Z3GBpcHc4VO8gyu5pNDsacOPWRdf6tyzHCbovYfm6UcFDBl4kS1PeAsuRVaGC8f9zM55xkkqkBzBnmGs3frgK39FIQf31MsfH3FaHdv8tZwaGIIhwOPc8EpDAdk7AaAfB447lW898qzwGl7PB60EYvDCZJldP28oBDAbqeoBNkoeZ5WojtBkXvTdMJGNsJKAxVwwdXIuqO1fHPTUTHsB8B2Mjrr0j6b5hPScaviJzEbJXWv0p+JOnbh55Hhz5/D/ywbsv9huWAxbhOvjw)BJRU5Er@ggg==%iVBORw0KG;)NSUhEUg?AK)BiCAM?ADgMSig)GFBMVEX::evu/06vnm5/nm1PT1/v/WpOns/v9gQvwO?ADaUlEQVR4Xu2b4WrEMAyDJ9tp3/+Nt4MSFkS/48JKOqh+VndFsa1UzW1fnyPi655o+w9K2w+Uy8W0tmeWtHVif0HbAbV1wiKrpEOIBn1bxwKFXcSA+t1f/Wa0SGCOAvOcikUuMBVWwAO1QKCrsOav7PHuAgUCt9t4ZL1AMIIXt0N38EgDru7gEa7u+hEUqK8beaSzWrnJNOhi52XS13rEP5GlbVN15au3acb6EbydwLyhQI4yjPVRBnArj7QXNKB+UVEDol/PKvT78MGqdAkbe4TGkwbjdTX13mrt+GCH0msEIgK2cEjarjlo6kdYakeP?eDYYuxIg6rRgR6ZC5p167NUOBJQuMoAyrOB0NQinGgtA3Tt0fv0jUeYTTM7nEykRxlPnwbZRTr8xK998inb6MdlXYzHqc48Rt7RJNvo+Ul8onZZTJ2sOmER2AwThqis2YVSSAfABcwGKelPVkUdEPT23SDwWCBzoTV4VKP1BcOlC9XuI+gD6D0dFzHAr2AWCPyAXEwGLgqb4egUeyRhNKTR0AgFNCYy6IMTDxM4CEwrEbgA+A023z/RvGzFso76ZHAFbsKa+LVUabBNkgW4WOD9mdxnz3ilxNrNHdyySrOV1XQYWvUZXGfPeId5hpdEGWg+QEehhrNRJmcaf7m9/Jn7bVxn/cf2b28ifNR5g89ogmP7PNxP8AjRu3gkQuiDHhkn/XI9XGfPeICL4kybSbKiE38XqD+KO7DK11zgVaji6NM4o/friLAw5fHfRnlAhvMLHskiJs6D2mwDRox7xEuk9jEroNOyAIFQgHJIzy4LrBZlwYOCgxLAy4+FRj+QOrgs9gwAjhbNLfYX6Pa7ueyYoGCM261M86sz4/ifrG9Lnq24NPsykzrLnMigZvKv6XW+5sWZcAkIxI4PqB8D+Vxkl5uU4irA3LgAPzgYgiizNARRwL3ySsEA04uecHageP8NrI8MBBluIQi7mTRPDXpwjdB3OeWJHB1knGxKQov7SZIvqhQDTjIb6aQI1dC8qUbKojjRXeJKbvjIfEgVBz3/Lfl0otXBXEQZexbJbvjwUYERbr1eP6Y4/mDp/X4vx5pj0cmRvDxyCTaf/TIrTrcnm36in+xWYzHI0+UWYknyjxxX3Ffj6gS1C32iCraLf9h+UdVqbBw3z02qTwI82/M)AElFTkSuQmCC%iVBORw0KG;)NSUhEUg?AMk?ABhCAM?ABLV3W0)YFBMVEX+:/q:3j:zc:zy:7ojyrh7P3UiTj5:4d9+/3lB3ZNKX1nzP3Hbf1NL5Fvrnk8P7s7u3uwn3uftVy+vXx9PTr9f7d6v7m9ebp6em4f0hoaWm0/fnpyOvp5caVWYCLfXim?ACzUlEQVR4Xu3c2Y7iMBCG0S4vWdj3pbd5/7ccyK+O0zFIccUam0x9l0gldHDTEKnCW/ZJ1fCynEdVeNnM+w4zPFgymXd1GKGYHOZdPw4KCRaUct6DgKGGBgwoied/S4wBQw8NGFASz3uQy24xC2mxuxDhhM0dUuxXy5BW++LXvD7UYR10nwLINxxBlm8ig4i+4AiyfHXmP+vwPkHpHgnRBZBASnMqOBF?ilFO69rTpoIh9I5kt2M0w4SItovOe3b+QNLcsChdCVqwZIsVEMhUiuWZNXO17xUT0KkZrwUIbXkhfkxEoIEkDESUBRX0s6PkIACCSndAqwty9LagRINidIOMG8aKGnnmRKtnknK959Ky5HM/7TxJeuPpnESKJBlS9CcIQEExTgTVPIliCGBI6IEDZIoTxJyKO2854gqsf9e8hFNgn9aliUBBZ7EZ4L4EhdHguJJLP994pqPkqzXsSWWIwEELRmS9bquo0tmLImDzBkSaBL/dfmQfCSWI3GQlJIep2RIHCSxpERciYPcSyp5j/kZH10iknI2AQkgLy1x73Y7e1UJLyfh5SSMJioRiUhEIhKRiEQkIhGJSEQiEhopobwlIhHJdHYkprG3MqFdolj7XTRyv4si7HdNZ+ducnuQ6XdTTYTd1PT7wgbjwfPaPX8eO9yAgALL0NzzJ96rh8Owx918+nsdvFcCBb8OSe8/8R38VzKHe4LMcXt1bY/mR7M5d9u0AKW7qUaS9j4tZK69tgbAc6/CAK77GUASBvHVa9tIzl5FI9F+kKSmHB9IjjfIyYcUpxuEtB9BkpiyfSC5H0rxQLK5SZT2U1lIHkAaiQ+BRD8qA0kVSVK9lmQjEpGIR.ieZnPE/mMl+9dk/gujJ5enxSe5On1CSD5UQCpTPHkmlH1HMq8ZVLVu45vFwROXUtxah+nrkVRle2vu3AezxDDePy/TZKkv3nHL1n0R/wt)AElFTkSuQmCC!