day_05_1.zig (54401B)
1 const std = @import("std"); 2 const debug = std.debug; 3 const fmt = std.fmt; 4 const mem = std.mem; 5 6 const ascii_case_offset: i32 = 'a' - 'A'; 7 const destroyed_signifier: u8 = '*'; 8 9 pub fn main() !void { 10 var allocator = &std.heap.DirectAllocator.init().allocator; 11 var result = try react(allocator, input_polymer); 12 debug.assert(result.len == 9704); 13 debug.warn("05-1 {}\n", result.len); 14 } 15 16 fn react(allocator: *mem.Allocator, polymer: []const u8) ![]const u8 { 17 var p = try allocator.alloc(u8, polymer.len); 18 mem.copy(u8, p, polymer); 19 20 var last_len: usize = p.len + 1; 21 while (p.len < last_len) { 22 //debug.warn("{}\n", p); 23 last_len = p.len; 24 for (p) |*unit, i| { 25 if (i + 1 < p.len) { 26 var next_unit = p[i + 1]; 27 if (@intCast(i32, unit.*) - @intCast(i32, next_unit) == ascii_case_offset or 28 @intCast(i32, unit.*) - @intCast(i32, next_unit) == -ascii_case_offset) { 29 unit.* = destroyed_signifier; 30 p[i + 1] = destroyed_signifier; 31 p = try shrink(allocator, p); 32 break; 33 } 34 } 35 } 36 if (p.len == 0) { 37 return p; 38 } 39 } 40 return p; 41 } 42 43 fn shrink(allocator: *mem.Allocator, reacted_polymer: []const u8) ![]u8 { 44 //debug.warn("{}\n", reacted_polymer); 45 var unit_count: usize = 0; 46 for (reacted_polymer) |unit| { 47 if (unit != destroyed_signifier) { 48 unit_count += 1; 49 } 50 } 51 52 if (unit_count == 0) { 53 return ""; 54 } 55 56 var product = try allocator.alloc(u8, unit_count); 57 var product_i: usize = 0; 58 for (reacted_polymer) |unit| { 59 debug.assert(product_i < product.len); 60 if (unit != destroyed_signifier) { 61 product[product_i] = unit; 62 product_i += 1; 63 } 64 } 65 return product; 66 } 67 68 test "react" { 69 var allocator = &std.heap.DirectAllocator.init().allocator; 70 debug.assert(mem.eql(u8, "", try react(allocator, "aA"))); 71 debug.assert(mem.eql(u8, "", try react(allocator, "abBA"))); 72 debug.assert(mem.eql(u8, "abAB", try react(allocator, "abAB"))); 73 debug.assert(mem.eql(u8, "aabAAB", try react(allocator, "aabAAB"))); 74 debug.assert(mem.eql(u8, "dabCBAcaDA", try react(allocator, "dabAcCaCBAcCcaDA"))); 75 debug.assert(mem.eql(u8, "dabCBAcaD", try react(allocator, "dabAcCaCBAcCcaD"))); 76 } 77 78 pub fn join_strings(allocator: *mem.Allocator, string1: []const u8, string2: []const u8) ![]u8 { 79 var new_len: usize = string1.len + string2.len; 80 const buf = try allocator.alloc(u8, new_len); 81 errdefer allocator.free(buf); 82 83 var buf_index: usize = 0; 84 mem.copy(u8, buf[buf_index..], string1); 85 buf_index += string1.len; 86 mem.copy(u8, buf[buf_index..], string2); 87 88 return buf; 89 } 90 91 // Oww my stack!!! 92 fn react_recursive(allocator: *mem.Allocator, polymer: []const u8) []const u8 { 93 //debug.warn("{}\n", polymer); 94 for (polymer) |unit, i| { 95 if (i + 1 < polymer.len) { 96 var next_unit = polymer[i + 1]; 97 //debug.warn("{c}>>{c}\n", unit, next_unit); 98 if (@intCast(i32, unit) - @intCast(i32, next_unit) == ascii_case_offset or @intCast(i32, unit) - @intCast(i32, next_unit) == -ascii_case_offset) { 99 //debug.warn("{c} *** {c}\n", unit, next_unit); 100 var result_polymer = join_strings(allocator, polymer[0..i], polymer[i + 2..]) catch unreachable; 101 //defer allocator.free(result_polymer); 102 var new_stack = allocator.alloc(u8, 100000) catch unreachable; 103 defer allocator.free(new_stack); 104 return @newStackCall(new_stack, react_recursive, allocator, result_polymer); 105 } 106 } 107 } 108 return polymer; 109 } 110 111 test "react recursive" { 112 var allocator = &std.heap.DirectAllocator.init().allocator; 113 debug.assert(mem.eql(u8, "", react_recursive(allocator, "aA"))); 114 debug.assert(mem.eql(u8, "", react_recursive(allocator, "abBA"))); 115 debug.assert(mem.eql(u8, "abAB", react_recursive(allocator, "abAB"))); 116 debug.assert(mem.eql(u8, "aabAAB", react_recursive(allocator, "aabAAB"))); 117 debug.assert(mem.eql(u8, "dabCBAcaDA", react_recursive(allocator, "dabAcCaCBAcCcaDA"))); 118 debug.assert(mem.eql(u8, "dabCBAcaD", react_recursive(allocator, "dabAcCaCBAcCcaD"))); 119 } 120 121 const input_polymer = "OeIiESsoMRtTjbBJYyTtrjJmeEPNliILnzEeZcCzYyZdevVEgGikKIfreEEeRkKFDpKkALlLlaRruUsJjKiIkmMIiGguEeKkdDaDduUXxAPpRrUJjLlNEecCntZzrRfHhFXxdiISslLoeEHhTtxXRrSsOxvVXDxeqQifFxXIEFfcCXOobvVqQdDiIiIGWwSsgZzBxvVNDdwWnYyzZPfFoMgXxUuGOrRoAameEotTeyYEHhHlLhaAOnNeEmMlLJjmMGgoOfFMlLmOGgGHhUugsiIwlLpjJPWMycCgGYozZOmzgIiQJpPjqGZrRuUhHIidEgGeCcwWDXmMMmWwRHTtzZhrGgxkxXKkwWKuUAOoaEvVyWwaGgkVvfFKmMAxXGStbBTsKkSwkEeKWsKksSpkKPfFbOoBQhHqQJjqwTtsSWBmMBKkbbDdEeKjJZzYeEyMOoSsmkgGcNnCyGgeEYTtqQyQqkKQIiqBbYfheEHkeHhbBNnWwEuUVvCcAavViItTKSssyYSFfxFfCiIlqqQQJjLdQxXoOiIZzqzeGgEZhuUjJadDtTAWwHDYyFmMfayYJjJjPpiIArmMRvVsrRSjQPpqzrRDdZJcYyhHELleQMmfFVdhHaAmMDqGgQhHpPPppPvlLKkMmbBZmMCXxciIzosSOCcSsWKkwAwWaDiIMOomdoYyLlnNmMOHhaDdcQqCSsTbBtAqeSsdDulLCcgZzGqQUVyYvsTtNnNIinwSsWqQgGiUudFTtfDjWwJfFeqQkZzHhKEIqjJAaQSUyVwpBbDdvVkKPRGgQsSuUqrHhWrRIidDdWwnBbQRrqYiIzZMmpPtFfjJmMLlTtSZzsTnNyZeEHhgGUuzudDsIiSpPUWwEKkQquvVeqKkQKkTtEUdDeEUlLubBQqLllljJgGsSsSUugGfpPFLLjWzZZFfzDVvdaAnNDdnNWwwYyJWyYfFrqQRwWHhiISsSsjdDJhHjxXxXFjODdjJoJfJjTtYMmyJhHotTOPQbBpPqqQpjaKkEeAvDdVljJLbfFBQoOqJWwwTtXaAxrIiUuXFJjfzZmIiXZPpzxPlLpUudfFDZfFZzqQPpxXCIicKkUNnuzZMYyNnBbmQRrqDdPptTzFfTaAkSsVMSsCcmvKxXvVtzVvmsSbBMVvfTeEFfcyYEeHhTtCgRFfrsSGtXxscCSjJaAFLFflOoBRHmMhrbMmxrxXTtRrRULmMlPpNnujeEOnruURNrRQqojJpAkKauUvVcCfyYDdyYFNnPIiBbjJPpVfFisKjsSJoOOokWwSFfhlLHDjJWwyYPpMoObBmoVvOsMmSjJyYddDIbBvyYkKGSsjJagGrRAgHhYyszJjZSaAIiJqpppPZzuUPCcyEAaeJjFfiIYSIisnNSNMmnOoiIEjJMmeIisOixXIWwRmMrfFxXpMmzZPcGgHhClYyLTtmMyYdLoxXOGgDdeECAlLKOokKkaNnAaTtcuUCLdDlZrRzclBbDcaTtMmcIiCAtTiIOoOoDpgGPEedprCcRPATtRoOHhraCcIQqmLCclMUuwZzEeWlLcPphHesSeERrEJaAjtLvVlToCcOCihRrHCcwyYWjJCcCVvbBDdBjJTtoSJjBbjJHhqQBDYydYyTtNnNkKpIWwhHiHhPieERrGgIPpuUbBnZzFLlcafFxkKXaAhkKaAHxqQXUuACTteEUufpPRUuZzrplVKkGgLrcCRCclLzZtTlZzisSfRrqQvVFIbBZzYyIiOoQTJjVvtPpuUAaqOoPpuPpMGgmiRrIUPpLcCjJVvlxXFfdDAaBbvfFiIoOJoOKkjZZzWwfPpFUuzwWiUuIRzZrjsDdSXxYAaWwyJJkKjYBbbBiIyrREPmSsMpPpenTtNzZnnFflDdjJLlTtkuQqUsqQSKzZknNbBeEKXMAwWamMdDmWwiuUqQEfBxOosShHsSkKxXXFdDdDFfZzfFFfhHTtSoOfFslLGeEYrDdRyvVXxgfLlyYwcEeIiCWMZzZzZzLlpPCcbZzEeBSXxsdDMsSdDmBhHhHbAbbBGgPIipBaXxkqtTQbBlOoLdDKcGgCJjRrxXRhcCHQWwakKbVvBbBAenNEJMtTzZQqmjLkKJjsSYyjJGguIiUayYwnNlLNsezZESNnaAmjhHoOLlJVvpdLzZqPpmMMnNmZzvEeaAVQWwfFcCNnjLQqlCcJNnbLHhluULlyBKGgkbWiIzXxFfQquUZCcDdOPpoEewqQKkxJjKSJjmMVrRjJvsqDwWdQeEkUuQXxviIqiIGoODdgdDFfPpXTtwWwWxjJsZzSkKHhlRrLjJtrRHSNoOnsiuUIqQhNRrnqQjJYCRrNSsnAaGdDgkTLlKnNnNxjJXyYiIaAkYYrRyEAamIiMwWeKkqQIvgGViXqFfZzQDdcTWPpwYytiICPpXEexhHYyWwcKkCGRrgPpHhfCdDsSJjIifFcFyUCTtcrRgjPpJjTtJUuGiYycCGQqitTIeEnNguUcChHMmoylGgJjLEdDHheBjJbuUlLNnubrFfRjJBjJUbkFqgGQfKBOoJjMmMkKcCmSdDWweEhHstTYxXjJuhHSyYsMiIcCNntKkTzHhWwZvjJFfVzCcgGZEeLUuaNnAqmtTgGpPpBbPXbBfFukGFfgTtxXNIgGinDdmMmMRrKDCcfFlLJvVjCcdtkKTnNUHhuDcCpPqQHkKFfhHhpPdgGkKuoJVOoMmFfXxvbzZBKkduUDjxXjJNnOtxVvBbkKGsnggGMmtTCceEBbGTQqtNFfXxKkStbBNprUvfFPpDdVVvutTDzVvFfLlvCcVZmMnNYySsoOGAagsSGkxXKgmMcCvVqQBbMmdcMmNnMmDNnRrRrHhAaIzZiWwdQRrpkiIKNnNnPnNuUYyqCpsCMmcIdUAzZazJjZuDUuJjZzNntTJjiPpSPbchHLxXVvVvBbEelCBOoRPTkKGDdgsrRSgJjbBrtTzmMIiZyYhHKnNkdeEDRGtTIvwWkKVuUZfPpFJjwWMoODVOoWwvZbnNiIBgGgGIidMByYlLUugGCfFgmMGcRlLKkrsuUlrRLSqskNPpULluhaAHnENnvcCEqQxXwWjlLJevTtVxDdHaLlWwADbBEedxXhXyyYLlYiINnBbGgBbkKVbBqFVvfQtTQXxCcdDwWqXmMxTtaAMzZoOufFUmAUEebOotBbTtlLsSTGYygaAsMmSnNBdDtTbBrnLlNRQqrIiQqMCcmRPpnNYbBylLIishTXxtGCsScgsSZzHstyYTSlLSoOzZAHhaiIAafFdDsjJSplLoOboOBdVOYyfdrRDFoUujJSMQqmsjJHQGgjJqnNQqvVwRCpPyYcNnDgGYydbvVxtoMMmQqZzKjJOohHkmnuUNpfFPuUnEeNvVUKfFkGwWgsLlSAeEauUucCOhlrRLHqQgGuUDoODdxmLlMwWXxXdjJFFfVvexXxXMmfFhDdBbSsBvVYyrRXhvVHdDxNaABmMbsSnKkWwnaANbkKHsuUSsShHEPpwnNezZlLlLEaATteyYYyQgGqhHVgGvBbToOyYsStHhEeTOotEyrRhHoOcQgGqYMmymqQMmIiMUMVJjjJAavBbeEoOtTxWwuhoOiInNyoOsiYRrxXyDnNqQGHUuhgdfIiaArRYyvzxoOXQCUucUHhuqOGgoHKkvtTVhoOivTtwWKgLlGkFfVXrRtTjweqQEWaAKkuUtTJEepyBbcCYoOwjJzPpZWwWdEeDgmMGFuUfatTmMWtTuNnUXxEeJjzqdhaALRrlbWwrsSgGfFRfvqsSxXtSKkHhRUurrofFORkKVqQvBAavcCbvwWGmiwWIZzAaMGkKleEdMSsmDLAdDasYQqyIeEixXBbxsSIitTXZzRrSorRMTtmqvhHBbOyDdtTqQYcCofiIFgPjEJuUjevVdNncCDJpXxDVrRvdJjyYJCsSnNcjqQMnnNRrSErResSlLtOoToOhHEelLqucCyYVvUHhvTCcaAnNLJjloODdLaARyYkZzRreNnEZuWwlTtPpLfZzFUiNnfFWwKYyqrRgGxXssNnSSfFUubiIBZzJKkXxjFhHfTaAsSFzPOozZUuvFcCfmfDdJjXBiIbHhBbcifFICxFfkKgGUOVCcvEeoSsbBbBHaAjaAHTtQqhqhHoOCcoOQiIeUBbzZHpPhHPpcCZziPpzZvVIpPZEezFeEfMlnNYyeOoLlETGgtLmZgGzfqQPpFjJjJsStuUTYNQqnybDdJZzjJjBhHzZkPpPRryeEqQYGgNMiImngGGcCNnqQgnNCcOyAZBbzvVLlTtaNaAWwGfFgGggGLlZzQqZzyYtTKZagGYyAzkvVnnNEewWOoTdJjovVcCQqYyOejJRrzZsEeSpsKkSytTaAYTzZtKJjxXzZAamMDvVdkPjJEIibBNtzZTEegGCaAcBbAGgGgaBuUGgMNiIcQqCiozZDuUvVuUMmeAaEBbWweEUEeMmMjJmTtoKkoOOoOzmMgGCJwgGLlSsQqlLfFTtdjOoJsSHdSSrRsrRtkcCrTaAgGtRHhEkKeKbhcCZzKkkXeExNumMULugGUNdDnuWwbkKaABDdeIiEvVpAanNjfFJtlBPpnNYynNbLbeETtnaRFfkKzZNnrFfTtAGgsSRXjJfFmMDDddxSiIaAsSCcstXxJeEjnNGgGgMmTRiIraoOsSdDHdDhJLljAuCcmzZrcCAalLPqQVveEfbBnNDFfdFvpPVpWbBwOoUusBbTtcUuCSfVoOGgvoOTFnNrRfaABAcCXxBbOzZyxXYocCaxgGDdiIMmXbKkEkKOoeCchOoHMQqmBEeuQvVqmLHWwOtToWtkZzBdDbVSLlshHhHWwsSvjGgwWwxHlLHhUPpuYVvrdDRySsVQqatTAvUubxXBuUfUVvuFfrhHMmpdDPRFeqMGgcChHmoOwWpPYyrRUucCDdhpPHJsSLlzZStTsnNHhpKhAahHHndrReuUEDgGwWfKnsSNzZkGBbghGgHhHaqQzZAgGEeSsCcCUuTxWwcCgGUuXTFlFfLfbBdDbSsBCcZRrzXEeSGgTtsVgmDzZdMOodYyMmnNuUZzeloOmMdHhtIiTDgqQcCcgGsSzeEZAaCCcJjhHSXxEKkenNdgGbPHhpBDjJKkvwWHhVsRarRAYZfZzDdFToOtacCHlLlLWLlwBGrvVcCXxRudDBHhnRNvIiVBvBbdDHxXUufFhTtVXxrRfNPWwpKknnKkNWwFQRrEeqqNqQLlzZBUdDgYsSSczZXxCsdDraAQTtquURtTBNFDsxXNnSRrwWlOoxXtBJqQMmjJjsSbeEUlMmzZQdDqsSuXkKEexiIGgUtTkKtSwCRFfVvrOocZzoCSsclLrRWwFfOSsDdvVZpLlhVvHUujWXxwlLwWRrpPEeUujJqphHPTtwWPpAUMmKkvVzZWwWyYFydDYBxXeEbfwiIRrKkTtOoiSsWHtTGNngsiQqvVIShLxXjJoOQKkCbBckLlkSssBbSKsSqaIimpPMiIqTtQALlKCcCcCJMRgbBGxXUiIursrRdDGgTthUSsuoOjMNnJmMjHkKZzhnNqQmJeEXTlLtxJjZHhJjTtksmCcyYMCcYySnNSsQTISevVvVnNZmeyoIiOYLOolSPgGpsqQEJkKjopPOWYyJjwkQqKtaAmMTJpPjeQqMmNnLkwYyMmLlpPqQWKlJjbBOLlfFHocCKkLlfFpbXvVfTpSsPUuUumMuUGAagtFvmMZzVdDEeYklLKtTRrsUuSgkzFFfKkfzPFfEeIiplFUuIcCijJLmMZzsSlvdDoOVFMFsSLSsFSRrsfvgGVlfmTtMSsFfBLlbtTtTqaAQfDdBbaArRYXxnDdFfOaAoqQnVvEOoeGgztEdDeFfTJQqzZRKHhbOMDdnxXNpPCqQjJnNqQczZzIcCuAaGDQfFqOEzZeLXJVUuvvlLVaAzNnZLlYYgPpGdDnBKkxkbBKrRCcBXxvVbFDdhXxyYDdHrupPURfIUkKudrQqwWrpuUQqaAPWwRRybBYDyYkKiExgGcCxXPoqQWpPwvVWwPpCuUckKTDdWwPptRPpiCcWwlLRrOoTtGaAZfFhmgiqLlQfFIUSlLdCcDsuuUGhHyYVfFjJmMgGrRIurRiNnIbBkKPpPEerIiAaiIjJFfCcKCcdDgGkaJjAIilLKkFfGcCSsZjmhHMoOJzoKkaAOgFKVvkBqstTSQnNXuwWEUuetTYFfyYyqQqQTtarmMRkgGKmxPjUuRrRrrRqbNnmtTKkMIkKVhHvsSNnTtipPuUUuJjKkEeGGrRZokKOUulLQfFqQqzsSxqQBLlbqQPpXHWmMwxXXxcClLLlWEeEewbHkKhBuhdOoVvpPDjelLRrEJHRRNHhnfFrwHhOobBWZifuUpAaBhHWwbVvPpvVwWvmaRrAuGgUeEWnNMwWebBEklFfUsqQkKlLGETtoOeyYRnNnNBbBhPWDdwcAayYCczZCbmMLlCjJcPHyaArYrjJRmMyPplpPlXzMIimOosSOlLoFfzZrfiIFucCUdDuUHfutTUkYWYwWmMyIinxXNrmbBdKkHTtjJhUuDtVNrRHMOoeEKkaJjAFfhsQveEViIqqiIwVvJjfFPrSyYxaAXlTtLLFfwWOoMmZzDdnMmOoNHZzhllUuPptzZpPWovSsVVjsSJrAjJmMmMfFaoYbaAnkKFCcfNGkaAKiDdIQYjzZzfFfFZJvVxHhjJXZzYyGgNnOIioRrAaWwVRrxXYyiDdDLyYwxYvVymGHAahyYtXxKkTUuuZzZzEcCLlbBedlLpPDMWwrRmtTleElLXxcNHhoOdDUunCuwWULrhHRBaAUsdDSjlLRrDdmlLMmfEeFqoOHhUtnNIiLlTANnwWaZbBzOoQzZqdoODwiIWQqXJAaKkEeFfNYynonNOtTvVAHLlhanNAazZdbBLbBlNnDUeEaAaWwnNAuUuaqGgNzXbBLlxJvViIoRiaANnxaAeEXInNlmMBUubeEWwGpPgnNnEqQeEeGlLEGpPZziIjaAIidbJjXxweEFeEDELUWZEHhNnuPpUeZGBbgWmMmdDDdNiInneEPpNpPDdbSeEsBEeWwKkzMUTgGiIckKCOotCbBJjKkcjLvVloOkKTzZqwbBlLWQzZZztyYYkFgGqsSQysSlLYTpKWwOmdvVvQeEXxiIqwWyYtTSbBsJjjzZsuUUuSiISTRrpPmMyOjJOoHNnDdUdmuUMOoDBsVZbBznNvyhHLleEYvVggGImMBUudPcCaAnqQCcngGCJjJjTfFdDtQqlkBbKOotfvOoXxKbBbYCcyBHDmatMmDdhGgYDdljJLfhHFyDKpPkQquULlcrRCdLCcHBbhmMwGMmgWQqYVvyeiIiIEcCbBGgCUulBmMbZOodOOoaAoDwmIiMWzNnJCcskKSzZJgGYycyhtbubdDBSNuzZSspVvPUKRlLRrIRrFNnfrfaAfcyYCFkKmSHHOnqQNgGocMmWtrVvcCyzZdWAapHhPxXDdwxtnNTSsRraLliuUTFmLlDdMolLhnNqQHOASsaUucCkNnfsSUNIiIimMfVvFTtHxKkqQXauUZzjoCfFcOOoRWwIUuirRjayYAVvjCcvaAjPpJLlMmHwWzZNnpQpPuBboOiXThHcCHOYpVvPCuUcBbPpsgFfGScfFCeRnOoNLvNnSFfEcCiIRzZwoOzZYAyklHhQvVqTtscCSZzPpLXYyowWOgcCQqeEOSwIfFHhmAaLHtThlAajfnNfFpgGnNwWQqSsSCcgeBbEyGQqVfFiIiQJjuGgUqTEetHLlAaBNJjCgJjGiIiVvCpPkKcOoYyXzZxhdDwWmMdCcDIwWivVHVIKkxbBXAaiBbuULlbBzYyIiQqsbBjzZrXUuUEVaAttQqmMIGPpgFfivVnNnNUVkKJjvPnsSNttTwZzCfFcVJVvjKkvRrgGWgGYTtvnHhNcCVsbJjBlLTvVQNUusSrRnFfQqYyYPpdDTxXthIiFfYygEerRGSsEeydDABbUVvvJEejrRwWaSsbyYSsBFffFhAgoCcOQvVZzcCDdqKRTtnfwvVIakKAiSxbBVvBbrqQUHhuoYyiIwWuUUifFdGglLsSndDjRrJGghDdHMIPpdDinNWaAwQwuGgCMWrRwaeEOktLlTKxRzxXZrXwkNnfYqQyFhHoOAaZfFZzzZQqCcPhUlLWwjJnBTtbLMmfFRrleEXBbxNniwWoOaABbdqCcQyYXxDRrFfFfDsSdTjHhJtWFfSslxXLKkzsSQqnUAaFfvWSedDdmMAAUuaSPpOiIOoxAaPpPpKGEeCcglwWYyovMBbhHsLlSmCeUjJjtaxXATjJdXZzxauUcDEeLgGlLIBQqbfNnvVdBDdbqQsSyKkZdltDdfFpPEZGSMJjsSHhmLlTtPqQCcpqQEeEeqoNdTtWSRrpPsKkqjJQCcniGimdDMlgGsSrNMoweEWwWJCcTtFfArjIiJRaWwiJjrRoOweyTtYpPryYRNpPnEEewWAdDhHoeDGgEaUWgGwqTtdCcEeDMiIiIQiTGgsSWwtbmkFfFfKQVvqKkMmMmnNuUMQQNrgrRGRIuUinvoOVxXFfyYGgqqQuUqlzPpGguXxvVpPYGvPpVPxhHQqQqXkKtThMaAmTPptOoEAaSbBsGgBTEZrRSDmHeEaAIiNFOZzojJvpIiXoAdVvDMmAaZgGqQmMzLrMnXdPpbCcZzeEBbAaiVvLlWvjqQqmqEePpwVvKDjJdwVHujJTWwmSsMdmMWwFsSgwWGfDNnzZCcmMTzZtCNnNeEovVYzzXxkNnKeSAaZzBbwjJOokKKvSinNInNgGkKJxXmcVrdiIAYynUgGuLlxBaAfFgGbXMrCIiXxqbBQNnexXElgGLvMzZgGHhmVbBmtbWwBTOomvVtIiqQhHUQvAhHnRrhHQFxiSexXESsoZNnvVzbBbBIiiIOvVsoOijHNMoBbOTLmngGgGuUDdSsNMYyKXxXZzxHhyMmYkzZjJGgrfPpGVvkDdxXExXeZObkKqejJECKkvVcOowWZzApPfFNniMbBGQqWjJVvVpPvgGgnNflLkLlcOyYyZzRrLUDNnJjKkdJdGgbMmBbnNBDrSsKEYLlxXyxXeCczZCcCWwiIcGnSDuUdsOoJjRJjzZDnNdXxQUulRrRUCUucPsgGSGuHhYyaRrAzZJjrxXRUMmRrBfFgASMmHuUhsSseElLgGXxsWwiIPpafFUaAuqlbyYBLYyJjqQaApdpPaLUuleEKkHxXHMmhOohAdnNDvLlVJPHbEejJidNndDyYDCcXxvGgVFuQqLlUVvfLBBbhfFHbCWwgBbEgGeIMVbBvCZzmRlLXOooOxUuIiXDlLiIKuUJLTrDTtdRtYoOyUuiIljkOUqQmMeEUuyYzDdZnNZFZzYLlOVvgWwGYyosSMeEXDdxtTbAZDMmdSZzbxXBoNJdLlsWwSuUkKiIFZMiMmImXMmxzfrRDVhHbBZMJAaEJQRrSYysAawWyYgtTGeEGnneEjJjTtNhOWwVvAopPbBDdwWqIKWtyYTwfLlFkiVvQFHhfDdMLqWwhuVvUXWwxHQqlLMmFfQTnNreEBbYwWbndVvDuUNLlZxXaAzZzBwWyDdFKuUkfMmrRDRreElrRxLStRqlEeETiIFfXTrREkDBKkmMpQjJAatTFfboOBWcfFUubBFwWfbhoOHdqQDfFZzzZIicAaKkBYytTkKrfGIigSbtTfNnwLPprYZzoOykqTdDtbBZCeEqOoQIiUnFfWwNuJjijFApPapqQKkPIitTqTBbUaAHhXkKxsSVvGgKvVUMnlESKIdDlZZzuUzKxXOoZBloRjRkMQNnqyYHhfFAGgbBBbUlfFKkLNvVPpTlLkKEOrJjKkuUrRRJjoZzYynIiUudAaIidiIzZzZGqQgVvDRrgGEVveBbLaAlIiDYygBCCccbyYJjmMaAGZzyYBbPBsSbCctTplMmzoOZgGLJjLgdDdfFyuUkKTtXxdoONnqQzZJDdHkrtTDdxLlXWwbEkaKkAOoQGgBqnNGghHcCQNnzuqYyoODQqPJqQjspyYFfkKaAxXtjJWPpwFfzZYyTJPpaAjHoeEOhiIpPWkNUVvuftwLFflSswwZzdDWyYWQWcCCcUuxXFDfFdfSsFounoOiGLzZxXlDdKAaBGhJjHgVMDEeyfbQqBwNnqMcRrCmAWFyYdDXQqYRryxAafrRnNvYyaAVpPWwtTZzJjwLlGgWcwIiWbBEeDEeuUzXYtTyxzCcbBFfVAaQqQBMmDdbDuUGAlLagdrpnNnNEVvUueyYpPGglgqQGVzZdwFfWOoFLDWwdIivAafFhCdEeDrRlLEGgUnNVvkoOkKKifFIAhCJPTtrRWwpEClLBfFbMmkKcyUXHhbALlaXxDdWwlpPHhLBnxXdDUuNnnNuYyuaAUXLlZzxBFfbUdDFyYuUfWwBbaANtTtsLlrthwWcCaAwWHTDdaAFQbBfFUuzigeEGLtRrbBTFfOoqQJuUMmRrAaTtvVFgGTtvcVvCWwVfypPUucCrrRouUCDGgdugGUfZqQzCdRraADqLxMMmmGgPZzGUuLldwWDgmMNnvVFtMmgRrVTtxIiXpdlLwVEzFfoNzZauUuUAwWpPonNOCuUfmFfNqcCxtTXOfXxBbKWwWsSwxgdDTplLPBbnNJjyYQqUHOoZzXOoxyTnOxTtuUXRFfrBPpEexzuQOntTbBNorRqbxXQUuqyYDLiQZVvzYyBblLVWwZzOSJjzZHSFfWgGwRrlsXbCVvWOgIiGQqOooOoJHhAajeTtiIyzCcZpPUPpuYEIilLwZzEwXKkmYyFzZftQqTyYxXCcMVvLgpPsSGleExWxXeawWwnNLleNnEWsSSpCzZsSAUuqQuUwWzGgoOQqhHZBNWwutTUnuUTtWwzZfEuUlMmjJLefplLeEPYOoyNRrYHhynwdDQqWIRrpPQqtjlSsGkKkrXxRKpdqwWQEycmoOMaRrAaAFRqnNQzZZzrREeTtrgAaHaOMkgpPGKmPppkOoKtTWwwooUuOowWSAwWxAaXaHhxUuXslIiAaaSsAvzZVkEOTtrRoUwmMAaYYyyfsSkKFelLEmsSzZzsrLkryeyYdTGgreEACGlLMNWwoUuIAaIipPgcOoCGEehnNeNEeMmnsSOosSbrRfYyqQFbBFmKkgGHzZhEecSYmMNnNYzdxQLCtTclvVZcCxXvHhwWHiImYeEyCRrnAOoQWqQwsSXOkqQsSiTtSssSPpXzpPBxXbIfZWjWSuUxYWwahHMmJRrjAavRrVAxXyHhXxBoOPpLBAJyOceENCcTxNnhHzZJxuLlwIiOoWQqhHUhmMXaRyYXkKtFRrcCyYfvViImUWwXnDdXxNdFFbBVvpueEdsSDVKknGZuULnNeoOhHeEMJjJcCWUusPsbBWXxrRQvVWwrPWkhHKTIiNntwoODNZzndjJyYsYYCckIiKyyYyhZzDdgNncCbxyYTtXRrBGHbBxXzZeFfmXxYygGOoMFfCeEOorYyfFRgGFfcErjEwWeKkzLOfFNuUnouUEpuQNHhnqUcCVvYhHykKGgnNnpwYyLIiSpPseEqQlHhxOonZTtsSzfbBeEuhHTNwWnuUxjKklEebBWwyYoSsteEOoTSsspPSRrNoTVvVFRSsrsSlhtTDetSsWwTbIyYiLlNfFKkRrgGvwWWQQTtqdOAEclBbLCepXxuUqQdDyYPAaaSzQqZUuUyVvXxfFBBbwDdoxqQXNnHfWwtrReEfFZzKUZwfqgwWuUaEAageEGkKirFfRHAapwXxabBAtXGgZNnnBbOrUNnIPpqyYKGgaAGZzzAaxqEezYBbykSZpPvVoOnNjByYbJAaGjJRrVbOoBdDobBmMOwMRrfFmYmDdqQnJjxXNyCcKkXsSxYWjJHhqiIQPbwWbBtTrkKRxXbBYyhrpPRfFOobBtTTttJjxXTWwOoKkUaYMrEeRQYyGgqEkKyzZewWEyjlmMEeugGwWiILlotDdTWwZDdHOXPpFINnilLTqQMmtTnNvVPpAmMabBlLxzZtQdDqQonYyNDbBdtTIWUhvADdyZzYaAUuQqHhQEIKMtThHiImkivfFgoIiOPiImMtfFQqTgEyBZEsSIaAilxBbOKpoOcCaMkWwYzZeEyobjUeEuGgGbzpPZzZafFSsFIifctEcCLlCEeFfUuGgTtpPcxXefFTbCOzZfFoOMdDkKCcmddKkDDVoOgGeEWdDwRrImwPpJjkgSskKGFftTKDdWOPuYPpVvyxUuptkKNniIuUkLCcOxJjXohRiQqImMgGLTtXUezZEfFlLpPHyZpvZCcxXzVPKkDdzvvmcCubEfwWFcSsAuzDPpdZLFfUkKpkDdHhWkKLlwKkKSsZzfFXrRpPiIxmnNuUXxGgMvXxOoUuSsjEwWeeLWwGLgGlgjJykKYShzZxzlLBbpsSebMmMkKrRTlVySsYIifLlEemMWKkIiBbwfFhHtHCzzESsKOozIiZBbrDdeeZzrRLKAlLaQqpPCcrRkCmSsqXxQvoOsHhZiIibBAaFfUuKCQsxOnZZYZIiigfFxXbBbBtrRTGEZSszIsUTtuSLbYQqXCcxPpcDeEmAalULluRrLqrRQfJjxYvVvVZzeEglLZSszGqaJgNnGlttTdDDptTHhAabhaRrreEFfbLlBwjdDWwCxXKPpkckKmMuSxSrVBWwbmMYcCyLlXMkKWwoOmuxwkKWXoAagGyfFPprRgyYCPSsbEaFCiddDqAPIFfKJUujJOoigiIGgkvVKBcJsZRIiSsmxVPpvLeEltsSSJriIzZqEkwWcZzFfvVzpPQqpPMmZIiImMVHRrgcCTySpPsYAZzaaLlDdAPIipdDpPkIiKCVvNnwWrXozkcXxClLMUudaADDdZznNXxzZzgGHPHEeTlhUukKpPvpgCyYyYcUXxFfrRItTPICOocbbBBJrsSUukjJkKKuUaAoHhrnNaAaArqcLwNnEpPeoOptxPpUuxZJjvtfKqQAfFdnZzNgGRSsNnRMmrrFfdxXDnwWhHQqMmKhHziIZuLlOobBBlydOvVPpJjAaIiUUujUdIQheFsSPkKkPJQiLlIiInNgVvGeLlyIilLCcvjJXxFwWrfFHDdZAEeROEEkKcCeglIXxsQqSiXxLAmMaVSsAHhUzZqebhVvHGOxvaAQqqlLearRAPvOohHbBxXKraARktuvVUbBgGxRrXdDrdGmMwntTAaJjLlNCcdFfBRbfUdQqNzrazZXxwKkTtfzZtTCaxzpPZcCXvVJSsbaXeHhrMmrRXxSVVvdDGgkjTetBQoOOLjJwMmeECcheksnNDdgOokpPsSAaDvVFshksGQqupuUPbBzZEegZzBCRrclzEIiyAoOaYyeEjDdgxXdnSpPMcCmdDZzOosKOdyCVUfFdDuWxXUujJdDwXwWJwhHWKsSkiDjVGgqQRrzZDdfwWEeDBbbOoIiBAungeEHhXxHhWmMjoQqhvVPxXpUpBsCKonNQqGNngtRnNrWiIwqwWhHXSsRrajdQquhHKDdoWLlkKTtNnLHhfFMLlXhHmQqMrjPqtTpwWKmMLlbpAaAZVvzavgGCVPppBjJfxXyqQsknNgGUPcCOTtTnRrNGgVvnnNCxAaFNfvxHhXezQiWUTPpDhjJHBMzZmMgvVmONndUNnGpyGkeEKCoOcoOkKMJHURrODLlfFdnYyxhHBLgVIKeexdDtTmMyyDdXRKkrxCfqQOEMFiIDLldfKvVxJZzxlLLlwWXCHdDUuhbnNqHhMmQZXxOoCHhcwNnyjJXEexYMUsQqSOyCxKvBPpOYjkKcCmkRrWfsSDfcPKkptdmMfFzZxgtTGXQzsKkeESZnwWMmsSxCcWwtRtTfCcSqQgaAGFfESsUuubBXxDdssQqujnxBLxnNDdLlDVQqvjKkJvOXxowfilwXxWiILPVzWwdNnLUahHojHhOSdFTtxXQDdVJSsjEuOoMjSPShiIHsWwpBbKkfFjJaNnAEJjQIiqyYewrfFRWDNvIRMiIlOohNnMVveVNmMntTQeKmMkZZDdSsodDjtsSuUcatCORINUyuEEeeGRGgvVbSMQHuUhrRUuHzeEZDHhxXvbvVXxJjXxUFfLlVZzvihgQqGfcCTtnXxNLBNQiYCcycaAmOofxlXHeOhHcCExXebBMIvlcCDdLbBGnOYywWqQzDGxCXrRxJYyHhjvhcRGguPwgGWPmMaQqApChoOKpvVAaJAatTuWwZzqCcXxmMGCmMcgnNfFeXPVZzDdokyYAEeaLXIODsSlhdHpLlFRPXsSqDmMHhDZQqzJxXjJxXGxWGKkgLsDdmBbbyYVWzZwAoPpJqQhHRrPhHpolLqbBPzZnCpLlxtTtImMijJSNOopjaDdWgGpuqQBbUhHPwKByTtvPpoowWxlLqQqubzZBvmMtATLRrDHhdeWvVqQbWuUMVvmIZzPVvukLSmdpPDgGsNhVvIyOTJjXxbBtIfFyHhJETpPtTKVvLPRgVvtklLkdDWRlLrXxVSsdiIbBQFtTSmMbBrRQqsSsnNFfjHZSsqQrHhFmMfpPReErxVvXmMgFvZzSgGBHhXxGJjgbxqEeQXIEsSelDfSsfdDFvVmMoOYQqkKqxLlocwWCjCcxMrRmdiDSqQsHXxhYyrkeepynnNnNFfsGEeMmwWHhhFfmPzbbBtTbBHhPppgTEetGlLlLzujljJQTzBTtbnYypRXxpAuGVPQqpzZvojJOYQImMSUmjczXWwnNVYjqEeiISFfulUuiIxYYyyHhlLqQKFoOfHXxvSsjpPjTesShHsjxOqQOowWZztkKuUCifQqaAVvFzOeWwRjJrRFtTlLfecgUpuUPpPuuUxXgGqQeKtTAuqrlowWfLlEAKgGkfFPUulLcCYyNnpasDvVEedUuEZzyYSLlsHKTjVIfFLbHSNZzlwXLckKOSsoAsoOEeGaArWrRhQqvzmMSsZVFKkfHLlEeEetTgNnGVtTaAcCDdGgkPFfpKVIivMmAaoObBwVZzAcTtLlKkuUOoioyYWuUFfZxgGCeEcAgJgGfZzLlFSifNTtRhvcoOYyYHvdDqQGgAwWaokKOoAabAXxoMEGgaTtAeEevTFUehlLcCXVLokiIPpiQGgqyhNnHYIKloksSmMKizKkTUbeAIxpWbxeEXuzZuZzQnRrZzsSTfFCcbBtSscChVvKzAmofHHhhVRKkKkrsSoHhOGMexjJxXSsXxfFfAaRrlWwMmMMEueNVvoBlsehHIikGrRxXmFfMGgCcOHetRrwWcCONJazaAZfFumMUAbdjeeEKaHTtxXhxmMKkzZlpTpUmMuPnjqXeECcfoOVasuCcjMmkaAmfRgGCvqeEtTzZJyYjdqAaVmMvQRXVaAsTtEeibBIssAauAFSWvVGPiMlLZlHhLDrRvVVQiIqHwNPyYUsdfIhHigPpspGNcPXanOomMsSpRrWMmPpFilLIkEQhZiAUslLUVTtvNuJBbuBbqQXWKZEezckXuDdUIiiWdDwIRrkjJCZzoOmndnvdPyYQxiIXZYwWyIYeEzrLlRZZPmMKkpxXJwSAaVDpRvVGgebBjpMmPUuJXxOAWQMnNCOSwvVEAvbBVKoOaAMnLlSsnBFeGNMmvgGIdDiHJjhVVlLdDFGgwdDuUhHJLljoOzLlLmMlqjJQiItTJHNuUUKFnbBnKtuUiRrMNnmwAaWVpPZqQzfBbyYiDdBvnlLNequUgGQZshfpRFUYAHiITXGRrBbgRrNOnyEerRDwllLnSDddDYyaAtEexLlXhqwWVSgjJGMmsvHhuNkKScHEeAafFhOzZHhQqzMuUmbBIXxKiBxXFjWwJCUucdeEDibBIcYyhHqvmwWGCahHlLMqQLAaMJjJjQqnNmFNngGMmCKilOoaBbApPoOEeLlxXDWwLlORiQHbBpPPqQtoOVhAaASsYoDFmMXxOoAtTmMsWsITlqEeVvhHhTtHgGVVWwvJjPjJqQLyQqYlOoYzvXCcZqrCcAaRqQRIdHhOLcnIJnNnGnEpvVbfFJVXPpSRaCvmMmDqbBWwGhDdHZzoOwvWwPeEOUuOojJNYytTAaVtTvAamhHKkMmWwIOTtscCQqgGrRlmkKeWtMmAayhHYZzzZTvRrHhbNkhNRsXiIzZJObyMnNmzaQqKkPdaeEnlVvxCcxMmQZlLuUWFfzZwdDwzrRzZlAoOalHESMPpmYPUuUaAuLlbbBJuzrRLllLZULlKadDyRrYuwcCWqfFcCLlxWwXQUAxSGgsxGzZgaAMCckKmXxUaASHhOjJXWhqSIimvXFQsSYlNnBbBqQWwHRrJjhUuVzuaAZzRrWwnDdmMcCTtzKkZfFyzzrRIGgPyYXuUxpxRrPYTtqAtUbzOkZwWzmMPBhTtAaeEtuKAaXWwELljIAaPLKklpiIXlLLlxyMYbjJBWwTdyqQfZzxMDxLpPHhVWwdTtVvlLiFfQhtTPwvOoVOtTvRrVokFfiIyYKPcClbBLTwWhHtUepPXfCIlLKrRlSeEKYqHJOojhrUeJtvTqlDmuCcUMDWwddkxXkeEsXxnHhNTAaQqtSHsNsXcAaCxuZEobBbBTtTBbVvXQqwWmIQWjUsIiLlSutafFAnNTNxysWjJwShUuyYqQRzZteALlamdDHTlqpiITtKKfmFfMeEGENOjJcJjkRRgblDRrdLlLTtebTtBBEegGfFIwWAqmAaLGCcSMUzZuYKdDmglLyYhHGrzKkZUuLlgVveEYfiIfLaNGdaaADdvgGVcmMtTCHdZzDGNnHhhHghGppzZPNnkApyYIRoOQqrYRXxmVdDJjfYyeEFYyBbWlLDSsvVOnNoAcCBpPZzQbZFPMNxXxVvOovbcHhbLRrDzZJsQBBFfbhQqQqBaAIJjyYJaWwWpPJjniwpyvVpPYkKTtyWLlwOxPPTDnNdAcCzvVgKEgqLJhhHHrREjJejlNsSnhFcCVvzZfpoIiNTZeEzgGKmnNKvBjCAZzaGLlqbZYdSnFfvVDlLDvVLdDPvViHfzOvVbQPpqRZzrBoPptfFenfFkslLlTfJvKvLlNcCnGsSukKSjCcbgiIKYylxGvkNntTyGiqQhHphCQUuWsSsSsSaAEqKkCcCzWwMmTCDgCNnQDdqAaJLxzscspqVzsFJlLjNntKgFuSsoRrUuOGbBEjJXxFkddOoIxyYTtOpjbBjyYVvGcePpjGiwGHIUuNqWGbHxWwxOereOoKkwUJjniAxdDXBeZQqOfFMoBbOmMgjJnNjJcCyYvavVBdDbnNAWTWnPcCdQAknNKsMmzZIiRTtFfrUjAaHgGOxMmfFEeXYxERkSMeTtnghpdDdcCEUurRUuIiLMmRrzsvVfFdDwZjBLloCVRPiJjIIPGWnKkNwWnjJWHhAaVvPGNnXzZAaLnbBaKRKkYdQqiIDzGZAazgWaHhJjxXlLqQAwVvTylWwAqsJnubBvVDVgGoOEevHhRSsrFfCwgdcXYbnNBqmJjkFfrRzWwmjpPJxXqadaFfXxZzDqvVoglqxKuUVvBEegNinATtaNjxNmPpiXyYOoiIxQqqQwyFfCcCWwiOocGHiHhpjhHJAagGPIpCYyGgofMOokiIPpKkPpKmOJeViIIDdWnNmjJnRroORQcCjaAJqYjaBbTtBbRpPCcgqbVvSNGgneFftMmNAeESWwsrRoLLEgIiIUlLugGinpwsQKIszMCSslLAacWaKklLzafEuYGFLlfHhPpRgOsSmMgkeEKSsGQKkbpDMmMRfkKbROogGrKhqaVYyKkIUNnuXxzjwqXImrRldaAdIkLQqKrvQqYnNysSVvWTtwQlMWTjJrnXxfhxXxaAfFwVsSYQJdpPwWDjDvVkftMpCcVSsnUoshyHEfaGgXHEfVRogGOhLvyYVuNRrnbVMWIikgyiDdvVIaVvwWqthHViLlnNTWvyUuNQGlTeEteEoOLAaDDdkTGgrRtsuUokIBbiMmZzOqTCcbJjLUFWSKBzaAuUHxjJdDQtTIiIQqioziHPphIbAcCcgsbBbBqQpUiLKkjJSCFfUJRrmMjftTTtAnibqFSvVteXmMxEfFyYfFUuwWTtTyUNpPIiqQloOUuIikETUMkKVvmjJuzkKZpAcaylQBrkKRUDSsdZzbZEepSsxIiMmhlKkIiMgUuGmGhrRVuUipPldOAaArTiLlIeEBNyNnYZzMeHhEoOXcCkwZAKGkHawmVUuvENnvVvgGXlLJZCtdDjaUuIPVZPLlckKCpiIfFeDsSoOBbowWrRaHspXnPJjjmMTSsAaekKBrPQzZKfFNngkbBsSNnsShzfwLlnNWPpVcaKYBbjJpPLlqHhjJrRQIQqCcQnNaLdbCplSsLyQrRqDdzdCcwgGBbyjkeFfdDEKzXxVBYOTtgTtGIjJAYPrRwmMhcCHiINWwnNEeMmimSiIsmMMkKygRaNnAiIrAPRZzfthHTTUNnHzTtcuUPppkKnvtTHwWrrCcmMhHUuUuRoOoUuTuUtoVoKXxTtkAaJvoOnOoCbBfFWBbQqYsrRqiIQSUFKSsDqaAfFnNGCIiqQwWAVUucCdDybBHhEKkxXNSsIXxiNnvxXVDguwWUKKkGhHgoSsKkbBsSMmpmvGBbGygGUFfmYeCbQLxIiXGglpLlCcyAaYKuUsSUDfFdYwiLOoNntfcZwgGiSGTFUzZuXWuUwPpSsxflLtPOfHKkkprzThwWhXHOFVvfDpPmMIidiALBbHsSMmnNrAPlLiRjLlJMJiihWwbByIiYHIIKGtRrmirRDNaARBfTDdFnIiNAfWVGzTWralLdmMzewxzZCcXkaujLPYyKkpllfulLhteETBiIVQYyacCaAAKgFfnNlEJjmMevVEeHNIYedDEbBaANaUwKkIiXxaAtTDViVoOvovqKNGaAanIsmbBhZzGghlLwWHYycCqcFXuXxKkquUooojSsJObuCczjXqXRrSsvWIxMswNXjDmlFwhoOfYFLJDlKrPpZzCcgGOQqOooPKLLrARrfFoOxXawjJDJjXzkKEeIikKyGdLlAWoOZiIwiIzFfwvVvenuUNnsSsfSsFSlCvcCVcIiMcDdFagblLRrBGDvpDdsVvxGnNsSySsYwnNWrlLnNRtoQyYZbGgGoznNZhyxOaLtXXxteSsHcHUkabCdOOXHjJRrXzZcCzVlLYypvzZYkAGYAayoOeHSCeEfyYrOoRFoZZTtTqQtZzorRlnfFNgCGjVXMwPpZzyWMYRjJvgGVCcMmMmIEeiPHhgGpMjJsKnNhaXRrgGDSsdGRCcTtmAKkaOCQqcFfGQKKkaKkAklLeOcCqQEeoEVPdbBwOoNnWlusmJzhvVIiHXxaABtTWwDhVgIGvxXxrROCDgGefFEpPwLlkKiItTjHYUuyhkKJLlpgGsFQqJUAaunARrDdaaAIiAmMVvuLvVeEYyIkqRQqqKbBkQrjWhPppPYMzUMmnNuohsOTtNXJSBDxskqUujWwAaJqQfFvVqdMmHhqcYyJecvspPudOxXKkbBzEzZYyIaJjsqlLunrRcZPTeRrLXNnxknUSfQkKqbkmwWKvVUuqQmGdOouUsCxVdDsXpPpicRrspBxXuJjbYyfFOAEzxtBuUrfvOoEdWwcCUmMuonYyNnwoGSTXsSKkBMmbpPxtkKdDlhPIITtDgGcCogGdtTtmIioOCTtWZCSszZzinzbBCZNnBcgGSsZiojJMmwLlJjFfEvifgGyalfsOovLmDdnJjzZIzZJjCcCdHhhFQxUuyFftAqQpPaTyuvbymGgMZFfgJSodzZTtEQAUdkYCaAKBbPpTtkONnpPoQAxXaHEiIeeEhrRxXtTbBnagmMwQqenNWwrPpqQynufFUMGkZrRzwmMurRUkKWKgMBsgPZWwBjQqGPpgBENnRrCahvnNNujHhoddDVEKkHaCsZPpMvdoODLppPSsPkKbBpSsPeEgrAayYIYQZQpPqtqQTAcCslLyYOZzMLBbZKkOoiuUbBDdzaAZTtvVVUIjUuAanUuvVIiYuKsWwKjJkSsSLbxeVvlZFfrRTGJumMUuSsPlvVKkCcLnNLivbBrzaqQAyYZeUuqKkTtQUpPcjSmxHnNtThXOlwVWeElLDdeWwVbBiRrwpjpWwbBPfJjanuUudwfSsFqCcsjLlnoOGgjFCcSOopPqAjPhLlBbJjAdHdDYyhqkKDQYSXfCHhVrRmxczSvpPLlyUAaaJmidDJOYYyZzyxXTdiHEkQqtDPpxXeELQKzCZzOQqmNnxrRjrRGhWDysSFbKecJNPpaYyAcaAfuJGPTRVmfZZMmXrQqODjJRrjJrDFsSSFRiywNnbbBBWMmMDHhdElLlMqhqlbtaGWwgCcYyCYOoQrLlUNiwxXWDdaAPpYmgGMyIDylsSioOIGgEZdLQfFqFbBZCcGLxcSsJPmzsfjJFoYytjJdPfFAqQjAauUJhNkkHeEoyYjjJhDjJCQDdOotjJZzTqiEdgRjZzXTnNtCpVvNucQqjuagGlewrgcCztTEsSaTtHxXNEdDLlvWABGcCOzwVSsRSswWLuCyYrRCREBIKDUuOSsCtSMLNnNxXzXvpJjeESPpVNYkKgRBbxpPQYLLyHhbBymMRZzFJDdDjASsMjOPIaAwwsSqoOQWweZzrpPRzxmDjIiKHmMfAIlLbQqZNpPUErYSMmkKLluAavpPfFTWwUuZzCccoBvnstTbcGJSZNnNnucLHzqQPBPxXphHbrRpsNsOYeEiUudDGgMKEthxXyhHByYxTyYeHJMzFfKoOBXqzbdVezgAhHwWaOoGqHhjTIGKkYyrIYyYOokIcsbBtKcsHLiIuUlbERWlLwxEJdZeUbVvSsZzGyqZzQifFIYkpjbSoOWjCcohHOvhJEanIRrmKkMPkaAKbFqFfMKkmQffYYycCdeEDyZjLlqQSvVCcEyzOocZTtzcXXisSfnNyGgLGaERIirzZhMfwWoSYyJjgEnNeYJrRGgjoqQAJdExaAJpPYFRJsuOSfFYcHItMmTjVOoTiwJcubzetTSPgGmMbOoBHZfephcwZNnLlGgEeKKkRVsSvhHiEeCCzZPjJpAVaUAGNSaAgQIQqRGoZYyEcCaAHhBbemsAaSMUHhUuCcCcGXxMYpkQIkZhHiqQjedyIIZzZtTmMAJUHwWjgbCcBdWZzlLwDtTyxXnMmyYNdDUFfYyMeULKbBmcCFMQqPxSzZRDyEXxdsSDeJkFSspCgSNtMmqrRACctjUuMmlSsLlLqlumMQqDhHyYjJdkfqkVvklLMmdDlSsdWebedDiLhSNnsxKBLlvPjJpxcRbBjJrJQfFCyYckVYGHvLlXxRrVPvVpKAUvEUuePpCslsSaAOPHfwWjJZzWrnNRxMgGmiofxhHtDuUFvzyNnQqnhsziIOYDdzqXxQhCzfrRFJQqmSPEPpsSsXNeJWpVvCcBFEXMmQYlLJDvNtOwWwWnwiiIzZpPiWwEvoofXxjoOrRSDsSAmMjoOmMyYKEwGPTRzZFhHftTGuUocCOsSshHYBzZpBbPEefYgjJXxGyYCpyYqZpGgPzwAvvxHMzcAaWhpPiIHhHHhpCKkzLFedotdYHhdDNoFxXJHhUuhAQbBqqQjCCKDJIPBMaAmbOSkKsQqlbBkVzAaRghZDxXfSsOowOQtHlLwWCZnEPuUPmbBVpHeEATdjzoJjYGNLlvVkgyYuUbkKvyYfRrFVpEePPHaApmsjjJpPJVgGpPRODdGJTqQSxwWXEnHXxhAxtDdSacySKbikJWwjpMmStgRmDdBbeYVvyEbBYwOOAaoeDuhHQwWquUVvPuMmkCLzLlSPfFgLRnYqQRrDdGxwWXlLlZzSMhHdOoLBjIiJLvMmlgKkfTeEIEpYXhkKHqSBmLIvUgGqQpPxXIiOawWABbokKMoZKvIipCiIcPnNVxLSpuIdDtqqaZImMjzYkKgGFfbBQRrSoOZzIidDFHMgmuaXxBkJiIgenxtYyoUBDrRuTDQsMmSgGxSUuoOnYyVvktKEwTtCFfsscsasBbSMmAjBHhVxYDkKZDvVdAJTbBgGCsquBLyPPyYnaALlNSLkKlEeRhHAwiIioOGgQRtTPpPpQLLllKeEjVRrEeHiJxWUufnHhVwwKkNGnwgGrOTzZBbIiSHhgGkVtqqTtKVVvUPpgGzMmkKTTtpPbGaAUxvOSIbvszAfghhjLlZAaKkMzOBQQDdWwlLsSIifVRrxbNnZCcpWGfFqGOALrkKEGmUNdCSHhsiHTgGtKlbMmPpaAuUwWYfGjJcCSfLrRmskthPpiIHTzZqZWmpGxEeVySXxXHhBGgRGgJHzLtTQqlwpgUnvZsyteUmMuJPbDdtubBWvVUIiuwssSaAsSLuUpPDdWnNGAfTtLlFHhQMmVvYnPXmVMmmLlvuUlkrRKeEVaueEtdDTPWwpNWwnUunuWwuUUNuUQLVNGpcvLlShoOFqIfpdovfFWkKwWwAaKkhejEobBcoOoOrktABkqxXtJjbVyXPeLHfOeMQSsyYBXxkKGJkKNnimMgBILHkFfvvgGXxHGHugGsWDmsSLhKFSQvVekKEqQtNnNaNbdOTzBboFPlWwRrVSsvWZLUdyPiIeELiIlFXjCWhHhjJHlLenNgGGgKRuUXxqQesStTZVxKkXWKgXxfFoOGStgvVbdxxfTtFSkkKPpFLYyhJnNjHDdyJpubzZZpbBeypmIislLxXOtTUiIuGoLljaAoEeEeCxXHhaPpgGXDjJdxASsScDvliWwYIosSzZOiNnrUehHdVTLfzZsSFIiwtyYnlLoprsNnuKkYeUuYXxqJxXfFHsSwWfFwvVZJjxxHEwEeWDAUuawEKkKkeWFfBNZzDatpPezZEOohCHExXpEupyYRvViNJjahjUwWGyYsUuULXlXYmMCKtoOTdwmGgbkKBMbHqQEeOzqQYGgONnAnNIinIiBaZzOovVDacoOumMobsEqwWYhHOcMYIiyHfuZJYymMXJwHGgrpPsuwZkSsKSsfTtcHzZUunNKRrhHhMEqQljJqQRrojtToOZzJMNYNvLSmpCoOqQcRmOonxdHdDhibwVJjtWBpCVHxGckGgKWFhHNSSOQqoEilhHGYgeFfDzdpPDUuwJXWFopPsqaBdKdDLlUEBbtTQMDIiPpnNmJMmYiIEeTjJMFfhfFjmTtMHEFfPWcCwxXYytTjYGgPpZzkKPGYyZgwWGHVhAPGjJdDwfFGgjJnhldqQkgvrzZgFRrTtvNnWwnXnNGAukJyvVBFfJPpWwPJmMjQqlzxBbCCccQhmtfQzkJjKIMZAeXyYSgGuxGKqkKSRrsknIiQozsHReZrkKZtIfFpPDdnYvVVNVaATthHvLfcCHVgQFNcCdDshHSXwWhkdWvmtTMjyLgGITiIzvtziBLlAEBeXxFWDqlwwNEMmADLmwpPlSvVyYisSDNntTKEpPeEeXxTsdeEKihToPpEUOoFVvvSlLsRoRUuWJqfFQJjxugYTtWGgkGghHMAkwYeEZxXGgWaAwpIsnJjNSiztzZTkXxYymKAfYyMKnNkmDWsvNYVvKkmMPWBooOOUqbaFfyYAJtzpnpttTTvxqQBbffFXocMbBAaVvPSsJjGMmFfJjOlWMBqxlLXwvIgGwWibBJjSfFvByplLKnvIzlsDPpWUuGgKHMyPQJjfxKgGaAWGgDubCCcsXbBxiRrymsSTmOJjLtZckBSsvYjJwtTUzuLMmlTXBbsvVOoHAaMmZpkhVJDdqQBBvVGUugvFOcLlBbFyYfKBPWCWOFaqnLlLVvgGQqLRrlOSaTtEvVDhpPHtTbSaAfwcCSwYcCghHWwzDdtTtoOzDJjhbBMrRlLlLwWmMzNsgvbBJjZajFYytEUBbhHwOgggCcyTtYVInSFNrRFduSsLlUVzZTcvCOiapXrRVvUgGMMmxlLIXYNnOAakCllJjTbKMSsyHhegGEYEvkKVwOohFcUJTtvBbsvVmOhGYykDQzZgGwWpAdDIbBrfFiIjgTaQhXxHSbKkBHhsWXZzkgGkzVYyvDdwmvUuSLoOfQqdQycCyFfYzkKUtQrpPRaAtTqzZVwWQyYqPZoJFfMDjJGHOucLjTtJUulvFGbQHhbBbQqCzVoFfOeJxbcCDgwPRNcJCcMTtjJmjHOooUnNkKiABKkbukTWNnuZzDdmMsSwMmUgOxWyYoQqxaThEwKHBnNsuCcKkLmMEepoOjGHfFwWOtpEeuTSQqVItUhQKknCDQqEDaCvbkudNTwlUuDdgGmdDsPxjJgNwQqKsSAqNnRrBEaAeHoBAgwOwLgkvAaCcapPAeEOmJVvUyDFMHbRXxxXUsSurBYyhftRnwRKBpXoRtTiAXEIiexaiGAaeEEeZzVFbTtBfvAaArifGiYgHEecgtPWhtZGfjyYXSfFxVrpPhHRlmMKFfWpzqQqEeUHTUutUZzvLpKzkKYrRYnVvsSfLlnKBEebWlLiIwwCcWWOWwTmMXMVULcHQYyqhMmTlLGgNnnvOOuqQUtTTtWbBkKlLXjuUcCSCcUudLlKWVUMmPpOoPpotTOsPPprXxkKKAqKggOrJiUuNZxgIMmiEBTtXikKGtOoQkaAQqsSGMtflRPphHZzxXzLlHhZnceECuYrCczODgcYyjJjZXnNdUFfsYOJEHuUslEssoOhlaATdsOHhRfqQuAJpnCQqufWezGWwWwgRHhTiXxuGYBegLdDlLlzCgRxrVveVtkiVvpabIemMxVQWDdyYpiIHhpPehRMFXqVZvqQFIbETtPDzZEhmQJjqOuCGPuoWWVvdDrRutWUaAjMlDcONWQqzBYEOuLAXBnCkNLaOWgGgUubZzzaAuquNvcClkBEaMjkEWgrmcalLrkmQIimVoJKKGgrYxrNlkBxwsOoePpJWTtwIejJpaBbAPsSRrIfaZoWOwNjcjDrqPhHMOXrqQQTaAiRrsKFjchPYurjgxhQqPfFAdDcCapHXGJMmtTReEfFUyAapHCJfkjOoJSRwWOorItqqQRfhwWDdxXHFxoWwmCcpQRdJCJkerREJjeRSslLcCrEKnWowOzAFijJEPfFpijESWXbKLnRXtTybBRkkjOvLxXlMqMKRAPpCMRIiGMmweKGgJmAebKLVnUfTtFQdDUZBGwofkRrKFATtliIrRxXnQqKcNbuUxdehHEDalUoeybZwnoCdLmJpPuwvyYwWEeVThHUYywJjwmMOUpgcUoMrNnRBbHeAadUupIieBeEifVzvQFfxfmruUHEBDxXdbPUupPgGvVeEwqvpPXbdDBbzZBKdDkOobhHBmMpPEGWwsSgiBjJAPIKTtTvERXrIirRGcZGgGrpSvVZzsPREbygUItrZjJEwFUcNPjaUFrqQoSBkKbDtLHtTSrRnNSAaeLShCyYceQqjyIYEeyiYoySuDAaxzJiIFfCGdoZGgRyUNvVMmaArKlaALkLkKFuUTmgKqOoXxTUugIxbeGXzZznIjFfRoGGkoOQlLmMakFfRkKpSTtBbKkVWwvuvoOwkDsJxGKkgwJjooVpPLlNNZzntClvVutTvmxtowkNFqQeEHhNyoOyZoOkPlwWVZzdDuTtbBhiNnIuGgQZjwlLWaAgGsSJZzPwkiIxXLvXWoOFaAiIfwscmMCxgGJFgzTHwpTGpPChCckKGyUuIgFIRadDgIIiIrOxPbkklPpiKrRCckIMmLKrWNrTFmfdYujCcMoVhHyYNKknpPKFfGlWovVWGabOhbQcCakWnGJjXpSMgGVvLWkKtnuUDUKBVcAXxdedfOoFzZcNqHuTtTivJjstWwHhUvVvcCVPTohwYyWgJPdDJjlUpOomtTMPSbDdhkWxqQXeLlEeHtapGgPAAXOFfwbBRrPPppHeEhXoGuPpqQMmWLlQWwKkTBbtWwqmMEbBehHmMqQUwSstpPKUaZzIuOhPcCgGpcCCnrpWGSsdcCPtTpBXjEvZcBxZzBbXqBgfOYyoVwWpPChHUOoofFxdDXhgdmjSsOxXfFzpQdDlLqBbvxXTuZTtaAYqDFLlvVlSssVMUPpuWtTZKKutTUZzxwaAvEeVAaqAtGXEexJKkiIRbBiUuaPTtvVqdKgHLloMBbSIiVjuCfHWbBemlLkBcCtpPzXxZLLcKoyeExiOoXmEeuxPAIocVCGgtWwvDfnfsNnNiZzvGGvpYyPAaVGQqoWmqQfFMuerIiRTRrfJeEhHAzCcVkKpPGSnZoOmHdZfFTGgZzZGyWsKkcCPpWFBbsBCfjJFcuUNndeOOooAsolNWwWuUwxXXxLlQAfowcwpbkcCFfBEebCoXxySsHhTtYfVbbjvcCHKPlLXxBbzhSxtjJUZuWTtyVCcSsbKCzTloMthHMYISyYcBUdwJjkXFHhnNqpIsSiYmhklLwdBbuUSLZiVNkeEPzZYKkbVLlsJjbBVhHWQbmwLcCoEeWYVvywgpkxXKmCOxIiusSUHhNnrRFALlaIXxiLlXVIiIiTtPcCprRPNPZTYyjBQubwpMBkKbmynSsBlLbGgmfFHhMVSwdAlLnNadDZzFakMKUuZPlLzyWKamKwyGUXjwrOrSLCclsVfoOuedDOnpPpPNtcCrRHIkDSAcCqQaqQtkpPdKkIrRIisLWMlGgdamMenWWKbBkIQqiLoOQdwfEbeqQLlabIRrZTVmMrRZIitOohHiTtlMmYJwjFfTpPtJsSWVwDKHxBbsSeEnfqGvhTtFsSlnvyxXQqYyNpPrRiTzPpRzWlLwErhBbScCLlbBZOqNqkKQKMmQkgXUsMbBmxEazeZzppPPEmiZqFTMHqXZLBbpzZbcCaABhHRrlLUuoODVvdjbQgGqYjKUagKkxNVfGRhHVGKDLHNGgtTWgpaHvNnCcGghzgpvVPZMmqQzYyDiIdpyJpQqYyemxXMhJHGDdgmtyNncCMmaANnjMDdWwdMmmqthaAHQqkKTegGuXxJjkDbFfAQSNCcnOfwRrxjwWrRWUOiIouZWwHIihdEGCcXxygtTLIeVGDdAaDdGggvsdDsIinfwBbkOoMmKCgXhHhuUvcPbwqQTvWEeMmBIkKcCcCDXNOoMrPMsVvlVnynmOLemZzDdJjzXxZHkhFfCFzWUSRhAaWjxjPpIizfFUWwFwWhmCohHqQyQGdDgYyeSBODdUzZWwxGgXCAdDdAbNaoyMlLzZmZoeExXIihkKBWDkcyxLOWwoxluSIiguJHAnIrSsyYPfFHhsQTtqSUePehchHHEepPTAdnbdehXXzNnvxXVWhjQyEyKkJjQqUrkKSzZslLRSRPOuIiUNTssSctlLTCSWltvDWwEuROoyXiISsZzHhBbcCkKJjtTxYyXxBbISsLVdCobBOWwkKuUsGgZzHhcOFfbBJkKOdDgoSMXxKnNkPYEPzoOBUPjYZzRrltTfPpKsSsXlaALXDBGTiIsgGkwvzDdErEekEWwTtwcJxfpYDpPulzmMwbBLpfOZlLtoDBnTtAnTqKksjJfkHRrlMdwSUhxXgcCvVhVVKhliboOGIjxXgbSyYsqmfIiFEWUuwDdoYyFhoOlEpPpPpxvVYvsSBMmKhQqHkXxTxXQnNKbaZzTKRBbrRCnNKkdDcCOeJPpErRYysSDdhHxXDdAkAaTtKJjdDGgaHhHVODPFiQMmfHzZsVCPgnvlNnndDNqmMoOKkLZzlpPPwaAWprRBbUQyYcCqAvLMxpNyRrAaqaTtgmMwzZlaGgASpPUTBpCcIijETYSzVNuGPjbBJQqLxXlWZhjrAabaXxhHlLVvAxeEyYsYvXgPJjpPMqQwzQKjRrJSMlFsKkgFyTtBWwLmTzZVvtMkhISscDlLneAaTtEuhHMgiIeRlaoapPAgdVvDQaAIigwPzZzDdrRBXUuvFspPSgLdDRbBrllLvGgVGMmgtTQqIGUuLWwlgiTtGqdiIDqbQIiuUqoQrRqZmLlrRzJHHGFkKaZSVBisoWwVXugBtZuvkXxQGgQTvRrKkKstsSoFMmfRWNgYyXxgGZznWWvNFwWwXfFPpjIhLlvJZzkQqqXxvVrqIdDXxKkWarJjeEsppYlnNbUQSceEQnNEeqRrtjQqpPazdyXvbJSCmMSScWehyYFfHHhkLlTKEeNoOsXqdtUUudbuOYyrRTXNEGMmwWjKbAUMfKiIkfFFGmhfsqyZJiNnzAAaQQTiIiEeUPslXkzOmpuUqNnQJjQqPuVUuiKQqklMbsQxyPeiKkeEZliIwWLztFGMmLVhhHzZrRHfKkFoOlbxTtXlDmsLgaAZzKkyNrpPlGHhpuUsXxtTZlcKUpiiVvIIUdEJjoWyMrGTsPKTKXuUQqxyYktIBksYCAsTBbXpPpPNLlnawWTtNvVestWwdDjgoghHGrveESDAadMPhpBGbBhHKngyJjOZJDDdtahPvMWwppeNvVzchRrTKkqoAaJuUjWSsLlFSsdpPzWwHGrZvmwxXWMZzKzZRgGrLoyYNnpijXxdkcciIJaQqHjfiwWCcITtOnDdkKyDTODEflZKkWjJFfBbNnwckKmMPfFlLYaAyhHiIyYwdDCeEZmpPhEozZOeXrRVVfFyPpYaWQjyYJPcyHhFuUrgGRYyuUbyhHQqSgPjJprtzZpgWekEeJKxXkadWwsJFUIiuOOViIeIVvOoIYyWNRrIVvioTnVBclxXLCbFoOfdjsSzZnNyqfSsFxefbsSTttTZztTPRrwjEnNpPneEfFDdKXxkVvmMsHhSxuUSepsMjZpPPpcNHhnHaNnAPpmMZcCyovVySsSsYOoXAahHxZSHNYFfvEeVCfdDxXFfFcZVfoOlJfFjLdMmEWwehHTXOoqQFOIXFfGgwFhphHoTtLSOocVuakCchlkKrRLIigyvlLKCcqjAaAamMCXVZzdDOMmoUubLlkXHlIEBEwDuULQqlLFfKHhKQFKDdXxULQOooOIuUuUiJTaHhQmMqQrRTWwnsuUGcPfxXKjYdrsXpmfMkluEQqmuYVFfvGJhujaziiYDdDqQEJIznkKNKiqKPymYyYyguzOZzgriqGMmsvVnDMFRrfrZzReuMmUTbBtEmdNPRnNrpngauXFfRrzZxAvaMAabBmAIiUQqawWAuaccGgCcIrkaAzWCHPEFZzzhpsEZBCBbcUCjWItAGgavJihCysowWUSjGgrfyjXwWDdGgepPDysSYUujGgalLOyGsOarRAFmHeAglsSNnYFnNsXxSxXIxxCCnSsjJNZYehHBbSssJPeEpzFIiBMmvVpmMiNuiTtIuUYyUoOoOAEeejHVBbJwsBCcJMfYgeEbBGyFqQvjJVmfqQXxFPKeXrRxEgBuEzEeDjeXrNneBhnSsNSCkTrRQqSFfaACibhmMHBKzZyiRgitJQUuZEbBrRvDBQqZQxbkZmbBjOoJjhEtXfFbYHTekmaAhHIyoSnSZhlCQqiIUzTBbTttcFWwfCsjgbBSsCBTtAarRSNVbgAaGOCYOoyteEgaAGUuVUsygJjGReuLlwiIWnzByYiaFyYbBhktWwrRTJdxJzZjMmXMrKkRXZEWWizZpoJBbmaVvARrrRaJdjfrUuYeEuUiKkIYllyqXrGynvsPVRZzDdrxrRZPprKZzRrkRnlmsTcodkibuUerrRbBcJjyYlLvVcUlrvWytToOYlOoLaAZogjJbaYykKmMwVDdenhAeZcJhHjCGRdDWELAUJQqCUrRrRNnnPrRcTWleELwtxJrMmGDeUuEqQEGgKkehHezZzZICccdHJFfODiIlLbBdhKKnHaIipuUyYmMCcDTNnOSZMpjmMCckKaACXlGggzYyflDzeLYdnullLLRqyVvcATxXBLBbhHQHQeEmlLSsLlLemAvVaYIrfsdDfdRdnuUNDdoRxzzcCFMvrhHNhHntZqQzpgjUmMFCcCmMnjCEkBfYdwHgZbBzJXZzNnMoYycZkqldTKehIrRDPpckKCtojIqQPpMpfFPjAupPJjYVsZCXMvHhcFxspPyyYqdKhNlOoLnsSxXYyHbBkGgdDQdDDaHYySspFCcgXxGfpPJaRrQsfdDUuJlLqQGgNJSQWwjJWDUNAFDdPpJPWDdIvEhHwvWLoxXaXxAFfMsJCPrnNRpBbNnuGgERVmMIlpPpUjgTttzLEIiXBLllRrkUyNJiuvEjoOOoJeIOcCozMmrRlmoScCvBbVazqyUBbuiRURrPpuGpPlxXHAdDahVmzeEeESsScAheFKwWkfvDUuOJUMOomSsnVtSsTHsSAcbfIixXfFFBebnNJbzQqpGSbMmmKkmpPNYXxREWGAZzNqVvcyKkKDufFXxaqtTeDYyOsjGzYBVUYKkdDYXqfHDchHiTtNMIilVSBbcCFpPLNnAYVYvVyLlLlEevAhRrHaVvjHRyUuYrhAaJwWFIVeWeEOtTIzCbLlzcZNDdIZrRLlcNnzwZzcMTDRrTtAaOsyYSdiipHLpPsgXxFrRfHhOWzZNODpPoOeRrVFTtZzRbTXZJjWweLlanNoBmMNnSsUkKbPOoSCIhHPlLxSNnvOaiIAoXcSKrRkDdDIigMLlkdDMKBNJjjJjJsSZzWwnAaFsuNKlEtrRpzCNneQqSsvVEJdDjNsSjJUZRrxXzQSDdZzAgGiiIesSZZzoDpPUpWwgGDdPSLlIinNBbVCEzZjFfCvVUuTtAaQCcDQtBbNnTqQQKSXdbsjuIiUxcCnoSHOrRZjJmyHwJmMkiIKUuQKimMWwlUSsYyaAdSsFRrfDOoaNjfYSsySMGgmjJdDPWOvXxVoabBAdcoUfHhFuCcXHsSdyZzYpPbouUtTOZgZzGeEjMSULXeEPpvVxQqDpvqgLloJeEjaAMsQqSdTtDrxXgSsxAHktTuUSmzZPSsprdDymydDYwYWWwmmMxvJgcGnjJrRdDNLOzQqZADdazzOcPpshRrEHhgaeEKyVPvZxhZzxooEWweDHhcBAKgGuhcCXxuUChEFpPfTxTlycCYAdDoXYHWwOgBzqOTrRwWxXgSsXSHhxXPmMVdAfdDCmMKkmgGyYLksGgRrSKNTsyYSWwtNnhJjHEbBnMmNVWSslLkKZWzbBgGOoLlwaDgqQfFYZxdWAvTtVkKayYRUulljdDJzZeEqBbQhHkpKkRCckKLlkLdjhHloOfnNyFOoHLjJNnlWfLMSKksdJxnWSmwWXiwVbBxQbBMXxaAmxSsJmMZUBOOQUZQqzxVvJjfCdDBbQRWwrHMSiNfFAgcCnRrkQedDqQEVOIvdQqiIWuAnwEbBeWtKkTEeQqyinnNnNEAGFfgMmaeMmhLmMGkqvpPnNbHUFNnLKIVEevJjikfFJUAKQqHdfbBiICcFDhyYmMWAaEfFZDADdRlLUujJwtCcCGgcZRvjNnJVCwWcrgvjJiMmIwFafYnNytFbrndIFMmfMTgEebBkjmrIpaRhtTlaIVcPvVpCvtTXxwWohxHHtZRzZzZaAeNndDEkKqQBAabPDdKhyYOoFopJjgzwWZsVvZwkKWzVJwWjoOdDvWlLzCFaAsSTlIaAYSsyWyhHukgsSlwWLGLlPqBQqYycEyuNnZzUMvVuYqQgfFgVMPOLlkuUGdkKnxXxXFZzKkUIiuJjfeYGgvacgQdAakjJfuywcAaNaAFfVUujOVvvhHhHOOwWRPphVVyYvVvRrNPCZheEeEutYDdDOodNnyFrpvVaGAaYrYydDRdDInUuAaXxWpUTtuyAaaOoidDxsSXiIoybHhvnNZwRrbBWJWwYtZzvVTWaAhHOoDZQqAaAaRrYlMmLPcBDlAqipPIiykpPAaACyYvFyYZHKcCGMSsvVmkRrLlqCcpRbEtJpOoNxHhPShtTAOkKdQqEAGFfgazsSCcvpzZoOYyiAJTIiczjNndXWwxDxPpVeMWAhKgkazWhHkbBKyoOYmMzZKxmnbtRaxXSsoDLpPGFjJWwfgIvHBJjAabIPpizZgLHSZzsXPzBubqDdLYACaPnNWwoOmlLMtUueRRrrKLxXUrRyYuJjnuDdYsfQBINaNFfnFucbMmBiZzIslIuPSGCaBZDdOqXnfFNhZbkzZswaAfzZulBNntQNnmMoYyKzZOSKkKdvkKVgqnWwYVCcwtlqQgGLICcvTQzRrZAYMYDdyGgmOoGKwNnmvOoBUlHrvFeyYISsihnNxAFQqehYHSOoRrOuNvPmkKHhTFKQTtqdqXxkKyvZPpzfFZzWUukKXKkHFNRtwmtTLSsqDdLzZlVRklKZzcCiDDLMixVvQekKEWiIHhJZwWivAEpPlLevMlLTtmVQHnNeEIikBFaArmXxdIAaiPBqgvVGoGreRrEiInNgQqFrRfyUeFAZSsCPpeEcAwmZSiHhkqXkKxSWUcCdDuPNsSGedDllOfpPVTtvFanoOTzZEdTtUuDvVPpsZOozBKkQGrAJySsrgzZGNMwIiIYyiNniQqvzlLZEjLloFOBbcgGPQqTthgCGvVsSgjqQJFfxXKkIcAaYwWWBbIdZzDMxXnKkYhHYjJyyXJfFXQtggGSskKZzGTqzZxInGEebkXQLGdDOwWQzZdADsSAQMWwZKMmnNMQfFxXyxCDGWNnPfFhHLlmMpcBNnbnaANdUNjSCcQaLiIYtRDyYdrZqqQQyMmTtraAkANPplxgpwNGgWweEwgphHiiIprNnvgGDdcObJzWSZleDGsSFfgIiyKkpPYPHGNEPpmsKreIiXyohHhoOJIipPuSGgaGOogqDpNwDdtwVlFfwWEeLGJiIXxjmtTMrwWRNnmDdozEbaIAaOoOiIoNGguWwWERxXEovVXYyXNaAnbBcNntbBTChBRruUjIiAaJgwPpCcJjQnihgnKkAaEenNGgNyYDdWIrqQRSsgJEcbBCCXqNnQxaAwWJjgJJPBkKboXbBiDDXxvVwvVkKWcCZzKferRgRrUfeEGiIkyYzYyEesSZmAaunNJjUMTfSZvQpoOjJwWDLldGUuvVgPPuUSCSMLrRlmGgZXljnNcGdcmIiMtaAZcQuUVQHhqvetAfFaTVvwqcFfvWwrRVARraHvVwWPHhIgPpYKVgXLuULlkCNBbnrRcEeGBJsUGgsSgVkIiuUVjSsrRFtLGgSKfFpPrRNETVvSXxsAaZFhIoeEOpNnlddNsVvDyPpwWzBQgMYymcJbsSVjJIikTtMlOoLkXxAVvatGqQgnOWIiwtTPHYHyYvHhVHhhoxXONnyPpQrRCMsSmXxcDdGecCTyYQJjnNqDdtkEeybBYGZatppXovkKWsSwZUuzgGVYPhHWINkKuUXxwAkKtTyYjCmMZQqzLlmMpPcizZbHbYyqSjdlBXxCBiIVXtTnmpfzBqTtbaiIzyYZdbBlLvVwvMEerypPUiIuiPaeEKPgMeOoEmaAADMmgnTtBbVvfGgFAgGXvVdDxMmlZMmzFFyGtTNNnnRMFfgGkmMymswkKthEeHTWeECcgeElLlMQaibEsSBGrrRrKCeJjEonegjJEeFkkyYPAaAaQLFfEethMEtTyYTsPpSrDuWwUdHYXnKHhkdDJwCcqiIiMxhHTttOMmepPzUQqSPpnShsSNntTkKKTFfSstKLQtVTjMmEuRVvQhHmaAMyDZUuTtzaAeEdksUucCLPpMmkiIiMmcDdFxtTpIiPeIiEabBAEuwWpthHTWptTIiHZzqIDyyYzZYvlLGglXdmXEeFMmYDtyIiVvmYGgHOohiLlQqzZiIZzDdJextTkUTcAkKawWCAaOoHbbBpuUKoiIqQZBuQqTaXxQYFfSsudDdDcCUQqyypvXxVXxXiZaAHhZYKkfFHhNpPUZvSoMmOsbwWLyAaqfxVehHEMbBLlsDdQHwUtTmOoMuxosuHhwWHhXYyXkjBlLpysehLmMLZNnWzqXXyTthHYLNHhADpAZxXzZYBJFfPOopjeEoRrZzjxSrnDdHKnoOBVwELlMLZTtOqQozSoiMcCeETtnKkopVlRrLWkKVvOKkwWogQdMVdDcAVvjJrsFfYyxvjBlLPcCWweaAUuNNngNjiNCloDisnfFKkNSGgsSrQzxVCcZypGRMSsmrNngvJjQLtiSkKwSaQGghHXxqfeYyEdOyAaaHvxXaATphqIrodLbBIkLvVALlalcfoOyYlpPjJLlmAwWcgMVQHhCfUZhHzAFQqfauDdUubIkirRvVZvnNVoCsJjBBbeEJjNHhBbnRmMrSJjsbAaubGgBUnzZWLkKyoOYTGgtlwWIiwUCcjJQHTsoQqGgONLsSWFfdPEepYEiIeNocCcCsluULSmMtThHLMmlnxthxXaIiyUvVuSskKrRufrPoOaAFHSfFMXxmIizEVbIFfJaALljMmBbFvJjIFfTkSsNjJNGPXxpgfkuhHjJnhjYyZWfMyYWwmvnKKkkuUgEfbNNmkFfcCiIMmaeWsocmqwaoErPdvUusEMcCmewWmMWSpPsjSdDszyizqpGgDVNDNMcKDdCcunNzZUxKCkwxUjUAanuSuaWwIzvvVVHYyqIieKbZzBZzfwhrRHPOVvQqTtoNbBXxAxSspCdDrRngOoPSGJjZzAadDFDSuqQuUqOKBbFTtNnfkBbfFojJQCssSpPWwSAacpoOntTWhvXpPVvxEedgIirRGzmIpgwsfvVjJacCUSXroORxRrSIZzbBFfiSvBPpbcJCcjzZCxEeQqrDKkYyQzZnBbNVcrRVacCvVxXAvSsUuvVrFYOVvoyMKeWCcwEJwWUnNKkSJTtjAvFIVvfzZFixKkmMbBQJNNntPLGgXAkEJDTtBjnoTEhMoOmolnNLgDdwWTtEeKTtESMmLbOnoOEzZCcUeLlmAamuUoOLqQFjqQJXdgGdcCDdDDiIEGgmgZzpPvFORrMVvaZpPtTkcCHLlNSdDsqbBUDdwoDdOjJWUBEepPudDrmRrjJMSsQqRUCcwPYyPpXiKLiIlkaEBIimmMfFMutFhHpPfZjJISsOLOlvLlnYyNnNpPxVZzrRQwWqQqvHEuftsSGgVmOaBOvVVhqQSvfFVsqQyCVHYyrnFIsgGjbBGOoaXzKkwOdDIRrTtroORCuUavaXxAWwLvDdVpPlWUKkuHoOPphTtDdvDWwqNsSnRrQdLlwRgSazZkKClxGgXQqxYyJjWLnZzFfshMmBjcUuCPpJyWwYlnBfFbNivJtkhDdeSzmMZsSeFfTtFOLRQUakEqKpPkDpPdcCQGCUuEHhrENnoZKkIcbBTouUCcXGTtgJSEGgtJJNnVhkXyYgGLUhHkKsQjJiIhHJbQqByvxlirRILMtTmZCJMuPpNnqQzNnZspPiqyzZgUaVvQJjqPrPNdqQnNgGGLlgTKktDZtqLsSaAJBbUZPGgYyGgBZrYyRpJjhHMHXxgSNYPOoyYEPNnpEfFKRAadIDXJfdDFhFfHOoORrXQQqCnNuvWwVUcyFsSdcCLisKkJIijPpVfGxcCXZzRzJjUuhJUuLlsSfqDNAanvyYwKKmMwHhEepPnpPNlLWTGrbLlOoAaBplkKjJAaMmktebBjDdYaAipPNnnNcCZLlzoYcCiLluUHnfzsSZFvnNVSMsZzlKUTtNncuUCpaAHhmMkKXxizZwBwElfFQPYTtypqUutoOaTVGgMmKkUTeEtYyQnNXOXxOXfFEexVyYYbknkKNvVEeAJuUqlLQPnsgGPpdDTkKcBbCHhUZzuXPjJStTLlscCYytTPtTkKZvVzpbBRrotTOcNpQNnOjOaNHhndDqQvBMJjSlwIiXgjddQxpwWRrzKkZrfhHPsShDFbBRrfVvHCcaAbBJjLdhHaAoufFUixlCccAaCKOvpxNxXZznEIiQEeUjPdDkXxwWRrVvHnNcpNnxKkXUKkHhrSsCbBbvVBHVnNcPpXgDnNdDddZgGVvoOznNZowWNgVdDimzZoEhxLXGbBEegiXxIFOXxoGgMCiILlIaAPpIiqnGggGblCdDnNcFHIuaAKkqRrQBVBbaAdBbcCSjJPpuUjJnNshoXxOqmiwWIZzaAsBrgUsNnSYuniTtrocJjTArQqNnkKJjOoRCTcJbBjZzCcCbBJOzzpPEqvEmHLEetTmOorinwWNVndOXxojJjWwQqJsaVsSvAJmUevqfDsouBbUJEejJKkOGgAZzunNlIiDZvpIFPpPSMmwWsEepqQWcbBwWPgGgGpCVnNUuaAdbBXlnNbzZMzQqZmXbBkKNJMmUSSUeuUZzDdSjJssVvFYyrTXNqeEDbBRrTCFzEeZiIdFwKMJTtNnxyYXWwUuyYyohHbVkxXPpfFXcYYoOQqygGjJoyYDdrRuTtmbaAhHBBbihHIgGcOoCWxXzBJjXxIhHiHhcWSswEeZznNJjEefFZzEetbBnNTjXkmeoFpPcYYXEEbBgGkivGlbXNEeBizZMmICzZcbdDouDdhjGgmNqQqCcQnOolLgtTnNYbBPgukKDoOomMMcCKkgaAGGmbxXuUeZzEdtuwJnNjpPbrRZzURruOoNnJjBIxXqZEVHhfFFnfPpYRrlLjBbJyXcLlHhWEewWwIiBXxbkKqXxBbhHQyiIYNQqKktIiZzoqQJjTBbtpuKSYFbliILEePTthHvPAapcIHhiRrVPYyBkiIXxBbPjJCcQkKhPpHpjJJRxFfmPphHbjJBbBlwFfOkUDJAxQmMTOGgRBbrZzkcShHvqQqQVuPfFpiIUqQbPVvcqQCuUaBbAuQqoOxwsjJLAalwdDRrBbWSWXHOtTJdDKkwXxCcIisSGNXxUCvVcahHZZzzdFvCcJdIjmKkMIifFnWwNxxMmXvcYDiIokJjSsNzZcCXxDGoOrqQRJgGYoOGrKkRgGgtTlLlLSsAaRreEqpPQyYeZGgLbGVvpQyvWwYqPUgSDdnNKHCcSfdKGSKwWtTWwkKEAahHzZHWloBbqbTEtOiIoJdDKvnNOTtosJjREwWxABjZzAcDdtTWwzIiZFGgbBWNbBnARZnDuOzZoFJjBrTtbDWmMgDqQtTHhRiILtTbEeBlXxTVhHQPpqsSpkKlLEXoOFfQiIqxkKQVXaAogBpPtTEQeEzZuarRvcwWSPpsvVCmMBbGIifFeGGWwggorazkKtTjiCcIJhHhqqQQWwPpXuUOoxkKRfDdVKkhHYoOEAazZWwHhBbqIijpvSsCcDdVKpJjfGgqeYyEVvtBfuUXxFbAasvVSZzwWTrYyRgGQOoEHZzqiDuJdDjaADdJsSujJopBbPDtTYLbULlkNDIiatcCTkNnFTtBbhHTtTJjVbjAaTtDdJnNBzCcrmMRXXTPiIjTtJkKWTtKklBqQbUuXxWRrwyYCQRAazdDhBbHagGRrAZIiRORZSszXzZxjipHhiupPGGZzPpgQqSsPsSVAyYaHAaiILbBaAthTtpiIhZmtjJKkTxXKZOOoPTtxXpxRctGZzTthviCWwKeQRjQKkqAaAasTXMxAfFaXkKIirpPyYzfFSyYDDdoOqLUdDulQdWEewNnsSjnNnNCGoOgbVvGIjWwkipyYfuUWmMwWwFaQfFDwjJpPWIcZUuzfncCNAerRBwWPppXxYycqQGvVYOULlsWyYwuUSxhHDdvqQRsXsUJWsSRALlHBPdlLFApPaflLTLxXjdDADdQCcyXFYyaAMHDdhtTnNdcCRrChHclLCyBlCcguNnUdrRDGietdDTPfFIipImMmKkMxXBboOdZzDzFfyWwiIzzNzZoUuXxXSqtTqQctTkbBIzSVEuUehkKHMAaHhzZbmMmMBcZwcCWzlEXoOxEYDdyDdRkehHZZchhHTmMFYysqQSLlvlefFEmeEMdDLYyKkLthCcHmrRBEujJUPYypQqPvIiyYVZXHslEeaRrAkKNnDDddEtTJVyTtAaYnxXNytTAaDdVvYvwWVdDlRrLnNfFNPpGgnSsPCEOLlVYySsvoecUuAatTulLlUaCYyHheNnWwBUcJjdDCEMmeMYyNaAnVkKVaxXAVvWMmGgwYbBhHhNnuxzZlWwaArHlmMKTPmMzZvNCcnVdzZDkKBbXTtUreEMmJjCcPpXxTtRpbBrRowWMiIiXxcCvKkAaxXhHPpoaBbAgGcOfXxpPspPCcBvVbSFWwodDBnNHXxZzyYhCLlLxMmXlVvABgrVvwWRzZXxIiJnNCcBOOoDcCdKmAPHhkZzOoHhoXLiIeLlTtDdzbgGYeGgGuUpBeEbpPcCBbpdDPGhHdDXxVeZVvzqaVxXHuwDbByYdIiYyOfFobBqYywEeWQiOfFqvVcCWwvVcCeXxETXcCtxXRpPHwWhsSrjdDJfxwWohzOPpyYUPpsvVSLJYYeIiXAaxkKmQqyZmvnNjJXxVMzEeAuRrHBNnpmtTNnfIiFMwWwiIMyWrQqRYyvguUuUmMZoOzzoOgAaGWwlLAayYsYQqyKVvZQUtTjJuuYNnWvVwzZyDdUsSXZgDCcdhHpcCPZzkQUurRhHiRruZzRRrJTtQqjoWobBOUuDdLlMmwvVNufFUzxcEeClLBbTWPhqQIeALqQBbBbnNlGpAaPhoOrRHQFKkNnWuUTtxXzoOOoXxEeukZpkZzKPhHzTFhGgMmOWbYnNurRutlLTUsHyYHHhhhAELlMmeCchHmMSsaoDuUqwdlDdUuLVvpPDNDdRbBrnVnkKBEdHLZzeNnEGgjdDJfvtOnOcuUfFCYyBbLJXtnNtTXxUVvEeFNHhXWPTtNVvPWwexSsjDdJaWwaAAXlZjJPpYyORrmKkMojuZzUJxXgcCGOodDJUuqeEQRSMmeEMGrWwRgmsIihHSKkFfKqpPQkpRqLlwSeEWfpPUudDFwEeDdpSpxXPwjDkKdmRrEiIlzgNBexXEbvUPfCcJjfDiIWwBbOoHhxuMSsTDPpdxrAaAYyxHWwxqOoQHzZheEXXNnjXcCtncCOoFDdgGfCoYvVgGjaOobMmQzZqlRroObXsVkKvgVvuMmUaAGMmwUuNnJdKkDoOezZgGEwzcCFiZxhdDHIrRiIKClLcohHZzfFxqauUNcMhZzVVvvVzfFUoOvVjwWJuGgtTQqqXDPnNpZiIyWwnbBTtAaysttTThHYfwWFyCPpMfiyYIBmMIcCiEHiOnmgcaEtTeBbWwRxXtyleEHhLEeYuUHhDhGgHEoOYRGAagKpPmMldDRSAaZMWuEPpeeeEGguUbBIieEKLOOWwWPlaALMVvmoAwBbWGghGfRrFRRrbJjBrfCYjJrgGRamMgUoOuGAeDPEegLZtTzKoOkcCJVxXvWwTcCiIiCiIcrRLGglFLlPpfFJjdDFQqXnfFNxfFbUuKkaJjoOsPpSQqxXcPjQqJaBbgGWwAyfFYsACcwvVapPAJIijWAaWQqYywceEBiIxxXSLshwxaAwcoOCIiWXWqMmQsIiLkKQqlosgGzZYySSUJjusvqIldBtTUiIZAavVXBbtTgKkGrRbomMNdJjaADtYqvVjJQhRrxXuGgtGwWXAsSasSOozWwZlPpLsSxXNBbnSsUuEeCctdDTCnNckFOoHhoOYyCcUuoyYUuuUmCcMQyvVLnBbNtKqrRQkTJjNnlskKSWwDdYnMZzsSFeNnEOoKrRkJjcAavVnOGgYyymMYNnZevHxXQWQqwqhJjLlWMFfmzgGZDPTtHhvlLGMmTUufpJjXSslZzQcFcOGgtTRYoOCcCcjHhFNqQnflIZqdDZcCzZzusSUfRSbabAaBAAaZzBWCcCIicwJjNiIgGcCnTbeEBcCbBMqQmuUBbIKkoHnNhHhlYyLOieEwWVvdDxuYQqeiFfIwjJWsSjJjcHoOaPpuuUefIiRrFlLceEFkKfOoHVTYRrytxXlfDeEvrRLrREefFAaQqzFfCcZLJjNnnNlPRGgTCctqvZZdqQPpCPCcjoOVvJOTtoVvFMmfzZpjxXJlLQqEuUsSDeEnNdXxeHhkFfKVLlvwEedrRDaxXYyYyQWNFgGfnlgGZzLFAaYdmsSRrvJUujNnbnNAakxLlhHXiIgRrITtMTtTtmNwWUBbYyOvVrtTRfGgwFfqUSsuWSraAQqRsqrRQLlyYvVTzZFnjJPKkpKwPmMQNnqpTwfxXFWtPEeSpdQUQLHhDdlqZbqzFfCcZEJjeTgGmBbXxMaAtRrKeBcCKktTUuRrRIikKKiIRrRrfFhjuUDNyYnNnYEexXyYDdDDdGpPldhHScCsPnNaAvViIwWpNnIiDcCNUuDsSMmdeTeEttQTtqhVvrRHIinXxZzsSNBbnUVvVFfNnvfhHGgFkKuecCEvAaVjJCcuoCcOamHjJPpqRrRrGgQhKJjWwfFXxFfrJrlLOHhLGgBbNnTtPuUpDdbzkWwNnLxXikUupPrWKDdgFfGkwRDdsDdeLNEemaAukzZYypPugGUuteEfFQfaAnNYyJIcnCcvVNzQiINnnRrNqfNnFuUFicCopNLlnhHPOeEICcJlLLljwsSWfSsaQqAQKVvVvLlRlWFBsFMmRbFfCJeEuUjPnNpaAxXBRrAabBbaABiIfFjJCwaAqpEePHwEeGgeEWhPbgGRrdKetsSxsSgVLlvqBbQGuUsStelLLcCQyYOorfFyLlYTsUulXGgPyYHhpbBLFftTeiIeHhEzZErRRPprdVcCnNvrRRfFtreErRgGOoRbBjQqHhEeMmJoOliIHhqQmgGOaoyYjJKkHnJYyWwlLdnNDNehpPHPdDkKpJoLlOjEpNnUuPNnRryYrRNgdDqSdDsjejvjdDJPhHpXxQqceECVfFlDdSsLSsmzvjWwlLkeEKfjJkKFNnzZnFflLaFfAKkZzOqQszdiIDaBmRryfnNzXxusSodEIiIiexhnNuUHrkKRzZrMcmfFiGOoCPmMpcclIBSVPpvshJmnNMAajgzZGprRjCcdlLUueEaAEeDDbPpleYyELBPQASaGjJHwWhbhVvHxWwXtTcCzrRZwWMmwWUugrRpIiAaurKkLzZLlqrNgkRrRjulAUuPplLaFfqRrQYfFovVeECUuKwDmMAaMmdWSsFSszsSpPZGwgHhmcCyYxXlVjJJjvLGgNvVnfFMmrRIhxXHaQBsSonNyYUuHhoOzGgZzfFKgFRlxUuLlcCXtyHhYmnhJIIOoXHhzZrRfqNaViISsqudDTMvVXMmxMIiKkccOiIoCRmNaQqMmzZxyYXDWwSsREnNevCQqgCcuMmUhHcCUaALluGJjMbGgBjLqMmQfFsYRmMryudamMADIkKlLPpivVUSlsJjcCVrRtTrOoRkEeiIWIiNnHhlLUbxXBaNNnTtnAqQvVDdBbvVBbAaugGdDCkTtAabBKcsknNKEZIicCLEelHhJjNnZExXoOeybBjJkxXKOnyYctVvUhvWkdDlLWQMCcqJTtjEfFeQiIDdyYQsSeRrxXqmMQyYBbEmMJWwpPtTVzZwIBZgGyYLlzDdDxlLNmWwAbBXxKkaRkKZzlBboOPGgpOpPokKaEeOxPZzwWVfnhwLlWtxXTMWwdszekmMKtbIiewWHsSsSNnsSHhpvVUulFfLMmgyXxUXxZmMcCLBtTkVvKImrRMoOqirRIBbmzZQgGuAEeeMNnbBAaaAbiIBmLTtgGlQqHpPhdEOTtdDazXTtxDyXxYdJuUpPUujiIrRJjZWouUQqfoOFfcCFdDoOOIJjmMqQiIWwDdPpPoOBbpLEGiIgelKsSkRZzJjbBrjjFfJOnNgVvyYVvmMHhhHEaAePpGmfFnRNQqwWWwnLhOoHIvVgeEhHImMNFfEKkepKkPgGGgTEetQqwsSDCcnhLlHoOGdTtDgEerXxRpPSsOQfFEemMsWwgTtOkKozeTKrmMRlxXLPphHeEkLDKTtnFfNkBbSsFfzUuqQmwWoOyzZYMYDQqNnNnFildnNQqqoOQVVvGgvifFImMYyCuUANTtnNnjJuXxqFfRrQPhHpUDdDMmJuEsScVOLdDWwkXosaDmMEsdSsDwqacCAQVgGLIbBiKSsklqQIVpPvbByYinzZNiIuKpPkDdDdRrzZKkNZMmDuUEedPptefFcCEgnNGYyhHuUutTTtUTwAwXxWfQqFaMcCmwWIyYDubKkBqQUnNdNaAUuEgGeuzZtTiIrzZRHiIDdbBeEpzKuQqUxFfXWvwWVVvsSoAmcRrLIillLUgGuDdgGUWKkRKUfFuBbviIVkrqmEeEeNZzjKkJDOoAlhHlLLaISxXmMsYyuRrnoONORXtTudDUMdXxzZDXNnxrLlRmsSzZsrRWFYyxXNrkIiGaHAVEeNnsSuaYHkKFfvVbAIiSsIiaaABoOZzyqdwWDtSBbyTkaAQqzZKpuTTiOoiIrRIveulLxRwMmWCcJjEeJSsSNnGpPtTgyJjYZvcCKkKkvdDOoVIYyrRPpcjMmJrRbBnbhPXxpYyZzIvgVvYOoGsbxbBnNXBpPaAPUuFTOoiItJzZMnNiWsoTtGdDidDITtxiIPpQqgDdJjbBGKYxXawWzZlUYyuLywWWjJreFfsmMvVVypdDvVvVnNPYKklFfPvVpeErEnNpPyuWwBbUGgoJjcChVPpjJJjvyYtxIuMmNkGgLlKnUmHhMBuUwWoOWwbUfiRrFfIFqsnNSvzZayYAVUuMmLlPGYyIzZKkigrRhzTtZzZVHhJsUuSJrFUufJTtCeEczXxNnrRZAhntTRrEeLlQqIiunNwWPpFKfmMSoOsXhHxJjwWtIAXlLDlYyLJkKjYtTRkKTwCXxhhsTtEeMFKkRibHhBrVIivkkjVvYySsAaJKnsSsTrRtUBlZzaALyYTZfFoOzHYFfCjAaqQNfFnEvVeOotTzRjJCcjJrZjyDDddMmYgGKkIiLiIKkHgGhZzcJjlsSsSmMwWtGuUgrRTEbBkKogGOefFHVvYyGgSiIlWwLqBbQsTAeEwWMjJCciIwWEecCdjJhBCcbkyYVFaAxKkXTjJNnWwLcNNpzwWZzZQqDfFkKcCRLmMlrblLiGjdDLwWlJSjJGgbyYuBYyMmEeQqyYbgGhoYtsNnhHJVDQqjBrRbIiJMoSkKsEmMeksSPtfmSsUMmuMKyRzZrTtAVvgGiIamMANnauUHhJiMmIoOjJHhuyYTgjJGtmZGgTtMwvVmMGgzAaqQnoONzwulekKCcEQqFfiIexXWAaNnwqQiIxYyXZzrRdfWPIiptTBDciwWIYyCEeoOFfraAnQqNRbBJBbnNTyYoOoaAdDaAVhHvmMOKkfFtWwvFfVIigegyYdGgDHTtNBbnaAPpWzZDdQqwUukKYyJjhibBJjIQiIqrRHhRrXwWxNhHEeLqQrCcCcPLlvVFfpOqaAQNnjZkKnQASGgssSCcjjiIbNHhnBJOxVwWvcCQqsSWwmnNfFMbBDdXgGRVvRrhoOHroxuPpQMJjJURrqQucRrCuUuaAKLLllYPpykEVveDOodkCcTOoCctKcCQPpqXxbIiuUUAawWcCgLuUlgGcCMXCcWldIvmMSlLsIiObvVBsSYtfFNnRYyrPpyYTtTSsyeJjUuEoLlyCcrRJPLlpjqgAfFaWOowBXQyYqxXxynNtTfFuUOLOoEeYylNnWwmMRvOkKwJTtjTLsXIpPigyYGTtxRpWwJjsSxXWXxqQdgGDQMgGmVvovVOwWwWSHmhngGvJyYfFjQqFeheQqTtbBEHEfTMYCcyRLlbrRBVvwyKFcChRBbZcHhCkkKKxgGjJXYybBxbBCEecLLRdvVDYjJhpBwbBrTtRWeENnbOodAaDPtTpBmMpHNTtnbrgSuzZvVLjJWXxwxXFfxXKmSswMCSsSXxBbsnNpZzeEPXxciIJjLlFVvflLmMstsSfTtFTwWSDdmMLlNDdnVsJjaAaASPCcMpPmXzZnMmNxFvVIzxXdDrZupPhHUzbBUXjJbBxhxXEIumMRrUiemMnNjCcGgJYyUuAaUIhHqQiUupPcmMCopAAaaUuPOpPugxOoKkXdeOokKEDgstTSaAHhITtKkiBHhQIidDJuUpXMtivVIJjqQDdTtTdEeDqpPQtTAUxbZMmAaUeEQquVvzkbBKMxtTXmAgGafRPprRSFfsbGggGMRJjVvrmBpuUUJjiAadDJjgGvybBYMwWmyYYyMHzZxFfsSXuUzrRMhHmgNnBbzwWbKkBcCZeEOoIrSsOAapEeXXxepPsSnuPpUNVvgGPtTptTvVEewdDWYyJVvTtsfFSfFjRAarLlxXLXxYABbayliIqQgUuGdDcCXHhXxxXvOoVjJDdbNtTJjyyjIvVibBsSxlkKxRrXoHhONnoSsdgGSsaABbcCDzZSZzsAaNnREermMKkdgGgUvViexXEdmMDZdDmxXKkRsSBbrMmGOUuCcogohHzZBhhHHmOoMlLWBbwWSsjJweXxEIaAiIOoiCcVvGgybBkhHKRrYSskoOKkpPCcrAaCcZzjZEeRrdDdNmMnTdDuUtjWwJDiINAaWwDzLlZdcCHPphNTGgtvpPMDdXxeEmFfVXohHOzwWZgGpPxyfLtTZzAaSsSgGsYyriIReMmEjdDGrRFJhHjYyoOfLlRrxXgJZZKGyDJjdvBbiIZzCcbBzZVxBhHfFPbBPtTtTuUPppZhHUuEekKzOhomiIYbByMaBbaAALlNnIoOiMmeCcEmETSstesSMEMSsmMuUzLlEtLZzETtNnlLejJDdlTaAsNnYyiDdIzZZzitqeEdDKLPpOjJolLlzHWwHhlLrlLqNnQwWRSRbplLHhPoJjOBzZkwWKyVvRIiiIrYrRgLlGcCcbdDBCuUmMrmLljckRXxTtrQKLlMmnKkNqAamuUMUuFdDLlfUuyhHqQbBVvpPYlqQYyttTdVvDTCcFfwZzCcIkKeEudMmlLDrmxMmXcCiIMRaNnRrdDQTtJPzvVfFvVEeSHdeEDhCvVctAaTCcwWaAsAaWsTLuTeEfFQqVKkvpPzZLsSbBdsSeEmaAkKdDMykKwWYMmrRGaAgnNaAvVfYwuUWtQqeNnETlcCLzwFbBfXqUugGQxyYoOWZEeygGnbyMmGzZulLJaAjfFbjJnwWBbLlQvVbNnjJrRSsnKfFkzZhHFfrCelLEpPnNrRcIiBbNoObtTrZnNzRSspPXxkKMvwWVoOmhHlLPbBplPpyyYYNnjJLkKiITKXFbBFfcMmCNnfxLlkWwOwWoBhHbtUgpPCxYyXMmcVvVvEebhAhHUKkktTtTKuPpTtzyTzZtYyrCcGZzhHLzZrRFfHpPgLlGhEYlLNnAayDnNGvPpxzZtvVkfFKnNnNZziItcFvViMmINQqkRIirmMdJFfjUIiugGDXxTNntOoCcfFfQqlbBfKkPpFLJjAGgKfFnNmMkEeaIibRrfFBFPfFjuKkUuLYynNgGTtlvxXnYyNiIlLVwWUQVvSoOoOstTEjgSsjJGAaUuJIWUuwihXfFWHhJKTwhHaAhPjJpfHhxhHNnNdDBbxXnCXxGgcZzBbXAaFJjiIlbBIiMtTTtUyYbtCxXPpvVjzZOJEMFfmewdDRrlLWGgwMmGcCggGWIiwWbJsSLlzZCcjkKFfFbBrRujJUPpfGzXxZyYgBjiIoKkJbwWBCVvccCcCcGgFWHfFhsSwZzkKkDdbBKRMLlmMuUdDFfUuUyYrNFXmMxuUzZXxfBTfFPcCUJjwWlQAazZqPpnKiInNgmMGJjhHOKkoHBSsTsnaANRyLlYroOfTtcCFQqDEegdDGXxmMhvVsSDaJjHhlvVLANnWwWjbBbBaAckDcCdKZWwhHuPpRAaoOrCcPpiIOgGoeZzEVvvVoOhdDoMmOPcCgGeEphHHddDDdOIjJnmbGeiiIIFfEgZkyYKznDVnNvZzyYBbtILpPliEesSsjJSYnKRrkFfZzNLloCIiYywWcsSpexXEJjBbgGWGgwKyzZjUlLfFuEeJjVpPvHhxXJYxXmMzHhZXxhuEJBbrRvVvOobBVLlhunUuNAapPdDFPpMPpKYykdDVYoOypKWZzwhHkZfXDdxtsiIjJsSqQFfSQxKkQHhqXZAIiaTtzsojJOoObBfFSkkKhcCqQHIzKhHtTEerZzlIceEbBYysSAaTHIihtTtTtyYcCRBsSbrCiIDitTIWwditaAuUQvVqtTpPJaAjRiGgeEIGgryFjtTJnNjJuUlpPNkKdDnCcvVLrRFfaPpAfDMmQqdrjJjJGgRkKTSsVvVvssSStaAYVQEQdDqeEeAaIvViaIiuKkXxuUkZzKrRyYUuwWUwWAJjRrBbeInNiEVvYysQZzGgIiqAawWNHsShmEBbypPYukKUePpDdGIiYyVQOghLlrRyYHkKgVkKhHFBbyVWwvYmnNMgGBbfBwuhHUWVFbBYyuUzjqQJZhHzZiUuIflZzxXZzykKYjJLkKbsTkshHSVvLlvVKIfFiBbQTvIiVtxXHZzGgkKwWVhXxxBLliITtbgGIfFfFiZzAgnNGCcjJlLacCjSsRrJrRgaAGDpPdXdDeEpPVOoNnjJgGFBZmlnNsSLMXtTOoEQwWqXxSsexEupPUeHhzSseEHRrDQcCnNZTHhtZggHhGGzahHAoONnEeubBbBgUuGxuUFfXpGgPjJUoOgGwqQObbBBoGgBkKbalLZhHzAAPgGyYxkKwWBbAQqaCcxXIiYyNnraABbRgGLlXvVxIYyfeIiEFcLlCrRoOFfGgZTYytEelMmzZoOiIuUMmOomMLPVvaAMmMmphHBbiIOEdDqQCcRreLlNnXxvVUuoBbiIbmMzZBVFnNISiIaEeRrACcQqjJxXYNgGnEeCcFqQfHiIUAHhaAasSbiIBXfFnYyNeEEuUePhHzZpAtTaBbhHmWwEYyeuCYCcMmWryVvwWYRLlshHSsSfTCcXOoFfXxoOYyBrwWmWwMWhCcPpHDnNAaiLlAanNPpIJjdhOovQOoqDPDOoMoZDdzONnmdlzjJZjJjJquUQjJfFAaFfLcvDdVkKCuRrkGmMMmRrFfgKvVTWwCQqctyoOYDdMZzGgmCcifFSsIaeKSSsmMVvSsQvpPlLVEeKCgGCBbcckUuEerGgeIiCcERBbJjWwTtyYvVuUDdbkKaIdsSDiZzlLUuARrmDWuUFYyfeEwYynnNNNUdDuaAeEnLlzaaAIiAaAgGdjJmzxUuXqeEYyiIoOQTLliItkKepVvGYygYyLlPEuUiJjyYUoOZOozWwsSdDhHtTutpPBbZznYEeyFZLlzqvVQfrKkRSKksSiIQTtHhWwjJQqqfFuUhHSsQqUuYysTpPKkrRyYzbBDoOdZmAqQRraMgRrGdDiIOoghHHlLdDCRrcPIiphiIqQXbYnoONyBGgaLwWlAsaADdDdSTBbDdUHNvVnYyeEJjhxXdDDMmGgeEoSsOdxDyYVvdqQFfrTRrbxXBtRIiXlzZLjBbyYJUJFfBbBbaAjxsSNnqQMnQqwWNSsBbcCpPQLlwWuzZOtTtTrRGgoqiIQUeEoQqOgHhPpoOEeGHYLVgGnNvfFCcOolpPQqXxyaHhAkIjJiIiBtWwTXOFfodDxqQtaATbSEedGgcCDHhsKhhHGnoONgMmlPpLIYyivVLlLlmMVvsIiSfcCFRrivVNneSsMmOQqopfFacCAAaPDOoFVvfwWRrdEIadDBJjbYBbyAlKkmLcCsSQNTkKtqQnqlUwfFWrEeROvDMmIiIihHaAaKkEeAdVZzmMtzZDkKaAdTlWwLbBIbBMmUubBdDFfSsYNnCaYyBbSsuuUztTZNnUhHAcygGauUUuAamMgGUuASsuhHMmmMqQmMCcYxythHHhuUCqQcDdWyYwTmMtKcyTUjJzZjmMJurnNCvVOobBcKkZziDdYyCcfFcCSAGgEeBbaNnosSOhHwkKWoODdoaAOnNsIRVJjvQIEeiMOoxRrXeAabBEOLlosSpPmXxNnVCcAaqWxXwXxXdDYyZDdFfarReEACczYAaIiBPphHMyYiILlBuUbmYylkKaRrfFADNngGMTtmPDeEdyQLcCljJqXzZyYpPrgGRHhLlNnxaAQqYIixXxXKJjkZqOopPQhHrdCcDXxRMmqkHhKQZWwzKkVvzidDIdTtDKwWBJjbrhmMZmXxOoMzgGyYHMFKkfaANnmRrRkMpPmmkoOKMMDuUddEmMZzYyeDnSeEstBWwbFfTXsSwqQzZmmMMWmdDTtMrRnCcEeNxXVvkoOwfFWVcCvKtTxFgGVoOMmvmMMmeEKkOofoGgOYYyyIimMrRWkKAsLlSlhUuHIiLbBlOoqIiyGgYAqQaRrrokKOOWwxXoDeEdrRkNnEeztTZzzZZPprRFmMFfxlLXAFmMfmLlcCMaIglLGinNBmlLkKMIibBbfFrRqQAawlLWfXbBxefDoOHhtpHhPTdFAsSaOzZooOElLRrRrKIimMCcuUmNxXkKnCcbFbBeIOoxJjLGWwgNYyAZiIXxXxGgzqQaXIixeEcCcbBCEwRgGrLliIWwWRreHpPhcCIiIOohHQxXqiHhgGNSsLfFxXlLEesSMrRheEHRrmkKbBaApPOoxXSsAWwaPjcCAoOfOoFiUHhuUunyYNIpPaJYybQCXnNxcXxqRBbzZIiKkdDrADdaspXxPMGgmJDOodjObRGJjgzzZZrRwWZOozKkqQrmsStEewzZWRreETLlMvVGgWwFfRrIhmMHioCzZuURhIiHNnrjaABbjowWOJDdFeEfLlJUuuYyZzbBmhbBHMUuwWUyYiMLlmIFfckKeoeEHhOlLEZzvkKmMVIiPrRcndDNCQwWcCPpIAaimuUgGiIMSsmMKkNnyUuHhYqHhVvGyYgLlfvVFPpkKmTtcLdxXDlYyjJCMtTQXZbhHkKOXxgvrRVGoBQNAaVvnqGIiFfgMNiIxXmouUOMZzBUuXxbNnlLYyuEeUnVGgGgvBbuUswupPUWSYyPhHSspQUuTtqKYyqOfFoDdbBsSQcDdCPHhpRCcryYcCkIPpPfZzFDdXxEepZWwwWEHhqQezMmYyyHhYWwXIixgyYGQiPpDdIIiqgGwhHWRrDdiwWXoOxSslKkLxpOotTbUuBDvJjVWNnwdmMPeERYyyYLqQMmlvLlMmVhHBQqbIihnNbBMRryYGjJgGgquKkUQmuUHbBpCgGcVZEeGgzvPpOovVYGOogIiCnYyNlTtdDTJGgeEjbBtLQYRrypoOPVvnkKWwNsSaAqcNnNkKOcConyPsSdDrYCcTtyhHFmMfYyRvHhVzZcCJjyYnNuUXxDLmMlJmMjdeQAavuUVNnqNSsgGxXDJjvOoFfWwiSsxXZzQSssSUuNnqdtTDRWwrpPGgdmMDIIiYQquRrmiIeBbgnNGFQqEoOeCcRrcCffFjJbBjJEvVVvTtMyYYcCaAaAyHrRhGgCcmMmqQMkKKkJOoeXxAaxXOaAotTHhEnNZzRrrRgGDJjnNdaAjJNPpngvtTViIcCAadLlDkKPpQWwPpyYqZqQqQDiIdjtTJzuqLlRrQBbtTUrRGKwBbWkjIiwfFWFfMmXxrxVvXRcCnMmVvVsScCyYXxHrRMmiIBbhvNMmGgZPpzNnEpNncmMCPopPOjCQqcJpPsSGHhkKgBbXcCQJjqcSsCZcCdDzGgxXFAAatTVvaZSszCcgYzZjdDkKnNJXIixHLlUJjuyYhgGkKmMsWwSgGHhyYKkIpPiIicCbDdBTtqQCSnvVNsdKkDZzKPpkcoOmVVGgOGgKkovJjHplLuUPhwWBbdDDdvVUuvQqtwWTeEgGMrRlLGRZzrgmtTHhMJjJxXWSsmMWwHSkKNKknsJjtMmFfThDdBbeEwnNjyGgYSsCcoOIiedOoprjJXxRPYyPpAaRUurDxnNiIXlPpUJjuIizLlbBZyjJSsYHhIieQqEsSWwNYynwWqQbBSsnNBbsSRNnrHhYkKyKktTGgnNYyFQqfsSOoLxgGXckeEbBCcPJjTtpfFKBbBsSZzbVAakKXxpPmAaMzhHghHGKkZrRvgXxhHGJjdYyDoOKRnNrkCcaACMPpWwaAmSjJuUXDdxpdBbVvDsSjJicCnBbNIMmiIXbJMmjGJjgBTmMWwtTSsvNlLnDEeEWwedVngGQUuzZqNWAazZCinNILlcwyxCcXYKkeExlLXjJhEeGgEeYyHZOozlLS";