Created
December 14, 2018 18:38
-
-
Save kylelong/971d4245d0f8cc115094d836ee832873 to your computer and use it in GitHub Desktop.
adventofcodeday5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Created by kylel95 on 12/5/18. | |
| */ | |
| import java.io.BufferedReader; | |
| import java.io.InputStreamReader; | |
| import java.util.*; | |
| public class day5 { | |
| public static void main(String [] args) { | |
| Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in))); | |
| /** | |
| dabAcCaCBAcCcaDA The first 'cC' is removed. | |
| dabAaCBAcCcaDA This creates 'Aa', which is removed. | |
| dabCBAcCcaDA Either 'cC' or 'Cc' are removed (the result is the same). | |
| dabCBAcaDA No further actions can be taken. | |
| */ | |
| String s ="iITJoOyRrYiIXxjgLlGrRnSsShHsNqQdNngGDwNHhDgGWwaAjSsJdnLlOogGAaPpkKEsaASeKkgGFfgGIQqZoOzPpiWHxXDdXCyYcDdxlygGYLTtdDQqsqQIiMnNmzZSsoOOzZGgoSbBgGjJdtTPpAnNahHDMmhKkTtuUYCobBOeECcIiaASscyUpQqPQqUkKpPGguAaCTtBbnNLlcRrXhHaaAXxBbAVvnFfdDahHAbBNsSxrRiIYyXxwWwWnNzoOZAseEKkSUuzZBbacCaAkTaAtylkKLQqBkZzKtTsSbYKZzZBlLWwbgGMmlLIirROjJHutTUhozCcubBbocCOSEnNeRrHhdoODAasBoYyIiRrzZOsejJWbXxOuOoUoBwEehHDdExXyYeaAfdDjJPBPpbwWpFoOsSmmMgGMmwWYoOUnNuyijJXxXIwWixkKOoWPyYpwoOGCcLlgQuUfWwFqdDIbBMbBWbmyYIiMrRaAsSlLBpPqQwBXxDdURrvkKVupPnNQqRfFBXvVxZAVvLlayQqYzbaArANrvVRCcaAnYwWiIyUuKkakOOooPpKJzHhjDdZzJZlLWwkyYKjHhcCzZHhjmMJbUuEZCcPZzPgGIiuUppzpeEmMPCmMkKcSsblHlnNLcCjSeEsJEeYynXxGgNvVhpPyYmMJNTXxiItZzwWnmMyBbKkYjoOhHwbBiQqITtDrtTRWwWEeSswqQdCWDdwLlLlpPzZcjKmMhHkJgqQGeEEedaADgFfGxXTQpPoRWwrOJjqXZzxLlphHPQqVvJJjPpGgWcCwZVvzptFfPSsnNoOcCkKTtyYpxXTpPQNnyfFYCcUZzuMmlDdLHhqPYqCcXiEeNnFfQqIpPxcZtTznNDdCQYgvVpPGXxysSCXUgGuaAxBbzZOAFfUuwWXxfFaINnrRilLDbBBqQeEbvVKksSHhGgdMmWpUuVvPlLhbBDjJdHwlLdDkXxKTtHhkqQWwskmqYyQPpGgkKFfMwWjGguUJmsLjZzJfFlBbSnNMaAsSKnXxNwmMsStTWqQGXxgPQqReErOobBpSdIiPSlLspmMDYyhEpPoOKkeIMmilsSTtEeLLeEutTIsSuUWHhAPzZpLlcCkZzlLKaFfZOozXBbxChHtTDpoOvVPdWwKkiIcNnwJjicsSbKkBOojgGMmxXSaALlsmMgtTcCCcSsQqGRNnpHhPraAaNnnNvUuVsSCcAaDdAagGfwWFRrgGAXVvMwWqQmRrGggGhIcCPpQqBbiKkkYyKHkPRwWkKrpYWweEyrRKxtAlLjJBbWkKsSrCcRuiINwWQkRrKqnQHhkxWwmMXYgGybBnNHhKqQzhHGgZqpPzZQqNnaAaASeErYyRYysyYFfKkndenNEXlLWuUwxwKbBSsAaklXYyxgGuUhlaAkKMhHmaAqEeQOAaGgoaAYgQUuBbqqQGcCuUOonrHhrRRlLNbByQqFXxfHJjtTygGYUtTzZuQwWTtUuqYyurzZRUNnhsSdThHPpdDJZzjqQQOTtoqtxrRXSiqQMmIexXEhDyYdHsvVGgrRhNnHOOoorUuFfLlkKzgGZRxWwSWwWwsmMjJZzFipPIfQqzZbBXEeYOoyxBbHPQtTOoqppPBIFfinEeZuUaAzXxKdDkewWkKjJEWWwDdAahHLlAUuQdxXDlLYyHhdDrfFqQQqpPsSWwiIRmwWxiZzIXMIiXxbBPpCVtTvIiEeEeNngGMmwWLlcuUmllLLDdXxMqgGaAIgRrBbTbdsSRryGhHgYDdbBDBAatGpPiLvrRhHNnVlwLYyLlJjwWlWtTdHhdQqZcCXxzDGgNFGgfoOnOoOodDdaIiACcwlqoOQLGlPMTtQqmpOoTnZzNtAQqaBbjJZzOoiIZFfzbvVBLlUExXWwVJjveApPwWalLZmMzJjJjxXGgYWwycCAabBTtzqQZqBbXCcAaxdVvDnNwWQEsSDdWwtTwWkKyYtvVUVvaAoxXOmvyYVqQirRfsSEwWoOegzZvVOoJFATtEekKaYXAaVvxXtTTthHzqQIUuiwWZxJjycCcCfpPFwpPXVEkKevJjQwWDdAaqqQdkKpPxXDxWwtTWwZzpPLkluUHRrsShLZzZzJXEeRaArxUDtiHhFfIrRCcTtTgGhidFjJfDWwgGGguUIJsSQbBcCqrRBbjyYJhHjhHHXcSsToOzZpplBeEbLUxXucCzJjkKZPpafGgBbFAtWwTMvVmxEeXbBgXxGLlRRrbsSEeFfMmuFMmjEkAatTKkwWpPAaKkKVYyveJfpPUmMrRBHhTWwZAaGgjJzCctTnpPNBbetfFTMmkKAUuUuzsSsYaAuUySsSJBbjVvEehfVvFHZPKkpQqyYnjJSsNaCclLuUUFaAxXaAfusSpPuoOoOxVvFlLAmMnNaISXmhHMxUNnuTtsipvuUJRrjcJjCVPwWbBfXphHPXVvxSsqZKknNBbXhHQqGBbkenWwZzNkYyiHhIKyYvVEeEmfFyYtdyYDLlvVoDoOdwWQqyYYUuyOkKxXpJjmMoOPJjIideEtTnNDVVvvjapsEeRcBbCrSlLfFPYPpLlvVBbLFjJfeEeEWwtTWWwwzsSFzZfZhHfLfHhzLGglZsSYWtTwEeEeXxyVvEeWwUuLlkKaOoIWwvaAjJTtbUHdDhuNnUuBOoAaVuUvxXJCcwWjJYyCcwNnWiIXxpPBbTiIZlLzDdFfVvbBtwWusSUpPjdDGgHRrheOoEbsIiSJjHmmMZzBcCWwBbkKcCtkKTUmMubClckKMnsSNXRaAmMraARrnNzZFfKEeknZzNmHhMdaryYRawWAjJOoAaALpPLlnNlyYEeOoZPNkKnouUOgUuWEecqxyYuUCcWwXCckKXgGxwPwOoRrohHfFPpPUuLDhHcCTWwkKtuAaUKrRkdLlzZbBUWFfBaAbwsScFVvfBKkbmMCWbBrRXxwWzZSsBbLqQBWQRrJPpsSjsSqvQSsWDdwOoqcCgGTBeENnbZzYYyytqWwdDEeQGOojJQqNnOfkKPpFoaAQDdeEQqrRShHpqQPrwWtgGUuMmlLTuUiIRhHFfWwIipPtpmMPRsdDTRroOtShmMWwFfyYHaAwLrRrTtzZJjRvVFTthHPpzOoZfICviGgIvVRjeEgvLlGgVGJrVcihGglLHIizZWwbBumMuIicDdCGgpPUVnNvBbUFbBxXIDdiEeeEbBMaArRgGKoOksSJjmEexXfwWQqTjdDJbBHhoOSMmdDfNrRffFYgGyvMAamMFfEHsShsWwLlSHhYyyYDfjJUuFurRCceEmMWSssbeDWosDdSsSZzXxdDOPpLfFSslwWkKwFHxXIilLlBgjJGzZagyYGXxAiIiiIVkAaKOtTmsSDdFfDdMFMmfXQvVFfqxoiIbeEBiIbBlLbBYTtWpPIhbBHiwNnyJjiIIieEppPPRvVhAalwWsSKkuULHvVrRrRHsAaSTtwWJKkjhpOoPMLUuPplSszPpZdqCcbBoOYydDxOoyYBSsbBbBMmvaAVpVvlWwhHLHhMCcVvZzncCnNbBwWNCcwWmhHbWBbtTwMmhHWwzKkZBGgHJjVoOvbpPzjDdiiIPtoOZspPSzTMmYyhyYHhHDdrDdZzMFfzZOoOomfFvVZaAzuUOoTmhHMtUbyYHhppPPVYyvtTtOZzoTSsMmsOoSIwfFWsSAaaAiEUuUupBkKSsKkTtbwWyBbYaJjAcmkKBbmMcDdCMCZzyYNEQqZTtfFJjzHheEeNWwnnzxXkKZTtKkQqaAmMtTlLKQqkGhHNnJXxjgCcCcgfFgGZuUzjJZrCcyYHhqdpPDaACBjGgJyYWRXDdxQOoqCBmMEebxXchHSQqsSXxsrVcKwWhHUXxAautcDdkdDZzKCqJjQTivqQwWVLkKgGSsgMOkFfPpaACcKQZzIiuXxjjJwWYyUuoIiBLlbOoAafFCsDdkKmlLLluUdYyDkhxkKXHKMyKkYSqjtcCTyYKkJHTZzUutRrOQqodUUusSsSucQpPsSqTDdtSsxsSXDdCfiIbBbzCcGgsSEeZWJjweHfEdDeJjFgGXxIiWuUmlLMhHwSYynNuvUGYyWwgusSwWVwWzXwWZzzZkKjNnPlmMLYFfyjJSsDStTwhHWOFfXnnNNtTfnNzZHiIyuUJWwjiRJjriIdnNzZDXxiFTtLuCzZKknOoBbkKudDUkEegGxXKVDVvpVvmMOoPmMrRLNFfngGVXKkxvXxLllkKduUrRvyaAYAEejtTtTkKJazZIipPxXxSsFdDGgfRrXeExXnXxsvVjaXxAOKkQqQqWwAwWaKoIieEFfLliIinGgNYyvwVeEvyYWgGZzEeQqLlgGbBSsbBbHhTUunToOtbBDgGdRrYyNjJtygGYjGgJaUulFfXxGgAaZYyRBCcMnNmkXxIinNqQqQjJebBepsSlFfHhLPoOgogGOpPdQqBbDGgGDdoOqQtTnNEECcPpvbJjBdDVbBUuxPpmMKkMmKqQnNTtkjLlYyLlJXxhHyYiIXJjKbjqQJrkKhHuhMmgtpPTwDdWaAjJGkuHhSBbsyYAauUUSsshHbQqBeEbBsReErBkKLlbkKSRFAaKsSkfUumMiIpUujBFfqQbxuoOUAaXoTtEeOjdDbbBmMpjTtLlJVIivarCcUuRAIuUOoinNBbuAQTtfFmVvMqEeaxEdDkKeMmXbsbBSiImcCMNbBaAoVvxcEBbPpeCSsCcsSXtTiIMqQHhmOqQzZlAaLmqQTtMdDuEKtTknNfFAaSgqQSsmMSsWwnNeEmMxXKkcKksSpPmviIIiPIibBpgGVHhkKkEeKTtNZzvtToOjJViInftmMfFAPpYbLlByMbzfFZQCHSHwWhlgGnNLklWaKFfStTszNnnNitTFfVOTKknpiIDgGtTdiIrcCPZzRrTRQxXqrRrhQqHqKwWkhHQTtUIUuiuFfqQBbosmMpPSPmMpOYyoOwZtTnmMFcUXxRqQfsSFDKkdsTtPppPMHhmDdKZoOarREeAzOLlXxXxOotTmcCMonOoNgGvgGPpNnwAbBaQqbBjJdHnNlLTjJthsJjlaALiIdDSJjBbbBCSscIizwWXEeCcdSzZfMmFsUuDtaAjJjJaAqQJvUuVjOlgGLoHFoOfhGgJVveEgFhHfXxrRuUqQGVOoyqQqvVbxnKkdDNXBGWAawgGgQOooPXxwWiImqQMVRrvQxUuNsSsfzZFaAuUaIiPpASqQoOJDdNBbnKkXxgtTGLlwWrZzgyYqYyQwWwWGZzRSKkkKaTEyYBbeyYQqUufZzWOowKRQqGgbBqQzZqQWGgaAwBbPpgSsGcCZzjJMmaLHhuUlBbFgGuUuUfAccCVvZzzZNUfFuxaATtXUTththvVqPpdDClLDdcZzzUugGZPptzZUuZzlWwLoOTbBLYyLllLlaAFbaAUlXxLupPdDBzSsbBaAdClYypXxPpwNncCWwShHcaAAKkalLMmHhMmXUuxCFEeBiIyYbXgvVxXSwWHhzZsNnGxGglWwBbrDhJjhHLlNnWwlKkLDdNnvVjJHdOoHhRrRkKYGgyGgYyLpPMmFfPSsmFfvYyLlszPfFpHhnJjNMqLlkFWEenNqGgGgQbfDdFgnNaAGBDCJOLVvUuUuUnNLlrRXxwxiIzZLleEDuCcUdoGZxXuUyYigIiGIyiIlLYuUfhCcHFFfGgALTtlavVqQjJpSsoOMmJNnrRxXAuUabKkSslLaYBbLlMmlLWzWuUXxwkKicCPBbpmZzwWUugiPpIGBbpPnzZNyYPLsSltTAqQTtFfaAFIiMXWWwwxiIXpPxtVhHvpPuQmcCrpPsSzuUyPpeEkKhDdHzZcCcZBEeDHyYMmvAAaEerRXfYyOoFfFqBfFbQqYyOooOqQFncCOooOFfUuNnuUDdXxfFAaZZzwFoOtTfWnNlLzbOoqQYyJtTjeLVvyLlYayYvyjJYikKfIiFJjZKkaAzYyIaPpqQAgAjbBJagYyGNcKoOyERMKSkKWCcEewvfQqFVNIWRrwvVibujrbBxXAwWaRXxJjJJJgqIkKjJbMmBiMmemAayYSaASskOoKkLlKFHGghQvVqfwYlLktaACcaATAaxOeQqtKoOkyYnTtHhIiKxXWwkXzZNniIxQqRfFIzmZZzobBqQPpOzZYoSstENnNncvVIiCYyUdDuelAEeaLTcCIiLlvFfzZAZzasSGoGgODdTtJjrFXxUkBbGgkKDdozZHhVvkKLqQTiIdDbPpJjBZgGzaAxkKGgpPyYXjuqQUJpVvgdnzuUZZzWdDwwmhHMGgVvIBTtbuUiVvdHhDxxJjXXWNDYDdSeEBDdmMJmUuMjbcCBSsyYlARDMmZnNzFsSxXfbBdkJntxXAaTKkZYynThHiRrxXJGgEelLVaAvjINntalzZLArKmRlLSMmsruvVUMMMmUNnUuKkumDfFZhHcCbBIPPFmMgGfxjJQRrqnXtTZzClLNaJErsSRLDdXxleoOSsjfFdDhjPLlpJvVjJVvQTOotqMfFkOoKmZzLMmlpPiIACABtTbaEeHhyLlYLAaloOjXxVBbvxXAamMuhHUZQqsSsSlLRXybcCmMNnmFluULaWwPpNbBnrpmMPdDzyYAaHhqNnnyLqQSSstTGgsfFTtVvQrReJycCYzWViIvjJJJrRyYsSoHhwWAaOjtTXxcCuyuUYdQqHrRhDULllLEmpPtTdaAuZwWUuKEeQqKEeTtkwMKkmWxnNXxXrGgqQRbdDAaJjAaEekyUabBNnJjMmODdoaAenshHkKSaAbBheQYVvyDdWcyYnqidDIQNaFfMWofsMmkFrRfKwuUWSAYJjKPSsIiAaFQqOoEefpMuUlyzhHZuRrkKhXxfFHUYyVvVEUMmucCXxeMDeLlNnEdqidDpPIFKxXKkzNnZkXxiIgiFfIqQFfGLleEeESsWSsgGpPwwDdDWwIozWEeJjvVgvVGwUufhHFvVlLZOizZdcLHhzLAcCahcmMCHWwmMSsknNIinYkKytfFGgdDxoOoOQmRrMKkQqBRraaATtbBuUtcvhHFfVCTAWCcDdNoOVZywWjPpAUuuUGeWfnNFTtebBElTpPtcKkCTpDdVuUvPoOWwtJyYkKGguULyYvVdDldjJsnNDdMmSUujJDjLYLvOoaDdJUuzZgcthHgGXSsZznNxMmAaEeTkKBvpPkKzsSZSsYyqjDlrGZzgsSgGtQrRGgyccwWChBbOoIigGxXKvVktTFXxflLSvPpxXZEeLnrRMmjPpGgQqJTtNpqaALlbBACjmKkMJVKoOkguVvUDIidlRQqyiIYeDdLlkKDdEvONnKkOZzoOooVrIwNnRtiKkIFlyYwIikKWYyLVSaAXGgcswWSuUWwKkNnWpPVizZjJajCJjJEevVmtWwwWxXTnDdNudDHUqQuhLhHlUwWxXWuUJMFfVvgKRrgMmGNnFPpffpPFPDdzZpfHhWwgGYXxywpbBWwvVuUPijJIfFJfFjSqQbqiIBUuGgMmVSsvAhDdCcDdUuHOoVvrAaRiHhIgGaqQVvpgGdWglLVvGsSLXxPplJhHuQqwWUGgBXxbJJqQfFrRjWwUuEeGgaAdDxXTpPTtiIleAaELuUeDzpuUPZdEiIxLRrlXIXWwsXIixRrSxsNnFfEeaSsIWwyYiVXxiTteEIyJpPjODdoXxJjIiYrdDRjqQdvVZzsSDpSKkQWwkurRQqZzCYyZzPpcJXxwrRWwwWBbaAXxWipAaRQSsqbBiCtTzqQeENmMyYbBrGcgpPMmCWwTSqHhDdefyYihHXxIyvhHVMnNmuDBbFfeRrZeEzEeEdUYOlXNnBZzRrJnVvMSsMmmGgNFOYyQqBbqJHnOoYyYyWJtkKwWgVOoxXvGXgGxTjrFfCOocgGMmHtThRvojJWIiwFfnlLwAaWNaAaUuUuxXiIhHWjJTtuURZzVdbBDvfMmjTtfFJMTtmFQqDDblLBVvdDanWwNbBVuUiIVvuLlkzZKBbUVvWDdGgwkKIDrRdiCSTtsZKkzcejJxXsSOkHHhhQlgBbNTtnGyakfVBbvkQqKFKZQqzJIikKkvVfsSOoFEyYCcGgeukTcCrRaAYygGtKmNyYEeCcbBGgnhHBPpuUuWTWbBaRVlLGgvbcCjJNKkIZVtFfTvOFfoEeXxlLUuzJjZDVWwCcYyoUubBQqxCcuwWvVUdCjJhmpqQzSsFlIipPYyLlNGTtdFfcCvVQqDMmceEXJEdaAFmMWwwWOoNnZzfKaAhJTLltjEeHhZLSSsslvVwWVjCcJqQfFvfFzmfjYyJFdiKkIToOtGWwgMmKkThGgYycCHVgSscCxXGAKjXxJZzkwWMmpPWAapPAuCcdDxdKkBbuDdfFymMYuUpwWPUibwiFfIWCTtfFUucPxWwEeJFfvVMqQmGJEeYvVqPpOAzrRfFiIZgGaAafFGdDUKYyXxxpPpxKkaALZzGgqXxQcvVCuUPeTwymMYKkLqQHzZhPIiMlLpPzZffFNKKkAaGDvYyVfFyrRBbNnUEeuYgSsksSaXxOqWwQrgGgGRBbgYWwhYyLlRVvrRcCrPpaAhCcuxXUHJoakKUuXxmGgMOzZpPJjoAOjoGgKkOJjAaHwBbWyqQRrkKhHVvGmMaAUuRruoOLllLtTKkgGLLjJlxXgqQjIiJXxGeExcCFfXsSgeIikKHhaAsejJEFJgiIJjvdmMNhHBWwnGgNtPnNpEeTVKeEUukvqWKzZWcCcCyjFfOoNyYnIDSeUuENnsiFRXxJtoODUubWpPtAwWbEeQqIiwWvVbBTtBDdaEecmMCTiIsScCxPxXGgpXFqQfPpSsPmlLmhHmMuUDdBbeEAafjJzZOFfIiDdgqQzCcqQHhOoyYOoiUuuUPpnIbUusqkKJjpuUFfyYnuVvUNhYXxyUbBusevVEqQPUuUuSspDdqQSrRlLHhEvEwWejJDAadqTNbBNAaTcCMWwPzewWVtTvAaEesSyYEZNxXKkbuUBncCwWpmjjJJqVlcQKkqNFfQhFftToOyYiICcDdDdlLCMmclRyYrLzjJIvVHhwWdDnfFNhDiIXxdHAaiHhBgVvzZtTUzZhaAHjpPPNnpdsVvsdDSBbkRrKplWXxYXsgGcFAarOoTznzZVRrvqQqFfQlLQqnNqQrSDdoOnNhHlLTtHTPpthHhDdLqibBkdYfgGeKjMmJyYBbPpkKUuWHmMYyhwDdmMmMaYyARiITYythuwWnXxQgSseAapqGgQyoUuTFfBbYyYytTPpAWlLgGKkBKvVswYyUCRrdDcZXvaAVxDqyuUYlLXOErRhHLeElpPpPaFfaAaAsSpPDhgGlLWwHhHEuUaAedYysmcCCwWCcTthHAAaHIyFfYipPrRWwiIjtTQqTtbGghtTPpvYyFDdtTjaAyBXxEexXYdDyIiOqROqQstzZNPMmZHhuUnXxMmQAaqZzxnTtotTOyYWwehFNnWwYyyCuUBbrRMkKTdDeNnEuJcCjBgpPXGQqCkGgKnNhaAgqQGEeIrRiDeEaAwFfWLlsucCbyVvYBRrNnSsRdDisyQrRBbKUuvTYEYyYAaGgJFpqQLleqjJTtVpPJFfoOADtpPTHgGhHhxXMmHlLhoOdZzaTtodNnDgGAacNnCSsrFfbtufhNnfFHGgoIiOKaHTXavEodkKlLvVaArRdtTDkLsSmHybQqFIhGgUsSoOIaEeyYdioIimJjMVvmMKQqqQWsSwIeEqOoXxxdDdDOGgaLlaRrsdFfDPpYasreEYJjnNtgsiISxXQHXxlLtwWiWwIIAaPpiTtThJWiIOoHSTtssMmVvPpHhSeXxbBfFEePnmpaAPrUrRuMYTYcUnNuHPSrRgBLlXIixhHqAazZztMxzaAZXGgeoOEmKkXqJgHhGjnIiNiIhHMmDdieEcCrRIYyZXhhHTtBbwWPpnbByxXXxkKjJjMmJEZzdKkMmNnXfFxzVvhHrRZCcVOgGvkmMKjJoOacCOuUtkKFbBcCzKgVAiIaCcgoOIrRaAiIiiqoOrdDfFiJjIHHpPgAaGmMcCcbAaBYymUugqTNjJsfhVvmjJbrUuRxjZCczqPpQnLlIiNcGgPeTtNnsSEOVuxdDXUloSsmMSwWKeEaSsAksSuUDdnNgGKkrRIisebdcqQCwPpvTtaxyYvVRrbJjEnNMmehHhxXOVUuHZoFfOjJLTwyYptmMmMTbBPWsSaWwKkVvrRIaAoviIVxXORrDdyYiVvUluULuzIahHBbknNuUKFfAWPkNnvfyyYYmHGghMFfFMGxlLXbwhHWBWwiIksSNihHIeXxEaSsYyeeSacCzZrRfFoONGDdghQqHSDdGVvDduWwhJkKjlIhHiQSsiTtIAapPdWwSImJjwWtKCcJjHhFxpPLlXAaYWwyQLlqKgGjJyYqQHhUEeuUnLlKkvWfFmMgeEGaOoJUujAmMHhmUutnNFnNLAimFfjJKkDdMIoAaISsgGoUuMmtjJHhQoCfQYvHhqQqGgWwBTQgGNnqAaoOTtQqQqQqIRruPpzZrRTVvtpRrPDdtiQqhWmMxXXkKtTxdDdvjFbBfePpfFEJdDOotcMPgEYyCoOcuUNQqnLzZkVvKmblLzZqQLiaZgGzACchHIZEzSsMgGwdDSsWrRHhBWFfhHJwTtWMOomCxiIphMmdDXHqQYyHVFfGgPfFiHhIqQpvViIyhHYTtoOyAaYYKWwCVNnvckWwpTtXxCcHYCcyqBbQDVvuEYyivVcCTiItAzEeZaIsSflLuUhkTteEKKkzIiTRrRTtMPpbNnWCfbJjUcCglLKklPpLiYJjuUqQKkOonNaxzZXkCdDMFfmcoOhHPDdtTpCcGpPmHdZDxtLlvVTtGsMqhHQDdLlRrYdDuIiUDdeHhEjEeNnlffqQzZhrRzTtMmZtTbcCQHhqNskKSAaAanoPIjnNwfFWAaoYVvyOYyAzZaEzZWwnwheuUSGggGtVvTCcGgFKxXvLEeRiRUHBbFfhsCcSSCIZzftvVTFbBzZtToOuhYAuUrOoRAsCcPpPhHhHqQCcutTDdLlIiFuZzSOpcCPXzWwQqbBdjJSGgsNnAaYOFtzZyHhdRyDIKkZzuNJjFBbWCHhcaQQqqFfhHAikKeEIKkiItTtSsStOoTqkvwWJTaAtPAapauUkKCbBIdLlnXxPpNqDdQfRrFHuURrwAnJtJlLjQsVaeBYybENeOjcNnaACuUvVLjWbkogSdDswgGwWSsDdWfFhdDdYUbBKkutAaUlNnoFqDeEdkKSGeEIEiIezZCctTcAfFWprNIqQiFaSsIkdDXxjJxOXxQndDNMROgGXxuUenwWpXxzZPNdLlBPAtTZzFYqtJjzZEuUeTmMYsSMKycCYaAYynWYqQUBbvVRqrRQmHhjRrJHhMrGghHuCvzEnyYcAsctJjMyYTtqAaPPXxppzZOoMzZmogOoQqHlWkYUuXxyTXxtimlLaAMmMIEcCOoHhyjtTJMIEZzKkRZzrRSsbmMsBFfJjbrRoOSQqQbcCmMBqQoOwgGkKWxNnlLliIXxQnNgTtQrRJFfSsGfFVtTMyYWwkKSsWwZzgGUEiIerqDRzZrZLlTxaFfRriwWKLwnhDhYBrAsXCllLoFfXxTeEjBgIiGaARrbRjkhWwveEVlLgorRGCTtpJVcgdJdDjbBDiIuzMmZrqBbtTtRriCcPpxpPuRFQPpwbBqttTQTCtTyYGgvsSdqiIyYQgSsEegGiPFyYuUyAaAPpaYCdDcSsScCsYyfFofJpDpYfFXaenGwWuUItTamAaNcUXJUXxpPuQqCXxDdPpclLZzZDdGJjZopPjJIieiMmSRsStTtgthrzZRuUzKMmCcaACJjUuHhiILkKhdDHyJoAaoMmSbEeqnNkZwlLDgEeKkmMtTbBbBvJcOoqbBQPlnNhHHUnNlvVNnLQVgeEzZMmMfCcKVrUuROovqnuUatTANXxabXxisSdDICcEeBbtcCghHfYyFooOOEOsSoeQtTqGiIwWTRacCAiIrWqQcQkMmKOoSsivVdDEcCSMmgGsQhcgsceeLeEYyqNFoONkjJDkAaccLlCBbCgGrRKdKklqsKAxXxZzjKkJrDiIuJjEKSxAwNCcJWLlwhHeEbBUKkHhPpUtSsUQNCcngGEeWwNrXxjJPCcbEDQqdeBBbRqQCcJheEHdnLLlMmMhHhGgWwcAUunNaNzcCWVeQfNnffFFjnSspPLHjGhHgeMDdDGgBbdxXFfqQcCNPpxXAaeohnXxyYBbcBedFfBTtYypPFqQAXxXodzEeTtZDHaDdMmWSSyvIYXEhoAcYybBtDdTCnNgGiBbIpPppbpecKLvrzrsSTsvrlTcOBzZbgGKkoDdkMNnKzZNXIGgeEixXxnCwIUuWbBiJqXMJYyuAOoFfRIiZzRkjJAvVPSspmZEeBbaAzxXzZTCAadDVvDdtTNDdSdDshMlLmqkKQPftHhiImYyTzPpsnbBNtTKzZuUWsaayOoGgYAEjLlJRrHdDOpthHKBbpuUHhPUuoOpFfuUEUucakKAYytKKwWkDdFfkMOofuHxXGXdDARrOodWgGZTaqLPplwdDRrLlQuBboOlLYAaZzOmfFfFBAPdDyYNoWwneESswMTtmbFsJxXREerGgKaAkeEgGuJYQqywWlqQcHhzqQRgGIiyYXHhyYxuDluUjJtThXlvwNnTtYRrRJbBcPlLfFMmJjKCbxyPpyYmPpMyYhmMRcCdkKaADBbYuUnPpZzBbsSSsIiIsSiNnuQqzZoaAAaDfdDjJFfOhTtHgBbWwCcaShHcCBJNAsScCTWqQwuUMemGgrdDzZrRYHhnVgGarRGgMjEeMmsRAaMRhHgGiIFnUuIiVEexKkHhiPpsSHbvxXVhUuOsSenzrFqQfSsHUuhRZIlLbeDWeEiIXxODLlKkCcRrdbdDwWgaAGBbBfZSfVvjhfVvwvXxBbxdeaAEDtTmMwWKkkjJFWqQFPFfpETRUNnqQuJZTGgtzXxMmUGguTtZWcCvTIitKkMmMuLYyUulpyhHYrOoPsStCcnbBNvXNnYyxPpVjJBoOBbOolLKkbzHnNhsSjJEvVeycCkKlLzZYwvadujpFJjfbBpPPEIEeFfiyKkYfFxXsSSENndDiIbBkKLoPgZzyYxXiIqyuxXIiIcHqFfVvZzXTCgDrRSGgTsQqCcCciqCcdyAabBPIRroOTwZUfFTjovbBOeEtTSsLncCNclcCLdDeORgnURruyzpDPfdsfwwWcMgGmhYCkZzCcYyEeHhtTKkCckKBbeeXTtDULBbjJluLlJQqjTtNEeiUuPpicCwjWwwQdDokhHBbKtTOqgGWYIZbzEeZfFrlfnNdDcCaAZNaEeAnGCvVkKvHCchVLlcHkKzZhYyuKeRrgxXwWHhuEUueTtUELgGdAanNbBUdDqQSBPpAabsXAzrfvaAuQqHNnhQYUuyOrRCcoEnNHdDMtTuPuUGggoqPvckArRFXTJjYNnNxWrRwGjJaTqQtzAuCcDLldxXjJwGgWaAwUurRdiIDfQrRsSDdqNcsScPpktTKaeEANnEefreEbtTDdEQqHmMNJpPGESTtsdcCslLDdSbkKLlrxbBTTwrkKRWWZzNEyYBbenHhEzckKDLJBrXVeJsAdDvVaSsZkKzUmqTtwWJjQMsLjJEwTtqQQfpPUAdpPnHhoJjeQqEMDZgmsSpJbQUuweoOEWsjWqVvdpYypPPYeEWtGYysdiNbBnIozSeQqTtdDVvjJVvEmaAmMCVhMYyYylLUhGgXOtiOKkhmMSsHjWwicjJfFCwWgGKlLDdziIZDPcaAcZzCaPKlLxtTWwNnVvsvTtVSenNkKPpMVvORrpPqQjHhUugeUZzuEGfhvsjuEVGgBbveUjuslDdJjLpPpGgiIPpcCPNnzxsmxBbXXxBmMUurRuLxxXRrXczyMJjdLhzjlqRxXmLxXleEMmMAjeijxXEeJhJLCepQSsmtSykKYlphHbjWAaihNnHsSrRGIfDnveEcBbJjSVvLlFMvrDDPreuuMmUZWBRrAUuKkEeaQhvVHLCckKjgZoHhUuKkvBCcRXKkcCxbZzdDHhSEZofFcCvVOuUfRaESdDsayaHhTMBROQUVvFfYtTvVLlMmCIiHhBbBbxXxXIigNnlLuCclLKkldtTyarRAYMDdRrfFHXwuPRSFffyYCmMccCFxpbBPbBqGfFyEgBjJVTtvbdhTuUtpPzZPvVeoOEkhrfyYrcCgFOoJLpPzZCcfFTDdtfFpPcjDdJdDwIiAlCcBbjwclLaJjAgTEeHhcCFnNRGEeGgpFnBbBPpIFzqhHQueXHhXeHUuRrQPOoAOoUvVSsQqueFXlrRLxTxnNlnZkFslLKrWwReVRrSsYyvkOoYoCcYyOoOOEHxXhblBVjJvCHhcbrAmXNnoOLlSSzKVELlxMUxhiVNUPxXeEADdappOoPuUffFfFrVvROoMmgGhxXvYyzZVEwqaAXPpqDdLlkoOKBbUuCCcUMnNBDdGqQOoaBbYyaLvVlfFQqGpPFlzZLdIiBLEemtbBbyVvYwcGssSSrzZEPSsvVpPteIQqibBDOoabeRrBboSsOsSBHgWwqOyYlLBbotTncCNdlLDwRPpRrtedaADVRqhHsSaAchkrMSsLLllNnnNjFfcCJgRKvYyYdIAaiNnUsSuDIWwOlLTtnNjJgcKkEehcCFeEdQBaALLMQLlyyYMWNFtvNfFfjZPSsvuPMBCvKjJkdKkMeEmHhYFjJXzZZzxGdDvryYRYaAfFiINnQeEasSPxKkwWsvVHvLBueeEEmNnVLlgTHHtThPUOoTtuFxjJaAXGdDgfyFfQqYFXMofaGgGmxrWVnNvwzWUyYuwizZTQqwWeEbBmxbBEeKkXOoTtMtpqXHVaNnyYtTwWNAzbmMmoOayajecBbtrRnNtTgyYoPxXvVPUuJNyEePcdDAQqzKLlAUXvVCdDUuoINXxuUngmlduUYbBOvgGrKnIiXzFcCsSfiIpPRUblLGibzaqQAZolzZUhcOomkKyYdDMmnNjJXjJlIiLxRrXxdiICceEUutTDTtRseTtqfjHYJpPQqXxNnpDdPjnZyKscCmMpUuPSDnNdKDXHkKcwhHWCJjhxnNyYAnNHDJjlwyRrZRWrRXUdeeZzyAalnoOMQdLlZzngZlLdDpFuUCkKqQchUuKFfkHJWvOoYnfFAsSbTVvSZBbQqCcpIeEiaAtSsSUeEMRPpEeryzRZzrhHbBqrRHhoOvUuVQHfFXtMgiTxKRrkKknBOcOVdsSLmtTsUHhuOhiTtgGfFONwdPAaRmJEUoEpPeRrhHtLldDsSYyuyYrxsSyXEmFvVfNBYywlLRrOoWElHlbBdmMyJjqvVQjVBLTGgteWijJmBbBLXxlLlhHbcpqRCcFfDdrAaWwBbpPGXfFdDtTMwUuWmiIHCcWtTCcaDdAFMmfmKkXeLyfhXWrRNnbhJIijNcChtqQPxDKkOMmgKZzkjluUwuQXfFNnCQCtSsTtTctTJuQKkqqiIQyYcJKkpPjCAahHUTtoOglLGFfuNnWYyOnraiuUmXxeExcCrfzZjJFttrRTngTUldtTpPVAnhYyncyYUuCeENLtUultTXmUFfAaxZHhBZogtOoJmMWTtIiwDJaWoYyohidDZZzPpbBbBzYfvkKlpyYPqjJtkvVKjJIiJjTflUuagGBeIeZlIioOZQqciCchHNvBbVoOCALrIIiLajLlCNonNOnjbBkKbBPopoOXGDeoVMjfFJjkKBzNHoIIKkAagGqQOonNbwWUpHxvVQlLrRyYqpuAjtMvhHKkrRdDVynNogGXIwWixjLSsTPpFCeqQcCoaaYiIeEfFyAAuUTpQqekKELcClErRrRICHwHhWhHhcBZAAaDnzXsNnSrPHQpGRrxXBbUNuNosSOyYLPpppOoPPdHhDlNDFaDdxDdDdXxAnjPmMpJKkeIEeiBUujJktmbFfBMZeCvkpPKdDXxXXxoKkummMHhMZvNwmrRQqIWwmMIYaAKVBKQWwsCHOQmGgGRUksSuUIlbWLSsVOoGgidkaLYuUxJjRrMCcmaATCctXuLHiIzjJZobNyEeYMUuZaHADaAdIiDdrmMRTZZTxqwcPxQqSMAaOoFfXxBIiGgHUbBuhAPqzZmbyYBjQnQqNSuUqQsAHncuOoXzZlJeEjHhLSPhWxXwHnNfCcSfSsFlmNcVrRdCcnpPqSsFfQRDcCdnNSCDdAahHyBNtfFTOuUbBoPoOpnwWXZTcCtWRrvAaPpPpVlxmMqQCtMDYmMJIiubxXBbJjIibWFvVfwyYyeIijJEcCUuYUxOITtWjJoOYGdDQqfGgFeaApPWHmMEQEeoOdkLCtKpPWwTtQqMmnNmOoLmLyNkKzXPpQFflepWgFmHdvjJXfIiLvVyiyYJjOEAgXxvVvVeEMFfjJmGEPEnNebUuBDCiIcnIiNNAaDdnjFEeEVtYyeEzhOuLlNyYnhIaAiHGEXAaJpJjfFPbwzeaobKkALEmCcwWVvzZrdDIiRVvQqYmJLfyYGMfXxHhFbBtTUoAaDFQtsSCSQqscTmEcCBbYYyRNCcCzxwPqlLIpPDwSBqQAofbBfTRrtytmfPpIyiIiaBGUoOWqmqQMSsQbdhnuUNZzHyrOBfiXxzVKnNzZMmjTYythHXGPiDdAaHhAaIVYbfNnbPpRYyrPpgHhTHhtUKkdqQqQBQqHZLFfqvyWwDjqQuYyIgiTlGgsSAaQqLoOUuvVEuKELaLtxRvTAGgHZzRCdIiAXEemSstMlQmTtgHhNCiuLlUWnlZPpQGYScCLlsVbqQCpWClmFvoZmnKkBbiUudDPpIcCNHhhHBcCxXcCPpzZryYTfKOokiLluzTtsSqnNwWJeHMVQcZFfzCaiIWLlWeMmNncCJxRrNnjAaJHzSeHhvVFaTHhkKxHIIjFfJxXxXMmXaAALlaKkuaQavVAYygNnctThHCNWToXxYyOvVFoOecCBbWwwnNCctMmvVbBbRrtTfFoOqQvVGoOtTsosHdfurxNnBOsSCSsIWHuaAdlLvCcVZRzZTkKFgGfsgGOomMuUvOZQubpJACQqjJmMesSDdEfryGWCcwNnkOaqQICcrUcCiIfpPAXxpVerREvVTDdtBbvvVtKNnXBzvVvCrNnROcCTPuUjJpXxfDdbidNnvGjJlLlLtTDVaAeRrOnbBNVvVHPRvbBVOorReOeEoySEeJVvrEtTpPLQqvQjjJMDYydmqwrONcqFnzswWXYHIivVFaixCwWQqgZzcJhHvVcOoCYeEyYyGgJKrgVhHxNBEebeuUEdDIoOGpZOomMHMEcvgKotTvVyDqhHZzoxXlLOSLlGgFeRrJnNiXxIqOMirRCqQcIwWQelijYSssPeEpSslLSMmAsZiaTtdDAuUKZsJGgjOoDdsSxXXyYwCcFXxuaxexfpvoEaaAqdDMVvWwzZNlYyzZLTkKaAzGtTrRgtTeFOUHKkyYRrFkNucFIiRdVvuDdUdVhfUueSiIsEAapmMSsPkEeBydDjJAiIacCcPpUMmuKkDINnidGfMrmugptZzXGgnNXxGVVMKpXxhHEkKeEXWwvqXJOHCcvVwNnWEFfHMjiUhbwWXnNAPWjJpPVHhxXaeJNnjKZLYDdhTtHuciIACfSWwVURcdDAawXxWpBbXxpPqHhJvVjJQqTOotpIaAjKVvKkUdYZcnOXxKHmmGCcvVJbgaAuIIiuPtsSVzMXQOoqQRrAwWCcxXXHPHTthiGxXBbBFfbjuwWkKkokKbBgGvssSprRPsNqCWlLBTYyGgAajJQgNfFwWDdMvJjBaAFfVvxXvFfVbaAmMonRsMhHmHeokzTqQtavcwWCVQqZMmzVvRrhHdPpZzcrRAaTEetCDKFfkVWZHhvVKkouUOVvDVvJjxGjJQqIeEHhWWbBTtPpgGwAahVpPqTkUTBVGgvxXWRrvVwWwuUkKqgsSGPerREFqIigGVvmMQNaAmikEXGgjLlMmITYaApxXPphHhHPytSIMmidQqgMgulLDHRrTFXvysSzPmqlDYTmBbCcxxXXMtUzRlLPJxXBwWgGoORXUKZzBmMbPpkUuKkuPZRrCDeEaAJjZzfAaqsWoRrHNaAIiMmwMisKTtEeHPeuyYAaEvVdeEQqSMBOongqQRiIrGIiIBNnfItTkmMLxXGzurUcQXpPohHPdItBbgtTOodrsSfKnUuNhWajJjgfFrpPNnbLlKZzYyMUXBefTtFnDnNULlbbBzZiIvVuaAORroYbHqQIpmvSgmgGnskHIQqlqEeERFtJYiwWINptToFtTfbsSDdgxVkKQbrJjjJRLgAwWaWeFBiIbBwTDCcdXSzLgGoORJNxXQHhTglLSgGSsMmsDIjKkolLpPPPAaIipNVffuyPakAZwwWnNWwrLlpPSOogGsIQfCuUcKksSnHhLpGcpJjPpNfrRAuoSsoOjJOUHhDdCEbBecglaALYtTwWMmHhgGAtTaxSyYYyJrRfiIjlORFfLAaXiersHsecCEbZzdpRZrRZXYXTkBbtTEhOoaykNnKKkoOlsSzFwIicCWfTYGwOokKUuczvVGNchIdDjJCyYcianLsnNoKGgknkKmMNRhVLmJJZzjKGdDBbXzFxItwZzWqyYIiDnNZzyqDvORrlLvRrNnmMFMpzvhHTvVPghWwAhHaZYyPWwOITmMGgBPVvEeIiiIgRrkBtEeTRriPJhHEepgKZzaAvlEeAaluUBbJTasSnDdUuXSsYyFdDcBbwlLPpqrRRRUsSuTxiIXthFflpDaAhnaAQqmrRDMnNEgGeBjllLkfyVbvtczStTYisSZSsoeaBjJhbPpfFrdDzZVvRULFsSoOfmzUOouxFfXTvVvVmyYkKMtGekCKkqPpQWXgvjJVGBsJENaTBXxbtJjAwWEePHtGgMKEEkKXxqGwWJJjOkXxKkFGiIGCcpDbBZzQqhNPpeEidDMmqEeBbyjPbBpiTfjmMfNeuorIwnNQaEeATmiIgpZdaFHkqQKhnDPpseVXcfkjJTtYqEePszrRHcuhMZCcBbMljqWeEOobBiIKZzUipBdDbgEuUaVCWMmnNqPLWerTPpXuANnikHhqQKkzRjODkKEKAaKkkyXMVbYyBCESRKhrRHbyQqeTtEyJxVXOVYyeqmMCTwWjJtGdKxhHDULhsVUXxuIivyYSeEcCYjOoTtJUtTPAqCSqSlLTbBJUuVjWyYRKTRrtksrRmhHxXYySCcOofiICKtWwiIkKfFsoOSiUMbBAqHhXxEHNkwfEexXlLFUugOTvVaguNTtnAaoAGfFSpZFrqlfpkKPFfClEQWwbBqtxZonNOeEzKlLcfBIiJOYcnNCyomsGgHweGbBgRrGDnLlIeLNnlyJjdkAnNiEewlLoyTrBQmMqtHhTbdJOouOonNlLOtiITPaAcUtTflDgGBbSsNiVZzZuOPnGFTzDBDEJjJWtuXbBeOtwWTaEeiInNuhrRHfdLlOtToYKtTLJjWwlkFcVvfgwTLCGjjJjYAalLyrTtrfvRGsjYyJSgacCWwJuURrQBmMbGkTqnXnNxNQpPtJXOoEebBjlsHAZwWfFLlFpjtTmEedBboWwCgJjOWRrZwGgxLkRqaUjmMHWCAzZeEcCKtTkeHqxHINniwWMUdbBgopIbwZaAzufyYzoODQPpqbBRrdZDCcVSsvuckKOlJsHhSKkjQVvqpPQAkexShvFMOomiGgZyYOopPHcJJnVhgDvnImRrMOcCircjaKkKSRruJYfqQFDOBgCcGYyhgGPpPCkKhfFHXxLOQEetzVVvvsGaRrxlLGywHGpxaDdJjtTWIsCeGgFjTHhtLtRrDECcLTGpeEPhNnHntBbQqHhCclptfbBpPkKFJjEOITtmekitFZJFrRlojliIUxXuLUeXrRfDrDdVgDQqRszZOoQqvVzWMKkKSsXqqHSsqBVjgvZtTjXbJVvmMCcNnlCqgdDZzmgGMgVvRrjrrRYJbRrfFwWnNLrRjGgJjJVXqQRwmMuztLbLlBGgBiIbJjRRryiJwWjZzIpPYsnvBFfADBalLAVvOObBodRrDvQqVCuIiWRnPVvakYywUQMJjJOeEcWMuUmgmZniIUAcFfrRMrJWPyzXxRrZYFfgHhSoSsGnCczsFOrRWeZoOIikKIlLYNNhHwWsSbBnNnnrcXxChKxXbBhjyagtzZuEelfrpfGSlwWtTxpPEgoOGkKloOCObUuosfTuYeUuETGgKkikibBAaIKUjJTtuTwGJjcCgWFfcOoPNnCIiPpejJkpVawfFRrpYWzgGczTQqtFNnpPyYvVpjfFJbBfQTteEEcCmMUyzoOrCSfHhYyBOosSuPptTbnPTnlZeEDXWwbPpBxqKkdqQDoHQNJgIiEepPXpAaVBbvPxDfFdGMICcilJjLiqQBboXxCrkKBbmMRuFGgWVSJwWOYyTLlgGWaAfFTtzZwtoOoSEuUXTDWtkaAyYKDKkvuAaIYyjHVmviIPEexXEeRrrRJbigGntyYOrZxXVooMbyYRrfXxwWCuNnqQLjJOUBUlzFfdDwRrWQkZldrRHWaxXmMFKUujYyJVzZAavhnCcrSQqumpiWwrRlLIltDdTUIhHiuTzbtAtmMUYkZZnkKfbmMUAFfaYyQqxjJXZzegGtyuZzFWJRgtrBbHWpiVvYJjoOwOjZmwsSYTJLltWPTteXXBbxrrcCRCDYyfgGbwtTHrxXRhKgGVpHWwgxoWOoxsSXSsKOHWwJjhQqMeWsmMpPSjpgGPpGRrgPTvQBbhvVIVUxFfcSsCeqyLKUXcIqVAyADJwscgSuUsDjFbBXamOXNGgxXnLBoLQrRJXzZHXhtThyYPpvVHhuOotbBMFFfeEGvYyYOSoeEVyYvWsILlXxFVYyLlplwYyCZkJuUpPuobeciICPGeEDAPpadPpiaQuWwWqfFpPOhNntpoBEeHhWfewxXWECpRyALoWPCvEmBYZzTaVvQBbqVYoOtTLnNQVwWhHffbBJqpiIGWxYxAKCVvcHhlLZoOPpvVJZzfQqFIijRrXBgjSQnOxXwWowlhVvswfFpPQxYWzZeUvVBPUuMeOWuuUNDRkKlLHsVvdtBKtLAavVKRrvdGhHgddKqAJjtTtHpPUBnBQqFfWoIibcCJxXWwHxSNnQqmXxPpYNnfFFgQqGGgkWXeECuygVvGyYYNnvzyYZVeEkKntfldHupTCcPuUSfvjIEevVXoOXDUjJuUrfeAKBPpMmjBiPpyEehbrxFVFGxfsfFmbMCIvVbBPvAaakKuQuSsSsYSkaAEaBVvJiaiIAIYyjsqQCZzIfUugvZzPpfTRkKJRQqrRrcTBJjMmbnDdMUuNaAlmqMmMCoZzOLOknNElFAafItTplqYSkQqzZKeEsoOiQvEeVfMOmXKcCcCjJATffFFOqnPpUFiwNCBbcmpcCPMhHiIFfJAFBqgDdBjlpPRuOFfHhNnUmYyMtdWDnNhfOsAauMmUvtTxAQfGbBgFPrRAZvVzKLliNnyYjWwJyODBbRArRrvjhHtDdfCSsSslxitEevQtDMZlVkKvkKcCkLMmAhHagHJfJjFrKkRwEWwulGGyBoKkIgGThyfeEFKwftCPpckKHhwoOLlWpQqPvlLmZyUuoAoOcVvkzXwwWCJjvqgZcjJvuUVuijJJTQqQXjOoVchVElLYyLSzXCaNxdJjEeDdogdDGhwMmQWpCDiCdcVvCXxgGDZfvGIiUmwWmesdDTtgGLkGyQUuYySwoOAmMauUldDrSshBbcSaqxjJVLNnVdyLUhHvXxxXVMqQmlzZKEXXkfRkKiUuoBbYxXXxmNkBsSvVbxhIzZDSAdDyCcWQVvzZzNnZDdSsbdDvPpcewWYvHhkKjOHhoiRFjPGIXrRtQysSNCblXBbIiRSplAaklLqjKDezZDKkalyYLGZkNSstYZqKhZzgGqxAngGgiIGADSsdArRaKkWCifFBjGZlLXBbmqQUtOoZGqQqyxurPKCHhcFmpPkKHhPsiVzZXQZFczrGfFEegmWtTwlLUuhKbBEelqFAEeVvrwjzgokKAoQxXqdhZzHDscHZzbdmfjJQaiqQXNZuUvVnFjJfdjeEJaVsXKkiIjVvwWzZDFOHGghogyYGfdJjJcuXoORQqrMmodbBlCwWudGpoOQmoIiOFzpaoreEYUvhDlaAoOLhUYqdDYniINCkKgsSGFotLVLHcUuvtdDUZIdvPpPzZTIiCUMlLmuBblPphHLkKMsAvnsABbexAmuakeYyFfEyLqQlhFmXihziPpAcCfvMIxpPqnHhvixXjVxXmOxgGCagqxmBnoOquiInNvsSmdQYyoBnNeUuUBbCsXxCcScDpTtDdwRGTOotMQhzwFPjxJBsfgisCYbBTMHHhhvVyYDoJnisvWzAvSFiqLDYCcajiFPaLOolfdDLPkLlFzHhgGBvkKUNMExjWJTeLwWlZxhHYuMmRkxJVPSspRcPNypoblyEMmehQKCckDagGXpyYnAaYKmMGgNnvbBewWhHEMmlTPpuQqeEHaAhpqQqdQfFqgGVbBvbAjJaCcYiUDdpMHhpjUksoOSwnNApAYyeEvValEeNnNevTtRBnoOPdpGgNNNzvtjgeEtdrtpnNnYRrixhJiToTgAaGxHTtcKRmMAwWSivVQQaXfUwSJnNAKkaNnGccLlCCiYYYpcxWtxQEwofFOuXGqqQqlQiWKyjJVvYXxyHhYIoOZzinAaqeoKkGDlLZzxVuJvrjMmJhAjNQKktXLzZEXxrxlBeCKsFxBfFyYbGoJOoFkjjslFfLHKuUUyFjIidDesBNBXxAaQmUGgdDPtAruswJmMjgFKWJpPPWJjpsxSmMbeLlAiacwWGMyWwYmqzmoaAOCBwYfiJJXxGnNgmMRrmKxFmvtTZOoSseEgohHOGUuzoGgRQRKPpFfMTcCQqhEeygCcogCWwfTtTMWcusCcUuOZTwaAWdxZzgAnNFBriWkcWtGgqQIiOJiaAAUluUsxYqBbjqQTLlXVvkKigWcGkpHZzivwWdDjtEJWwOLgGyiIzYRxAYKkpgGOJjtUSscCBsxiIDhCZwFDRGvVnNpilOwZxajJKhttJjnNzNNBjJTHhtDUlLudLCimlTWRrZzWeANnDKhUQqFBOhnNPpXlLGPsSpMmCccCjJlLyITeNYIEclLoOCKffFlVUuvLhHaApeoOmwnNHhjaAYjqHhLrPNnFfuUurclLCoJjmYAlZgsHTAQqathkYqAYyoKiIMRuSkWZYzympPXxnNVvGNYyQDfFNndIKkiGeCGOoVvVOoXxvjJUMRaALnHhsKkHYyYyHMmYLtTwqMmmNBHiZbJjDXxqQZXiIoCucHhqQlvBFCBoQQGcbiLlmgdpPfMmFjXyDUYxeEXaozIRriLlhwWgGHZyZlwiLGgzZaKIIhTrdhHIDwyYpFWMlgGDdteEIxQTsKGgtGpTwWTOfjJFvVhPpHkvVKjNsSnpPViyWwYEeVvIKkYyJnkGgKXxbBXxqQNVvjitvVQOFQeEqCwnNWeEnGLcRCcTtqLIhkKeNyYJjefxZLmOofFVvMveeZzBbgOaywWYnqaAQnPprglcCKseEnDHoJjvncBbXsiIgUuxMmgGXhHGSKYQIaAxXXLgYyqlzwWlrgGRUsiIQtgGRCgEbBeWYUfFSSjJzZLNUkKuUxCciRiKQoOEEeebrysdlLDFJjHhtVvTBbXVvxVdAQqpPSWhlLBnpPNGEHzDQHzTlJjxulLNoJlbGMHsSOoCcONSjQcRrHhCZCzbBBIiFJQCNoONtmMjJtlcCBbfVxQwWxXqXwWexXiKNnCePNnFNMmcWwCWDQSrRTBcCtQQmcCGZkKzgMQqHHXPpxBXxYyQcIcGgqQrRTVKkbBQqWwvBuVAtCfFvaUuAVedgZzNXxjawQqypsauUfJUaYZEMUZOUEHQgsQZdHjszZWIFpLDuwWUhMEypkcSsPwWAWwbTJKwWkjjIGjauVHqfdDGiIWoOeWCsrBCfFrskKkaodclLQpvnprRSaGcCpmMUTyOMFXxxyXxYbHhjExXwAaSOLaMKkRrkxSYxojyYBjJxWSxOExXOoeUPlLeUxoOgoKkKpPbKLlkmMYYQkQqtQqfFTPpuUYJjyKcCnNIqqQJTzGTjJtPTTVJjNuLlAasSwldgSLliakYQXxDxtZzBRSsrtLGJwzSpPsUuNvSPmucxXvVxDJjAIyYRrlUAaZPBToOGPoORrzfFpPGrRlLVRrvYyBKsODRHhmrnOqKioOIdhRrrRrKkAdAeEKtuUYpUfjSjJWJjKkNnwsvVJFzKqUpPmIiwWHeYtgmJxmRrpHvRgqRzZwBqJjXZmMWBkZfFPpIiXkKlLVlzZLVvMoqUiWwYnRroAabdhHwDiIlSAawWHmMfjQdOePDjzZqTnLcyYZpxXPRCpWwjUHhuaAtTAaJygGaQLaqtTCUVwVCdMMmYawpgMmGXWwiFlhoRZztfMfPpySUuJGgXxFfnNBWjJaCrRwzZzsjoPoOsSZIMPuOSsavbnNwSmubBdcJjugLnDWuUkKUVkUuqQTtVYyCcxnNeDQqGeryYEKWpIiKHPcbBQrgsSyOcCQqZJLOsSzZBnhTtHgfFzZbXZNcQqSUuZscCSAlEqQeKvVgGpPzayFfeEnNZAcCaxCviDwwszBcdDrpPhtHFkKykKYkXeuWwbpnPpIsSYSHhrfLGfCOkGgqqWgmwJFfckRVqEWJjiJBcRrASdwWnGSshyYtAeQTLyYuTtnNUdIUuiYFMMmdvVWNefFEDehfNUaAIVRrSsoOBbITtJoKkvMnvbMmKgPabBSgiIKkCcKLdOpgGIMOomNqQSFxQWwjXrBbCcuUMrLiKkICnRDdmGVvxXxXIwWpIupPBbZvVUubBXeLoqUuFvayYAVHyYcChZqbduOeiLOlUuTfGCcXxexgGWwZmnDHhAPpZzWVCcSaAsvwaddDaANKkMzWwXWwEgFtaALolIZzAaEoUDBQzfQOlExJuUjzUOoizZPyYNnzZimMnOoaANgMrNgcCGciIQqlRmCNnchihHIHRigGIxJqXfAasniazPpZwWAPoNnDlkCcbvRGcCgrVBGszZkKAOoqQpGkSstTBVNRhHaArmVVvKkOiIjhHiyrRYviufFnFHKkEdeEnwwWwWDmfyDOoltqEaTHxXgTbeEBtEQqeNAaDsaCvVQqbjeEINnweJUujQvrKCjWFfJjtTMGwQQGgKocFdDglfFPpFRsyiNPBUEJynNYjxKeEmnNMfhTGPpgHcCRcCCbZSWWdIVcuUXzsSlLotTOYKkGOogAZkOoLtTaAazsCnztEeTxBAaSsGjJNboljzoYGRqCpeENnhkzZPwkhHeREBbgdEXvUuKvSsufFwdNlGnNwWBbUCDCcUMsWpdDPBVvVAlfFLoUpmYytTmMizSspOJSsSSsZWcAwbXIixZzwWjbBaAsYFmNnLlwWFTrOHLfIlLFRrpPpPfxPWAymMmQqDcvWTtvucAaQAqQlqAYRrTtPcrjJzClNtQpPJdpEoDqoqQJjOJPpBsSbFTtmMTthsLdPwWpWDBsSONyIuQOmvxIiziIKbwzxQxXYyOoXQqxbWPprQkKgfFGGrVhPaAMXjMGTyEhFfHhMuQkaxXAZTtuPyTkDduEmMeUaDaRHDkQhHYyoNRtVvTMZzrdoSkbgZcdDCpgtbpzuLVvrRQqiaBbPpqiIQdXqQvVqQKkCUMpInNisVnEejxXzLlZJhHZWjglTbTXdlLqyKAIiIvVCcHhsGDLWbBUnvttpvVTtgZtakKAjQGgiqyydDBQqkOxXGXuEpqQBbuoXXxswXbbBJOXysXKOomAlosmMWcCeRrfFJCMmcBXfmoYcCPptuPMxDhcCHdXZzmTtgAhHsPNVPXxqCvsYySfFVPwWpDOAKSRcbRScwEwXxTOotgFMmQqQhvVvQqUAJgiJeEtnNBIiapSSstTsCKrRPYemHdlPfiwDdSJhDzqtTSnNGlLTqhDdeusSWwvhHVozumezycEeCAujFfFAWwSPYGgDdqQTtWaAAJnRbBrGfFDVvEcTaNBbnvUbVJjvtrWwRGgCiDdSsCqbhhQqyYloQqOLqqTbtwWsqdwndDfTtpXxEckIIifFEHhmAaMvHhFcCUuLTTgGojJjJOnncqjfbzZZWwTtczcCqJsSsnovVhAaFfAamgBLjOnUHgGhXeEBbLtDYAaZzydZhqIiJjdZeEheggGbxXHbwWIiBwsawWDvwWvVHbBhfnNkKSYRBEAaeMgJCcjGxXmqkIrpPIcCvVAoKkOaMzZKkmXxEmMdTtdDDeXuSsnlsvqQVwCcWyYsuKkywGcrtTAaUuTqSxXGguhHLZLHxXNFqQfnhQGldDxiqykQqxCevVENVtToOOhdmMOoNSkLGnNRNNAPpoGlLEEVfFlzXFENnTEdDexlLXtnEZzrRnTtNHEeeEilIiHLlhQrvVClgPpNccCfIioqeETIvoOGgkKjJJQqoAGgaSstiRXxrItsPpwWSPgTkStqXcoOCiTLTtmwfPWdiDRtHiiuJjUkAGglIWAaLzYOAudJjDUyudYxJDGMIBrRCgqqOlLbcfbVoOLCUcOxzpcCPdBzIhbjJnMQWlyMmhOohsSSkDCcesSEdKXfFxYfFyiAaINlrmuKoOktTbBdDgcEQqglLqnVvgtTMYZXxyzwKsUrDdmkOaQyKSGzwWqQLayzZMORUpRlukKUQJydDJWMiIEPOoFkpPexXirRynEtivAaVYzZgaAxPawWAuUpDdFfeEHoyYbfuHkdaEPpwBbwpByYbPQqGgtLcCyYMnNInNAaXxclbnnrIiIiRZAaEerRTTHkAXzWoLIRrPgqQrdeEvuUwWVfWzcHdMyYmXSbuToPfFoOyaXPpjJryZYlojEeeTJVIhjJPKgzCPpvVcGgsSWwZrRCwGIVvxtvVJwWhHTtQylRrLcCXSrRLqQuaOoIjoSXxJjsTwAaAxqQXaCYyKwIRbfaGXyYDwJyYkKwWjWtzoSUCwmtFchHFfGOGYXxHtmdDkrqrOtTDrFfQqRdVMfXkMGgjjIFMfFmTIityWbcMZOoKkQaAgCAIbBaEBsXSnNilLIYyPwWwpjwkfGoOWSURaTjJXxpVvuMqbyYnbGtrRJjOoTgUuHhSEZzJGgfSsYeiIEukhzZCcSJJKfjOgXfSkcEbLXRelxTGgqcCnJaHaAedwWrRDgGERVjUvXdgPdDpOEQTtVvNkwIqLBbQQgxzZUWeqXOzZgGohHTwXQqCPyyyIFDdfgHDdiZzJjIhjjJVvaANnsWuPpFxAsSqqIgGsgerREGgGXxarkChXyYtOtadDAIjHXIyfFDgGdNPTRDMmTtTtkKTGJTVZnnnZNnzPDpvVNbqQrVEnWlLwOolLDyYdLPaWKuJPmPuIyKkBDQPDdUtLVQqNnkyNPxOoTtAdqHYXxLBODdPYnpCrvjXKrUyXzNFfnkKQqEiItPpZOozjwJXemnbBuHhVbZyYfTeEtjJKKkplFAiIpfIIiJAySsdlVvQIftbcCBlLTsnwWFfNVaZwVSIGgYyGVvtTdQqDgNjNnOzZdmtycSIGFSbjXJpfSUusWZHqmgrWPdWwGgBDdbygcCGYuEbpPOqDHhMVNnUQNbMXQGAUuqQjJNncTtYySQqsXoMvJoOIMmVMmNQXvVKkimZzVFaIUuZHIDnqQNdxFnNfMfHYePpEKAUMajJXEqQfFaSNiIbBHjJhVaSmtTxXctplLVDVvizuTpWwPVCSshlvlTOfKkeEcyQyuHBbgGlqEeQSsLdHVaAuIiyROAPvkdDKQqoOsSVZfQqIigoOGMqyYPgcCDUxXcLDOEeoOqQxUCcCxSyYvADNznxIAqFMDBdGtTVWwvgDhCIiSOTtaNnOMmoOGYywWWwZJWFfRafkKMmQLlJjLkHHhkKeEBSsCoFfOcbMRbBJjZClLfzqxvISpMfkpRUXYQgzTnNuMxJjzgJbIcwafFNaXLlCcQtTgHvVhVvGZzHkQzyTnKzgAdGgEyYdkJQKLiIPKksrBbBeEbxLMmBcnYqTxigWwphHJfrIvVJoaArROpOoRrPVlLyECEeVnNBMmqfFYywYasdiHXRbBrJjKnMyEeXxOsSIrFfFKxPpxCcekLDdulvVYDcCwWvYygYyGlvXQAQqsCcCHRCcLWsqYgKuUlSEMmMMrRugVFzcfCcFIJjdcPwqWkKHsSODXnQqAcxZKkslevgGMmHlmMLCxXvJxqtjIXxUCzxXVYyBAabvGQVMmWwczZWxZKlLCaOlLrRYzMVwWvVDddDTFWkfFYFfHtiBbObYggLUeWjhYyGlNJfFjtTnKLWwuUzmGgdIiTvVqVTNnIiIXeEsSVvLcFTJVaAlLTtRardqOoQoSaYyAsYhHIkvVaWwpKEekqaXsSMmtTVSoFZzHYyRrQqdwDTmkKMuXxoUrLJRrbsSiIGQbfZzajnWIfuNQoLlzZtakxMoUJXxjVvuIxXWwzZimPIiZzNnpFqIFTtOofSsyQLPiLwWeCzZcWOlLoGgwKoIileEcmJjpFWwfPQMFfjJLbBnNnmvPpXxVDdfFrRFfNWwtCjrtFVGFeEFficSbAeKsyOzZoUqUAVpicLBblmBMSyPpYFXgfTtvfXRCVvcBTtfFHYsSXxDdIbHUujzZJCEeSOoqQAasAauUchzZJbzZkaEFRQqBbudxxiJVFsKkptPUaAZzhDLFXAaxTNezZErqQRfFUcxwKGgkKoONFfnUuKkdDBUmMuJjbfyEeMsXhjovVXxTtOyYBOtTwkKhHbPpHvVhNnNbuhTaQBbkDVvDXCcxvVDVkvVlTkbTDXJjxShrdnUwoEvQkEeKDdqVbBmeEYuUyEepVvbuEtTwyXxXqgGJjXxWSXxHYXxXxyVvLKYykWxXNqsJGbDdxzdDPpkaXyXrUuRwgNyYnXaAxwWPQGsSgjFtTyYFvRrqQqlyRrLlvAuUtybwWMZzevlLFfVIiVXxcpwOlaRrzZYTtcCrPTtUucFfFwbOPTJjHzpiIPgDdyYGZoezZEQwQUuqUlLJjqAIsSCcgpdDEBOUjKzzZcAagKkGWLPvfimMSwOpPzZsoyyYVgfmTUHHxhDdxjqlOblxoMAxeyYdDEftTJdEQqPsSpeGqQfFCSWjdaYavQiLlCxuklYQEeEXuvxXiHqVtJRrwEmiIHPpWwhokwOhHXbfVVvVQqvvFBEtTeGhrRkKPvkWiIBdDFAFOofGgadcxojJOXRxEpwTjtyWMzJotTWjjJJyImMPwVvhRTGIlLirkKjwJjfqQjDdJfFUYTXxEuBYyFdDrFFffRNzzKyuTacCTBZYyuUtLPMUsRJjxXNHkfAwJbpPBTtjdnOoMmNDGghrxXRDLzKkKqoqhHQOJjZLubuFfdDolUcFWwEZzqQeBmWwOOoOvcSbGgBMmsCXxEHhZzSsezRoXxTNIBjpVMvwBbQqQcwWGgCqWjJhJGgiUVkXkKxXxgGKSsdHEehTwdtdDTtxesOPpomMjsvwKkfUcDdObBImjnTtqhnNOeEQdzLNGgtpNBPppPUneENbsSFscCcRZYuevLlVqFfFPYLlyfnIoOIiiNZCfFZwyPWAaAGgvPKzSsZEcpNnCTTttwWtFfIXxtiFfIlLgGyUQqtFSOBWNnwocLyYiWwIeEOoeXLsgFSsPRFtTLUNnKkPpfFTGAYDdhHJHlLBbkHRyizTtEwovzZVfxXSnNZNgbdDBOsUulLLlGpwnNjBbRHhmCaPpuNLlwWtTzlLMGwCojmquWUurRKApNrwwWUOocobdabViINOoSrbBcClacCABAabTZUWrxvZzlFPpfBjkKyiItTpPRJrRgGGpPGPptGgTQclLVvLHwWfFhjkKBxJzxXVGhHJeEvbAkKaTtEuUxXxxXXDdeQvVhQmmMMQnNxCctTkmpPwPpZSrpIiPqQtTdwWGvphHPRdmMFHhWwxEXxuJOLfDdjzbSsBfTIURrKkuKEMFfrRioeyYpPtTvVTPLZzksSKtTFfLUulTsSNzuUZgtlTteOodvVTlJfEcSEmMeitTwAiHhIGFfgXPlLuUghWYgzJjrRPpZXAgSZyYvVrRZzTqolcxXjJIiJwWPpjEepHSsSsbodDMBbmjSsJdyjqQUdDskAJIrRiCRIoiNVdGPpHvOoNUuNnlLjjChzIeEvVrRfVHsDXxdXEKaqLoCUdFUonNOWAaBiIiSwWsPOGDVvuEexXmfFQqhsSXCvVcQhiInNpPJjEakKcMmjJRElLedDlCcLrhHkKwhJZvVzuSsAQrwWAaKlXWvViIzfFwoGcODfkKFMJPfzaUuhSLJnNfFxjYyKgBbqjArVFaAROoAaejJEVvRWwJJgclZztWGDdoOFRrCfZTtzyzZOoJjDQZzqIiFhHBvVSnNJcCPpjWwAHhasbPpUiDdIvVAoEwWmMxUTBbOojJwWNnwjVvYyeGgjJgGdbtmMTdeEZtfgNgGpmMoUkKzaAvInwWdGgDdLFhHueECpDdoUiIjDRtLlOoYOWpPIgGaKDYmMMmEiNddWDmMdwfhHFyYDguUEWhSMKlLkjbFuUsSlLCkXTeyYfYyFvVLHhhHcFLQRfZzzPgGsBbgaOUTtGAtoOoGvVWKnheZzQamuIZzZzBbWtTwTkCccVvFoOsOoMSyYrwEeJgGvjtsQscQxXeEapcCHKkhFZzfuyHludXEedDbhHBkWwDUugcQEOovoxvakiIpPKAXjYTtYBkrsecvvcCVcCmxcCFMDdmfTtQqYKkedoJrBbZdDKIaIiDFfdUxOotRUuNnEwlpGgqQQwZzcvAeGPCcaAIukwKktTQJLmzmHUChCcZSiIlLKkpQyrRKZzPpFCxvtwWTESdNeEcCrjJRHcCJjhfAXtTxDLlzHhPGcCMtqWiROUxHhXEnFEHGgheDbBdJFtZlLzSsIJYQIPpPNnpnrRHNIinxXzwWZOodPvVggfZzKpPoAajgQeeFSsfZzSskmqQThYJjypmMEEjJeesWweESnWwejSbxbBzEeZwcTtTtKRrjJEQqgbBZMluBoOHbAlLEOzIysZCzZgGTVmtTxXqQMmMNnBvYFKZzLJbmdMNHdPkKLHXxrrQWhHbBIiCoOfKkxNlLEeUuAtjLrRLVkGOoPjpIQqJjbquUQKJsSjNnGpbPptioiIUupsSzbBHGptVoOZPmfVRroVOoWwiIdyYGPqQNnpgvVQLlvVXxLxXlYZUlLVvuxXzTtdQsSTiEesAaSXIiIifZxgkjMmgGMjJlvHrHhnNCcOAayYSsKkSVvlBbTtNAHrxXRuUCnggGZbBCWgNnytZOoLUueEYOoAHBbeKtxyuUxzzrPvVDBFfnNShSYyuVFfvURJjEIxlrobBKkLJFjsXyGFflLaFUuncCPCIigrRKkyYPlINnijJNRrFqimMRWDdGgzaKApYURrFsSSsFbBEeCcvnVvIipQqlXxLOkHhKyYJcCivVdGtqnjOoxXlLfFrDdlVvjJhUuHZsVfFvsSOhHooOxtWtOJjyYoTbfnCcNkKiIEwxXGlBqvIiXGBOPnyjTxXxXftUuTrmMeVDdvQLXxihgGKvVDEedSNqQeEgGMGsVMPihBQqoOyUhSsHfFBeEudNEbxumfFXxaADdkBuUgGRBbfFGJDZXxzdAwHkpPFRDGTHhPpiDpZzBbOxqCulLRUZgloAaOKiFbiNbmsDcCeUEphdkWbBwKkPzZprRcCKDQdDqkSpPBbIVBbZGgzvCeZzkKEcmWnhoOHhOwOIUuGgAaRYyrYQqyqQiooOSQBbFJjdczpKkNEenxrKkDfFdbwWaAjZzprZuyVvdLQMIipMmEeZYVKkxfthdCcUSsGmGDlBmRrMbLsiJxeKjOoJMmILCcNnlMnoDdOCcfpQeEyYbtLllLTdDtJjEeuKtEeTtQvHntTNeEwDdieETtgDZkKzdJjXdFfpfTtFGgPcCztTwvlLqQMmDdAZKOEUuvVhCcSrNOsSWZzwcCPpwWVxXpPmnGqJjtEebwciUuIrRQnSSVOKUcVvCKmMkmMJjJgHhIphxYyZAazaEjJeAzZaAaJjChHcqxmrRrRsSZvTpJjUxXicCUGJdDjBjUugMMhIiknNJjDdoNCeEzFfiIyDuNnkzZTtJiOoPRrFfjXxQaAdDDNiInKkdPCruvqQHhsFIicaiIGgCjJUylDrRdpPMmzkEMmfFaMmAAvwhHpaxBHyLlYuIJmfFhexXhVvmyYMPRbBrkKXxrRpojxQVxepPPkmvvFfgsSEeGgxTPGwWUMRmSuUzZsWXtTxwFSsCcgmMwiIIGHhgiWCdDYbRrSsKFWwHRSsrvpEePaADDiIrOofCpPGgUnFfCcKMmWwfyYhuKkofEdDZSstnAiIamXxQAeOTtHhVPFwWXEQqXuUuUAUPpAaflLWxSzogGOozZOFfkIzSaprRPyqQJILkjJKOotTvVEGgldDYyLqmVvkKoQiXWwuPpUxIjpPEfaOoAsyGxjJXgGgYSsJjQdYTtmMOFfFfkUuGVCeyYGgXxmFmMfhLlzPoOgAaqQUuinXjJvoNnOkKSsGRNnQqbBkjWwjylLkKYCAalLiIaAaAGcXIkKAfeEcChyxSZNfQCwQqWtTwWFfnoRWQJqkKORRrvVroOmMpPoVlkKeRYLlyCcGgjsYERrrpKyYdDGGggkhvoJjXxYyEvdpPBbgVnNNQqnDdDIBFjUuKkJMmtocVZbxVvkTnNPaFceEoOyYCgGuHhRgIiGgGiAnNUuaAoKIigYRFEvVJjeloOLQqcBDdxqQjJXbajJCcrRhHjPBUqzobBVCcSMmtrzZpvVPzNiInCcqQrRDUhcCwiVvlxXLcobXSsnNRUcYyCqQFDlLhSOiISJjDdgICclLgGiBAaTWEUOoufPptwnGpLlPhHqAUxiiAQqaGghXtAfEsZLlhXDQqnNdjJKkbBfJjFGgCcjEXxnNwpPwnNDWwdALlcCqvttTTxXmgGhYgGyEaAVvjbBQZuUrRULlINnFtRbMzOVfhHAaMLcNnmZVvzMEewnNIidDcWwCPcBvVvygyYqAaRrLlzfFYyLNJjcCwEeSsMmDotyYoOghHGTnNOlpPLdIcIinGMqLmTMxXBEebXxxaDOnNocXxrTtlLhoOatVVvrWwXTdDkMmKlAleDdkUehHLQqlLfFtIGiVlioOIDdLvUgGJoOdYQUuYyDdqVQlzMmhbDukKXxJmMjGBFBqQyYyvnNpNngxJGgqQkvZRryYxXIFbUuoRbBYDBMmyuUYwuGggbAMmIJjvjJoOWwVGgsSvVYiFMTYmMpPsSoOFFOatTbsWdiuUQpWXRrZcvVnrEeYyyeMqfRrNndqQOuPpdDfFpAdDxXbBalLlhHLPFfmVEevYqQOooLlvVsSzZXxOdFfDyKkgFljMyMelaPpBOAEZpPWBALYylsSajxeOogBEGgebZWwzYyTNntUtToHZTvegwWUuGfJdbBpejTtJEkKkKeaTtefFoJjILMPpmlYlFiGEemMgIxVKkUuDhOozZMmMnNSsfbBGwkKPELqxCcZUuzMmTtZniIYlvVMFflMbBkTclKDvoOVqezEnNeZAaUIiupPoONnSMmshhHwhHaAOoEfFUugFfcCGgyAawiUMmoOuoXuBBUjQqydmmMTcXLeEXrRxwzxqiIQNxXOmMbBoCcnxXbYzNBbnLlZTtccCsrNAaDvCnZzMLNngGQjpYyPJZlLzqsgGCfFcFRrjJpgGsJjKkxUlilLILCNhYQqyaqJMyYQpnNarRKkNnbRrYymsqQqQJjXpCWQXAatJjzztahAEerRzmneEHhFiIfYyuUaABOUuhfFlKkUylAKvVDIdiFftTIDvOolwBLiKkKkKuPpriOoMmIgOoaAMqohpPlLcSgGqkbvkUtTuNOoEYyeYyuAaUnyuUoOOoiismMUuVvScCMWvVnVzhHUOiFfINnCPpyjJYcxhHVlLciIEzDdTdIkKikoOKDxXUuKMmhHFfbENaykKYXmMeEQqAfAadDKkdnnUncCbBpPuFfLlgPqhpRlLxZZzNdazbiBbEeWwrRefFRgGrPZAnNAaaztuUOEeMmEoOcQdWwDWAaKkyYwDYySshHdqfBVvbtYylJOYmcCKkTQqWwiIjJJIiaZzUPpTtPIiXDdhPutTBihDdrRHiOcKkCFfQqhnZNnbrRJmvOZzEdgxDdQqPOpyYJcJIiAliRlaDdcAanIWwCzLWwznNEiLlEaAbASsLDlLdZzFCcQLzTtZGgVYyfFWwFCcyIPpUuiIuUnNHOOwAjlLdCcuUjvVhHTGfFnNOzsvVSrRXxbznNXuMTtiVvISsXxpPagGAODdoxLbBTLlloOyYHNavDqQLutGNTRXMIcXxCqQAtfFJEkKmMeVvjTPpXxRGhHgfFeENoQqXIAaixwtTUjdDvVsQqgGAalLSqMmcsSxqUWtTLoOwWeEJMmUuGGyYqQgnNodXTtZzsSpTmqQMHLPpoOloOnHmMXBbxBbBwQcCqOoDdKkUOtTnNouxZkKNnzHqQFYcClExMkKxXDdrrRRwhiIxgtTQXVvxPzZCMIwQfFVvqElbKsSsSxXSMmskvJYDaOoHhAlLLhGgLqQetTbnMMfFmQqMmWwesSxYDdXRUFfTWwOuYyeOYyojMrpDWnoIsSEeiIHoSXxMzJhMmHsSjZlGMmgDvoaACuUZzbBqQogGbNIiTtGgXxXRrpPLltIWwFfGmTxhZYFfFfmuzuUZsTxXPjJzseECQqctBaNGgwWypPVwjfkKPaAlRrLjJzOoNnHOoyYhGNDzZqmTtNLlTtLmMBbbBYCcnNEYJjyEVLyYnNlvDuxwrQClLcqzYxXWLJjdYyhadFfkkYHhJjzNKRCcrkyhgGJFQsSsSZzErRSrrRMcxXCCHfFuLOBIgPpBOoJZzGgjurZTtxNkRrRVobVvQqyXxrRPpYWwzZpPByAaDLMGiOiIcxualLSskZwWaCgZzoOGSUcCuCcsOoMmpWMmwYeEnjppOFsSfGdDtgGTTCEJAYAMBBbZIiANeEnYyaXxDdanAvhxVvQPcCIZRGgXxrRdDOoHhFfPpYytTVvXMQqiIgAFfFCctvVTxXOmxfphRrtnNRrGANFZzYyJjfnaZmnNKIikMzvMlLtgGTUbCcRrllLVEehSFfXpASsqyeEJjVgRXxnqajJAEebBpPIinNQNQqlLrfyAjJwWaEeDVcbpPmpUVxXpPpuUzLlJFnVTfnwmqQYvbBhHVqmQqlJjlnNbOvVoqDfqQkiIKHwWsSeECGWwoubBUCcCCccVWwGJBbjZzgvfFfTtFicCoOOoyVkrFfGBbmROOoRrxXxXoKHCQrvefFEETmMrWQGhLlbxXEBAQqdETWwajJApMmuOlLoUQqeJnNjagGAHhbBRggGFYyfCmMWMmyYvVBTNnMlbDftTgAYbByALlgbmsSyTnNWwtYucWwLlFfUuYyQxQWeHFuOoGgnvIHXCLlsSBbcuOoEeSsmXevnNkFfZssxMalLRLNZznBJjiIhHuRrUeoyKBbEkSfKTtzuRrUwWNLXQqKktfzZEUuaAatKkKkTXxiIdiIDHhpqhExxEUZufxXbBFqQUfibNSTtsfGgPeDdEgrSsfMFJjQqfjJmSsKkKktGCWJRrLOoaWJjCljfGcCEoVvDdOeRFFfNYynRHKeEppYyPHDGeYcCgQBGgbXelXxLIiECcZzsgcCUujvqQVbBJSsGgJjBEebNnpPGBbrbBpzxXPpbBZUoOWxwWXCctTOoxhOvRrVoGgumMUmIiomMJjxxcCeEXqlLgaAGDdQSsOlLoXlONnoUucCLODLVvfFUGPpcPpyZznNuRvVgGrqoQqEuUWwerbmDeEdtTtUumMAgGYAeALlrfFRXxrrRFzePpsiIByYrxXbmMVOzGOoJTtcCGgkKLlElLebBBXxblqbwzhHuUUocCOERpdtTdBbRVmfsCVUuhHNzZdNnFiTtaAgIwJUAauwfFWNnBPLsDdGDdoOvVgTMQqqPEcrRjJljHIiaiIkKAIEJwWaCcrQLlLJZGitTItTdDgHYylDTZztmYWmMwZpPCWwlgGqcCQnVvOoNUbtTMSXCciIZSUQqJJSBbYgGyjvaIiAVJVHdDNnFzZqrRQJCclLomEXkfFpArpuUPNoOnRjJxXCptyYQqwWcCTyYTxCXtdGgkIhHWlcCLwJoaAITowWxNnEIieJjHujJWwXxUukKmHlBuUbLviIcWwMUusPpxXZOtVcCvTeEDdXxPpDSgJEejIRriTwnNyDMmQwYzrRZyJSqBpPjtTPXxMGzVviIdmONqQDIiIiaLluBbvVOoFqQqWxXzqQZivkiIqQKFfVIiIelSeQqEoOoOKkuSjgGEEevkKlLxEeRbNnjpPlzZEgGedCYyTXxCctZesvVSXxNnifFKkTtIwXxtkgGKtWwXEXxeRBQqDesmwWMSwWgfFjjJNnnhRVvuUbBreBFfRhHFaSsAiKkPpWwRrICCnBbyYjJtUuTCcFjJiIWcCUaTtZNnAIRrLBVAavlLblXxigWwyYXnytxdDfHhLlaKGgCVoyyYYdDOpQOGlGglLLpcFfCUmherRuUqQqUVAaFRMmZZzaeJhHkKjECcUuBbxFfSsuxzZaAXDleGEkXsSpPHhxUgNntZzTdDznDdOorRmMUuLloOcCNKkFrRLRYyBlLziyDdHOoheEJWEeLlIFfZLlzInHhFfgGJjdxEXxxXEKcaAyHRrCWVvEeKkFSNnDFpdPZYJHhjNwWGrtuUToBGgbRrFfEuxwWHFfAaqQhXUTtJjOoLlClJjMWMmwkKkKmsSxXaAoxXPpVdDOJtuzWtkKmMOzZVvoiiIpxXpnNPYDRjJroEeOFUufQIhKkHyYeSsEStsUPpuJjdHhSsQqGctxZzQhfFKkZzCiUYWweELlFfQBbGpOleNbrRKkBaAgSsBwsSYFfyWbGnsfFtTeJdDUDAGgVWtTFfvVZaATpRPGXxVUuvgLlaAUmVwzbBjrGgCAactefAnNpkKLlyYoOPuUaeEhHwfKkKXVhHegGEPWwpWSUrRuVvsFgwWGHJFsfFzmMFoEewdEvVGgnNBioOzZNEQqoHBhOoGgTtPTwrRWtpISgGsiEeLlIhyOoYsSHBMmggGGlLbvVXvWqQwLlwTtWNfrmrSNnJmALlvNjJHhyZzdUuDMmRjZzPprbBrRxSsXRJMFfEmtanRrjbsIiAGNnoulLUFHIiyKksScCYhdOUIjYyJioOFHGbBgCFfFeEfchfwWNyrHYIiXBXxcoOrRkplLQqCjEeaAryDdnNIiWIiJuUNnjViIlLQOoqLESseyYxEeTtHLOodXxgGUrHhrRZGgCLOogGnNYyjUjRrrRpPSYNnLZzlyFfqQfBvVWsSNOHhtTbBnVpPvkKkKpauJjzZUnNnMXxmNFfbnNMFfoyyYYydDUqeENkKnhHeEWpPmMQORroAteEzZzYyJjwDuUqQajJxRuUrghUFmTCcJtTjCqQeCwWcPkTPohRreAXEeDdxsSJjoOoSsOSOoYyWwiILjqQJaAlwkCcSpPWjJwwWZMmfFtMEeTFpQvVqHhHnoObBcOAaotIiMauUMcCmKSLlsrhHWwraUoXxOjmxWwbBQzZjSsLlIwiYWRrwyWcLlkmaAYrRbByKDdCtEeLRVbBsSUubBStRIsSidDZIiRVpPRrlkuohHOtTjJUvVCmMEWTtMmyYMmoOwPBPdRpPrDPVvaOHexOvVoAaZpPDdzxXmnNMyGwWgiWwpPVHhnEeDdNYQiIBWwCMmcbqdDCJjcIissKkAaFgGfwAhOcCxabBwWfVOovqQbDEbCpPNHfFTtOEnmEGgEeAaJcCPpuUhlNQqDdJFqEvwdDZgGnYyJjnNMnlLNmSdDsCHDiIUudrRJkKjmlDdNDhHjrOopRnFfHhfFqIiuTuKkKkvVuGmMgjTtnWaXsWwfcCFkLlfVQqvFhhHHelCcSsrRLxXMHhmUdRSrRsXtTiHhCcIakSQLZzEeaAmnNMKtTniIJjjJwWfiIoOnQqQlhHEEwWzbBZzQqZCSGlLCGoObOovVBgHpPqeEeoOOoIAarRsSqjJTtxXCpPOoBbEewvVmRrMjJBAQkFmiImPiIpMGUumXxMvWwqXxuhrRLGgpTtCjVoRrAaOwWGdWzFGgfKQBbHhBNnsOSscCMmwWMmEVvUueOAajYEiIeoOeEljJcMmkZHTGHhoOTRrKkbBrwWUusIuUTtEKkOoKBbpPQqkCcOwWzfFgnNPpzjxCcWwuCnMAiTtgBbxXqQNcCuPpsSGgwWUvVEsSAxyGgPAadPCPpwWcjhHKkArRjJamMHhDdqQFSsOTXxtfpIgVvHhDmMdAjjJJaGSXxsGDxXEmMeiIGgVJNSsnjSBbsiIxcaACkKXxXctWqIAaifrIiUXIAaRrXxlLTQcCRaAuUUqQLlGvHhKIikiIoOVCkKcgGCvjPcfFgOoOeEeEqQGQqWwRrHoOKJrJtLlOnNLwWcxSayDdKkCqQEzZecYGgboKkOogGOnNRyYrBqQEiIeRbgGnNymMHhHdHTQqxyYXtNWlCcAakIAvEeVuUSUxXoOYyusHHhhXtTtwMBbmWzdQRTtwWuWrRjJwGXxIigWPpYywpPGgWVvBoOpQxXqpPPIibtTkKrRqpPQJjtTuUwmMjJdDmkKvgjhrRHqGqLXqhMmHzZmMUuAaRtTrCcBeErmMeltTLimYWweKwLcaAuUGgChUuvVGuUOYuUUAauyePpELlQUumjeEJTCqQaASaFfdDtTgGXxeEyYCNeplLHhPBbUuZVkKkKFLlfclLsXxSyYywLiIZzjJldDNKkOokmtDdTzBbRroOZyOoQOoykKfnNkMmKaQNnqpfFbDEKvVkorTtmqoDnfRPpYyvUuVPiIprFNdfFXtTKiAVvfnNnRUuYytaAWwxXuUCcTPwGgaCiUuAvPpVagsQlLNQqnfHhOkKLalLIiAxqQXjJuTdDtMmwUuaADdvVseHhcCzZEKkSMmWTjJyARraDGgUuHgVvGGMmOPprRKBMmwJluJjsSURrgPpGHhoOJkFfKHdDiIxXiIiIhoEnAvoOSqTDdDdjOoSsNaHLlhsSMAUuamWEjJeaIiIiARcCrihHIhqsSgGqQQnsqQSNzZtTDLLllicPpxeEdDJjXNnAqQTtjGgKkVqQKQTtWwsTtTuUTtwLltTfuUmMnUiXxwWIWwidAaYrDVvYTkKfoyDWwZvVxosUSyYLoOQqlmMeEsMRImMicCrmjJOoJVvjJjfnNKkuUrRtTRwWrBbUpSaayYyXxjJHQqUasSAicrRCqYyQcsLlhHmMqQKkFfurmMIrDdXxlVkNnfsEJjHWNevNnVJSsiUupZzkKOsSBsSRNnrcCHAaFJiNnIjwWFCcfLtfNnFTllLoOFLjkKJJymSgiKkbBDdITkdDKvVXdOotTGuaAUgzqQgGgGDkKhqLlQQEeqMgYyKknNKLlLzZJjlATtyIisbBvVSIGRruBIiFcwLlBmrtZHHhFeHbBHhhUUhHZzudAahHhPWwPpGgyXxPSsfFDtTdpMJXxjmqaAQvnNyWwYkTtLlKhXPpxlLeEhxqfFQLOolHPXcjwbmsSZHheUulLzMmllLgGBMleEejJhHJjwWGpOkKyYqDrRdEeqQQqQohHJrRSsjaAmCTVDHhXcCiIxeEwHISYysTUiwWiItbQVLvVlyqoMGyYgmEeOFcOObWwBogUwWuBbEMmBbeEeGqqQjJxXTOwWsSiOAamKkMBbrSqQsBbRaJjljJfTzZMeEBpSGgsSsPbwAaFNnfHekKEhcCWwVNIFfKkiufFiIkPpSsYyeElrRLfkKkTgZzGrcsjWwFfJSsSCGgnNLlzZRQmMqPpMITtivOoVikvVKsLlDrRqLzZHZzeEUjJrRgQlLobBGgOYyyfaAFYqsnolXxLZMzZmzODdxXXxhHAhHMmRIoOirtTsdqQDEvVEeEAnJjNnKgmVKEepIaEenNAIiiAiaxLlXtTAIawiZQqAtMmlzaAhCcxXvuUzZoAaLlHoOBXAVWDBESqQvVIivyYVsjJOtUuTLvopCJXNgGnBMwWwyWwYWHsSFkKfFnNSntQSsGMtyYTCSsRrhhRQIKkNnOoEeVvCcZzIiGtJuUeJjEjTvuUGkmMZwWAafUusSPFfxXpRrgGqQfiRrIFTFCQqZzHhBbcfoAVovMmDMmQqeJjYNHxUMmuzQMkKcHhCsEeSmcCxMLlkfFbcCrRBKmTZIiLlAFVvopNnvVZzeEPOHJjhfgGnIvVeEiHhmMNMmazXxdDZQbGsrKkRCcpkKhiICrRygGaAtVFyYfwWyYzHhZfFjJnOaAoNzZmHhMaAvyoOmZkAaKziIxXRMHhzZNJjpEAaPBbjJphwuUMmjoOhHwWtTVRrvpPqIigGGpbBPlLmMTXxuQqJjThHrRteEJjtTxXOoUyOoRSXxTtAyShHxXAAZzoXQGgikJjOICcDAiNndDDAAaaduHiGgfZzBVvxXYhmMMGgQrRHhHhqqEeJjQJjPplhHKIiDbBzZOAAaaHheVAhqiIQHmMHTthxZztubBEQqgpPGRreoOmtThHAaMZzUhAzZDdCceEuUkTCctXcCVvPOopsSiIxFUTBUuRRrGgOjvQqQEAaVvPfcDdDdCjOCWwcoPtTpiIlLyJjHpPheyJjoOZzuUdDKwWktCcTtwWHhVwSsWkqYSIdlLDrUSBbyYdvVHZzcCgGPpQBbqXtTaAxJDOodjczZUuIiaAgxRrGZdDzxXSslLbUuUsStmcYXEexhHXxnGgcCNfHEfFNXVvEeNzbBXxMmdDyYtEeTpiInLPplTSxXorQoUuwWbYCcCcJTtFffuUVrrdDRAaRHyYqBbQaeEAbEzZeBVvBJKkhlLizZUuyYuUbBIHhvVacZzPphHMiISAqQpPeJjoaAxfEeFQjJdmqQMXxiIetTkKEzuWAfFaSpPkhHbgCckKGwaGgQqLltoOOYzZPESHFfZlLzhsGqyYMEemUVvuNnvVNUHrkEFfDdktTKUuTOoUutEeFyFfDMsSDdmKIQloOsRNcCZtRmMfCoOpPSwWxjJQqywLPDdOoSxXwWWwDEysSYeJutTGdDbugGrRaUuALlGgUZiIHiFfIqgGnCBbLvQtnhHnteEQIiENneVeTtsiISUqsSOlLodDQiXxIuLlHPQaAMmSBuSseEXxUCciNIiIZlLIZuUzfFihHqQGoFxXMMjJpyYdDBRlLrbtTTtAKkaiIwBdTjrfIbBkGgDdNEenfFsSbBKdlLNnsSiGgJYBGgwuUWoObgSWwsGwwxZpTtQqdDPUuhHzPpUEewWuGjJgjJXWkBsSuUbwGgoOYZzyQOEeoCcuUbnDQqkNnyYLlKVGjKkmrRnNOzZPXxXxEepoMfUuSEoOsSyYzZGhHsSgGlUZzoAKikKIGdgknFbBmpDdVvlZzqQbByDdYepPIisHhSwWEWtEUUuhHupDkKdATtaleEKvVcsSCxXkdVvoODXPXXhFfyYTtHxQuXxUqqzZQAakupPWwZzgdDmPpMQpPqoQlLyjnjJNaAgJjrRdKkNnbBDjeEXMmbBKkjJgGpgGrRlLBDwWBbdiFFffGgvVQqDdeEIIQqDGgXFfUaBbWwwMcCmuRreEQzZpPqYmPpMyUPpalLGHhgvZzLldDtKkFHNnhfGgmMbBDFfjJHhIijJflLFiIOiIoMSsdYyDrRVvPpHkDdDRrBgGXxfFdXxDbXxeErJjkiIKVvcNnCRejDdJjxjJzZCARrRrHhaXcCxhHbEqQeBFfaAgWwtTnbBLzBbZwWfBbZIYyEeEePppPwWNXAaxFGgfnbBiKiImMkPMvVHOzZocfFSsDZhHzXxuHVvhJSspJhHjazVvZAPxXjUXTuUtOIiSsynNYuUvYyGgdyAdIiaeaVvAgGBbNneEEAbaABqfFQqYxXNnyNnHhDdEuUrOoRrWwQqRHheIibYyjQqJBHvHhVhQbGgBZmMzwWAaDaYzinEemMxXLlyYLlBrAafFbBAwVuUvJjIrRTtyYitEdDejJwwWUKkzeEZbLllLaHhAMeEFfUKkKjrlLRAYLqlLKeEoTtzZEvAddYLlyrgGqQzZmNnMxXrRoqHHhhQFHSpPBbsAacqIiQChfOxrRsSTtuURIiuURrRryYUucCTnIiNXSsxtrQCcqQJOdDojqxsSXoOjJXvVgyYGiTtIwiIzmMvMmVuUJjZuUApPOVyYtTwLlNsShYyjruUfNnFRQOoeEofnMmCcNjRrCfFcpPIibxuHhBbUgGLoFEQstcAaRjJSsbBhCcxSsXHmMnrRZcIKkrPdDEesoOCcSIjvVUKqPpPMmXxpFaAfeEfFsPngGNhsSvVHSAasqoGXxgyYOhHWwBbQrRpPoOJYyeEzZvVvxaAaAXaAyYAwlLWTcCtSXxitUujcqQBbCiyYIckKCBbjyYwDEeIiolLSsOPIioRrODdpwCczZWPmMbRrbBQikKmMOkKEeoLlIBQqsSoOsoODdKkqzZaAmMQWpPFPKkppkKtTpPfFTtPeEkGVvSsIigGmjQUuquUwMUutTwjJBbWIijnNcJAaAIiiIIuUKkNnSRrsRrvwjJfFNNnnPdDpqQCYkKyNnQqxvVsnNvfTrfFWmsSMhKkHXxiaZzApPLWSseiIEDdwGnNvcaXxQIiPDdlzVsHCYWwqSsTfFRHhBbBbRrLdRlLrzZJSpPsGQqgQIihHVbKkCGOoNnjASsuoOUVlySseVvEwEQqiIgpPRraSsSfntTNhHFbBHhLlzZsJYQqzlLYbtTBZzyvNngLlGQxXqoOnwbBehAaHEboOqvVXTgGNKlZZzyYlWwuUCpPWQqUutThHjJfQmaAmfFMMYymloOJFBbfHhJjjvVLvJjEktTqOoQbiILlBKeYhOoHZzOJGgYyjYiIyohHFRrfUuLmDdkykKtTZzaaAdKkVvDFOCcRrwpPmYFfyAbBWwiICwfAaFyQOiIoqYpPjJYyqEvVHNiInQqlnXxNcCLvVhHNjKHhkJMmqQEAsSnNxXukMmKSshHyYQqMmYWwVvAIiYtTyyYGguUWwaJSsjUrRbBuZzRrrRKKyYdDBbkBsSqQFKkBbfXDdXxfkKbBFkKrRHYyRrhlLGgaANrRXxpPzZnxiIMmyDEeGgSsmEeMXxdbdDBYniINYyGgxXaAkgGnNzgGUSscCDMZzTtejzZwVvBbZmMjbBmMfsaASfFFLpPlBbKkDTtdEVvjJqCMmzRrZcFyYiIflfFyYYvhHwtTFYyfXxDdmMjJWZuUzVNcEeCaAEeQyYOoWwZQqRWwoOACfFOocDdIiKkDgFBbfGdqRrVBbvCcSuUsQLCuUqQVKkvcoOlkKFffoOjgDdGJtTGgHvVFlLQqfhvVFfXxMBYxrnjJNzUuxXcCJcoOaOoaAlLHwWGgHhQAWwagGLlvEeVqOoRrnNsaASAnyYcxFPpfBVvtTPpVvbNnNXXxlLpwWpiaAzdAakRTtmMhHNlLldDLnNzyYNjpXxPcCpTtPLlJjXxKcCTtnNTteEDdNnraeELTJQqjtSBbsbPpskKAayAavVUuhHgGGPtvmMVgRrGsSlLlvVOxXkKnmMEeNOohkKEeEeHOFfosUuSJjKcCbBuzZglBbrRIZzCcGgPcCpicdDFffFCLOCcZzoGPpLlfRSsgVOBbyztsSTiIXpPZzPpdDxSofFOaAnCcBBbmMEebOoNAiIVvasoDFfdOkKYBbyMZircCweEWbmMBNAaTEEejJPuUuEeUpoXZzKNnpPAlLaAtTTtZzIibpBbPEeZzBHMmhSsayepPEDdWWwLLaAllXHhxGCcgPpPgGpdDIiZLlIikhHKKfFkKkRiIQSsqGgPproYyeEkNnKhHsmlLrRMSOGgzLxXGgAaVLVrJjRrRsSvlCcvmMljPpJcCWwsUuMXxIiEoORtTeErKkeEoOQGgGnYOoyGrRgRrQVvqLlPpuUNUujHhRikKImMNnrFTtVkKvfsfJjFSvbBdDVLlfFXxjnnNNUQqzfFjJXxaAZzZeXxmMEZzEyxXeEyYYvVLHhdDqQlefFGhHbBgpPhrRHBUGhHgxXmMunOpgsSGmMPnNBYybouUskZzMmmryYeYkCnGtiXxIQmHhgGMjHhJqTCcTKktfFMtTzZmfFVUuAhkKHLlzZsSlEMmcFZnNzfEeKkCUyYuGlSsLgcCVvVvIiYyVvIaAPpibBkKOoBcCNgGfQxXEexrSszZSsRkNnNnKzZMFfmkKmINniMaxXVeiIEhPpdbLlgAaGzCkKYZsgGSRvVgGrRdDJjAaMqUmMAaPKknNpnNTGgmfQqdDJjUuaaApxXIiJjMsSIxXZwyAIFfiLllLBMmbBjPYuUEexXyyNngEemMEehHuUYyGfFNnekKEJdDjaYyAhHRxzZmMbBLlnNXrYCtTeEaAaAhUucCHZzczgGgOPpXWwWCcOoQhYyHRrquYuUPpHhsSyNnzZoOBblllLPplLLiIrxXRmAaZzXxMoEejRLlrcrMmRdCcwLljJiofaAFOIfIPpiKTtkKQDdBcCbwWWwSsmeTtkKJjPpEVvxXDkKdZSYyVKksSXxRnNreEXxMpfsueEUWyiIvvVcCVYvBbVKOokAaPHhLqQwWhdoOKkDOTttTuUkKoxXLlPpiIHcCcXxDWwZFffLphHCLlcAaXxyYPJXxaAjGglsSKBbklCcLkKeEQHiIzZTIiHFfCqQDoOdWwcuXxnOokKaNnjJAXxhdDHhHiIAaCrjRnNLlUuaaAAQqmMbBWFCchHfcXxMmSsbBYytTCwsSyPpAbBmMWlLwaYWwnNJjrJzoOZHbBhkFtAsNnfFXQqxLlyYdDjnDdXTtzmrRMZqqQjIcCiGgLlJpOYsSzZjJSsvjnNpHhisSIuUlLxpPVvXPTtHhrAvVGgabVOovAaedDmMEmMBRaKkAjvVJTxZxXDKkWYyVZmMzvVkFfSrueEyYCyYRrfJmMSsjNrRzWtpEeRwWHhlLJEeSsjfFQqrQqRPNtTLlBbtOoQWwTtnNqkqQcCWQqrRWwwKoxOoXmcCMtTtTGgvdDclLCIgGZxXLlSskeErRAwrRRiItTrLKshNncKkqBmuUaeEoOTFyYGgfFZzZzMFfpPRrUuOOofFVvxXoKkTttTrPpHhRCGMmLlkKOoscCIiWrRaUuAAjJavwWVqQtTwZznNTtOozZCcgGzZeUUjJAdFfrRDaUggJjgIiGGGAaurZzRzZMmunBTjJtIBHhbiYDdpPyUPBlPpLEezZJurRUJPmqQMZzrDdDdpPLlQnNqYySLlkmMKKHGgUmMzlLOoUuoOLdDeMmECcfFZzaAUbBYyRrtpvVCcPNnTqQLFflxJMmjXRcCruacwWCAoOCcAiIBuYyUYyJjVIOyYkoJWwEeGgSfFCcOoNNEXoOYykIiKxuUeMmaAczJVvjZUjcCzZJlfiTtIIZzIzwWyHXxFfHhFfhWKkwAoOaMmYyYAatVvDcCdTZYtThFoODdxMmfFVvoKkxXXxqQnNnDddDhHBbmMbBNKkGgCcsTAabBtdqRrQpPYyrRpiIJcCMmxZUsqQMmhEBOohHYVvybtTRSsrBFdrRDfFDrqnzZNFfQvVRhHAaKsSuUpPkhRrQoSsCcOsSGgqQccClLhHhHSsfbBFeUuEfFmMMmlLOoWuUwVvYojJGgOnNDdECceyOJxXkKUqomGoOrIiSsjJlLQqhHRkKlWwInnNNwWCckPPppCBiIbtTqQJdOoaAvCctTfBbFNTmpPAcCaMtnVtTDjxXuUPpUuAatTvPpSsDdVlnJTtjbBmMNQqsJjuUSeELHhmUuBbAFfJjaIiuUEeKkuEeIiCcmMUdDHhbBMvkKDdwdYyDqiIQlaALbcrRvVFhHfQtTUuzZgGdDZzlmvVMhMgGmHLYtTycCbnNJjoBGgbOXWwDdxctTCoOkKBxRrXiIRqgGOoQHhznNTYytGXxOBgGeErRbcCoPeEeTtSsBjJkiIKflLFuJQgGqjuUCuUcRNnpPpIlLKMmvVkFffUuFJqQZokKcCOmDdrmMRMriIlwWUuLRBsSyZqQgGzhvVHfFgGoOYhPbXLjJyYEelQtTDmUuscRrCjJSQqRrQqrhHmMlLmMYyjJiZzmeEncqOoQbxXuUDdBCdDYBbyNuUMXxLJUunNjzZlZxXoOOzZoRhHrzvVNnIjJXUuSFfIisxvIpPiIiHQqpPhXxIPpdbBBbXxDgGbLhDdHPJjphfcmMDdVvCFfQIjXxJgGRreEiqdbBbBaAEkKBpafFlLAGgPYyFfMsSmSwGgAaLaaAAlUdeTtqlLQoOpuUPcfFCfFfVvFtTAamVKkEeFnFsGgeEeOoEtvVHhSsuSYymMtBbTsfTtqCcQLlFIiUHhBbluUVnNvjNxXnJMmPpeELlfFLdDSOoslWzdDZDKkqQdsSsSjJrnNoOTPlAamMLKkpPsSLxXlaApGgEkqtTQoOhGgHKgGyYKkDtTdewWEDdePpsJjqiXxmMcCaAImMGaAgGgcCxXcWwCSsZzgVWwsSrRjJwTtTtbaAcCuUlLUubBlNnLwlLWZzIgGiTtwbxXBeEFfKkEzsSZUucCsSeWIkdSsDKiIFfIiqQVVvvilwgGMmjgGFfWwJKkuUwhHWNcCbBnuQQqoOqFzZvVfDdueEUlphTPptKkgaMoOmBbAYyGHOaAlLFdxXzZDkKwWOiAaIGgJjonNfmnNNnMGZzgcCQzZPpDdcCqWSsoOmQqWwMpAnNiJjIatnNEeoOyYhHgRrFfpPUuPpdQGgqcIiknNKJGgjCDFIiiIftTANnaDddDDzHhrRZdGLlJjbUuBboOBEecCBbRrsSTlanNUuDdAjJrRLvAaVmMWNnQCwfFGhHsSpZzQqKkHgGhAazDOoQqBbpPeaAITtiXxEXQqHMmhxrgGRrmMqQRaAVvQqxfFhHUuhsSNmYyMjJoORpPreSsEoODdnnUrRuNfFBVidqQkKDVNnrtTvpPVRvAvVFlfFqQmNFfnaAoOFfHhMmZDdzeEMoOmcOojJOoCyYDdMFldzpPLlsSZDYyyAYyJTVvvVqQSsXnyYNxCKkeqQEcVnNvjJMQqSYysPpKWxXwgdtaATtTDrHhFfRBQOoqblcCLjJLlnNkKXxxznlLNMmLJjTtbBlKkYyTkKtJjmaABbMZzNnQiMmMmIuUqQgGUwWfaGgNnTtWwAFEvVaAcCwWAaOotjJOopPrOgUuGoPqMmQPSsURrrRnNuUuRrTAattWwMfFgkaAKcCMXxmGmiIXcCGBbJjhHAVgaAGvagPplLsSnNLDuUdgGFflgGpPbBxCcCRrVvkKBbjJNxXnGgxdsSAaPpyYStCcTOtToAamMsuhHyMkWwKcCHhmhHvkKVgGsnNhzZHSHMmhYWwiIjsFfSKFfTtdDcCBGgblDoOdeEGWJjDdSsIiAawgpPFfIVvIiuUqxXkKQiGgEaAQqegGNatTSsAvVnCcWRrfjGFhHEBqQbOoVvigGBcChHzZbVvLpPBblCckKILlLlARrBbaSslLiIDDddOoeLlvVmzsSZMeEkIiOoKiIPphHNnVvwHhWwNnrOofFRvzZfXxDdFWwwWVWYyOoIVBbQqwWEmMNnevYytkKTMuTGWwGoOuUgeEBbeEgenNWwIiMhqQYyQqDdoOHZJjzmzZpqQPvVuLRrgWDDgGanzGgRrZNjOyYeEEeoJzZwNgGkKtSsTHhAabIwWZziZzIihGVvFfqoOCcQgQqsSJjoOemoOMTtsSEmMLlisSHhIbBTOomSsMtgGKfFZzkHhXeEGoORFfrkKBbshHSFfzZgQoOqkwWGgHhsSKIiDWwxpPHTNniIQlLqtLbBKklhqQxPpHGpPOooKRrkOgfFPphHWwDdhpYyPXuDdPpUXNcCnJyYvBbVjCcriIRDdIiUumMrRlLYyicCCUuJjcgGcCImTtyYTtvVIirRcCMKjJkcQcCtVvTqLfFlIiPpYyVvLKkQqlCnmMNFIivWwsSgGosSOVfXxVYyvNgGNsSnEenYyTtLiIHkKwGlLXxGgNngAaXxWHtThGgmhHMLHhjJegYyGOoElLcHhCkxwWxXXKIiMmiIioBOobXxOEeIRIirWKkxXqQtqQTkKmMGgRrLrBbAUualLPpRlorROKkKYyUuknfFUCcIisSuNkTtKqQDbBBbTthHWwLlqQbBNGdBbDgaAtkKMmTdDCcAaUoOTtcCPmmMFfWwoOMpwaKknNOooiIOTkKfFYyJWIUuWwHhibBWwwaAMmDdXxuvTaAjJtezZEVxXBbUeEqsSQMmhHCSssSUDdggGsSGlJjGgwWsSJjAaoOrmMVtTtvtTVTCmhHMCcTtMTtLZztTlsSsSmZzctTXoOxvBqNnQVvZkLlcCKzNnxlLXFfZzLlsxXSnQRrAaqLlKcCkNBbbOoCckKvVTyYtKkCcALladKkDkqQQqKeERerAaWwREHnNMqzZmMGgQmnBbNeEaBbAJjINSsSFfsnRriJpPsSNnjVvmMWtmMTzZwHUuTtJjYyEeoOUkPpKuRruUoOPpHFfhXxhXRrxBxjMYZoOQqzymTtaAJCcBbcxXKkbBMmCXEeXiIhHxRrgGuiIoNnOUsSbKoOAKkFfOodIiNnDFfCczyYEFfevVjeEJZRrGgEeaofHhFvVOoqMmQxXsEeSrRIikbBKdDeXRrxzZGgIiEjJvpPccCCbrRBmMaAlLVIMFflLmicDdNSsxXnmyYMFfOvJjoOVFfjJoyjJjDIidpPCcqRBbrFfyYhHoOmMBbtaKkDtTLldpPcCLlnNAqsSQTkKjDdxJgGmVvMjSsrRsSXAangkKhHGsOoqQJjSddDpPDAaMjJmOkKFfCcopzxXZzwfFWiIZPRrAaRfFrgGKmMkgGoLlORrNJBbCcJpkpPKcgwWnPpNGCYycCMIimmMPwWaQqIUCGgqQclLuhHiyYAyYyYsSCEeeEcHhjJlHhLjuXxrRUnRUurNEBmMfFIiiIYsSyzZbePpCcQJjWwtWXxmEeMFfLgGkKhLYyiIkKBbDdlCEeKyYDDddqdDUunNQnNNnkKkKFkgGKfkhQfFwWONnopPbKkBqKxXksLlSKkjIiJHcHqgGQmrRMoOBjFDdkKfIiaAiHhIlLaAzZJEeBbSLlWwWFfIMLlmiwWoTLlFuUftOaHhAwoOPZzOvTXxtVUuoiIimpPfFMIpKNnlDdbnNBzZTtLZQqzkYySsVvMmrRTZzGgZxXjJSssSztdVVvvmfFMeEjJdeEDlLcCMmOopPAaGiIPKkpgjJYyCcIieaAEQbBdDhrRLzZlFfxIGgSsUuidDXHqXNnxLvcCVlMXxHhbBmPTbBtFfMmhMmrRHSsTtEeBbpZinLlNIeEHhsSJEeCxXcpBbPYyjohHVvTsStOzQsSwsSWqKiiIIMmkKOokKqQvKfTtFxXkVQmjJMqrRzvVZyYqQYHhycCPCcqQpHhwWiXxIfFLOnNWwFfoYydtTDAalkLlyYJjSVvsWIiBbcCRrVEeOelLEovtYyTMsjSNnsJSfFhyYDdBbHyYoOIiTtbBeEmGgwCAaJYoOycCrRjuUeEcRuUreEMMmSsmLiIzZlQqxzZXynNYOoDkKdQqDNnmMzluULZwWeSsEPpryYnNEXxeUuZqQKkMmfFEnNezirRHhiCnNcMmVvVvIITmMvSsVtgGHzZAaWTtwAahnwWNDdMUXxuiImRmMNnQtHhTFjAjJaJfqfFDdciICuUbxUuvVXtToOoOQyYqBKkHswrRZzgGWXxRrAHhOSsNGgnoaIiSGkKWYySvYyBYybVXxUFfuswYyUugBtBbTbdRrVAalLvDjJYygGhZzpPt"; | |
| while(!isClean(s)){ | |
| s = clean(s); | |
| } | |
| System.out.println(s.length()); | |
| } | |
| /** | |
| * Removes characters that opposite parity | |
| * @param s String to clean | |
| * @return the clean string, removes the first sequence of characters that will react | |
| */ | |
| public static String clean(String s){ | |
| char curr, next; | |
| int i; | |
| StringBuilder sb = new StringBuilder(); | |
| for(i = 0; i < s.length() - 1; i++){ | |
| if(s.charAt(i) != '\n' || s.charAt(i) != ' '){ | |
| curr = s.charAt(i); | |
| next = s.charAt(i + 1); | |
| //System.out.println(curr + " " + next + " " + willReact(curr, next)); | |
| if(willReact(curr, next)){ | |
| break; | |
| } | |
| else{ | |
| sb.append(s.charAt(i)); | |
| } | |
| } | |
| } | |
| if(i != s.length() - 1){ | |
| i+=2; | |
| for(int j = i; j <= s.length() - 1; j++){ | |
| sb.append(s.charAt(j)); | |
| } | |
| //System.out.print(sb.toString() + " " +isClean(sb.toString())); | |
| } | |
| return sb.toString(); | |
| } | |
| /** | |
| * Checks to characters to see if they are in the form of Aa or aA. | |
| * @param curr the first char to check | |
| * @param next the second char to check | |
| * @return whether the characters will react or not | |
| */ | |
| public static boolean willReact(char curr, char next){ | |
| return Character.toUpperCase(curr) == next || Character.toUpperCase(next) == curr; //aA || Aa | |
| } | |
| /** | |
| * Checks if no adjancent characters have opposite parity. i.e (Aa) (Aa) | |
| * @param s | |
| * @return true if the string is clean (no adjacent characters of opposite parity), false if not | |
| */ | |
| public static boolean isClean(String s){ | |
| char curr, next; | |
| for(int i = 0; i < s.length() - 1; i++) { | |
| curr = s.charAt(i); | |
| next = s.charAt(i + 1); | |
| if(willReact(curr, next)){ | |
| return false; | |
| } | |
| } | |
| return true; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment