diff options
author | Leah Neukirchen <leah@vuxu.org> | 2018-12-06 15:57:53 +0100 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2018-12-06 15:57:53 +0100 |
commit | b3d780a4dba7edc1cbd151528d36761e936c4ce8 (patch) | |
tree | 381e18af444c69660a918c25f5223cc6508363c0 | |
parent | 9b9dc4d2fc08c07435d61e34a36b8ce037168a5c (diff) | |
download | adventofcode2018-b3d780a4dba7edc1cbd151528d36761e936c4ce8.tar.gz adventofcode2018-b3d780a4dba7edc1cbd151528d36761e936c4ce8.tar.xz adventofcode2018-b3d780a4dba7edc1cbd151528d36761e936c4ce8.zip |
day05
-rw-r--r-- | day05 | 1 | ||||
-rw-r--r-- | day05.k | 6 | ||||
-rw-r--r-- | day05.rs | 31 |
3 files changed, 38 insertions, 0 deletions
diff --git a/day05 b/day05 new file mode 100644 index 0000000..d25aba4 --- /dev/null +++ b/day05 @@ -0,0 +1 @@ +pQqGgPzZWwSoOsgYLfFjJlypPGXxdDGhHBFfbLlcCGghHNnBblLPpfusSyvVYUzTtZzcCFfZFfAazZSwWsSsLldDbBUunCcNzMmZFfIiFnNQjJgGqPrRzVvZpDdmMItMmjwWMmJhHTCiIcEWweiFfgTbfFBYfFytoOixXCcTtqQlJmMpPqMmVvGgHhaQqGgAjJQFfoVgnHyYJNnEeQqjmvVOoMMmhNepPyYEGFdpPDfHhvinKkzZNIAbYtTXxysKkSBSuEwWeUfSTtQqsFseESstTyhHYbNnBxUuXBbaBNnbjxsSrRXJJhHgqoKJjokKcCFfGfFgsSOjJmMkrRUxXuOQOoUuGPprUFfUuuTtRjjJjQqWwZzMmpPJFfqZGgaAzQgGkKnUuwqQWNfFONwWnjDwWdvVMIimMsSuUGndDNtTfkKFlLERrehHfFeEPCcIipSsInNVyYOoviAagrRAaGMmnykKVvYBbVPpvpPNfFHuUSswWdnNDxflLFDdXxXhjtTEeJgkmMNnKqQsiISuOoUYjJtTykKTYytZzLlgGmMaAQbBqpmMFfPsjBbeEUuJwWSjaAJNjJExCkKbBCcQVvqIityYThHcVvuUXzZBnQqvVWwFHQqkKHhhmMpKkqQOlLoNniIPfGgmMbBduUxXDNbtjJTTPpGgtRroOpPFfYYyNnyspOoPouUiImMOeEzZuaAULlhjJOoOoHSQtTqQlbBbBOYkKyoLmMtfFTUaAuxcCNZzXxnXmMLlqiIwDvVxXnNenVvNDsSuOoUCcdXxEKksSeELlJjFSsrzuJaAjUZGgRVvrRrFfRuUbxsSXhHekKEeETFftyYAaoOsJjStBbHhTvHhQqCcViBZzbHhIRVvRrrPAapbBBXbJwZzqQUuWeoOEcCYyjRrBjJWdDXxRreELCcyYlwxuUAaTtecCmMkKgGEwOAaArROoaorRWwWoODoOdUvLlVthHTulLKkTtjJzZUuegnNGEqQwGXxgAacCHhAOoTtJjdLlDuUwWTjJtXxCcopPwiIWvmMVfFzZAavVRrwWBbOQlLpPqQsSERraAeFVvfqMmHhVXxjsqTtQLlSJvlLMmAZzaIuIiUiZzcQeERhHrqZzOvVSsoZzUurRTtgZGgzGMmMmpPWiIwCYYyyrxXuUGypPYgYyJAsSBbxkKktfFFfTkUuKKkNPpndDhHKZzXaesSESbBHdDwWhEDdeWeEwLlWEelLiIwZzNbiIBbVvlLsHhSxXHoyYOhkKrRSSssKkvnNGOogRxBbXhaAHMmfaAjJsSlmMLmfFMFlNnQJzmMZJjGgrRjqLrUyYTUlLuuUfFmMtXxjSsJSWwiIsuBbVvIHhHhQGgqHZzXxhqJjOonNkKQdDbeTtEUsSAaYyAshhHJjNnHSjjJJjWwzZJPpINniGlLNnmMgUuYgGTtyanCPpHhWRrwcjJXxYyaSsAQqNoOMZzmGOogWwztTgKkGTtGgMmGgkmgGMIpPkKHNnheIkKoOiKGgyeEYWwpHhTtbBPLlkRrERmMxxprRPsSaAiIPsSpIiXIiKAahJFfjBSgGUlLBWwbusLlrRbmMHUugDdGCcksSdDvVMmdBbbBDXPpPQqZxXzOolLtGxXPlfFLpgTyYQqjQrRrnNgLlFfRrfFGRXZKknNzxqfFRrBjJEebHhjJHhyYxXzZduUDXxXBbbBxRnNfJjJjwWFHhvhHVKkrJPpTGjJgXOoxeEsSRrtyGgzfFOOoEsSTAaFfthHfibBIGSsglLwWzEeZiIGdDRruKkUgGmyoOYMjJgxEeOoCczZXaAaCvVcMmiLlOHhoImMbBAugYyLliIGwWHnNXxhLlJgGjeCcfFRMmrExiWwIJAajXiIUucfFCrDdVvRUuaAsyYfFYbYfFMmhHiIyBvTtoOVSQqQqgYyYjJyBboOwWGiIHIidDdDPMmphdDdDvVvVslLQqzZAZzalLcGgCcjJiICHhOOoqLTtaAlQlLhFfHAaWwKkGgwWEeRpQqPWwyYpPIinNWdDwrYeEJjCcSsYyvcCVnNCcGqkKQLlockKZzCiIONhHDXxdEeCcxXsSEeUeEuUaAujAaJuMmUXvlLVDdxnnNoOJfFNnnLZzlNTmyYNkKjJnzZMtvfFLlIyoOYiVvPpjGgJtTVjyYwWEeiIjlLlbBdDgGsqQSMmljJjJCcLLqWOowJjQNCkKHzZhnNoOXpPxioOIHURruhcnKIdyYDijUuDoOdJkKSmMncCNRrwWsPpyYsSKkdLlJFfgGAaTtjVOovwWkKYyevVWwQqdQOTtqQAaRrGgKIikcCeEIixXwzZvhHVWabBAaXYyYLlVlLvyJjEZzIxIikKZzgXfFrRQoOiIqZnlLXxQoOqNAmMOEeoajJuUzZRrCejJEPpJaAjhHvVcAaGgnNnNdDBbOonNebBElLHscHhvVyuUYJjxXjEVvZPFfLliIpzYyRXxGgvVLqBbYyQlVvZzLlredIidDDJjjRkQqKwUuVWwvWIiroOqQAvVaJeumMLYyFflwrIiRVvFIvVisSfEeDdcOoCWGgqRrmMGgQkvVKeESkKsrUuRpWwKksDdSzZuaAUAKrRkaJAaDdlQqsiISKkLKRnNrkKkIYXxiIGgyfFIOowWsStEOoQqwWRrejJXLlaAxTiSsUdDqQFrRfpPBuUfFXJjtTxOlLpPVvoFfWGkKvVzZAnNaozLlNnZOggGmMLgGjqrRQSsmMKUuhBblcSsCScCsLHWwDFfdkJrRcCuUtTNntTlOodxXDIihqrXxRyRrHhYqQpPQfroORjJFPrRdDAauoQKkKkqOqUuQDdUhHMmrFfzZRpHjJNULlBVvGRZzrdDaAMMmmaAddfLlFwWUuRhHlcCVkKvLZzEexXRsSNnLlSseEIieElvVLjkKPpJGiLlUiIuIfZzQqFfPpFTKkiyYITtYymMrRtMTLltQqwkKnfgvVzuVvUpEerRgGPZlUuLlaAIPpnNTnNbBwMWwmWtiaKkAvVRrzjNnTtJwWZwWjJcGgAirkKGgReNbHhGgWwCtTcBdPpKkGgsFuUKYJjALlCxXcrRDdWwAaamuuUUmMBbMGoOyPpYJjgydqQDvZzdDjJzZKkVkjJRyYrBEebtTXtTTVVvvtxLDdqQlPpMzbBpPSsOoTtdDZzZkyYKOEeokXxHhKLlmkhHpdHhoOeEcCTalLAtpPFfbfFBszUuZoOyYRrrRAJUuUufFjGgeRJjGgrBbnNLVTtvlhHEveXxsSESZzsaOovCpiOoymMYsSMmYwWFZaAzMUzZumpPMETmMojJebBXxKFiIeEFaqQsAtTbBarhFffFRpProOIiVvXxLlgrRGGDdCcoOgHRrOoRPpNpJjPtTWwnajJIipmMwFfWPFfhuaAUrjuUJDYydNYyVvaAnNMmTkKtbBdDnLlpqZzQPaPpBbAVvWnNwNjJrRnbBXGgxRdiIDHxPxXnNaApSqaQqAcCLCcrRlrRSsgGgxXtTnomMmMKklLHeEAOoalLTtYyZosSYcCGPNnpPpQFfdDqglLRrFfKklLiIAacbvVymvVMYBhLVvlZGgmnDdNOoMwWjUmGgLXOOooxHMmhBbYyQaAqIibBhpPHMmlLfFOolUuMtTGgSsByGgjJovVOYECcecVvCelLOomMEbrRSshLSsBKtMhHmTXSdDmOoMsbBLlxqkKQkPpJjQVvWNwWnJjwJjaAOoWzZYPpJjfFywNWoiWwYGgyrNnVuIvViwWxXAzZaoORrJjyUuKkYgGIQqiInNUuDfFdLlvTtJCcjVpPmMtTNYyneEzOreETtRWwoIiFfrRYypRUngOofRrbhHBFjKwWkUaxXAXFVvwWfxXxLlIizWIiXxsSIiwmMYKkeaBAaCbBcwiwAaWIjJeiIuUjJEOoYyIsSipPAgfEeFGNnjOSsopQqbbIizZBzaAZOoTtzLgGlgGwWZBbPPTtpsSrRAapjJBTEeQqGgTttVPpmwWMlVGlKkiMmcCIdDCcLvVYyIqQGgbSsBiCdVvvVDcskKSgOoRriaNnAjJIdDLtTlSzbBNnuoQaAquUmMuzZxgtvVdzVvyCPpiICcoOEeiMmkKcCenNVvAaRrlLEqYiuUIIdDAsRmMUuOoOoScmMkKCsoOuAaUYyHFfhuMmUxLyYrRjJmAYyYyaDfFdllLkKNpPvsSqsSsJjSQQcCeEqjJZzVygGxRriIgGXYTIitcFfWAfFuUdheEHSaAsbzDZzdZNnvTtVXxpNZznPBwWfSsfFFmQvVQqqyYoGgOMZEGgGgezUrdKkDBbqQRlLrUuFfRuDUucCSsgYyMmPRrPppGVOovCuQqqSsQGgKkpPoONMmnxXZzNKWWwwvVrzZnRVvouUOrRHhRrdGgDCcrGzZkKxpPQqJjCCFbBfwWcYFfycmMXLMDdmlJiIeBbElLEejYwAYynHhzztTGxXgZmrRjJkKFfdDiIzZMSscCtJjLlVvTtjJcQdDeEQqhWwHTtORrkklLGMIimoLSeEGgtTslOKkxXbBTRrAPgGPppaCcCcCcCcwWtdLlDPmMXKkeExDdZNnNxXnNzZnzZrGpbHhBkKbxXBXqoOQxjBbNniIJoOzZShHsShHudvVDUXxOJjIiyYoyAJzZjGgapPtTpOoPgGMKAayIicCrRCaSsPpgzZCmMmMNxXjJnckKBdDrRbLlsSmMCYZzCDdcBByYmMxXmMUunUpoOPrOiIowWVvrRRuQqvMmnNVNGgTonpPGxXKkTZKkOozjPpJZDjEeEeJoRrzZgLyYQqlsSVvJjLMXxmNUulLKsSkgJUnKUJjukrHuONSmMsfFFfdDrYyRgCgNnbBGaAcrRmHoHhOhMGIiDdIkKCcgGhHwWHMCcmlLhAahyYFfdDGgFvJjojNIdwWDiUgGuxXlGgLptwWPpsSpPnNUbzZqQxXcWwnNbBCsSBuaAvVBbVhHGJIPaAzZIipiMmkKLTtlapKCcJjkHmIiMhzjJViIvPpzZZtfFTXuUOLlITtxXHhbBzZEeGgioiIfFTtQzZqvVCMmTtcuwaAXxQqzjJQZOozqJnNnYyoFnNfWwOBbJjBbZPpSnNszJCcjNuXxXxUjgMzZPpqtUuTyFaQqAfhHNnTnQwIOQqoxXitTRTfsMmeEVRrvZzsSnzZORNNnnroGrSQqsFfZzUOorRHhmMXxuIiZgGXxnuUNaABbcgfFGCcsSmyYMXQIiqhHEUueRrkKmMXxDUuEPptUKkuQqTrRigGIjyYIwWZzByYbiLlqQQqIiKGOqQoDQqIQGSsHZzhVvgdDhvVPpMpbBYsSzSsYysScxXCEgGeUusEeKhHVjJTtvMJjTFfnbBNmMtUuvVqQmkSRrwrCcGrRtTuUXxPpgsSPpbBOoIiHrHhAaRKYyAHhKxXkcTtCOooAaGgNnOakjJSslLGpPgbXxrRzZBpPtqFfzZQDdkKcQLljoQqOJxXEwWeyeEYqgKkGCgGpdkMmXxKYyGtaATnNgmCUvVulLFKkfcWwrPpjJRufFpPGgXxaGcCbTtFpPpPLOoIbLkKlFfGiIAtTatgaqyYPpylLTtTtYwqMPpMmmuuUUQEeZzcRrmMlefFELcflrRLTWaAVwWRFfAOIilmMtTeELFfmJQqtWwTcCUuoNnJjgGOfPDShwWqCqQUXxuRrRkKuUCeoOmHhsawWAthHHbBiIHNnbvVBhXxwWrpPVvRKSsdkKiIDkJaHhLlFTDdtfuoEeOWwAWwOoaGgeaAPplLNnqQrcCTtgNCcnzZGrkLlzJjMmeXiIxEhVlLvUtTKpPkHfFsSfFALlaWwrOlLbBwWzZNxXveEVnBbQqMmAmMFfajBbfSsLlQNaAAdDusiImlLhPpHEPemXSsbBRrpPxZlLzmMZzZwWKNnkEIvVJjEeAaIaAiPpYWwozyYZOyUuOoiAabBNnxXgGQqOoRruUMlLTvJjFfPkKpZOoVpPvDaALlYydfZzWwqLtTGgkKPNnmmMMEeKkyYfFLlhcCHqQRrvVpvsSkKkKbBVtsSTlhHaAQGeERmMrUuaxXGgKaGZzgCXxOoYBAUAeEUzfmMrRxkmpPkMmAaKeBboVvvVlUgXXxOovpPVofFqQykKYOgGxDdXrRpPsSLlboNNnrepsSPERpcPpoQqxXOCwWDdyYAKDoOIicXxlLrnNRgTtiIHsiIShrRNnGTXwvVgxkKenNEhKkJjtOkKqQPpRrZzpidDErRkKcCevmMrRhHVIsSPZzeEAaoixXIFXxYyxaAXfxXjJSsNnNnqQqUubBaqmMjJQXxKkyBbYBbYIisSEezkiIKZzZkKRrxXOopBbRrPkKAaHhvVZzZNJLljRraAswkPpNvVnoOQcvVMmxXZGgzCqUuLqQcCIGqQuUgcgrBbRgGGxifFaADGgejYyQqGRrHJjVvQqhQqiyYIMmvVuxFVvzDdKkUQquVRrlLXkKxvViIriIRbUuBNRkKrXxZSbBsDTCHTthzZsoOhHSyUuuTtUTnNlfFysvqQVKHKoOlLkhkWwGgEzUJEOoTtHhhpPHYyyYwoDdOWyymrRcjoOJYMVvmyCMxNnlnNLPTtpXZzmIilcChHXxIbBinNLMXxoOCiIzKkBnNnNWwxvVQnNxVviIXxVvZznNgvVGlLCaVlLdsGgGgiIhHstCcTNnSqMmIiAaIihHrRyGgVvmMYQBqQDHhdVZFfzvVeCFfcDdEuCcuUqtTfFtwlbWwBLMkKmphHaABbtjJTJjdDgGMmPtnHhoONEHhFsSfmMHcaGgGgWwwWAChWweEeziIKkAtTjJgfJiIWwUupPGnNgjXyhHeoOBCcbtTiIiocMmNrRnCpPUugGsSmMLlpIibdDBmMPBOoAatHSsrVMmpXxPvDdmMQjJCdeEDaAcqAUueAIAaLCswWbpiIdDvVDdgJPptTSpvaAXxPbqlvlLVLwWqCJUxXujOzZhHTSyYxXVqEyYeYyfVMEezyYxXZQqmOoYyVilLCcCcHhZzJTTtteEiIjCcsSKkcCwwEjHXxhbBcCutTqrRnJjKkyYyVvbjJgGJmaAMMnNnNmXAVHhvMVvmaxlHJjGgHwxXOoTPaASeEsUAaoOGgtcfFCqQlLbBTxXSfcCcCKkvVFHJjURrDdRrnXxNntLlTvAaZztTtBbewWElQqLLlTpdDUpPJjnNWwZzjFfTtBbWswWSwBbUuCcJzZaAgGMmdivRrvVQqjMfFEzIaAKkNnSqQuUXxutIWwEzUtTZzgGrRtTlLuTtfFUFlLxwFOofNniFfIcCXRDDddxXrYygGGgNniNoOZzLleVvBbMNSZnqQNWVBbVeQqizZfFIEWwvRXxRBbHhPDrRIiLsSRraAliIWEewZzpPAaMmZSscScuNnMmrOXxcJjwWSpPsCmMaZmMzjJUXtTBGgpbBZzAaOoPSspPbbDVvVEYwWyXVLlvwXxxiIgGqxXjJtTAxXjJBbaiIyYFfQVyYxqAaQKvVkdDXJzZjAaHuOkJjKfFwWglJjHcCSsOojXftTnNFxWnNtTjJwCZjvVJuUbpPBzfNxyYQqNEeiQbYHhyGgCcSmMfFEerRpPZziIfHVbuQbXxBrRqMoOFfmMiqQImdDZtwdDWyDMmeEvVTtmVrRtFBoObfbBnNTDoXxrAaSsRfFMmlEfFeIvViEWwVmMvmMOSsyYWwVlLPpvRrcCLfBpWwmtTzZaBbATmhWwHAaMMmrRTSstTOoAadpnNPwWGHzfFZXxBbCWwcnVvNkKVvIeeLlEwkKGgWCcEHtTblLBDmMdvVvVTXrRyYxgtTFyFfYDKfFkdghvVLlOvXxVoeJjcCJjRyZzwVvWFkKfNnnNxXKkSsoOiIUuUYyuYrtzZTRrEoOTtYCcqjSsJqQqQjCccCbBrRlLCVUrRuRrPpRPprvpAUTtuagGqQxvVyYhNnIvVmUlLgGuHhejJqeEjbBJZoJjlWwUvVJRrcjAQPpnNMDyYNHaAhnPBbvVeEBsSMmxnNQqjJrRXwuUWLQqlVvTtLAaWVaAvwbqQtdnNQyVoOHeEMOomhTteHhQdUdDgGQqHQFfqhivPpzcCAaZVZcCxJjXxzMmoORrKkDubBUXxtTlWwMfFYyJBLQqHhiImxGyjJYgnNKkbhcCGgEeSBUvVlLtTJjuMMkKmmbPvVpBfFLKFAafMfGgCkKmMCcYpZSXxUuurLPplqbBngGhhbBVvHHIinQqmMJLljQqlLnNNQqjXxJsSJjLlnBQmMqxyYXCcbmMTpkKkWHsSsrQEjJmMvKBbaYdDyvFfLlbQqBGxeEsSXLleuUKZFzZhHGKlgGoNneElEYynuUTtReJjErLlVvsCcSSwEeWdniIJzZjIiBbiYyBxXbhHAsMmSiAxoTyoqQdDdrRexXEDikLlKLcklLKIiuXEoOenFfNEoOeCiIcYyxUvdDUThtCWwDsSrulLwWGgNnNsSgQoOAGgcCamMnBbomkKMuqjJQkrRcTDaRrAcCdyjRryYpPZtTzEeVvbBTeEtNQqJjnRrDdqQJfRrWwFolHQqhUXxBGgqCcHxXhEeEMMdOoQqKjJJjQqFfNnXBeEqQiImMTthHzEeIivVJjUuwfujZzHzjJnNoSsOGCdBWamAPpwQqzZeEEPyFlOjvVxUucfFXxXxqOoWGHopsSfFPeEIYKkygGiOIiZGdDgzGkJjiIYFfNBbQywWCWdDtvVTcCeEbBLChHlLKaAkcUgGjJuYyHhoOLBgGbrRlHHxGgQqFkoOKffeEKkFquURrVvkKkuUKyLlYRGUujJCcPpyirRaAHhIprRfFyYdDUEeiIgOoGuvVPenNYywWxfFMmyYXaGcXxCYyPvvWwkKVVxQqXpNpnNZsSAFRrfateEcDdiICTFffOoArRajeEJOoFzWwKkPzZnBwWbOmrEeuDyYdnNhCPpuspPSrRUzZfYBaAbdkdDyANnagBbwMmWQUWSBrRbWwdwWDGXxgsxXwBblYbByraAPaLlAmMxXptuUTTCquUQDbBbFXxDKIVvQqaDdAQjyZkKqQOopPyYQqpPfOVvKeEtTuUkSlmbpZgGweOxIAaSlLqUuAaIvVicJjCSbBseEfNQqekjJAaKgGGhHcCvVglLEidFfDZzKeVfFZpMuUwWJpPrRzqQPJKklLjicUulRrQjtTdOLloJSsyYyYaAnNtTYSCcDdsSsyEelXSfFsxCwWDdckKVvJjAaOogGXyYznNZBIIMmiiRrRYHpPCcmMfUuWwFJDSHhkKmpPMlLVvIjJIiiNnfFvLibBHqQhIlGgghHGxlQqvVKqWhHwipPHhatTCcFzZfeElDGgxvlyYLVXrgGRyYRrERrypPlcfbQpPcCLlBbVvBjJgGiAaZnNcCBbahHIiAQHXyYuwWezZEIizZEBboLBOqRrLlQqLltTZwoAkKQqrRaujJUcJjCOAYZlbBkmVpPvWmzZCbBVKkWwOyVDKSstTxXYfKkajpPcVvCgVvGJvSszDYjJIiydiIHAaSsAXxAItBbTuiNYTRRrbBMdVSsOovGQzUFfEeuOXkKmZJMeEglwccClmQosSILAFfOPpAaosSPpzrcmMCDdyYGpPcCgRPKkaApvHJjgjJxrRXEGgeGzZiqQMZzmIKkMbIiWwJNpPaAqmMuVvUkKrcCJDcCnwVvnIiYNnBbFYZzLxEeXlVExFfXQIQFEefsSqUwWOEkKeouwWiMyMmPpjdDoOXxJYkKlcCSscyDdlLDQGQVjJvqgqprYyRdtTcCcCaCmvIiMmuFsNPaHhtXdyOOzHaAhjVEeDdMmhHucCUvPuxiIXUmlsnNSifFIVjycSIisCYJRbBmKkQiIqKSNnsjJkMVyYPptTmMvVOopJjJjPftTIiFaAvGgHhwsgGSTtPtAEeCOoZzcaiINVeGkoOKkyOoBbpWypPyYeqQqQBbVvEmmMoOUuiIHCcqvVQRrsdDzUuZVvShKktuUTxXMtTDbSRZzvVkgfFrRlHoZWwYyIPoOoOHVGyYbrQqkdStkKsSNyYeLlHhEmMLlxnNXCtTcQFrRkgVFAayYqQhZHhzHjJeNnoOsSjJEfEetTySsnvVjqQNUunJmOotTMmmMBiTtPpfQSsqFwQqrAhHYyijSHKkhWMmOoUuUHbByYnNjJbsCcAwQqWunYMmSRrgGqQNnmDdVHhPpBaSgGgRrsbBuYyqQaGcCPiIInyLBxXbpPkKjJPoOWwOTQtEabBRrvVbBArRXxegGIJjPqSsbBNnJjQpSMmgGvtTVNmMnLYSHheEmfaAjgGjJqEepPRrHXiPpItTxvlNJjgjJFfrRGBJjFfLNHhqSsKkEvViIedDukKUGgtUuVvKSsVmFOoQZzgZzpPnNSrwgGDvIGgYyOhHkKdMmVvgGpLyuPpUgkKPpGyotTsfdDlWYtWieIxIiXPpixQqFfZzSsJjzgortTROoFfqWwWAaWPpwiXxhHeKkEHhXPpiIpNnFpGgWFRDLgGKkCWKHnNhzZwWMsAaJjHDmMmVCeUqQQiIyjJeEQqKkaAAaBbmHWwhMTniIXgGveEVXxzfFDMgptFhoXtTxyYYyiEewXoOPpHhOosVvoOWwbUuBptzZTNnKQqbBfxXjJUXxqQPpDdDEemMxXduBbQlLRrcCglbBzrwWzZLlRJRrvVZoOznDdiIGniKvVfFEekcDdWwUuCWcyyYdXxDjPpeGRrgAuUwCxTuCFaAVnNeoOcWwCyYkKvVvGgpCjJctHhVvTPgGEeIrRiaAzZLlzOoCvGgfsSTtcClLZzLlfhBwqQWbvMgGRrlLNXxbUuaAhHJjOoJqQUujBnmfweDdHhEefLlYyFKkNlquUlLQHhAaeELlbBkyYwzZkKCZzWsiIBbSwrcCRvVMOomdVvDpZzHhiIPCVkKlLGgbcOoRYaAxXKtUDHdDhzZaAdHhyYSXxsuCcCvBbPpvUuWwEaQVvFfhhhHdDSOjuhnNQeTLWwlxhHVvshHKkSbOhDlLdzZHuUoBwWXDduULluUtTUaAtyUuEeaAwWYVvRCmLkKuOAGgaKkZzoeEGgbGYygmNWyLldDooWwOpjRJuUjiIEeMmraAjJyMmYyCnFaVNqQYhKkHwWhtTsSqeEtTXxtTRqQfvVyYImHhHaABbQZRwWhatTAnNHMhOrGgRsdDOLlhHzcCrRCXxGMmfFHMmMeEmhgYDdydDKknEmMxKkXxwWxXuCcUbBvzZdWwSsmNNNnDdNFBbfGKkgRrQDYeESsrRqxXxXLldDdxXVGgIiQqpPTgGzZVvGDdgGLfFlgHyYEnNegIdoOZzDirSszZgTtGZMgIiwWkKZiIQqBZzbuUvJytHhTKFAGgafiIEeEuUTtexoUuHcChNnoOJCcjiSsnHFVvodDOzLIoOHWwfKNnaAkoOFvMTaAtYyUuJtTLVzZDcCfFdOokKjJgGdDvhHqMmonNoOOQFWwHhuUPpHhNkbBXSsxjJgVvuUMmSfFMIgGinjJGvzJjEkzZaAWwuawWApRreHhwWpPkKlZzeWwHWbBYymMRrREdChhHtooOQgGqOgGlrRLqQMmCcqQBbvpPEePpnhHnNIikWwKZzNkKxXMuUwWwWxeEXKqQGXxuUgAZzaziMmIYyGUVvdDGVgQqJjLeElvPUDTtrtdqQjkKSsJxZndMAauDIidUxPpXWaoPXxNnpOpfFPDdcdDClLAdMmDSsjJpPKMLjKahHjJKwWKrRBbeEDdBbaTfFtGvVgzOovmMPpLlkKnjdDJNQKlLSGgsLELlIiWwDJbBjwWdSrRofoOtTFbBAVPNYyyYEEtTeeDsSMVvgkKGYDyYuzZlpPLFfUgGcCHhUVvwIZAacCbBpPIdEeoxruUiIgQYwWnNkKWwyqLlEAkKBcCuOUtTbBueEKoOktToUOodDOoujJeEUzXxZaWwnNAeEQGYBbZzyDEDdBrBbRbFsYyqNWwXxnMmQJyYjVztnLBQqbgipPJjMmuUqBbSsQzxXRrnWwnKVvkjBHjJhOoFfqQbkKnNFfWVvwkKQqRrAaJjJLltTltTeEsKkLiIeEklLENnNnefVoFQqfOJxiIMnNQFZdXCLlNneEcvzwWORAaroVvIjnNqnNQtOInJjsgRABbzZPaWJjwAUuQqBbKCczZthIicMmCrRXjJxcCCNnRyDdSqQslLXXxxCzZVJBbjbQqItTKkitTzehXAIiaAyiKkIHOTtYmMuUkKXUuXxxeUuEPpyGgNDKkRrdnqrHpXnNEnNekKLlIgvvrRNnSrYJjzrUCqQKtTGZzgsSgZvVzGyEeYZzlsEeSlsHMkrfuUYUuEsHAabBhSgzeEZkYyTtKBbBbIiUuBbhHKIyJjJjKhZzVvOeEhYAgpqTBbwWBblBbLTHhqQcCvarRoOZzTpPCrRcyYMAauLkKlUGgvkkWwKNBbSbaABZzMkKmhUusSkcRtTwRsWwSJfFQqqQPpjntdDTBRuUAiuSsRPNncrCcyYRuUdgGDIimMRrDqrRFucCsYyEKkeYxUuFQqzZLlfnmxXPpcEIiEeatTkKkMmKwWmGgMMbbBHNnhuUKhHcalLACMSSDytylLzMmZfcCVHhvbJjMmBQqRBUuzZbSsaAtTGKvVkKwSsHhWnFfNzqQgGyWaAeYVvaALeEdAbRUHhrRzZuoOrGgaABwvRdDmMCesSEciIrVYDdyBMmbRSsrisdaxXvVncCKOxXokKknKkNMdhHFfDmOozZoxXJjHhHoqQkAKkGgFfYPpHbBiIoCeEhHHBbhWwqQRQczcCZCZzVvdJVjmMfFvgcCFfcEesPuUpHJjhJiVvILYyQQqChHNfsnNJKKkBtPJjpcETmjJoOQqmzZSssSSstKkTzgGJXxHhqQxXvSdDdCoXoOcmAamMRxXzfFZWjCcJwjhHJMDdSsKkbBmizZITigGgRrGhhHrRbYyRrTPpzZntTIiIiGpPWHhwgYFxNaANnrrRIuUXxfihDdAaVDdvDdQkJHhWweEjUvBbVfFAagwWssSNZYyTtIihCcCcDNnQqFmMXoOfSsFdUBbiaAaAUxdDutTCcQaZzAqEISKhWwMmHXqQUuAbUSyYssSFfGcAasSpPlLCcdYyNTAfFtWwrRNngGTvVAIJgGdaEtQtEwSsWseUhHWwWuUpPBbwmhHMpCXxcGgxMmhHTrRYAJTLDEeaAfFFHlrbuUTtBcCRreEReEryZnnNFfbmoOMxXBmMNuUtxGKkKkgsSXTMmthHRQqrZfFGxXgbBNMsSBbHhocNngGqQOokKZAaiImpVzXxZvsSdDVVPwPsojkKMTlxXLtfYyFjJjqQjJnNMbBVpkKPFfdDvlLJTtCnNzZsScTwWyYttTCcjmkzZoOtFUfFTImMitPpKkQdJjDqJjuhGgPAaDdpQtTlztxyKJjPCSZzsyYDdcjJpxNnDWwdSJjHlciKkSKkMmKkseBohHeEQqOCcSsLQeEIiUqfFpjCcpPJPFfFZzIiPhNntTkPYyIBGgbZziFReYykKOSshHoLlvVcCUSsTEetwvVWyYLlQNnqgGMELlTteyYmebmUupyYquZziIUuUtTbaAqnNJjyYQdlLVvDwlLvAadnRrKpPoOmMdYyrbBwtWwyalLWwvfFUPFaUqQLluGcxXfZnMWwdIiIiWwtmbxXAyYaDKkdSzZsDKPWwrRphHkImGgYyMOomiIrRiVvspDLtTTDdYyyElvVuzZoOjbqkKzWwsDASxaAZgstrLxNyYHhzzesISHhsixdhHCcpPwuLhxXClLFeEHhOorRdGgOIzoOMMmmldvouAlLaSWZaYYgGuUHhsvOoFfWBbJeuwWUQqpmEeMzBbZuSsMmMmIiVvlOiIpVIhHhGguybUuXkpKkPukKsSEzZeVwPpWjJJjSqQiyUuRbOoySgfFqQGdKkDsEJpPjEehczmdDUuCcuFfUkcCKGpPrRFjJfgAaGdDskUuytUuxaASsDpfFGgtToOxXarQhHqRCKzWnfFYyhwZmCoOcMEewWRHhCcovyYVzqQkKfzDdZbBlWwLhDFqQZAtMmTIQjnIMmiqWMwxLlmTSsXxtUugngZEeGivYyyYVvWpPwCVZFfuUCGgsXetgSsmMoJLnNJkxnlLjCOyYoWnjJeELZzlUKkVvGTvVEeaAtqEUGaEBSaAsmMbPsaAHhSUrTtYyRLlZJSqnUMFfRrlZzpxXPbBZzHhrSsTtxXUusdDasVgGBsjJVRDoIcyYgQqbBGGgtdDTGgZzyLyUGgxXtfFLlKaDXxEefaANFfnELOitOotHhTLDdtSsgojuUJrxmMEYspPgGrCqQNnGukKUzZLlDdKNndVvPpDQqkNMmyoOYTtOkHhDIiHmMXlkuZzdDWDSQqyqIhGaSOuUosAVdXxJjDmMwWTtkKRrKiIkARrsOoSiNnnNIBbAadyYDTyvlqQCcLVNNnMAJjaeEHHhnrRWyYYOoydDnNzZIiiLlqqQQoOIVWwgvncCNIaKXxtTNXCcmMXxrOoxrcVsuUSaYnhqQqoMmuZMsBblLSvoOvVHgSsqaANnQBvVbGgnzwWZNFoWwMYyQFFNnpjqzLlQwAbsakIPnnlLaAXXxuTtYJjWwJxXEevZJuhHUhFGgiIXxfSDdAaLuEYyOoatTJlTQqtLxXgGKpPwApqpBzSyYDcCdszyBPpktTpPEeVZzvHxXOVoVvgtTcUdGhHEehHhcFLlLqwWXxixXIuUalHRrtTRpPWwMvVZztNBlhzkKdDMmojJKksRPpjJamMHXxhHkKhgGMIZXxsSKkFpsTZvGgSsOKktdujTtJUwWDpPnNHlzZTtnTEOosScjohHJLlqQiEDviScIieEJjKfioOIiIsnLlvkKtPKkrRxXkCcYYypjJPREuhHUjJQqXxrbMAamDdygGYzZODtTDXxtJOoZsSzUuOoDgGicCfeEWcGLlgCXSOoMiIKMmkjSPAaLlcCXxlLpkKsJQqpiDdXxEatTWwaOoavFfXWwxVrRzNnjqdDNYTtMPjJdzZPnPwZyYoNnWwPtTEeYKQBKksSztTZAaBRYPZpPqQzoOjJMHhdDMmmotTEexXOCcBbYyYyphxdrRDCrpPRRadzgRuElLlLBbhHyYCGyTtSdUuLLPUucVLnNlzZYylBbTtGAGIxhHXqzZQitdcvVtdMyKNKkXQkhQdMfFmAvVXxBNJjJjxOoMmRrTgGrhxXlLHRvHVvJNHWwhbnxbBXrRUxABWwqQbUatpIgGBKkbFnXxNnNdfFFQJuUjqXWwNnxfillwzCkKpcWwCPiRrWmMAaakNaAUfFSiDdzZTtcCGgdwWDqQIqQpPEyJjYeuUKkqQGKkMVfFDFfIyGgTGgDdtvbvjLjJdDhUkKqQWwpPuPTPuUpMmPhCHhHmZUHjJYfLlFKWUuFfwJjViuUiTmSiHUuFfkLlLrofkAVldDUuiILHoUujJeEHhgVvcCdDXICUuciIiwTolBbPytyYybqQtTBgLluUaliIXBbOYsNjTzvtTwWwNNnVvNnMmcKEeNaAdqGZzcBMddMIiRAaJaAvVuKkqQkQXuUxQnNlVvQRjJEetIkKfFQqSSssLoDdWzAaghqQHGBbZHtqpPKkdDLlZVviIzZIWZQqCczKcCsjJSkTiXxVvAaJMOonpPNDNnUuEAvMmYyVBbKnUuNiIcCRepRrZzeBqQJrRjMmaPprRcWquFfwWHCSqQFSsdeEvVpLlhHIinvVNXTtDIsSPpBeKTtRrPpvqCGggDtfxhHRrQoJCutTtTQqOnNoJoOeErFhPlLQVOHhHyKNKktTEyYYyyNnaAnNYlLkKsSiIgjIiLlEfqQorAuUaRfeElhjJHzhHZtiyabhBbHQqmlsMHEejJlLsfFkEwWHwWFfrcwjDOeEIQLbZUUuTtCcuCYwWPkhJjjafNnFmtKZzkgGiImmsPpyYKBbkKkgGSyvVYRKkaArPWaHhuUqQamMAZMmwWlUunwWjPgVvNnbBSKbBvVvutNmfFjeZqpPaAQzkKHDdCYySAadQqYyDafjzxXwlljmMJLtmMTLEulxdMYyWpCfFICciDuJzZNfHWUuwclLFfaYDdSZDqmMXqKkQKCugHNFfnhJEJCcBcCbjEeyqaAQLJGetvCcqQKyYDBbGAaAzYymYyULWIQstobBBWUuaMRvVrRVFfEeMXZgFqFaJCZXKOxbnZrJKkDRroKkauUEzCdDeEzZevUwWpPdXxqQjJDGsSWwguVcCCRrBlLpPQqigvuJmMMmQEoKxXkOugHjNSsxKuOkRpPyOorRqQHhlLQzkKtToOwWPUKhrRHExNgGXxhHoOpzrsSjGgZTtuvVfVvjRIWwhEeHxIxWRCCcjXxsCcBbegbBGELlURrnGgmMWdIMhoOctTJokoIiMmdDaMgGnNGDRdOJnaAovVONVBbRmNJjRrWpJqNnxdCJdnNQqtTPFWwyYgPmrRUZpPzufKkRrtxXTQPepZzPFrFNtpPYyPmMeBbumMkxXKUCKkEeyYmMcGgCgGHZzFfYyRITHBrRbXxqQcpPznNorRMmfFFbgGsSWwFFfNnfFcPpQAapPkKKHhSeECmJjXxJlLRvVbtZSrZzIGRbvfNGxXZltolLOTsSfFgbnXxxNCmMBbQqFfjdWVvwwjnjJNyYJUkBbzAaZzZSLlsGCcgAaKuPWzoOZcGgNnCIiNihQlpGhcjBbFfLgGZShHmMOouUeEOogGyqjJOnAzvVFbBCHOSTqKgcCQMuJHhjMOeEEQqKlQqnNLYeEMmphHemrRMYyEEePiiInIrbkfpPytwbmrGgWZYJJGgylJNthHSshXiOiIgvVGDdXEwWTdbVvwYGeEgQAghHxXGaTGgGqBXxbQgmMsSYNVvsSRrnHNnTpUuMALlLyYrvVMxXSeeqQOrRPGFfSsgmfmIxXnnpwXxWeBMmbEpcRrpPQclCQvdDVyBOoXxbpYyVSsiIvfQqLlMSCcwfCcOoHmMFfhYtTyLXZzIYDcCqaAnNQfVhHoieEIeCcEMTtUnirXxzZmMJjcBxhdDVTEetdqfFuiiPZdDEeaLkKkLDdpPBsSihSDuNngGNhptVhhTYLlhrZQqFfkOoFuUfEeUuMEaRrCdKsPOyIvABvWpPwCcNAxXankllPpCMemWwKOokuUaDdPpPppPbjJxXvHsfMbBbOgGqQeDwDiICcdrhHGgRvwWVbBWbuGkJTtWSsTtwmEAgGaeGnkKyanNueErbAagIUCiIeMNXxSpPFgGuUfoiIlZqQuhZThGgjJmgPRrcCprQsDZzecCLlEUjJudETOotTxXyGgQleOxNfFVbBJjVNFvnFVLKkRrDPpdhqBbQZzsSNnwKBzZKEePHhyDdMUQerRLlBbNIjZzJwWklAaAaLJQidxeDjJHBvRiIrnOuUAsUlLukvVdDFwZzBzBbZeEfWwwyYoOWFYyuUJjdeJjELyuTqhHOgIiqsmMWWwwlCnNCRryRrYcxXuUcRrpPhzZpNnHEeoMKkckKCFBxrfvrJLcCzbwWfFRTiTtxvVTtXbkvVBJjbKBMmNuNOonNnfFUHhNnQWwhnoOXZDdzgMmpPsoOUuPpTtpPGgSOqQGCcTtrFfrDXcCfIiFlLUuoOytwWHiIhADdKmMmQqcXxnNmMFdOGIJjiPSypcCPhoeOoxyYjodPpDkKOrMjqQJSsTBIldVGghHkBiIRZzwyYWrJJUujfPbDSDNnswmMWGRAarbBgeEPyRrFhHfYiNnlOcCpXknNKwCDRrmtNKYuUyiONnguBTIZzmMilghIKgCYXxyUhHuscqncCtIiyGhdDHIibBEbsBWwWwkKlcCLbfqQFTtSLlBbBGgbAaiLlUuSssvrDDMzZnLCsThHtTtMyYVuShqQqMWDdwbBmYEJPLSsxXkpOoNnhzZbBiImoSshHVvKgKbdXxsSbOyNhYFHqoOWrQzZUJghjJObBMmocFocRfFNvRjdrRDbEeEoKEWwWwYyZPpYVJjGmeLrUuRlbBIiEwpyaAYPYysmZBzZTTttGgOzZSskKoCfZhHECkTtyRrTtTzZNntAGgiIewWzZYyYUdidXxDiIvZzWScCkQZDaAKkdjJjTZDdzkEJjeKSdgGeEaAPSurRUyYsENuUsqkKTTmdcCTYpPyzoOzZVyYvFFfARrahHMmfSsvVbBlNnAtTLvvVVxRxYyCYqQwkKJjZKXTHxXhAjJNNoOSBbaCPpOEHNnzoeqncxHhwaAFfXuTRrHywWkvlwWUnNvnFsTaRrPbeEsiTYyqZzIUKkukdDhHggGGtQqaAmeEFXUBbSFiDdQqQtTqQMmemMOgGcCbpPpPBHeLRZuUlAhHaAivVIhHWwUuadmMntTutDdPZozZOOozOYVCzOgZmTtxXMVfCriaAUSYysmXxYMxXmvVIwWPBbomXQmEiQqAaNsjJawWdDAtlPCcGgptptWwKAaCIiPOWJfFjnjOdbUuAmMUuaLijJhHXxIltTfBbFqKKkHcChkQGQqgjBZEeaDlLdCSsitTtTKiIOozzZZkIdgGsSTNnspgQUuTgGgGZYyjJAtfqGgCYmztTDxXlLgDlzZLdkgGcuUCStUbBdDaAqGzZglLtoORREUwAaoRWfyxwkhHQiHPpzZaAtTZCEyjJTzZIZzjmMpPFUtrVtPpNnOfxdpvyetTPpPsaAPBqEMMmmpPuUzZFfcUNVvORrsNfFmTfIiUuaAVsNhLflLMbBscCtuzaWwNnOijJNnIuQsAGgahHNBbPpnkKnNIikgGGjJINMmtTHpPxqQnHhBTGgjTcKQqpPcvRrVCRrDLrGggOVvVvIPqfGlktTKpPSszZxzPrRpZANnaTiFGgHhUrEeMmuSEQyLRwWrjJbBSNnaEgkKGfFeEMhMmHvFhkKYFfiIySPgArPpEexdOvQYZJjzctmbREKkdDerUubNKyUuYqBHpPHOoAJzsOooOSZKPUSxvIPpiVMWwsPfvVFTtuXxumMOoUPQqAaKwqXAjPpekiIKZLlLGglcoOFRyYrKszZGejJyYLljEvCeEciIkKWHhwQqQyYPpqfAgGamMWkprnDdUZUxvLUgHhsdsofRdTtDXfFxZJFcCzwLMVXdDkrdDqlsSSsuHbBfSfqaAXaMEemHhMPpmuUEoOefFydFfWWwqQaQJfBDdTCcbBacIxtKkToOaAPlrGCeEufFeYyTAiWQrwcMOoOSsxgGNnSsmjNpwWZutTeEvVevVrOKSFqrRiIQJebBXxUuRaiIEndKcCkaAOEeoDBPugmdQyuBFlGgLCSscfPvVedEuUxFfFApRrsifvMLUXDdJjxVYyvXFjJvVDyYdNnehsiIcMmulYoTMsSPQqyYjSwWRrPdqTttTfdDFMmIOoQqVvwjoGgOzRrNQptZzTMwOHgGwyBbpPYWEHFkNAbOvVWtqQlLaQOoUYyhIsNnSxpZiIzKkAamwxwwFpLwYmMxXARrGCcfAaoysxXSYatTuToMOnNEIYFgXitaADMtHmJjXxLhFfUXAcCaxItTkKisSUuyGvNPJdIagGCcAcpPCdFqQeELlfoxFymEGKHtThiIiIXxFIIKphOoXxHhHKkEebBzZPpxXEeuUcLlDZxXgGKqQkiCnNKcCzulQqbXxXRrYjPUcCtggGEwlLWGgaAeZkKzGaATupJdDyYZPrRpPvnzDwVvWwWEtTqHhQKkeUdDsScCvwWAEeMmqAmkKMuuUvVNaAJrEqDvRXxsuUSsMEevVvGgVkKIMVvZMbBeZTtwGZYzGPpAyYwWRRrQUuitCcKFfkITIIUtqQVgGwDdWwWpPwPpWrRyYjOxXJjYdDiIIWtaqZzfFlwWmoNVvZzgGgCBbUMMukFfoOFQqMmhHmClJEeZznNJFTxXsbDGgdBQIpPXxKDdGniYKwWOoWwKkYVTmYVvFoOfJzmMhCcfFlLHshHfFdjJDubHORrohRrcsrmMDfNnJjiqKkuUQJShuUNDdnieEeAaeEEpbaaFIbBijWtnCKkfJjBbTtbkKayLsSJCONqWABpZzJjzCcyLlYrRcCtThsoOYlEWPNnARfwWOEeCcfSsZzPEdDWTKkNiDdulaAckaeEDkeEKIjdQcVlLaMmAyAvfaAFtISsEHkSKksUhOoHuLlAakLVvNnLlCZzMzuUdudIRWzkEefFKatPpWStaiHheMABandlyUTOoHCchCAKkYiWwIQKkqNrRnvjWGgzPpWgVFucecCERrCUDwWLIBMCRrBVcfThAmrXpJwLhKkHdfFVGgvQqDiAmBbKUeEPphlsSeQTyGglLpPlHhjVvQTgcCORpxXrjLlHhobBJmKkEeqIiKwWEVvBbsSqehHSiIzEeXWSsauFqtTvHlTtjjHAaUQeEqrxXvTtVVBEJzZSoOGOogWwQeEPHhHuqqQtTcWwZztAaTCZOXuUEebQgFfGTscCStjAaJqByYHhPpQeVMmLlTlLwAahTtHcduwjJWyVGgRJvVGYoSsRqQvNBXxKqwqIGgAUNnQqunMVghRsofFLTtvVlSsLlLykSsnDIcCzGsvVKkGohHObXkKXxEeIiEZzQqePUdaADnKvVkGeEhTcFoOfkfFKWBbwjAsVZhHIizQqSEcYirXzZkKxtkKMUsKkWjbBJhuwWMmhNnqVwWfFluwYDNnaBvVizkKyjAyofFTtoWwOIiSKkAWwWwAaELlRiIpekCcKoOcIiFNnlBMbbBHytoOcMYyImyRDoOoOdDdsmRiEzZIiGjHvtTVVAdYSFbBxXLmANPpvAafFOfrRlEgGUYySRSoHOomHhkFyRFfLVrkNntfuaBbtPmcKksaAVzxFoiYztcGdZzsShHnTUutKYiuFfAFfaXxNRBbhyitCFJrkBNYYxRTsSrYVvPpyRIJjAgGWwaitEeeBAaOobktTmMQqSsCcOIicCvVqiIrRQxXrsrpawxXWIeOoEilLrpJHhjUGgVjJInTtvVBLcCpzljJJUPwrRqQlEoOexEeRPbBNdGgDwQSshJjsbBnuUAZnmkNBbEesIikaAKgNyYnYmMyoLmrRRoOptsDXxUhFfHtlxXKvoONtAabBmONRrvGPYuUCcLRBbrlynixPvVRreBbwbBKgGbBAaZzhWOoBjTFNmYRrkKtfWjWDvVRXKxXXfuAaUFWwxkpPxrmtFsSfbLTLXxlYytOttTZzTHhDdczsufhlrRfQoOiIqhHvNrusIdKkDSsFXnXwWIYSlLKaeKXxtaKkUzgUuGJvUMDdOoEetEuUhBbrRHhVviOIBMKkyeBgwVmYyHHIirGNseYcvTgNnJyYiIIBvImcCNWZMCoOEbBOdQqOoCMUvKkdEGgDWUuBbEEaKTtXnhHVNsSsglLHsSTVuumBbHyjGGUUVAZQbYEXEVMJzqrRiIkKLMqkKqQUuPpetoWJjtYyPmMcxXuEiIXxMMDdmvVAqRrQqtTsSuiqlCzwtqZnNVpPQqvHMmFfhixaDuUSsnDXtTZNvxXlLVEeTuUfxzASXxgGsFfVbMiIcjsWJjmSsFfMcGDGtTAagYNMNcCnmdWCcTtEezlLMmAhGOogDKFvOoViVvcaRrkKbrRWlpPBoNXfTTcXXxmbBLXxfjuGghgIdDadvVxcVvooAoOkegjJbmIYjwHhWJTKjcNnRaAIbiIrRGiIgmMZafBIizZaAqYhHkwWKAzsDrOoRYzOCfpbuNtTZtlKbBCcGgaSsMRLoOlkKLqSsQlafbrRgFftpuTVvVTbBHPpgGdDJjptnOoYymtcUupMhHSsCYytzZMmThUuHKzVvcxrAAnNvBLRrMZXxAhHmOQqyYoUuJjMTkrHOBbKdDLQqjJmmMmfqbQQOoMWwZzmCcYyqqwyYWXIDdyYicrRPpMQKktTqEjJufXxVGWeayyMYXxOhtbBZdGPpagyYkKjPcChHoxzqQKPDXhHWyjZCfsdZAazTOodZjsSFuVvUklEewnzVvtScamxuUXfZzkjGKcDdqUYyuvuUVnGgnNgLlYyuUuUFiIQaATBXviwWcAKVmMkKARrhQMmqXxnNhHCDIieLDTCgjJDhSsIsSqApVaxXAcKrfFRFiITHhgoicfFqzVsvnoOEevVZzIrYRZpYyPsNsSIinysIilgGlLMFZCKxRrZzXkAeeEfjJFCXxmVwPpaiIwKkPeXmMxJJjvKxXkVjecyunNUkKVdSssbXxkejJlWbBwLUjvAavVOvVoiVtlfFLdrRDNoROfaxIiQRrhHzZzvUuCciDQqFrOdDyCsSSMmRGgrrGaZzAwVhHzOozxXcudlLSskKDvJnEeNkcXxUuLKwWkGgCcVvxNnIuUDyAhxXScCzIzBksEeSKKzeEVvQmPxXcPDsrkzMGBZtTSsmMcoSiIUanNAusALgGlDUuEsPCaAFfgwFfgVJRiISsDqVUAJNnpUtiikiAvVATCaLlLgSFRrkFfaIikKVAAvOrYIiLlyEyFDdUivxXWVZRsSrzZLPxoOEeeEXrREocPOaWvVVLUulFfqQDdkKrgMIBxesSHHrRRkKgSsPlLjnNJtSslJIDdDdiwWvORByYbrtfFqxXrqQnNhELjfDdcxXJGUPIkDXaAxOjJHfKNslLSnZMmzPRrdwWluuUpPCDbBtyfFtItFfmqDNGgnAAtxTHEMjBbJYXBbZwWBbpgCjJTsPpycEeGnNCYWLlBYybNnWtNoOxXDrySsTtDKShBbvSAKtfqdDQhdMmDDVVDbMmcRGMXxmOJjpznDyStTmtXcARyYEnCDdVvGTqAvSHrRhHhCPpbkKUlQLlwWXgGSMmdIivVDsxbrmHhMEKkNTjJHxQQqqXSeiqjJQrRSsMXxaFOofbBnxXNkKjJkVeEDdzZlkKZDyfuUxXGxVgvLLsyQmMRQOwWvXxDIpamdUunNKdDJjrDbZcyZYyMYeEymdZupoONnnNbhBDdKkSsmMfFjtMlvneJmLlUCvOojkKufFUMDEebzGguUcCEVfCvJSsKxXAxXaRLlrRrcTiWwwiIrlLRGgVvfFaAJPwpPWeDvdaARssweKGgsoOdDSkDdjJmYytUzkDdjUudGSPpQqgGqQMTvSsVkBbIiVrNnKkBasSTzsnNmYjiIZqQzusSoOusQgkuDOoAadUCcejQYvlgrxsMrRmSKjaSiLlKAasQuMZAaniWiIRvwWbVsSLJjsSeEpPUPpuPkKhHuAyYaYyrVWLLXxMtpQiFiIHslTAxXfaVQqUAsZvqXGgdIFfQrOWjsSQHbbMiIELguhoQpTOJsSWwOPpqBbEUoCpSsPyYdgGAaRCeEcKJHeiIWHnIlVRMnNFMVvJAFlBbXmnIaEehFfBmmMGrzCiIkOohHllpPspKkjmMAkjIvVYHOohCcSKVgwWnZzQBhgXaWaAiIgGCcwIsYyAZPDdrRRZFsSIQNvEGwCcWaABblqNDeCwaDzZrRPsIVHsShZzahWwgIFXWhaBbPDOodmNwWnEeEEeHTwyYTtUEqTtcallLQDHoJjIihuUFOdOoseEKknNDdnAMzJYKnKUPzZlizZIrlQvdDTKJxXjsRIBblnvVNgGFlDmMdLhHgvWmMJjdDnNpGVvQWwAewvnNDLDMmdbBxFffrLSOJsNnQUFhHfuqscCSJfFEtSmoOMsRrSFHxWanujJVGzZnNDdBKNkGgNppCTgGypyVvYffuHhkmMdAdDPpriIuUbBMmSVdVkPpByYBTOkiouIiUzpbzFfGozZuUVBhKUuBRVkSsKVvRhSszgGZkFbBqaAcftmdDkrfoxNGbAYMmtPpHhZdHdKkDhBPpbFfVzAZzvwWixwKDtTSsKkPmMcrQCOoAacoyYOMzeLksSJBbEngGiICgGrqvmkfDtXTDhskKIkKXgVsgLdsxaPzyiuHASsKkbXfmDjGFhrMSBbhIyrRYislYZHruUaXnNUhuYHMmBbrpxQJLljfCchqnZDdMmASsRGMlFVDdoPcPtTpDdCyYKPpENnMmjeeTtHdDZzNGkTjtTRgAaAaGrJadkTGYRhiOGQqGpPcYArlTtLEexXlyYVvzaAWEqaOoOXxPpwuFfikSyQtwZvaMBfxtTpNnPPrtWwUnTqiINMrjJiaRijsStbvcCaAJVfFSnNpDFmXJIRuUrNmMSSsmwIiWYyqtBbTjreEWHoOZWzZuLEeHhQqrNoDAaHpzNnwKZyZzjFWsUWBuUlSMSdDsUbBQnsCHvVZdwFTtvJjSDMhqMJXUuaARDBbyyYxHCchXYBbrVhyYzwYCdDtiILlLltqtvRLlwQqZlLuluoGUNnBJMotIkMtTmKyqLiNXenUtTuUvuUAiQhcVGiFfIPlLmMgZzghLlIHjZBiIwWbzJYQFOJGHFfkKgGhpdwrRWpPPpUummbBNoVvyetcCTJpFfQqxXdzZDSPXCeExXCGrRLlgxNOosSDEqsKxmbrCkKGiyHIyvLlnNKkwuRrEbBpPJjeNmoXJjxPpVveBAjRriphpMCHGAvGGgQqrRoWbyhHdIbBcDccCuQgGYyqeWvyYKkZrxtdTqYyQhmppHhCcuBZOoMGZGgrHlLrVFxLaAYZzSsbOUKFfmCHkKBbPTiewaMDaAuUdmPXxuUUuSXTMcXvVBbnyYqhjrQfFeUuoueFEXcBQpYhdKYyamMxOEpLlqOOIiybdpqNFPpFFQyYlTtbwWgGwWPpOokYXxlzudlhvVwiVJmiIglxMEebBLlKkVvJksSZiadGgyUmBcpIbaArRulGgJKkjWkUIYyDwWMmvaAbcaBqJPcYyOxiSbBbBknLtbRrBeYDnLfFlaqBNrciMkrTCENRiqFLqfFNmQtgVDhHJESyYcvIDQMgZkmUrRXtTFrKkjJHhHhUvVWwgGtTdRKriFKzHhEvlYEeHpGgSsvVSlZzLsBsUdyDdDDhHktsUCqkgGBbdgGaqtuUIiGJZzWpPRrLllLpkgFcCKcBRrCFbeDkaOjJDdySIiEBcBRrSsLmdxXDAvMeNlEdUuXKYvMHyYMlfFLlLmMmhmViIykxEeDesSLNnnEUumwWVaMyYNnlNnoOdDbCIibesYoAKdEBfcxXEJGIigjeNzZIgGinEeGgbCkhHfGKPTSsJjtwjgIiTQADrRtTKQcmMudDSsSvVTKIiddKkYDuSbAaPhjJyVvbQqBtTLlLVpPeZzmMZkfInhHNRkrDuHWwQqhRfxuRrMKzGmgfFGNnqdmMiVCWwseOojOxXodvGTqMKKkNnXxknQCclfQIrnectRKjJmIRrCRnbQALUulFfNdyETlNKCAacsIXoCpjQbACBGgVcBbCCcdoOxXiuKwLUAaBiPCPpbxXjJMoOuYDAIrRzQqEeKjHjJhmXLGgMmGMjvIWHLDTtAaUZLyBbBhHoObKBGgVvrRTtLjJhRrHqfjJffnQPSzZsDBYoYyoQPeoXdDpqsSfFQPAkDHyPqbCxesSfEAaUOEUuLlqRJHQNVdDvxiICmtxsxXAapMmnNzZZzAKkWEIZztpUuhcMkuLleEoByxXlXwWfvRhNnRWAawzgmzbUBIibYyPPMHtDTcCXRyYzSsWwVwuUEQqUOoZeEiIzCdCiDYBwOgVagBbhcmPHpPhHDdZzPpUuPeYyBbEPpIJhHabElLPpOcCMwWnUbOooOBWeBxXbEGgVYihYIgcpPRBMXkSQedyYCcCcgGnAaXccxpsSsAaPjEYOnwWMhHMDPHhxXgjofWwfFqyhiHGGUupgbBvCHqIaVuNExnIIilsSQYisSTOmOoFfjbugOUGgLUzWOorVTQThwOopPhHWHTcyWgGZTtHvRdroOcCxjmQHmddqQWwDsPpRmMzZBbrVfWdDDzhcSNZzabDdBAquqQmsLbJjyYwuSwfJoOYzkWYAayZPhdOiItTnRjdDJlUwIizhwROoPpJiiIIQFUufMsnijxMfdPsvjVBPpTgGJIwWrAEeqQBbIRvVmnQtNuTRpennNNdDEXeEFbmBbAVzvVXxWTqYsKIVgGvUmMWoqvVDdQAQgGewZsSLusSUGmMgRayClLggoTtIHrfFyLlgtKDSsAtKgnZzhaAEEJjJZzekgGpOvLliIfLAamgrazNQHFHRrhqsSXPRcCJjyYSshyUHpPuxARhzyLSHsmRaAHfgJdQqMFxBcyYCahUIYJyYjoOZvVpAXSDlGSvGOoxiSGVvgKkHdtxTdFKgGMVQRNncCcNedDfFjKlEZmTtXxqfFiIRCpbUFfufFBdkEeWXIZzVGEegaZzZYyveEEeZzuoOUDWuUwzTyaBgMmpKkPnXOFlLbBRKgjJGMTFmMZzCQfzZKVvSlLsLlHrVvvrbkzZLCcyYlHbvvVOgZBPZOIKaWwAotbbCXxcKvtTDvBcCNnbAhHaHhsOjJoDdRWwaSsDmMKMmUFHhFPYtcPPnKnkbgviIUNAwXhfsTejsScCpRrPAakKAaSjoslRFdDXDdldVWEaEeqwGpPgWIigPwVGfLirSktVqHhLfFRLpukNkyjNnZmIiaNSDzZinbQqBNVsSvUuIoPXSsxpfHOhdZzsRrSGgqLAhHCQeumMWthxXeOoMjJpAHwxfiGHAviSpYyfFdgGDpPdAOoWcEKWpPEewkcCdnQLaeoOrREAZzgeViInqidbIibBBNpPndDDfiIzrBbCcpzaSiAxICcihHGHbqNGvkjJsyiSsJKaJqQBAabhHPSLLKkhUzWwZulLHKWwcwKkMHhgGmWZBbGgRgOoMbHAiNMxLfabBjmfmrvLiNhgGwEhjWwkEIiervVDEjJTteeEchHnNOueeEsSQoQBtmMQqTbqjotNnYyPqOHUGlFfeeEfFMdDPpmmBYyBhhHqJcCwopPRqiDxQVzBbSGWwgauvAFxXatLShfIqPTmOolCclwvRUppPnNdDsSxXlvBVrtThHnyYNwIjJNzmUqCcSnNkVvIsAJkXRGLVyqjJJEyYKUwWuGVveEZzqSUPpUzZjJJyMyYSZuUtAbkKRvLliJjIKNntmsgnNjJDJlwWLKZuTRrMEaAqIizlLZQWSSoOpSyYsEePraADVdEpsSjWHhIJjtCEenzZNkjVcFkKveZBdmJVcuMjtTTttTENVLmTJxeEXEgGeSsmMbBbHBPNQqnxXEeUzHqQhAaDMmzZfFEezYMmCHhBbCczBtTdJjRJjDdkDdDMuUAPidHhVLloXxqrqxqQYyXYSllVGvXgwqQlLWFYdzLGgvVvKGgkKAUumMhHmTtEeAaItNnTEshtneRDdBbBTMmtqLuXqQxzZBcsVaQtWwgcNiINneyYraRrCxVvTMsYdNvVZPogXxrCxXBTtdvRrvddgGkKKkDHYyFTkaQiIqnPpuLlUNRrsVHskNngGCcdSsWwYRdnTwKkwycZhHzfFgCoONnPpYKkStcxXGaAPWwCczqQxymeJjhtXTaaedDEdDdQMTPpqQiTYTnSuUBbsNdcULDgGpDdkFnNeQqEhqQodKjJipugiIjYyCWaAwsSFJleHTtsSRQToVPpjLnNTpGNDdnQqrhhEXbHhlLimGBbRGwWgvwAoFfNnpRrCOeSsplzZzvwnNVIvVtTjJuTtDdfYeRogGVaavkDdNnKAKfsGKlAXxctaqQmtTMawdDkKWIKIhcCWwHITuJjoOPfFjauvQdrjvGWGaAcpWwSeqQUudLlaOCBiIbzbgmZKRSdptTCpMqBbeEZkbZiZxXBbsHaYMmdiXzZTtzZlCKjVUCZZvWaAgRscPpFaAfYoRfdIRrZzyYnNnNqQVZiIMCcmqXCcAFoNmMnrOgGnCcVvaATsSvIVJoOoOuIiAOoaXxEKlLBSrRDvPpFdDfYqQRrCDdEjJEmMeEcdDCpWAWlLNnvzTtnNtTZMcgGPpeEEaczfmrRguUGLSYEeSzrFfyRitHhTNVSvZQNnCIiIOCcqQGbBtdDfrRvVkCvVvPaQiHdKkGcKkaAtdgGlEdcnZzNSsHacCUuFfAqQavkXxaCIVchHCxUubtqfkKGNUunNQlLCkgJKHhFMACfFsTfFZNWJjLcCwWKfJzDaAthHDSFEeczLlJYFfwxdlLpkZXOpJnNBbGAUugDXxzTLljJHoIiymLDQqdlYYBbaAkKAEwgvFUBbGgeLgGlmCxBQFMJjMopzZPOlkfFohmMRKtazmsvVaASlbVaaZzRXCZkKxXkcmPSsCTMNTPhhZzmMHAabBtGgvtUPTDGgGgdGEFfjJeBSsFfFArmAkLTzVvnUBtTPFcoZydSZayQbFdDAzHhlLeEUuBirVMmICbEVveaABcHhiNnAVvPpsSatTSHAahsvTtCsSJkgGjJLltcCKkyiMbBqQBGEKBbaOOCXDBbAaAOoeEiGHJjUJFMmlMxCttKkFxhiIHnObLwBbkKBfFACCccCUNnzZuIfkdpPHaZnNiIECceHhwCcDdDncgGvuwWUIirRVSjJsBbgGCydgCcCwSJCULuUZzlwWiIumBvaZXFtFkKNFfcCnfnzxNnIidNvRrVdAXORroUuiBbIfFIzQTWmMMmZcNnLzZQIUCvcCGgVcQaqtTQYymeUAaCaAsqQSwWpTwqSSseEsJjQbtSsTBXxAaOTEOoQepPEpPmlQZLlxXjZzmDdvexeytRrTBqzflLFavuuOoggJdDYhfFnNbBMsHhSUXxMsQqzZSmUZzvthfFGSvVnvjJNhHPpxzZwWkAeewdRrbBeDeEVumJjWoOZzChHcwJjcDxFfGgXomMeOogGhHcmWwzwYynMiVbijdDGPFfptVnSsHhNCUufFWwFflLyESnZzgRhhMQqvWGbvViIEYmewiNdGgDnUuDdIWYyEbioIHeVvjJTmuUpPgGuVjMOomHhDdQqZuATkEAksyigGxNxjJfYyDdiSURnBbSsIiVzZQqFLUuHFUSyYZCohHlBTMdcCsSwJwWwFTyQqMnftJbwYyzZWwHRmMrTtvVkPpWEpXINpgYymCcMVmMnoGsSgMTnVkEeLNnTudSTPBbjJrfFfgGdDWwFMOolOfzZFGFfSnKMRrNztTaNSHqWnDPprRFfdprXLWpuIijMmLPpIiaYyAZpPPbBlbkKkKNivKkuPAaRAPRSTthHRxNnYaAyXrRGgoKErXyynbKRjfcTIYHAafFTtEernUIykNavVVvAPpgGDgCqQTZyMmIOhHfXYAaTtyZvSCMpTdDAUFTEeKjJRrRvlrYfKMOohiIaAOsrsDduhHeLFoVqQnaMldkKHhDsSLhHQqlfspPyDavxCcXhJgBbeKkIjJbBroOvVlLMKkwWSrYMimCTYhvVBmbLdpPYyDBiIbfCEPPprjJSseasmMGRrnNQqgpPgGcCTtcCYyfGpPgcCZzFOYanNJYZIpPbAdycCWSsULvQwWHweEWUHjJwSuTtEePpDdmTswLlWSBdDnvVNbRPpIyCesQbBqvSYyMmayklLKwWYJFhHeHhEpPfjJCxXfuUFKktHLOouUlgKkNnNupxBoOgSFfgaoOAdDTtZiIeEuUTZztIijJiGgdNpPKYiIlOSrHGvmNaGjJEgGeqQgiQWgGsbBSTtQkbnVrOygjruUvYXxUDCHhWSWwhHsXWwxtvEeEqhHEtTZzOoBbexozQBbUhpcCpPqGOogPpdDdDzZsDdjezZbJjvMmRvVuhJJXxLhVQfUAwpPxEeqQZsEmMQjJekVvQsSKkMjbZzBOhHJKkRIiqQPreEoGtqSsVvJLYtqEUuINniLHukLlMZzaKkIRrIirRZvLlVFfeELlzZzlWjPxRMnNaHtFwWCvbcrRmbilBbdYyfvkKGsSwZwJmBbMVvVkKeEyWwactVvuYLuUDNpPAbamEIATsKkwMmTAZwEerxuUmjJMXiDJjkKURKkAarDZmcCUuclZzLlKQqwWbZyYzBSsViIvKheiTXxVaYvNnCqIiHhFfIiDJidIiAUWwuKsgGSCOoLUIntFfwepjJlLFowWFrapweLybBkKSXRrxHZPbayYuUwZzQYynocjlIibnNBYAkKBfFFcEeYyNQqTwRrJfASMmsABPZQHhqoOzjJhHkKIiXUuxIBbaAHfFIisjlhHkKLIgiIGuUyYcCFdeUuEdDRSCBUmqQZzMDduUSHhhkkKKHZjaAyMtvFfykyINaAgkmMiWwqStfjfFjkiIKLcLsSlMcCQqbBJjiIJjfKUmdJjDmucGnmMZzOMWwLQPpATwMvVmsSiyNgGdDnvVpPoJCcHhEzZeNnvTnNuwWiicEeClLsStiWrRwCcTqQUuIqqQsdrRDSragZyzPpMmgWLlzuUEsSWwmHhzmimSvVJjJjrVdWwQeRjnBRrbsSuUAuUaUjJaQaVnNuyYdZNVpeEHkjJKhsaASJjQqzZPpzycnNCYyiLlDwWdjJIxdDBLPpUZjJkQOoqceEyYIzduUhHLlJjCPkXxiifaAgGHhkgBbeMYfXpPORrDzZiDjAEexXapvVnVPpgYNnBbkKXAaxuHlCcMhTmSsdTIxGGhHgXxfyMmieoyYmORrtUVvAxXJjaAOVvFgqkKQapTtPmMcCvVoVvOyxXWlPsSfWWXQqWDdMPXiHnbBaGCcgyYANuqATfFwoBanKrRfCchezZhoDdWqQmPJjxXqnZJWwHYyhFfWiQDpsxXJqSsQpaVvAmtOyLUChHSHEfxuMmlDGgWwdmhwWnNHVFISPafTtFfXeDEpbUYqDxNnXwQqWMAaGUprRbLlNeArNcCyYnXxEYyjfskFfoREvVKkUzPnJMSsXJZzKkjjJomCauqqQZzQUpPARrWRGgqwMzZmIcCaMuUmtEUcgRLpXiCAtHhHhVvbFjqAwDYHVvhAylLOaAoPpYxQQqFGjJgsFhuUURCcrLQRKxxXvmXxlWZfjzhHZzrFOKkSDSGuTtGgSslVXRpPVvruzTZztuKkNCEecRPKwxXFSsDdVeCcJEgSkfhHCsTYytLlSdDzXxHhEwWJzIqQiZhFIfOoFifNnHaxQWqQkpUEepSDdWNnecqQCEwmXJHhjsupkjahCcSsPphbQrRkmMnBqQBKkzZzMmZkKMTCtTyqVoDXeEBUubGQqrRTtXxgPpRaGpTtsbBcTtCHfVMKRrkdDWwSsmmeAsIilzZYqDrRdeshHURufIfFtXLsSgFQpiGgoGRqQMnNmldkRrCtGgYyJcCtthHTdDbHhNDdkKxyYXOcCEeodDXhnifUuFgPpeEKuUSUuqqQUoIpPihHAZLAayttTJjTYlhHUTSmFEelHnSvFSFpPfstMnfmMFSonuCfFedDQbpSplLrPpRESsYVPDXFouUZzHhTvRTuSfFsQbBqUukKflLbBZZzzJitSsYKkeczhdDImMHhqKdDWXROonNrYQZzQqqwWtTGgFYywjTtJrRUurOWVvEeuqQerVvryKpPVvkYTgGtTuUQjJuTsKTtvVGdnNRwWMQqmrZwkKWMycrRQFfnopPOlLNFTakKzWwtqGPStOLloDcAzeEbJkKsSzZCcJjjJDdBDoJxXCcNwopmMchsSqQHkMCcmTPrRYyTLTqQTbBtSnhHJjqQuUIeMqUuQDdqFfxMOpiyMoObngGnNNBuIRWBbwUucFnNoqQOOhHKCXxckovYydDlLzGoZcEevyWwopTUNDSsLzrlEhoEqIfsuxfMJjTmMDdnNKiJjoIiniUuIcCuUZzNOAqdDWwoOQeEaQtISBTtpLlTtAtSfNVuLyYVKbxXuUiIyYBmMSszZYHFfhhtUxlLWXYyCnNTXxXhHxqQtNQRrpPEODdYyZheocAsGQMgGhHSsmqgnnbBaGgKktxkzWyIicmLlNnsSMXrXlFfsSaLjJkKaABbZtDMRrttQkKuUSnenqQNSkdDKIiIDdzqQZispDsLltJpDdPzqKswVIiyYITxXrNnRtDuyPpoXxOEWSswxXaZzCTtpyYPcYeEKcezFWwcKkbvDdVzMSWEeKkMgyYRrAavtTyzeNhHnkvVOeZzBJUlzZLxXulLzZrVnrLlRrCOcCfCqQHGjuGWwpPgdYHiIhZzyDqQGKkgFfQqBbSsqRwQhyiIYfyHEenYoIQqGgiDdBTBbOoAatPpDBkGkKkOJjMGgHPKUmMVvmMuliIpMrEeRFfmjehHyQHsUvmSclNmddRjJgGVSjJLlIpPUuqQnNPUupBegbBYTNQCSiIXnNxZzoOcKsSkGkiHBFfbxjJXnGgNGLIiRrteEbUGoFfIDdiIknTMeFfEIidcTtWxvOoQqwWVIiPoLIjJpeESENnedhHsdBpFjboOKvoODHhkKLibaAkxXKtTSstoOmRJqQXqQEOFfZzsSjJHYPlLpspGdDggoDOyYodGgDYbBxXyfgiIGCTtMkaSsTYuUxdRRgoqQGWwxpPNeEMWwwWmsnNeESCSscHqQqIinbBIpPtrBZXxLlljRVTtoOFRXSsbwWfmOZQUuqLyYlMmxrRXrRoOzhSsPHaADdsAaSLoQQqfFqlLOoOSQxXGoQtgGUjJYhHVvlOoJjDbWfKPpCchAaHSagGeEdDoGgNVwWbhdEXDwWfpPFqQIqJjjKYsSyVrAaRvZzOoinQqBbPpEqumYVvpkoOhHfFbkWHqQeEmMlvjJRrfDdNVfgGaAuWwUnvOWwsSohmMHvbBMmnyYPpWwXoELPpqYtZzebBSqRoOKkKkGMHtzHXxUzqQNnLYyWPyYpwOOosNGgtTnnxXmEYycuWwivVGBOoRUdnNDAZAazYcCNgMoOYyQqVvVPpvWwjKgUBdEoBUiIuQqmFShVBAMEmIicLmFfMZzLhHGggGKVbyYzZaXxViFOJjofmMYooOpSkDckKAemKzaARHWwytVvHHvTPpcCZjJNLlnzPHUoOKkYyLlnUdxXsHGgTRrtIblKWwGglAzpIICcUQDvHXbCRtpwWPTtTINumOAaOovFRrqQdCvVcuUyfFJcGgCjiFfxllLFEeWLlsmMmFPsSzyYZjSsJhHUuptNnTPYtTqaAGgVvccCaALnNCMmqSsCmZzMLlPPwWNCcYyZzNKkiMFMzZHhpoEEsmRPplamwWPthytqyYrRmMyWBDkKteXxxEeIsSRrioIxHTDdnyYjLfFYjjylLzOodbBDpPwRMBWTPpYFKvVBYyRzfFZiiJxXjIaANbBIykedDsSAaAaoGgmUWwmqeEGRrkQtUusohxXcCpPYycfZgGanNxXKkNvVqxXQojJaAQYsUuVvIizlJdDCHdDgPTtLGSskKgqHInwpjJWPpDJcnXNBmpPDdMGLzvPpzZVjJgnFVBQqrZzMOomgXXuUxPzZpxizZRsuUKkzTBrjGgglLGdDMcsqQfFKkGwWgkPpqCuURrdMmhHVvDfDdBfMmOLlkcCZzJjKZMmCUaXxhHAuqQNnNQqnuUhtirUoOuaAZRrzhzMnNmecCEZcwqnoFvVyYIifONQOoOorbBRWhHEpTepPErRnfRuUwWWwIifEwWpqFjJMAaxXlLAaqQUuuvVUjJpaAzZzZVSszZvGfkNntTKpDqQjcDXCLlcQjPwlLUuiInMrvjWwoDrWwqQdgmAONngGKAaKkOjWwCHgGVvcCjHmMzZhOodIiDJmScSsCsMmiMmDwNuaAIiXxSiIJCcgGcrwKkXiXirJFUzJTtRZNnGgvVPXGgNiInxQqnXnNeECcePgGpkupZxOoXqYOorkKFflLKtTHhvVoUkXIinJhGAYyaUHlLheqjEeUVGXxIbcEccpPJjGgCZjJeAIiOdjRzWqDdQaAwJjNBsSkKIiXoGJjgHhkbBxmMQzZqQqWIiwvVsSzcUuBdDbjJjAfuUQfGDcCPpdyYaAzXxtTxmvwWrLlmAwAXxabOTSXxaTtcsSCAqBbiwYyluMZKkagdkViITJjEgdGgDjqUutTbBLlZYyzQlsSYJBZuUBbzbFfmMjejGUckxZnNSszNsSnQEedzsUJjaAuvVQqyyYXiIxACiIhFnjUdnNKkYyVvfFvVtTqQWwzZPpcPczZQqCOouUFfeEEewmkKDXsyYSLUWwEeerRWZJFrRAsIisSchEJVvMneETULlVlbJjdDBmMLkkvVYyKKknvVNsSsMmYyTtGEepJNSsLjJzAwpMWwMbBZZzzTMAJHtTKpyczBlqYyibhhHHBrRLgGlcCeEodJWCIiRhxXVveKSbBHhRrhrRmSLMBAYpPdvxXAaVDITLFfDdIioOFLIilOQqFeJGNntdDTHhgGAaenkYvVhovgGqpKkoOHfbDdTzZtlLyIiYfFBwWMsSmRkfFGLlgYyZzKjUcjpPOHhqmMXsSFUKkuYZOowWzmMyTCcdGvKkDdkKVbBGxXgcvVBbQVmMWwhHkEbidxuFfcCUPNnDfsLGgtTliIeEchUQOozZNnJjwCAbEijJyYIPErkaedmjXxItwipPSszQiIThwOlMmiTrqLqiIqKUjwWGgryYFfmDDmbOoCcSsCEeZzgQDxXOoaHhAJyDdaAYkWHhNnwKRrVvjPpFTtfnkwWCnTtlLWVGgAaJVvjNnyYZTttJnSyoxrGgzZzZRLdDAGYTYRrpLiIOtKkWIWwixRQqbBrhHHYoOylLhPpGLNnlMmGrRgObBhzZvaJjKBbaAFORFfqQZzlqQMnNmOoNnKkKhIsMtIEeIvAasUuSkKkfFyhMmuzzZnIiNMhcHpJjtpxXqQwWHlJEeVTtSsFfBVtTtTCvVJvVjcYidvmxXgOJjEeoNngUuGsundDKAmbBMwaAIrRcJjGggGZUJjuWLjJLPpIDbBfrRiPTAuuUqQayYXeEuNBnmXxzZMjBbhrRxXVtXNnQqEeKkUuncCbaDqHKqxnxXKkQiIqkYsSmDTCDTuUdDsSgAaaJjgVvLvCpTtllFfDrRrRsYgiIceEbBcnNCumMUeUaAuUrDdMmljWwJbBLGZDYyArcAMmMmaXjyYJtTHyYyrbtTbqkyPyYpplLOVvARrPpSshHazWZzppPvVvKkVNpJjDpmySIisIeEinQAvvVuUVaWwJZgGHOohvVApPkKAPpAmWwMeHhIsSPhzZHmsxwFIdjTpPdBYAaybdDdteEUuTmMJQqjoBIiDfFdcCqQqQRnNerygjJGpcCPKqQpTHxXqQhVKkNSFkCrRsIsSVdeIjJjOJCetuUNTyZzYqQtjmMYyJLhyKkYToVzEIietWwMmnNSIiFfPfeEFfziXEeJjbBxibBIEemVvAiIUhHurlQHoOTthCcqQqLbBSOKkbBZbBHLbiIyYnrRTyYmKwWknNrcOoFfChLkCcKhHAaAQlfPpCHgDuMmqQCGOZzvoZzhKbYZwWbBZbPpPQGgPaWpPkjfFkKAlLBbmMTteUleDdEswWUuHjzVcCCczZaAjWcCqQwQqyUxNNpiKASTtBzZaWqDdZQJPffqyYdDmOfsSGnNohHVQqvOhWwVPpoOdDmzUOnNNnQHNYyyATtbBvCRXQFfqRxnWKkYyKkwqZzQkmvVMAJCcrRjoOiVGvwNsShTtnNmnYqFfPpQtaMyYRrJjFfdDGgnNOoYymvgHKkizZlLQYsoaARrOdwuUMmiIUldDLKLxmMhdKLlongJjbBGgsScPWwyFfUuaAKkYpRqQSVvKkfFyuUkfFrRKeRrXYyoORrROGTlUJjkKuTIcColeMmGgMnNmFEjJrRezZdAyYkMcLlDdKkCNnALlzZamTQqaAuTtYEelYCDdisSFfOWwEJjedSsZzrvSWwbvgGSqIiAaJiIjQEezZASRccCCnlLNvVLhHCcmebBoOEuoYyOUusSNbBQsjzuJjpXxepPAUuIiguTtuUiIHheQLlpPnNlLguNeEbBwWwfFcJsSJjNqQXKjxXjJlzjJjJZPJjLXxlJjpaAZzjMsSmOnFfNugGUGLlXDdxWwTqQExScQqzvFfcVIiIDpPdgibBbBHhIsSzNnGmmMMNGMXItTiWmxXwRrQCcoORHhrNkKraARJqiZzDdIiYyLuUlLlazfdSsHFsSZOrNRrNIinyYMtKkcCTmnzJjYlLynNWUuHNCqQcwZkclqQLAPKkdXTYSsKUuSiYyIgFUQqufMZCHedDfjJFxXcCbTtLlBFTtfOtToyYzeeEyYcCEBbZYLlYyBGgrYyAauUYICcdLiILqQllObBlLsNnEetTWwSoDFfsmMvtpPJzZwWwWjvVTsCKkcSHhyYUwWTtKxOotTaAGgBoOzZYUHYsSyivPoVvLjJMmUPEbBXxjwVSyYcmMCyyAzwsCwWOofFCpPzZccHoOhiIXsqQSxUOVgaAGDtTrdDRrRvVOoLIuUMmLlQqBbiWwnNZjnNJioDYytfFTfcHhzPpddDkKDZHlJjUWOoDNnlLeEOOooXFfSEZbBzZzZZnXOolRTKBbkBwtTWwkKWbnNSjJQrRqVyYvYyGGggNnfFhHGLlZzzXiUuIMmsadSCKkghHOkKHhaAoGpPtTcwWhHZlLEqQeQWwBIihrReEHJiIUfFLnNOoeLltTPpYmMtSsfFvJjVVAaiIvldHhBxXbkzRrYyOoZbBmiIMfFKPSQqaAIfFMIiJjidWwHIihBRrXxMbBTZzKkDmTwWtSxXsNVvzFvVCrRFfgVvZbBDdzAfpPpdDuVAYTWROoaADhHUuyYkFuUFffNzZDoGkKgpPOVWCcBbKkqHhQBQJkKjPMBfOtToQqoORrFErFfRwdDsJjStTXxWMmaAhHLlNnCcuGtfFTgZzBbgGcKrRSskCEdDrwWfJnNJjfFDdjvVpKrRHpYeErVvRzLlZXxyfLlQuqpUuPzIiZqQwWlEebEMmoOlNGgnRrLIpPChhjJHHLhsXktTYkKXAakTPpZLtTEeqOJxXjotTkKSsPpHCchHYyKgxXGJjsSkfGrRgTxXKXWmMwxJjBbkKaAkKTtJFfmJOSpNnWpvvsSPbBrDdRMPpdDzcCCOGgwWmnzywWYhlrRLHPpdiIdDDTVHLlhgGIiGgvkKOokTtMmKQqzYkTtnNwWKdDyYyYPprRRQqeELxeEmMXhfrRdltjjgFhHfBbGJaJjZzyIitXPuPpESeyYAaTqTiIuUeMyYmXxPpgGAeEeEDvzZVjDdiiIaUurRatxXedDjJEnDCgRRrnJPqQpgGcCjmMNpPrMmuUuBaxkxXsieymMoOtTYkKQqUUuXuYIiyIpPtTBbuAagGdDKkkKLlNnDxfdDUuBbuUsSdaAkKHExIiXeyYjbBJenNEyYznSCckJjKGuKEeqHIFiRnaDdAXvVfOoyNtRrBPpHIaAtYyZzYyGgYNnZdDzNGgnyrMLlCxLGgwcCSMfFmsOoYySsWlMZzmsSOvVcDsVKvVRLlrkWwjaAIiZMMRrtIiGgAaeAeEaODdQqoCKkUUuuUuFfBbBQqpXxPbThHbMBbmpPUuknNiIEdDeRkKwWrnNvVjSFOoAanfFAaclLqlVyYOovzZyFfVvvyYVYjHhSCGVIiJpPeEvjzZbBUdDuDqXxrcOpPhusSIjJsShHiUPMmpyRWwOoraKtTOhOpPNDJjfFddDYaAfFyBbAIiDRrEeSKVQqKNnkBbvEeVvxXUukLZzlMmIbBqQcQqWwCWaDlxXyEagGAfFZzwYyYZPAadDgGRAarpvVmMkrXxRgGgJjrFYtTWmMoOwTYdtTssmkBWwmpPMsKkYyCcScCmAeZzCaAMlLEeNbBSJjsgRrAaGmAxXaMDIkKidXVvYyUtTuySUfSsYyQdcCCpJjYsSyrUIacChHrbrRNtTJjrmMYyWrCpPYyrRKPnNpHfFGkJjKgGgiIuUsnKwWVyYsSuUmtAzZVtfFtiIoOKkwWQPGayHoQqHHhkHpPhVvZzYIicCEeieEkNnBbkKvVGqQeNnyFRKtTyYeEyNMaAmnYyYmhHhSLNnLkhQqHEecTtuRZyRsVVGiGPpgxVvPEaAedDhRmMQohQqYwWEexYyOoXyYaPpBbdDxHEZEhHeuUBvLlclLDVvdYrsSCMmcbBcJjHhHNaAnTkVvpEesSajJBbzZrGSuUNioTJbxXBiwWZVrRxoODwWzVvfbBqUsQqYySSsujJmbBXjPAapwWvIiFKlTtsSXxSprRPGetTNnEgWNnwBBbbUurRLlLNnNjJFftwWTlzwWsSZaALrRRMmrWwZzNZOoIuZzUpPGlNTZvVEevkYyKdDSahHAnNfHhedoOgcCUuVvqeEOouUbaeGNnTtyYiJpPjIROoJmwWMmMZdDujJUIizjhHXODijeEJOodDziBbWUuTtiImbBMvVzZSsHhudymduFfUnpvwWaOsjNnJDAIiBbaAxXpPwWiFfIWwaCcdyYzZEeJjeERreVCcbBvlfFkqAaVyYLlQqOQqUufFqQqQuUopPZzZZzRrAGgtTkkpMpPmPAkJjJlmduUDuUpPkqQIidDtTwaAmDNzzZEeAaXDxXTEekKRdMmhwyYWrAaZzRbBuUHKkupVZzGoOvZzgugOoLsLlSnzLDdlOoZNlcCZGLlmMeExXgkmVqQbjJBMmXxThHHcDeXxQwWqrwhELVvEPIiPpplLPUwOiIoWKmMeSsEeZcCVgNMMmMmAaTtzZQquUTtvtTVmmsSsvLlOrrRRoVGArRjJazZRrIiNnNndFfDKnxAaiIsSXtTqQrNnRnNflhHLlYyzZPpjQqmlBbzZLDdSsVhibcdDCBfFdCcDlZfhNaAlLIOHhQqXcsSeEjPkKpJDdkKvjJVVvfFrRCkYjVzZzGIgGmMizZmRrzGgwWRGFfhqQUuvVoyYfFOdDzZtvSsFfRrDQqQlLrwWRhnuUNGgHydqnnnMDdDLJjlVsSGgPeEIipUrRuKkXeNoEeOkKcZtToqQSgGWSswFfiIoHmrzHhqCcWwhMiFIinNwWxorRUFfeEuOzWwZXrOoQvVeEoyYJjcHhCOHyWwnteaAETvQqAfNcYGgJPOHhYxXwBbnMzZBUgGlMRnNrAacrThHutpPUuiIEqHAeEaUJNnIiXxaAZTtzRroOosHHVvhHqlLAeJjJjVcCKkVcTkXTtxfFWwtZzTHhyRrqQrsSCBvchlLHceEWwwWNnsWwPpwhHWSkJoOjkqoOyYQqQKhHTtKWcCqQjJoOKMeEmQqLFfJjngGvVlLESsrRlLWFPpzZHhVHFFxXVcSsBLlVzZzZNjJngGvineENIlLbZGYyNcCngBbOoOmEzNnZEeJjgGbBezZMdDoYyQqOXxeEoVSsAaEzyYZFfvMVvmsxXSmXFfxbBBoOjJbMvVfdDcUVvtXcxXWLlaEJrRgmMeEGYwgGWCtIifFTXxwgGwiIWPTtTtpINgQqBbVvwWNjAaZzZLGqMmBbFYykgGPPpSxWNrRnzZIvVaAxXwWGggGuUOgGsCrRuUcSRxXHhrsSIilMmLUuHhHmMyYfTSskKPuUGaAmpBbPdZrRxtTNtQqYapPAquEVvcvnBoObBbNMFfGgdsSQqCchSmkYywciImMlfFdYyrfwPqMmQHhfsSPhHNnwWVvxIwqQQOGgGWwZXbBEIwiITsSywLFZzSEeOoOYICcibPpBYlWwPDLYylRpPyYrwLlaKkAWoqQiVdvVWCcbBRsRrPuUEzZhHvVewobBOWpFBbfGqysSYfMauUFfaAAvXaAMmvVxkTQdDxXnlZzbnLBbBbVhQUuJFMscCFfwWylsPQqpiiITqtopvtTVleEYcCfFNeEgWwGisSpgfFAUSWwhHWwGsAxCcXbiIkKHhqQmMcCpnNPBAqQabvMsTtQmMqWeEwyXxSsYyNDdUJjaIiCcSDdBhuIiwsCcSsJIJpPjRriIaRWIbMNYvGQFfqKqQfqQqnTsjJDKuUQqHhaAPpRsSBcCxXggGCcvhpizfFOhDdLGKJtTjahFHhfdDHAzZrsBUcCmMlLtTuyYdNnuUrjJiICcRYwWwWxXwjJqQQFfqPYKgsSEvnTtTpTtQPGgpeSHdDhceMmyvVYTtGgECZgGzEeDdrsoIioOOSipPCcsSIRsEDdqWKfFrRIiknWdDKkwNpPoOTtrvVvzZkKNnkKEeLMpJBMmDduQqUsSbrZzgGRIiZNnHhVqQbBkKNnSsOonNvoopyYPMmYDkKxIiuUxXxXTiIGGggApMmnSvVfGgUQqVMqQLlgGAaeEEHhecbqQBwWBbYysSAvgGVxXDPlLdAaDdYCNnLmqoOevyfTtzZTtyNWNkKhHdjgGqQRQvVnjdDBnNsSwPpWnVvNmxTtXXOouUxqQKOokxXnNhVZyYcCAaaDdlVvbuUBisSOYbBzZmMybBqMLCWvVjJMmEeWwAavVLbBGmjzzZpeETtWwPOHhoMgGcCxuXxUoaAUuaAZDdqqQgDmrkKtyTtDdQqUunrKkRphHqQPdDIUiacCaEehKkZVzZuUAuxXUFykJjZzdvlzZidtTDILYbBovFfcKIikMwXxeJjikKwMmWGgAGgLAjJalpPaTtIEMKLyFfFfaAYzfFyiHhIaWyYzQuUogAaGmMHIiHhyYIihnNJjvVbXxpPHhPcCplOxFfTJjtJjiIbBXGgeUxhqpPzcCYygGZzHhIXMmxbzxXZqBsSPvVpFSsCnLlNLcCEIiNnebBDTtdYerSsRdsSLjJFfrsSRoOgGLlAIQfFkvkEeKFfVLXEzZeOcCWwoVxhHYyXsdjhHkKkKhmlLMdDmMyrmMOobqQxLPQqhdKkDHpkKGjJgfFpPThHVvKkteEjmMjnNJSlLsnNDJqeVvEBDUieCcEPpIuXxdbLCIpZcCsSkKUujVSsAavUYyuACcarpPRmIXHbqQBhxiFfrReMTgGtmEPOoziIvEVMmCEeqQclLCcvkAaYFfyCczdDLlmMZInFQlLsiSsmMuUXorpPlLyYRGgXxEWzPBMoOcCIijJLBbUussoOSoiIdDFzxkKZzWGgwXYJqikdfqQBjQqJhkKHatTrRAwDdWxXdckKtUuUWWBbwqQwmMuAaRaAqQKkyYJjfWwgGFlKkLDdLukKxHhXqDdNzBbZeEtTceECnqQGYwVvWiZzNnIkKKDAahHhHQqyFSvVEaApoOsSPcvVCefFscnAaTYytNHUnQqNTtQqyYRzkuUKZdDMofFnNlLgAEWwYKkgrNnQMmXZZzOozhhlwOoaAEeIicYkrSsrRRKqnTtKkyKJGgjgLlqQuUKrRkEIinZzWwTtNeXxCchjdDJRUurBbgOowQpPYyaACXJoLfPpJjeEYaAxXpMmsSeaVvHhALlbhHVvmYyMFfDuuUUcwWgZVOoDeEEedlLwWXUuxvUTkqQImMiKdDMmJjtuEeheEcCJUqQFWTtIiRQBbqrFfZHhxXGWwgnJjybBQqqQSRnzZNrscCYjJxXNbtTxWNnwLlkDmmeoOoOgGQkKbuPpiIvVPWwpHhLmMOYcCtPYyLlgGpMmEeSIisAaCKeUunNEjVvJGgmiIMCcqQRUurgGUOsSNPpqYJjJbBjlLeEycCGnURgGdcRrTHXxNnSstqQOVvoiIBbuaAeEmMVCllLBbIbBOYtGgXJjxOXHhDdaIoONkKnaINDdfeEFxXDsaAWnGBbgNjJrRSkKswNeLrRKaAaAIikUEeKkuqQCcOLkpxXPVvkzZQqKjRrDdSsqQmMJfFgQqsSfYyzlLInNCcQqOJjoikHhkjJKEbSsBgVPeEpRrnNgGYjJwWyDdAkvVZzVBLRrlbVvUueqgGRSoIiOsRpPrSJjNnKktTgGhdDwCjJcKmMPtgGTtNSsNQTJjtRUszcrRCXxbBPyBbcFUumsSklbdbBkKDsHxXNnBlLqQXeEMlbtTLljUXxuiIBbBmMbmDRrJjdpWwPiILzZyjuUJVSsVvvsxXSYnNpPsSmxXAJjaYyMdZCcNTtnXzVvEeIiKkIbBuUuDqUuEQqFuEeUfsSQcCqvYqDTvVSsBMHhjjJXxJmlnNunNZzUIxXuUmiIMcCsSqQOoimMbrWMmjJwRpdIimcGguUCqaJeEsSChgGHjGguWoOwmdDMgGJjJjLtTOaALlzUuQAaEDzZPpaAdbBrRAaYyPcCsSpGNngRrMqQEeRriKklLIiJKkYyjYBbcCKkpBbPyHnNXwWlLmMPcoKkOtTJnNQwWdDkdDKfrRFyRriuUdDIXxzZHBqdDQGyYgiJjWwIbGZzfGVvKQqktbBuHhUhOoTmMtCcHhBbXxiHhhHXxhrRldDLgDvVfFAcCalLqwtTWHhQeWwExXttvVMGCcggGPoOOvVobEeFlHhCcoHheLOdvwWyYMYydYTzUBnNvIDdiPtTpfFhzZFsKPpkxXrRLlBqoOInfFXnUuGgpPOoFYSsyFWwfcAhHHhaJqQSsJjhPSsBbpnpbBPNxXgMmGvVKkaALMmlLRrKkGoUEebBBboUSsuOhXxmMvPpNnXWYsrRSWBbMPpmwaAyxevVRrvxrRXdTtBNnxusSCWwczZzZACcoSsREeCsuUkKjcCJnNKHwWhkCMmzHhsSZzYGgaNnAywWtTIyYQqiSsrRsSYyplLPdhjJPpRrHiIYypXxrrbBKkvvVwWmmMMyhHYHkyYKhTtOowzsnmgEeGHRrhEnIxRrWXVAajQYyqnNDdJvlLfuZeonNgGOxXiJjTcGgCFfUCcsiZemJVxXAaILlqQDOIiogeEDdxBbXGHhuPLlAGhHgDdarRZDdziIVNfFaAISsimyYMuQjJqhkKsuptWEFfYytTAaehhLsSjzZcCBDjJBkKbvViIdvVYajcCJANQRFfrmMaAUCceEqhbBHQdDJesSaABOobdDWHwWhhHWBbIHhVOovaOoKkdsSDdDJjAvpYylLfkKFmMKmMkPvJjwWVvEeFJjTtuzZUqQjJQvEdDiSsTtIeRrstTtWwrRGgtTocQWwNnJjmIOoiMMjJmgGCcFfkKQhdbBDHYrRyUqQuvVUhHwWwWQqOoYNnywYyWuBhHTtpViIPBbRrsjmMnPpNGPBnNScliAaafhHFEaLlsADdaSoOvVPpmMRhTCSsvVvVcbqKcCkWfFweWwEQGHMmhetTyYEgOMmlLAavVIeEydDYEaAaAYxmODdoMzZKkFGrRaWwoOLutTYynNUrRlZvAaVTWXxTQyRrbBYxhqQzZHiIXJHhPpPpUuQqkGcCgKjrRtTNnUfFeMmEXxvbBfFJjhZzOoFfHbfFoSsOVvSDveNneEFPpfrREARrwMUuCcmWmMcVvgJjWBbwGCcsxXSNEeiILlrRoOnRoODdPprFrRwWbrRyYBaAfRSsrXqaAacChHABbXzZbZzZcJEejJjgGbBmPpMCcuEeAaUWwFfbBpPYxXKAakSrRsVvqQYCnNcejuZwWgGrsSReSYDdGzZgLrRtYctdhHznCNnnAaNcuUvZfxXDdVaAvWwXUHaAhiIlGgLHdDhTtCFfcfoINnnNiyYGgPpOFwHhWgJGzZgEGVvgFfyYdIXdfFDAaePzZpEEaAeCxXilJjuUnNzZYaAkVvKyiIdDIiLIilKkKLHUuhYRryldDbBQaAqKiIkWwSsbFhHfkKJjBVvWSnzNnzRrZPSsKkpyAFfPVvTPpVYyvtpQOoVvQNnqTHaADiIdXGWxtTfFIwWxXLlpPitCdHhlLkaAtHhTOVbBZzvotTDOodcCaPvVKkWdDAawIlLiGgFfnLlHhOSpPsBxGIiKkuoGgOLHhWwOZzEeETKLlktpPvAayYTtVqQMQGgqSsUtTuKpYyjKkbBMmJPXFPpRGgvVrZyYiIzZuauauyDPWwpdsCcSTtYvVULlhHgGLlbvVQqcCspPcCSyTtcpRrPAkXbaQqAGgcCBRrQdDqxAgveEVqAaQiIFXhHxNnvVvVzBbmMVnNtmzZjJAaemMaVvAFfzMbBEpewWTtiIfdDFWwcCoOMFfJOojSUaJjgGcyYKtTkDdwWwWoOYyXxRwWrcCXxCnUuiIMBbmsSuURrrRHhiIqFJovohHOgGVVqQJjvkvVPpKRhquUQLlXTtIiSQFVvfqqQrEeRGgsxutTpPHxmMaArRMmXZvVKRRjJEIiUoOAaAuvVEeUuBkKbmtTfFMUaAuxXUSsjhGwWiJjIgseEmMSTuSwWsmMUSaMmAJKkjMmMzZSsLlEImMcCicnNvVvVrqQPuUphHmMfGiIgCcFuUcgGPpQHBbFfstTHhalLAabBqMRrmaAQAWwdpyaAYwWcCQOoqyYekKEFsIiSkKhHHhXxjwuUWXzZkKUuUuxXxxXMBbozZaCcfLsSlFvVlLfFXxrvwtFsRuUrMmSCyYCBbcdDYyKkCWQAGRrgEeEXxpPeOouUFKkfpPGwYyWnNRreEMoOgxXGmeETWCgGcMnvVNYymwgBYuUjJyimMwWlfBXxguUiTxXNneAtmMxXyYTIikKaEtInNtTAoOnNUhuUqQHgGEHheRfFrZzVEevMuUUuHhuUdDzeEjlNnLJZApPoOaDtTJlLjeEPTHvVhFfMmXxhMmVvRvVeErDXdDdKkDzZqQxkKFUHIiWwLlmMheEsSrcCRufdDdDdRbBvuUVAAaFWwtTfvVaAaWHhGgZcCXxQCOocqyzZICcihHCcPpKkxKkmMXPmyYfFHldDLqeEWwTtcCixXdDdOogkJhHCcGgQqWwaAeDdEerRdxDdCNjJVwnNWwCceEWwNnnnNNWhhHHCWyYiIwGgcvnIKkisTtyYubdDBUdDSzQqzEjJeAXoOKkxzKkOoZaIiZWmMGgwHhRgAaNLxZzCcXlLMmzZjJlSjcCJhHFtriBbpPfgGFCcvVBHhnNbCczZbrRGgTWsSwtjJYeEkKTtynNuUCcpdDPBJjCcdDYyUSsuUTtuEeIWZzsSAaqgGWSlLsNnwQSssSZzqNtaDdSsADdYSspMTtmPBiyzZYzZlLIfzMmZFbQiIEeHhbpPJjiIaAoOYyiIBmGDdRrzcCEuUiIeZaAvVAbBaCcvBbVthHAaEeauUAnNTWtTwNhcGgCWwHnZKkKWwEqQePpkqQPhHpnNWiVvIpjJPUKkLlBWwbZzXeExmMxPWESseEvVeLuUbBltTwMGDdgmMIimNnMmAjgUusSkaAQRrqcCcCgGDdsSKvxXelLETUzZwWuXxJoOjnNPRLTnNtZcCzlLVvlrNMoOmCPCcpNnHhyYctTnWEewnpPFfJzbKaAdDkBZOfhHFGgAVvaVjJfoyYxnNXZzOHUubpPBijJnBboyYwWXxEeUhxXJiIjJjuURwjJWNJKkjuAajLlBbGqQoOyYJjnNAanzZdDlnNwEecCoOWGOdzaAqQlLOhHGgsSojJdDtNngNOjlLJfaAFttyYTbcCnNLlbyGgQqQrRAaqkKNAanGTtgGgRrbvpLlPiIVBxrRlLWwgGXFDdiIfzZDdzZpnrRTtNPwWcvVGwWNuUnDdAcQqYHhCckKkEIierRQqDdKkPpmJuUbtTBjyYiILXxLeElgGlGJjqQgTttpPoOTYsAaPRrgRzpjJaAvVeEgvXCcxVTYytgGKZzbtTBKOKkoUuooOOvVoNQqnqCvVTvVkKgGxeBbEXZNJDdjRraWZztThHtsSTyymMYDdJpPVvVIXxivjIigRreEAarRrRIiNUfFuRBbqQDOoKkdhmcCMnLlLnNlcCCcLUulNHkeEzZPgGpgGSfFsrRCcsSUuIkKineEUcawCvVvDdVoOnLMlcVvCprRbBPXrSawdDWYylLvVgGlLsOzZoLKkljJrRdDZzrBSPpFfsEfFetLNnltFfaAEedDTTbLlqQAaRSwWoOCcSsRkFfKfBbFTHhZzogGiIOfnNFZzUutwWOoriyzZZznDdgGNnNQjHEehJbBOobBqIKkVviQIcYoKkONnZzRoOrZkKdkKDgLlGDFfZzkKTQsSqGlzsSxXZQqLlLXfFeEbsSBUOeEWwUZCcSsDrtDdOoTRdHhRXxmCcdDeEMOoryYOoeEHhPpGvfFqQuUVgaASsaAvVsotzZTOPoOpcDgGdCQqvSPpsNiIsSnCgGcvVLIivPJjBbJdDFZxXPpzfaWVlMmLvbAJjJjFfEKkAaylLYyilLIlLAaDXxAFfadZoOrRCcKkuJLlxguUYyDdGXeEALlaGNuSsVZzWwwQqWIiTyYtvVvJjJjrUuqQXxPZkKFfqQNKkpPncCiVyYqbBQaAjJvUuUvbBFfuUJwWjWwWwRDdtMsSmDdpoOPDdTqbqlLQEeBsSDdGnoONdKkDyBbiIYZzwWyUYyuYgVvJRrzZfFjmMQhHrNnRepPELlvVhdSsDHpPTtIWwcCOwJQsSiIfrbBRFJjyYqjnYSsxXysSVvOoLLllqblZHhzeEMxXZbBzmeENnkKHRroOwWBboOXbNiInlLbBDPDdpFfdyYBFfnNAarRxCHhcfhHAaFxrRXFsSfuJVvzOoNniqYyQIgGdDCcAafFQWaAwqHCldDdEeDfFLypwWPNnMmnUuNZzOtTTtzxXhHnJuURrjNXAaxrRhhHLlmMHhAUuaiIOwWpIiPNEeGgYyGQCDdcpzZoOPiIsWwNnNNOonopPOnXfFEeYmMyzZvVAGgCcSCcEeKrROokTHhLltASsfbSUusBoOfOaAobPpBFfxXwWsSZoOCcIizpoSjIDdiOoJsOsSGgXqQhHxjJNngJjGPkqQiIulLhHGUXPYyrRpxuvVmJjnVvNMxXrwZzWRgUwTtXxbBfFWEOLpPltcCeyYXxmLJjXxlEaGgXxAoOefhiuUIHQqBbrRyDdEhtTHOoCcImMBbxXdDLliJjsSaAVvxXxXBbehHeERrvVPpTtIPwWcVWwAJjPwoOOoWpVaoXxOoOhHSNmMzZSsQINniqEeQqZznmMXoZzOxMgGSsPsSRruhHWwUpFflLQNnGRrgqmmNwWnMAaNnaAXxvVQqnNGgDPKZzmwWbBqQzZMcCrRIivVHhHhERrvVevOoVfBbdDnNSBbeQqENnVVvEevxXDnysSYEuSsUuPpAaUUxXuvvVVeWCcwErRNCwWcmWwKkMNnWwRrnKNnEwWxXCcekIHhnOoeENKLlkpPAaaMrRJjuUMmGgAsyKkYSaqmMQWwmQqOEeEeBbZqQhHzoVvCnjJNjJLGnNpzuULkKlfFZPWwFnbMiImuufFUUByHLlhYZzMUumDBbdrRNNnQqjJNyYyyYbBOoYiIWIiHAauUfFBbhmXxbDdLwWlBmPpaAWJjwgMmLFfxXlGkKuUHgjJGgKkGhjJAvhHVtIiTaMHhfFwWgGgsXwWxSrQzZqTOotOorOoSsbBDDgeSsEpPUuoOuUbTtugGhHnAaaARIiWOowrvqQVnxXOoJNnjQqptTPsSNoOwbuOoQEVveqJjJqQjhHdErRedDIiDeoOcCCcEtTMmiztTZmMmsKkScCsqQdDzZsSffFBbbBFMmZzSkKvVEePpISEesRrsSFiSsIfiMxXdLlDuUumpPMLlmIieEMwWTtUtTCcjIeEoOEiIVFfvSseyYYyiGUuaAcCYyAaglLXKkxPhHDdUTURNnruDdrWVvwtXxTRtKHhkEDdfFUumMHRrEeLlhLlMmOosSTtuaAggGGwWUhEesSHdDgACeEcaGfXxFHhJxvzZVkKYyYAayXbLSsllHhgGLLlpPBWwCcUuCEDdUuMwWAamkKeUIizogGMmuUOZunNxXbXNnHhZzDdCcYyxNnfDdFBbBbBoXxOFfDsSdWOowBbRrlLpPVvSoOdDhCczxNnXxPnNpWaAwGDBbdpPVvcbnNjJBfFCeEtTztTZXNnXxiwZzUujJxXPpwWWejJxeNnEdTtSPHhZzpsDfFqQBbTxXYyxXtKkAQqaAVdDHhJjvoqLlyYLlfFrRcBbznNfFZCqoYyGgOuUsSwWQHhuURrteETuUHcBWwbCuUhibBIfFSsDeEBbkKTeEtuUktTKEVDdsSRrvUuvVIiWhHwDOoTtxXhHkeEKHhFfiIKKNnkkgGlLeRZzrxNnZzXELlJhhHHjMeEdDmgGXOoGpPYyVvgyBjJbxXrYyRVvYdDvVxsPpjJShzhHZYyHKaAkaArDzZdRkvVnNuUzZzZwMmoOWxXibBIaAJMmgbTWwtIvVBbsSiBPRrpjJTtImMiYyTjJtJjYPfFpWwIiIihHrEeRymcCBtTzZjJbMcCnNdYygGDycbBCHvVhRwWvVrlLfFGgRrhHIEeiaFfAxXpyNnYPeEgDHhdLrRlrRBbAaGzxXZARrnNRrHiIExXeuUUuhcCadDftTFoFfEeFvVMmfuUyMmSZmMmMKzZkzvAlLaVPcCEqQepBbfeEFWwcPpCZjJHhkKVvigGItTzsvwWVvVSjoOYyJUFrRgGeopPFfZlXxAoODdudDUaAHhWwaPpAayRrYLoCcOxsSXYydNnDYMmuUQfwWFUrRuqKkpOAaoJjQqwWPMmpFwmTtbBMrDGgqQdRJTtjCraARcWscCSfSsryCcYZkSsKSONnUuoskKoOqQhHzZwWOJjqQxKkXnNeEoxxECceXlLXmMdDYCcyeEbBzzMmSsZRsSMmrUgNnGuLlaAsSNwWoOeEeErxGgXEeCcRZSsrRhHDdZzznNmMyWpPwYNaAnmhHLlMdDpPcCKkniKnYrRyCbBwWcNpPTtZhHDdxXunNUuUuwmzZMbBWSFfABGgbaRrbLlAaBbBsyYBwWSsmMDdjJmMqQiJjbBKgGkVvWwgGKpLlPhHkyYCGTtuZzFfJLljUgcaCcAxWwXODdrRozZTYytLlTzZTyiIYqQttLlOooOtTiIdDKLlXdDxQqkVBNnbDdjJQqIixXgGHhubBvzZVeEXkcOoClShHsLpmpPMPoOKPpxUCkKtTMmpPcEeuUZlLzXxvcCNnVwWNnCcByYbdDBNgGnrRXsSxucqQOiIoLjJlCcCSBbsOtToUnroORrvVcUFfuZzRrCZzRaQqoOWwzJjfFbBeEZzZAYyuJjUoxXQUuvVSsPpIiIdDoOixCnNchHXqaAnNJzswWStTxXZwWjgGtXxTbBBWgGwCcbnNOSjiIJxXsqQcpPMmqFfQCLluYyBbwWSRrsjJUgZzGYyQnNlLSsqsSrRsjjJRatTtTihHPpsSIDdfVvFCTtcDxXdQVaAofFOUuvMmqOoEeRJKkjJjrQaJjAlLQqbxXoOZMMmzBqbBWOyYmMAagGoaAxXzQyYqZNnGgbBbDdBfqQdrRvVAwWYEeveeEjJEeEVqQyUuaAHhjVvJaZztTVvVvcCNncCWwWiICcfFJGgjMWiIdIiDwMNnNIiuUxXeExXnfFmqBbQmxXUuMFflLGgmwWvVHNFfnLAahHCcSsFeEfUuBMmbgGGgqqQQQCUurRckKqlpPhVcCveXDdvOoVEeqvqQVQPiIpMiiIHhABbaIxXmTtZzMmxMmNRrrRnwWqQBbTtGUugYEeBbmnHQqhNMetTErAaRlLlLnZzNWmMXeExeECcwVvtTKkBbuUuPplsSLtTxXPpGvWwVUuFfjJKMmZzkgDdGHhQqCcgDqQdVOovcDdUiIXxPSsdDPpjJpuIiqQtVvTCXxPpHuUNwWnoOhmMdDqQVSeZTOottTuUzEeMmKkEsuUbBvvTtMmEeVxXgGUynueJDdjRrEUCcxCkKvVFfcofFSsOUuXKkCvVsQpPqSIiyAaYrRMmxUuxjJXStTtTsXcuUeEfhHGgFgWwndDaANGnNknxDdpPXbBTtNjJnNnNaAgkMbBiDdNnNnImRrKABbaqQHFTtuUyUxXuYcCwWFfuUCxcyYSsIiCXcfnNhGtXXlLkKxxTQqhHrRKKkAawWoLlHhOZzfjJvVasSoOmMjLBblOoupPUdDJuUsShHAFBbcmMCOJkKjCcPpRIiWkKwrXxhHXqQunNUXyYxxAaFfovxXsSJjGGgvVovVzZOPpvVgXxINnirREerRAaWRrbBvVMoOKkDdmIiWbBHhwtHhTKkCciIogGNngGGgTtOwDdQqgHhGCcdDkKPpKkVgtTGcnVHhOovNAaNTxXJKiIMmBbkCeEcIxXgGijKJjktCcCclLxXFiIfjJcuUMmJMmjZzCngWwGCmplLAaeEPUudDiILKkBboXxOwWKkmMrHhHhRvVzZzZfwWZbBUOoupPzFeEQtTqFVvfZzAaFfNNuUVvmMttTTnnwWSsOovVOkKtTRroUkKuI diff --git a/day05.k b/day05.k new file mode 100644 index 0000000..1ad195a --- /dev/null +++ b/day05.k @@ -0,0 +1,6 @@ +/ not so easy because of overlapping matches +/ (*r),&/r:#:'{x@&{1_x,1}(1_v,1)&v:~<':32=b|-b:-':x}/'{(*1:`day05)^`c$(x,x+32)}'"@"+!27 +/ (*r),&/r:#:'{x@&{1_x,1}(1_v,1)&v:~<':32=b|-b:-':x}/'(20#*1:`day05)^/:+`c$"@`"+\:!27 +r@0,*<r:#:'{x@&{1_x,1}(1_v,1)&v:~<':32=b|-b:-':x}/'(*1:`day05)^/:+`c$"@`"+\:!27 +/ 9686 5524 + diff --git a/day05.rs b/day05.rs new file mode 100644 index 0000000..ea6e919 --- /dev/null +++ b/day05.rs @@ -0,0 +1,31 @@ +use std::fs::File; +use std::io::prelude::*; + +fn react(s: &mut String) -> usize { + while let Some(pos) = (0..s.len() - 1).find(|i| { + (s.as_bytes()[*i] as i32 - s.as_bytes()[*i + 1] as i32).abs() == 32 + }) { + s.replace_range(pos..pos + 2, ""); + } + return s.len(); +} + +fn main() { + let mut f = File::open("day05").unwrap(); + + let mut s = String::new(); + f.read_to_string(&mut s).unwrap(); + s.pop(); + + println!("{}", react(&mut s.clone())); + + println!("{}", + (65u8..65u8 + 27) + .map(|c| { + let mut t = s.clone(); + t.retain(|b| b != (c as char) && b != (c + 32u8) as char); + react(&mut t) + }) + .min() + .unwrap()); +} |